diff options
author | Kai Koehne <kai.koehne@digia.com> | 2013-02-12 15:41:41 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2013-02-13 17:13:27 +0100 |
commit | 8f240bb5d157f1957cc26a20ed8c3483eed2d6b6 (patch) | |
tree | 039be0150df7b932499722dcdda22fcd26239b4d /tests/auto/installer/settings/tst_settings.cpp | |
parent | 52c09f5618db5b793cb1a4114c7f35c7d13a3967 (diff) |
Make loading of config.xml more strict
Explicitly check for unknown elements & attributes when loading
config.xml.
Change-Id: I31e6997b2f7d504e15dd24df2f4ae4005209168f
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'tests/auto/installer/settings/tst_settings.cpp')
-rw-r--r-- | tests/auto/installer/settings/tst_settings.cpp | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/tests/auto/installer/settings/tst_settings.cpp b/tests/auto/installer/settings/tst_settings.cpp index 2fcd6bf3f..9fbbd8292 100644 --- a/tests/auto/installer/settings/tst_settings.cpp +++ b/tests/auto/installer/settings/tst_settings.cpp @@ -12,12 +12,15 @@ class tst_Settings : public QObject Q_OBJECT private slots: - void loadConfig(); + void loadTutorialConfig(); + void loadFullConfig(); + void loadEmptyConfig(); void loadNotExistingConfig(); void loadMalformedConfig(); + void loadUnknownElementConfig(); }; -void tst_Settings::loadConfig() +void tst_Settings::loadTutorialConfig() { Settings settings = Settings::fromFileAndPrefix(":///data/tutorial_config.xml", ":///data"); @@ -62,12 +65,31 @@ void tst_Settings::loadConfig() QCOMPARE(settings.httpProxy(), QNetworkProxy()); } +void tst_Settings::loadFullConfig() +{ + Settings settings = + Settings::fromFileAndPrefix(":///data/full_config.xml", ":///data"); +} + +void tst_Settings::loadEmptyConfig() +{ + try { + Settings::fromFileAndPrefix(":/data/empty_config.xml", ":/data"); + } catch (const Error &error) { + QCOMPARE(error.message(), QLatin1String("Missing or empty <Name> tag in :/data/empty_config.xml.")); + return; + } + QFAIL("No exception thrown"); +} + void tst_Settings::loadNotExistingConfig() { try { Settings::fromFileAndPrefix(":/data/inexisting_config.xml", ":/data"); } catch (const Error &error) { - QVERIFY(error.message() == ("Could not open settings file :/data/inexisting_config.xml for reading: Unknown error")); + QCOMPARE(error.message(), QLatin1String("Could not open settings file " + ":/data/inexisting_config.xml for reading: " + "Unknown error")); return; } QFAIL("No exception thrown"); @@ -78,7 +100,20 @@ void tst_Settings::loadMalformedConfig() try { Settings::fromFileAndPrefix(":/data/malformed_config.xml", ":/data"); } catch (const Error &error) { - QVERIFY(error.message().startsWith("Xml parse error")); + QCOMPARE(error.message(), QLatin1String("Error in :/data/malformed_config.xml, line 9, column 0: " + "Premature end of document.")); + return; + } + QFAIL("No exception thrown"); +} + +void tst_Settings::loadUnknownElementConfig() +{ + try { + Settings::fromFileAndPrefix(":/data/unknown_element_config.xml", ":/data"); + } catch (const Error &error) { + QCOMPARE(error.message(), QLatin1String("Error in :/data/unknown_element_config.xml, line 5, " + "column 13: Unexpected element 'unknown'.")); return; } QFAIL("No exception thrown"); |