17 changed files with 748 additions and 11 deletions
			
			
		@ -0,0 +1,10 @@ | 
				
			|||
#ifndef PREFIX_P_H | 
				
			|||
#define PREFIX_P_H | 
				
			|||
 | 
				
			|||
#if defined(BUILD_QSETTINGSGENERATOR) | 
				
			|||
#define Q_MVVMCORE_EXPORT | 
				
			|||
#else | 
				
			|||
#include "qtmvvmcore_global.h" | 
				
			|||
#endif | 
				
			|||
 | 
				
			|||
#endif // PREFIX_P_H
 | 
				
			|||
@ -0,0 +1,31 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<SettingsConfig allowSearch="false" allowRestore="false"> | 
				
			|||
	<Category/> | 
				
			|||
	<Category> | 
				
			|||
		<Entry key="direct" | 
				
			|||
			   type="double"/> | 
				
			|||
	</Category> | 
				
			|||
	<Category> | 
				
			|||
		<Group/> | 
				
			|||
		<Group> | 
				
			|||
			<Entry key="indirect" | 
				
			|||
				   type="double"/> | 
				
			|||
		</Group> | 
				
			|||
	</Category> | 
				
			|||
	<Category title="main" | 
				
			|||
			  icon="http://example.com/favicon.png" | 
				
			|||
			  tooltip="another tooltip"> | 
				
			|||
		<Section/> | 
				
			|||
		<Section> | 
				
			|||
			<Entry key="subdirect" | 
				
			|||
				   type="double"/> | 
				
			|||
		</Section> | 
				
			|||
		<Section> | 
				
			|||
			<Group/> | 
				
			|||
			<Group> | 
				
			|||
				<Entry key="fardirect" | 
				
			|||
					   type="double"/> | 
				
			|||
			</Group> | 
				
			|||
		</Section> | 
				
			|||
	</Category> | 
				
			|||
</SettingsConfig> | 
				
			|||
@ -0,0 +1,36 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<SettingsConfig allowSearch="true" allowRestore="true"> | 
				
			|||
	<Entry key="minimal" | 
				
			|||
		   type="bool"/> | 
				
			|||
	<Entry key="full" | 
				
			|||
		   type="string" | 
				
			|||
		   title="FULL" | 
				
			|||
		   tooltip="full tip" | 
				
			|||
		   default="hello world" | 
				
			|||
		   trdefault="false"/> | 
				
			|||
	<Entry key="search" | 
				
			|||
		   type="int"> | 
				
			|||
		<SearchKey>hello</SearchKey> | 
				
			|||
		<SearchKey>world</SearchKey> | 
				
			|||
	</Entry> | 
				
			|||
	<Entry key="elements" | 
				
			|||
		   type="double"> | 
				
			|||
		<Property key="simple" type="int">42</Property> | 
				
			|||
		<Property key="literal" type="string">baum42</Property> | 
				
			|||
		<Property key="list" type="list"> | 
				
			|||
			<Element type="int">13</Element> | 
				
			|||
			<Element type="list"> | 
				
			|||
				<Element type="number">4.2</Element> | 
				
			|||
			</Element> | 
				
			|||
			<Element type="object"> | 
				
			|||
				<Property key="simple" type="int">42</Property> | 
				
			|||
			</Element> | 
				
			|||
		</Property> | 
				
			|||
		<Property key="map" type="object"> | 
				
			|||
			<Property key="simple" type="int">42</Property> | 
				
			|||
			<Property key="list" type="list"> | 
				
			|||
				<Element type="number">4.2</Element> | 
				
			|||
			</Property> | 
				
			|||
		</Property> | 
				
			|||
	</Entry> | 
				
			|||
</SettingsConfig> | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<SettingsConfig allowSearch="true" allowRestore="true"> | 
				
			|||
	<Group/> | 
				
			|||
	<Group> | 
				
			|||
		<Entry key="minimal" | 
				
			|||
			   type="bool"/> | 
				
			|||
	</Group> | 
				
			|||
	<Group title="FULL" tooltip="full"> | 
				
			|||
		<Entry key="a" | 
				
			|||
			   type="bool"/> | 
				
			|||
		<Entry key="b" | 
				
			|||
			   type="bool"/> | 
				
			|||
	</Group> | 
				
			|||
</SettingsConfig> | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<SettingsConfig allowSearch="false" allowRestore="false"> | 
				
			|||
	<Section/> | 
				
			|||
	<Section> | 
				
			|||
		<Entry key="direct" | 
				
			|||
			   type="double"/> | 
				
			|||
	</Section> | 
				
			|||
	<Section title="master" | 
				
			|||
			 icon="file:///path/to/vengance.png" | 
				
			|||
			 tooltip="ruler"> | 
				
			|||
		<Group/> | 
				
			|||
		<Group> | 
				
			|||
			<Entry key="indirect" | 
				
			|||
				   type="double"/> | 
				
			|||
		</Group> | 
				
			|||
	</Section> | 
				
			|||
</SettingsConfig> | 
				
			|||
@ -0,0 +1,30 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<SettingsConfig allowSearch="false" allowRestore="false"> | 
				
			|||
	<Category frontends="widgets" /> | 
				
			|||
	<Category> | 
				
			|||
		<Section frontends="quick" /> | 
				
			|||
		<Section> | 
				
			|||
			<Group frontends="widgets|console"/> | 
				
			|||
			<Group> | 
				
			|||
				<Entry key="t1" | 
				
			|||
					   type="bool" | 
				
			|||
					   frontends="quick|console"/> | 
				
			|||
			</Group> | 
				
			|||
		</Section> | 
				
			|||
	</Category> | 
				
			|||
 | 
				
			|||
	<Category selectors="b1" /> | 
				
			|||
	<Category> | 
				
			|||
		<Section selectors="b2|a2" /> | 
				
			|||
		<Section> | 
				
			|||
			<Group selectors="a1&a2"/> | 
				
			|||
			<Group> | 
				
			|||
				<Entry key="t2" | 
				
			|||
					   type="bool" | 
				
			|||
					   selectors="a1&a2|b2&a3"/> | 
				
			|||
			</Group> | 
				
			|||
		</Section> | 
				
			|||
	</Category> | 
				
			|||
 | 
				
			|||
	<Category frontends="console|widgets" selectors="a1&a2|b1"/> | 
				
			|||
</SettingsConfig> | 
				
			|||
@ -0,0 +1,26 @@ | 
				
			|||
TEMPLATE = app | 
				
			|||
 | 
				
			|||
QT += testlib mvvmcore mvvmcore-private | 
				
			|||
QT -= gui | 
				
			|||
CONFIG += console | 
				
			|||
CONFIG -= app_bundle | 
				
			|||
 | 
				
			|||
TARGET = tst_settingsconfigloader | 
				
			|||
 | 
				
			|||
DEFINES += SRCDIR=\\\"$$_PRO_FILE_PWD_\\\" | 
				
			|||
 | 
				
			|||
INCLUDEPATH += \ | 
				
			|||
	../../../../src/settingsconfig \ | 
				
			|||
	$$shadowed(../../../../src/mvvmcore) \ | 
				
			|||
	../../../../src/3rdparty/optional-lite \ | 
				
			|||
	../../../../src/3rdparty/variant-lite | 
				
			|||
 | 
				
			|||
SOURCES += \ | 
				
			|||
	tst_settingsconfigloader.cpp | 
				
			|||
 | 
				
			|||
DISTFILES += \ | 
				
			|||
    entryDocument.xml \ | 
				
			|||
    groupDocument.xml \ | 
				
			|||
    sectionDocument.xml \ | 
				
			|||
    categoryDocument.xml \ | 
				
			|||
    selectorDocument.xml | 
				
			|||
@ -0,0 +1,570 @@ | 
				
			|||
#include <QtTest> | 
				
			|||
#include <QtMvvmCore/private/settingsconfigloader_p.h> | 
				
			|||
using namespace QtMvvm; | 
				
			|||
using namespace QtMvvm::SettingsElements; | 
				
			|||
 | 
				
			|||
