Skip to content
Snippets Groups Projects
Commit e2dbc33a authored by Ming Rui Zhang's avatar Ming Rui Zhang
Browse files

test: enhance the google unit tests of the client

1. Move JAMI_DATA_HOME, JAMI_CONFIG_HOME, JAMI_CACHE_HOME
   setup into individual test main entry
2. Use google test assertion macros instead of Qt
3. Add QT_QPA_FONTDIR to avoid QFont warnings
4. Tests will now fail if the env variables cannot be set

Change-Id: I63f6498d26b646d8ebc60799d8797fd5f13b54f9
parent 0aa3275b
No related branches found
No related tags found
No related merge requests found
...@@ -32,10 +32,7 @@ qml_test_project = build_dir + '\\tests\\qml_tests.vcxproj' ...@@ -32,10 +32,7 @@ qml_test_project = build_dir + '\\tests\\qml_tests.vcxproj'
qml_test_exe = this_dir + '\\x64\\test\\qml_tests.exe -input ' + this_dir + '\\tests\\qml' qml_test_exe = this_dir + '\\x64\\test\\qml_tests.exe -input ' + this_dir + '\\tests\\qml'
unit_test_exe = this_dir + '\\x64\\test\\unittests.exe' unit_test_exe = this_dir + '\\x64\\test\\unittests.exe'
# test env path windows_font_dir = 'C:\\Windows\\Fonts'
test_data_dir = temp_path + '\\jami_test\\jami'
test_config_dir = temp_path + '\\jami_test\\.config'
test_cache_dir = temp_path + '\\jami_test\\.cache'
class TestBuilding(Enum): class TestBuilding(Enum):
NoTests = 0 NoTests = 0
...@@ -320,10 +317,8 @@ def run_tests(mute_jamid, output_to_files): ...@@ -320,10 +317,8 @@ def run_tests(mute_jamid, output_to_files):
os.environ["QT_QPA_PLATFORM"] = 'offscreen' os.environ["QT_QPA_PLATFORM"] = 'offscreen'
os.environ["QT_QUICK_BACKEND"] = 'software' os.environ["QT_QUICK_BACKEND"] = 'software'
# set test env variables # provide font dir
os.environ["JAMI_DATA_HOME"] = test_data_dir os.environ["QT_QPA_FONTDIR"] = windows_font_dir
os.environ["JAMI_CONFIG_HOME"] = test_config_dir
os.environ["JAMI_CACHE_HOME"] = test_cache_dir
for test_exe_command in test_exe_command_list: for test_exe_command in test_exe_command_list:
if (execute_cmd(test_exe_command, True)): if (execute_cmd(test_exe_command, True)):
......
...@@ -124,6 +124,18 @@ private: ...@@ -124,6 +124,18 @@ private:
int int
main(int argc, char** argv) main(int argc, char** argv)
{ {
QDir tempDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
auto jamiDataDir = tempDir.absolutePath() + "\\jami_test\\jami";
auto jamiConfigDir = tempDir.absolutePath() + "\\jami_test\\.config";
auto jamiCacheDir = tempDir.absolutePath() + "\\jami_test\\.cache";
bool envSet = qputenv("JAMI_DATA_HOME", jamiDataDir.toLocal8Bit());
envSet &= qputenv("JAMI_CONFIG_HOME", jamiConfigDir.toLocal8Bit());
envSet &= qputenv("JAMI_CACHE_HOME", jamiCacheDir.toLocal8Bit());
if (!envSet)
return 1;
bool muteDring {false}; bool muteDring {false};
// Remove "-mutejamid" from argv, as quick_test_main_with_setup() will // Remove "-mutejamid" from argv, as quick_test_main_with_setup() will
...@@ -139,7 +151,6 @@ main(int argc, char** argv) ...@@ -139,7 +151,6 @@ main(int argc, char** argv)
argc = std::distance(argv, end); argc = std::distance(argv, end);
} }
QStandardPaths::setTestModeEnabled(true);
QtWebEngine::initialize(); QtWebEngine::initialize();
QTEST_SET_MAIN_SOURCE_PATH QTEST_SET_MAIN_SOURCE_PATH
......
...@@ -60,11 +60,11 @@ TEST_F(AccountFixture, CreateSIPAccountTest) ...@@ -60,11 +60,11 @@ TEST_F(AccountFixture, CreateSIPAccountTest)
// Create SIP Acc // Create SIP Acc
globalEnv.accountAdapter->createSIPAccount(QVariantMap()); globalEnv.accountAdapter->createSIPAccount(QVariantMap());
QVERIFY(accountAddedSpy.wait()); accountAddedSpy.wait();
QCOMPARE(accountAddedSpy.count(), 1); EXPECT_EQ(accountAddedSpy.count(), 1);
QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst(); QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst();
QVERIFY(accountAddedArguments.at(0).type() == QVariant::String); EXPECT_TRUE(accountAddedArguments.at(0).type() == QVariant::String);
// Select the created account // Select the created account
globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString()); globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString());
...@@ -76,18 +76,18 @@ TEST_F(AccountFixture, CreateSIPAccountTest) ...@@ -76,18 +76,18 @@ TEST_F(AccountFixture, CreateSIPAccountTest)
QSignalSpy accountStatusChangedSpy(&globalEnv.lrcInstance->accountModel(), QSignalSpy accountStatusChangedSpy(&globalEnv.lrcInstance->accountModel(),
&NewAccountModel::accountStatusChanged); &NewAccountModel::accountStatusChanged);
QVERIFY(accountStatusChangedSpy.wait()); accountStatusChangedSpy.wait();
QCOMPARE(accountStatusChangedSpy.count(), 1); EXPECT_GE(accountStatusChangedSpy.count(), 1);
// Remove the account // Remove the account
globalEnv.lrcInstance->accountModel().removeAccount(
globalEnv.lrcInstance->get_currentAccountId());
QSignalSpy accountRemovedSpy(&globalEnv.lrcInstance->accountModel(), QSignalSpy accountRemovedSpy(&globalEnv.lrcInstance->accountModel(),
&NewAccountModel::accountRemoved); &NewAccountModel::accountRemoved);
QVERIFY(accountRemovedSpy.wait()); globalEnv.lrcInstance->accountModel().removeAccount(
QCOMPARE(accountRemovedSpy.count(), 1); globalEnv.lrcInstance->get_currentAccountId());
accountRemovedSpy.wait();
EXPECT_EQ(accountRemovedSpy.count(), 1);
accountListSize = globalEnv.lrcInstance->accountModel().getAccountList().size(); accountListSize = globalEnv.lrcInstance->accountModel().getAccountList().size();
ASSERT_EQ(accountListSize, 0); ASSERT_EQ(accountListSize, 0);
......
...@@ -48,11 +48,11 @@ TEST_F(ContactFixture, AddSIPContactTest) ...@@ -48,11 +48,11 @@ TEST_F(ContactFixture, AddSIPContactTest)
// Create SIP Acc // Create SIP Acc
globalEnv.accountAdapter->createSIPAccount(QVariantMap()); globalEnv.accountAdapter->createSIPAccount(QVariantMap());
QVERIFY(accountAddedSpy.wait()); accountAddedSpy.wait();
QCOMPARE(accountAddedSpy.count(), 1); EXPECT_EQ(accountAddedSpy.count(), 1);
QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst(); QList<QVariant> accountAddedArguments = accountAddedSpy.takeFirst();
QVERIFY(accountAddedArguments.at(0).type() == QVariant::String); EXPECT_TRUE(accountAddedArguments.at(0).type() == QVariant::String);
// Select the created account // Select the created account
globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString()); globalEnv.lrcInstance->set_currentAccountId(accountAddedArguments.at(0).toString());
...@@ -61,8 +61,8 @@ TEST_F(ContactFixture, AddSIPContactTest) ...@@ -61,8 +61,8 @@ TEST_F(ContactFixture, AddSIPContactTest)
QSignalSpy accountStatusChangedSpy(&globalEnv.lrcInstance->accountModel(), QSignalSpy accountStatusChangedSpy(&globalEnv.lrcInstance->accountModel(),
&lrc::api::NewAccountModel::accountStatusChanged); &lrc::api::NewAccountModel::accountStatusChanged);
QVERIFY(accountStatusChangedSpy.wait()); accountStatusChangedSpy.wait();
QCOMPARE(accountStatusChangedSpy.count(), 1); EXPECT_GE(accountStatusChangedSpy.count(), 1);
// ModelUpdated signal spy // ModelUpdated signal spy
QSignalSpy modelUpdatedSpy(globalEnv.lrcInstance->getCurrentContactModel(), QSignalSpy modelUpdatedSpy(globalEnv.lrcInstance->getCurrentContactModel(),
...@@ -71,11 +71,11 @@ TEST_F(ContactFixture, AddSIPContactTest) ...@@ -71,11 +71,11 @@ TEST_F(ContactFixture, AddSIPContactTest)
// Add temp contact test // Add temp contact test
globalEnv.lrcInstance->getCurrentConversationModel()->setFilter("test"); globalEnv.lrcInstance->getCurrentConversationModel()->setFilter("test");
QVERIFY(modelUpdatedSpy.wait()); modelUpdatedSpy.wait();
QCOMPARE(modelUpdatedSpy.count(), 1); EXPECT_EQ(modelUpdatedSpy.count(), 1);
QList<QVariant> modelUpdatedArguments = modelUpdatedSpy.takeFirst(); QList<QVariant> modelUpdatedArguments = modelUpdatedSpy.takeFirst();
QVERIFY(modelUpdatedArguments.at(0).type() == QVariant::String); EXPECT_TRUE(modelUpdatedArguments.at(0).type() == QVariant::String);
// Get conversation id // Get conversation id
auto convId = globalEnv.lrcInstance auto convId = globalEnv.lrcInstance
...@@ -89,16 +89,19 @@ TEST_F(ContactFixture, AddSIPContactTest) ...@@ -89,16 +89,19 @@ TEST_F(ContactFixture, AddSIPContactTest)
globalEnv.lrcInstance->getCurrentConversationModel()->makePermanent(convId); globalEnv.lrcInstance->getCurrentConversationModel()->makePermanent(convId);
QVERIFY(contactAddedSpy.wait()); contactAddedSpy.wait();
QCOMPARE(contactAddedSpy.count(), 1); EXPECT_EQ(contactAddedSpy.count(), 1);
// Remove the account // Remove the account
QSignalSpy accountRemovedSpy(&globalEnv.lrcInstance->accountModel(),
&lrc::api::NewAccountModel::accountRemoved);
globalEnv.lrcInstance->accountModel().removeAccount( globalEnv.lrcInstance->accountModel().removeAccount(
globalEnv.lrcInstance->get_currentAccountId()); globalEnv.lrcInstance->get_currentAccountId());
QSignalSpy accountRemovedSpy(&globalEnv.lrcInstance->accountModel(), accountRemovedSpy.wait();
&lrc::api::NewAccountModel::accountRemoved); EXPECT_EQ(accountRemovedSpy.count(), 1);
QVERIFY(accountRemovedSpy.wait()); auto accountListSize = globalEnv.lrcInstance->accountModel().getAccountList().size();
QCOMPARE(accountRemovedSpy.count(), 1); ASSERT_EQ(accountListSize, 0);
} }
\ No newline at end of file
...@@ -27,6 +27,18 @@ TestEnvironment globalEnv; ...@@ -27,6 +27,18 @@ TestEnvironment globalEnv;
int int
main(int argc, char* argv[]) main(int argc, char* argv[])
{ {
QDir tempDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
auto jamiDataDir = tempDir.absolutePath() + "\\jami_test\\jami";
auto jamiConfigDir = tempDir.absolutePath() + "\\jami_test\\.config";
auto jamiCacheDir = tempDir.absolutePath() + "\\jami_test\\.cache";
bool envSet = qputenv("JAMI_DATA_HOME", jamiDataDir.toLocal8Bit());
envSet &= qputenv("JAMI_CONFIG_HOME", jamiConfigDir.toLocal8Bit());
envSet &= qputenv("JAMI_CACHE_HOME", jamiCacheDir.toLocal8Bit());
if (!envSet)
return 1;
// Remove "-mutejamid" from argv, as quick_test_main_with_setup() will // Remove "-mutejamid" from argv, as quick_test_main_with_setup() will
// fail if given an invalid command-line argument. // fail if given an invalid command-line argument.
auto end = std::remove_if(argv + 1, argv + argc, [](char* argv) { auto end = std::remove_if(argv + 1, argv + argc, [](char* argv) {
...@@ -40,8 +52,6 @@ main(int argc, char* argv[]) ...@@ -40,8 +52,6 @@ main(int argc, char* argv[])
argc = std::distance(argv, end); argc = std::distance(argv, end);
} }
QStandardPaths::setTestModeEnabled(true);
QApplication a(argc, argv); QApplication a(argc, argv);
a.processEvents(); a.processEvents();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment