aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/language
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2012-12-14 17:51:01 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2012-12-16 15:43:58 +0100
commit159e5e61dbea6283bfc64d6a28bce2f44a1c2b92 (patch)
tree1f6d9721ed670c1d9499130296dde2738b107250 /tests/auto/language
parent5879aa0d78ca3a2f53a4efe644565e2b68190aa1 (diff)
testcase for outer property in groups added
Change-Id: Ib46a92f3887aefcb4ae4351769d1d5acce8e7b4d Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'tests/auto/language')
-rw-r--r--tests/auto/language/language.pro3
-rw-r--r--tests/auto/language/testdata/outerInGroup.qbs14
-rw-r--r--tests/auto/language/tst_language.cpp36
-rw-r--r--tests/auto/language/tst_language.h1
4 files changed, 53 insertions, 1 deletions
diff --git a/tests/auto/language/language.pro b/tests/auto/language/language.pro
index 12295ef45..235e48d52 100644
--- a/tests/auto/language/language.pro
+++ b/tests/auto/language/language.pro
@@ -16,4 +16,5 @@ SOURCES += \
tst_language.cpp
OTHER_FILES += \
- $$PWD/testdata/*
+ $$PWD/testdata/* \
+ testdata/outerInGroup.qbs
diff --git a/tests/auto/language/testdata/outerInGroup.qbs b/tests/auto/language/testdata/outerInGroup.qbs
new file mode 100644
index 000000000..b5ead48d9
--- /dev/null
+++ b/tests/auto/language/testdata/outerInGroup.qbs
@@ -0,0 +1,14 @@
+import qbs.base 1.0
+
+Project {
+ Product {
+ name: "OuterInGroup"
+ qbs.installPrefix: "/somewhere"
+ files: ["main.cpp"]
+ Group {
+ name: "Special Group"
+ files: ["aboutdialog.cpp"]
+ qbs.installPrefix: outer + "/else"
+ }
+ }
+}
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index 0b046e408..59413cd0a 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -301,6 +301,42 @@ void TestLanguage::jsImportUsedInMultipleScopes()
QVERIFY(!exceptionCaught);
}
+void TestLanguage::outerInGroup()
+{
+ bool exceptionCaught = false;
+ try {
+ ResolvedProjectPtr project = loader->loadProject(SRCDIR "testdata/outerInGroup.qbs",
+ "/some/build/directory", buildConfig);
+ QVERIFY(project);
+ QHash<QString, ResolvedProductPtr> products = productsFromProject(project);
+ QCOMPARE(products.count(), 1);
+ ResolvedProductPtr product = products.value("OuterInGroup");
+ QVERIFY(product);
+ QCOMPARE(product->groups.count(), 2);
+ ResolvedGroup::Ptr group = product->groups.at(0);
+ QVERIFY(group);
+ QCOMPARE(group->name, product->name);
+ QCOMPARE(group->files.count(), 1);
+ SourceArtifactConstPtr artifact = group->files.first();
+ QVariant installPrefix = getConfigProperty(artifact->properties->value(),
+ QStringList() << "modules" << "qbs" << "installPrefix");
+ QCOMPARE(installPrefix.toString(), QString("/somewhere"));
+ group = product->groups.at(1);
+ QVERIFY(group);
+ QCOMPARE(group->name, QString("Special Group"));
+ QCOMPARE(group->files.count(), 1);
+ artifact = group->files.first();
+ installPrefix = getConfigProperty(artifact->properties->value(),
+ QStringList() << "modules" << "qbs" << "installPrefix");
+ QCOMPARE(installPrefix.toString(), QString("/somewhere/else"));
+ }
+ catch (const Error &e) {
+ exceptionCaught = true;
+ qDebug() << e.toString();
+ }
+ QCOMPARE(exceptionCaught, false);
+}
+
void TestLanguage::productConditions()
{
bool exceptionCaught = false;
diff --git a/tests/auto/language/tst_language.h b/tests/auto/language/tst_language.h
index ee4752050..43a61844e 100644
--- a/tests/auto/language/tst_language.h
+++ b/tests/auto/language/tst_language.h
@@ -63,6 +63,7 @@ private slots:
void identifierSearch();
void jsImportUsedInMultipleScopes_data();
void jsImportUsedInMultipleScopes();
+ void outerInGroup();
void productConditions();
void propertiesBlocks_data();
void propertiesBlocks();