class SettingsConfigLoaderTest : public QObject | 
				
			|||
{ | 
				
			|||
	Q_OBJECT | 
				
			|||
 | 
				
			|||
private Q_SLOTS: | 
				
			|||
	void testConfigLoader_data(); | 
				
			|||
	void testConfigLoader(); | 
				
			|||
 | 
				
			|||
private: | 
				
			|||
	Setup createEntryDocumentSetup(); | 
				
			|||
	Setup createGroupDocumentSetup(); | 
				
			|||
	Setup createSectionDocumentSetup(); | 
				
			|||
	Setup createCategoryDocumentSetup(); | 
				
			|||
 | 
				
			|||
	Setup createSelectorsSetup0(); | 
				
			|||
	Setup createSelectorsSetup1(); | 
				
			|||
	Setup createSelectorsSetup2(); | 
				
			|||
	Setup createSelectorsSetup3(); | 
				
			|||
	Setup createSelectorsSetup4(); | 
				
			|||
 | 
				
			|||
	Setup createIncludesSetup(); | 
				
			|||
	Setup createCustomTypesSetup(); | 
				
			|||
	Setup createIconChangeSetup(); | 
				
			|||
	Setup createTranslationsSetup(); | 
				
			|||
}; | 
				
			|||
 | 
				
			|||
