Merge pull request #61 from linuxdeploy/debug-desktopfile-unit-tests-in-release-builds

Fix desktop file parser unit test failures
This commit is contained in:
TheAssassin
2018-11-23 22:08:03 +01:00
committed by GitHub
2 changed files with 27 additions and 6 deletions

View File

@@ -144,7 +144,7 @@ namespace linuxdeploy {
}
bool DesktopFile::setEntry(const std::string& section, DesktopFileEntry&& entry) {
// check if value exists -- used for return value
// check if value exists -- used for return value
auto rv = entryExists(section, entry.key());
d->data[section][entry.key()] = entry;
@@ -157,6 +157,10 @@ namespace linuxdeploy {
return false;
entry = d->data[section][key];
// make sure keys are equal
assert(key == entry.key());
return true;
}
@@ -170,12 +174,14 @@ namespace linuxdeploy {
DesktopFileEntry entry;
// this should never return false
assert(getEntry(section, key, entry));
auto entryExists = getEntry(section, key, entry);
assert(entryExists);
ldLog() << LD_WARNING << "Key exists, not modified:" << key << "(current value:" << entry.value() << LD_NO_SPACE << ")" << std::endl;
rv = false;
} else {
assert(!setEntry(section, std::move(DesktopFileEntry(key, value))));
auto entryOverwritten = setEntry(section, DesktopFileEntry(key, value));
assert(!entryOverwritten);
}
};

View File

@@ -138,13 +138,22 @@ TEST_F(DesktopFileTest, testMoveAssignmentConstructor) {
assertIsTestDesktopFile(copy);
}
/* deactivated until further notice as they won't run on Travis CI for some reason
void assertDefaultKeysExistInDesktopFile(const DesktopFile& file) {
DesktopFileEntry entry;
for (const auto& key : {"Name", "Exec", "Icon", "Type"})
EXPECT_TRUE(file.getEntry("Desktop Entry", key, entry)) << "Could not find key in desktop file: " << key;
}
TEST_F(DesktopFileTest, testAddDefaultValues) {
const auto& value = "testExecutable";
DesktopFile file;
file.addDefaultKeys(value);
// make sure keys exist in desktop files
assertDefaultKeysExistInDesktopFile(file);
std::stringstream ss;
file.save(ss);
@@ -169,6 +178,11 @@ TEST_F(DesktopFileTest, testAddDefaultValuesExistingKeys) {
DesktopFile file(iss);
file.addDefaultKeys(value);
// make sure keys exist in desktop files
assertDefaultKeysExistInDesktopFile(file);
file.save(std::cout);
std::stringstream ss;
file.save(ss);
@@ -178,7 +192,6 @@ TEST_F(DesktopFileTest, testAddDefaultValuesExistingKeys) {
EXPECT_EQ(reader["Desktop Entry"]["Name"].value(), "A Different Name");
EXPECT_EQ(reader["Desktop Entry"]["Exec"].value(), "a_different_exec");
EXPECT_EQ(reader["Desktop Entry"]["Icon"].value(), value);
EXPECT_EQ(reader["Desktop Entry"]["Type"].value(), "Application");
EXPECT_EQ(reader["Desktop Entry"]["Categories"].value(), "Utility;");
}
@@ -191,6 +204,9 @@ TEST_F(DesktopFileTest, testAddDefaultValuesNoOverwrite) {
file.addDefaultKeys(value);
// make sure keys exist in desktop files
assertDefaultKeysExistInDesktopFile(file);
{
std::stringstream oss;
file.save(oss);
@@ -208,7 +224,6 @@ TEST_F(DesktopFileTest, testAddDefaultValuesNoOverwrite) {
EXPECT_EQ(reader["Desktop Entry"]["Categories"].parseStringList(), std::vector<std::string>({"Utility"}));
}
}
*/
TEST_F(DesktopFileTest, testSaveToPath) {
std::stringstream ins;