void SettingsConfigLoaderTest::testConfigLoader_data() | 
				
			|||
{ | 
				
			|||
	QTest::addColumn<QString>("path"); | 
				
			|||
	QTest::addColumn<QString>("frontend"); | 
				
			|||
	QTest::addColumn<QStringList>("selectors"); | 
				
			|||
	QTest::addColumn<bool>("success"); | 
				
			|||
	QTest::addColumn<Setup>("setup"); | 
				
			|||
 | 
				
			|||
	QTest::newRow("entryDocument") << QStringLiteral(SRCDIR "/entryDocument.xml") | 
				
			|||
								   << QStringLiteral("dummy") | 
				
			|||
								   << QStringList{} | 
				
			|||
								   << true | 
				
			|||
								   << createEntryDocumentSetup(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("groupDocument") << QStringLiteral(SRCDIR "/groupDocument.xml") | 
				
			|||
								   << QStringLiteral("dummy") | 
				
			|||
								   << QStringList{} | 
				
			|||
								   << true | 
				
			|||
								   << createGroupDocumentSetup(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("sectionDocument") << QStringLiteral(SRCDIR "/sectionDocument.xml") | 
				
			|||
									 << QStringLiteral("dummy") | 
				
			|||
									 << QStringList{} | 
				
			|||
									 << true | 
				
			|||
									 << createSectionDocumentSetup(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("categoryDocument") << QStringLiteral(SRCDIR "/categoryDocument.xml") | 
				
			|||
									  << QStringLiteral("dummy") | 
				
			|||
									  << QStringList{} | 
				
			|||
									  << true | 
				
			|||
									  << createCategoryDocumentSetup(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("selectorDocument.frontend.widgets") << QStringLiteral(SRCDIR "/selectorDocument.xml") | 
				
			|||
													   << QStringLiteral("widgets") | 
				
			|||
													   << QStringList{} | 
				
			|||
													   << true | 
				
			|||
													   << createSelectorsSetup0(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("selectorDocument.frontend.quick") << QStringLiteral(SRCDIR "/selectorDocument.xml") | 
				
			|||
													 << QStringLiteral("quick") | 
				
			|||
													 << QStringList{} | 
				
			|||
													 << true | 
				
			|||
													 << createSelectorsSetup1(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("selectorDocument.selector.typeA") << QStringLiteral(SRCDIR "/selectorDocument.xml") | 
				
			|||
													 << QStringLiteral("dummy") | 
				
			|||
													 << QStringList{ | 
				
			|||
															QStringLiteral("a1"), | 
				
			|||
															QStringLiteral("b2"), | 
				
			|||
															QStringLiteral("a3") | 
				
			|||
														} | 
				
			|||
													 << true | 
				
			|||
													 << createSelectorsSetup2(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("selectorDocument.selector.typeB") << QStringLiteral(SRCDIR "/selectorDocument.xml") | 
				
			|||
													 << QStringLiteral("dummy") | 
				
			|||
													 << QStringList{ | 
				
			|||
															QStringLiteral("b1"), | 
				
			|||
															QStringLiteral("a2"), | 
				
			|||
															QStringLiteral("b3") | 
				
			|||
														} | 
				
			|||
													 << true | 
				
			|||
													 << createSelectorsSetup3(); | 
				
			|||
 | 
				
			|||
	QTest::newRow("selectorDocument.combined") << QStringLiteral(SRCDIR "/selectorDocument.xml") | 
				
			|||
											   << QStringLiteral("console") | 
				
			|||
											   << QStringList{ | 
				
			|||
													  QStringLiteral("a1"), | 
				
			|||
													  QStringLiteral("a2"), | 
				
			|||
													  QStringLiteral("a3") | 
				
			|||
												  } | 
				
			|||
											   << true | 
				
			|||
											   << createSelectorsSetup4(); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void SettingsConfigLoaderTest::testConfigLoader() | 
				
			|||
{ | 
				
			|||
	QFETCH(QString, path); | 
				
			|||
	QFETCH(QString, frontend); | 
				
			|||
	QFETCH(QStringList, selectors); | 
				
			|||
	QFETCH(bool, success); | 
				
			|||
	QFETCH(Setup, setup); | 
				
			|||
 | 
				
			|||
	try { | 
				
			|||
		QFileSelector selector; | 
				
			|||
		selector.setExtraSelectors(selectors); | 
				
			|||
		SettingsConfigLoader loader; | 
				
			|||
		loader.changeDefaultIcon(QStringLiteral("qrc:/baum")); | 
				
			|||
		if(success) { | 
				
			|||
			auto res = loader.loadSetup(path, frontend, &selector); | 
				
			|||
 | 
				
			|||
			// compare low-level to be able to catch where errors happend easier
 | 
				
			|||
			QCOMPARE(res.allowRestore, setup.allowRestore); | 
				
			|||
			QCOMPARE(res.allowSearch, setup.allowSearch); | 
				
			|||
			QCOMPARE(res.categories.size(), setup.categories.size()); | 
				
			|||
			for(auto i = 0; i < setup.categories.size(); i++) { | 
				
			|||
				const auto &resCat = res.categories[i]; | 
				
			|||
				const auto &category = setup.categories[i]; | 
				
			|||
				QCOMPARE(resCat.title, category.title); | 
				
			|||
				QCOMPARE(resCat.icon, category.icon); | 
				
			|||
				QCOMPARE(resCat.tooltip, category.tooltip); | 
				
			|||
				QCOMPARE(resCat.sections.size(), category.sections.size()); | 
				
			|||
				for(auto j = 0; j < category.sections.size(); j++) { | 
				
			|||
					const auto &resSec = resCat.sections[j]; | 
				
			|||
					const auto §ion = category.sections[j]; | 
				
			|||
					QCOMPARE(resSec.title, section.title); | 
				
			|||
					QCOMPARE(resSec.icon, section.icon); | 
				
			|||
					QCOMPARE(resSec.tooltip, section.tooltip); | 
				
			|||
					QCOMPARE(resSec.groups.size(), section.groups.size()); | 
				
			|||
					for(auto k = 0; k < section.groups.size(); k++) { | 
				
			|||
						const auto &resGrp = resSec.groups[k]; | 
				
			|||
						const auto &group = section.groups[k]; | 
				
			|||
						QCOMPARE(resGrp.title, group.title); | 
				
			|||
						QCOMPARE(resGrp.tooltip, group.tooltip); | 
				
			|||
						QCOMPARE(resGrp.entries.size(), group.entries.size()); | 
				
			|||
						for(auto l = 0; l < group.entries.size(); l++) { | 
				
			|||
							const auto &resEnt = resGrp.entries[l]; | 
				
			|||
							const auto &entry = group.entries[l]; | 
				
			|||
							QCOMPARE(resEnt.key, entry.key); | 
				
			|||
							QCOMPARE(resEnt.type, entry.type); | 
				
			|||
							QCOMPARE(resEnt.title, entry.title); | 
				
			|||
							QCOMPARE(resEnt.tooltip, entry.tooltip); | 
				
			|||
							QCOMPARE(resEnt.defaultValue, entry.defaultValue); | 
				
			|||
							QCOMPARE(resEnt.searchKeys, entry.searchKeys); | 
				
			|||
							QCOMPARE(resEnt.properties, entry.properties); | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} else | 
				
			|||
			QVERIFY_EXCEPTION_THROWN(loader.loadSetup(path, frontend, &selector), SettingsConfigException); | 
				
			|||
	} catch(std::exception &e) { | 
				
			|||
		if(success) | 
				
			|||
			QFAIL(e.what()); | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createEntryDocumentSetup() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		true, true, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("minimal"), "bool" | 
				
			|||
									}, | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("full"), "string", | 
				
			|||
										QStringLiteral("FULL"), QStringLiteral("full tip"), | 
				
			|||
										QStringLiteral("hello world") | 
				
			|||
									}, | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("search"), "int", | 
				
			|||
										{}, {}, {}, | 
				
			|||
										{QStringLiteral("hello"), QStringLiteral("world")} | 
				
			|||
									}, Entry { | 
				
			|||
										QStringLiteral("elements"), "double", | 
				
			|||
										{}, {}, {}, {}, | 
				
			|||
										{ | 
				
			|||
											{QStringLiteral("simple"), 42}, | 
				
			|||
											{QStringLiteral("literal"), QStringLiteral("baum42")}, | 
				
			|||
											{QStringLiteral("list"), QVariantList { | 
				
			|||
												13, | 
				
			|||
												QVariantList{4.2}, | 
				
			|||
												QVariantMap{{QStringLiteral("simple"), 42}} | 
				
			|||
											}}, | 
				
			|||
											{QStringLiteral("map"), QVariantMap{ | 
				
			|||
												{QStringLiteral("simple"), 42}, | 
				
			|||
												{QStringLiteral("list"), QVariantList{4.2}} | 
				
			|||
											}} | 
				
			|||
										} | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createGroupDocumentSetup() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		true, true, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("minimal"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							}, | 
				
			|||
							Group { | 
				
			|||
								QStringLiteral("FULL"), QStringLiteral("full"), { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("a"), "bool" | 
				
			|||
									}, | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("b"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSectionDocumentSetup() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("direct"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("master"), QStringLiteral("file:///path/to/vengance.png"), | 
				
			|||
						QStringLiteral("ruler"), { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("indirect"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createCategoryDocumentSetup() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") | 
				
			|||
			}, | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("direct"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("indirect"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("main"), QStringLiteral("http://example.com/favicon.png"), | 
				
			|||
				QStringLiteral("another tooltip"), { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("subdirect"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("fardirect"), "double" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSelectorsSetup0() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") | 
				
			|||
			}, | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSelectorsSetup1() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("t1"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSelectorsSetup2() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("t2"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSelectorsSetup3() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") | 
				
			|||
			}, | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createSelectorsSetup4() | 
				
			|||
{ | 
				
			|||
	return Setup { | 
				
			|||
		false, false, { | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("t1"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General") | 
				
			|||
					}, | 
				
			|||
					Section { | 
				
			|||
						QStringLiteral("General"), {}, {}, { | 
				
			|||
							Group {}, | 
				
			|||
							Group { | 
				
			|||
								{}, {}, { | 
				
			|||
									Entry { | 
				
			|||
										QStringLiteral("t2"), "bool" | 
				
			|||
									} | 
				
			|||
								} | 
				
			|||
							} | 
				
			|||
						} | 
				
			|||
					} | 
				
			|||
				} | 
				
			|||
			}, | 
				
			|||
 | 
				
			|||
			Category { | 
				
			|||
				QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") | 
				
			|||
			} | 
				
			|||
		} | 
				
			|||
	}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createIncludesSetup() | 
				
			|||
{ | 
				
			|||
	return Setup{}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createCustomTypesSetup() | 
				
			|||
{ | 
				
			|||
	return Setup{}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createIconChangeSetup() | 
				
			|||
{ | 
				
			|||
	return Setup{}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
Setup SettingsConfigLoaderTest::createTranslationsSetup() | 
				
			|||
{ | 
				
			|||
	return Setup{}; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
QTEST_MAIN(SettingsConfigLoaderTest) | 
				
			|||
 | 
				
			|||
#include "tst_settingsconfigloader.moc" | 
				
			|||
					Loading…
					
					
				
		Reference in new issue