aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2014-07-11 16:45:34 -0400
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-07-22 14:41:07 +0200
commit496707ce5ae88e124617553e8e24d887a750777c (patch)
tree9b4c9b43d6d7e226e9aeb77e873c81edf285af41 /tests/auto
parent8c0a975afacc10f0f2c9defffc95b8ae22e8da63 (diff)
Add support for compiling Xcode asset catalogs.
Task-number: QBS-389 Change-Id: I2d93a55228c6ada801ed889404fac753182b82f6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs15
-rw-r--r--tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.pngbin0 -> 3303 bytes
-rw-r--r--tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.pngbin0 -> 3336 bytes
-rw-r--r--tests/auto/blackbox/testdata/ib/assetcatalog/main.c4
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp37
-rw-r--r--tests/auto/blackbox/tst_blackbox.h1
6 files changed, 57 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs b/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs
new file mode 100644
index 000000000..bdd45fede
--- /dev/null
+++ b/tests/auto/blackbox/testdata/ib/assetcatalog/assetcatalogempty.qbs
@@ -0,0 +1,15 @@
+import qbs
+
+Project {
+ property bool includeIconset
+
+ CppApplication {
+ Depends { name: "ib" }
+ files: {
+ var filez = ["main.c", "empty.xcassets"];
+ if (project.includeIconset)
+ filez.push("empty.xcassets/empty.iconset");
+ return filez;
+ }
+ }
+}
diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png
new file mode 100644
index 000000000..65ff1ff57
--- /dev/null
+++ b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16.png
Binary files differ
diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png
new file mode 100644
index 000000000..a5c69bccd
--- /dev/null
+++ b/tests/auto/blackbox/testdata/ib/assetcatalog/empty.xcassets/empty.iconset/icon_16x16@2x.png
Binary files differ
diff --git a/tests/auto/blackbox/testdata/ib/assetcatalog/main.c b/tests/auto/blackbox/testdata/ib/assetcatalog/main.c
new file mode 100644
index 000000000..905869dfa
--- /dev/null
+++ b/tests/auto/blackbox/testdata/ib/assetcatalog/main.c
@@ -0,0 +1,4 @@
+int main()
+{
+ return 0;
+}
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index c791a6993..8e0edef9e 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -2295,6 +2295,43 @@ void TestBlackbox::testIconsetApp()
QVERIFY(regularFileExists(productBuildDir("iconsetapp") + "/iconsetapp.app/Contents/Resources/white.icns"));
}
+void TestBlackbox::testAssetCatalog()
+{
+ if (!HostOsInfo::isOsxHost())
+ SKIP_TEST("only applies on OS X");
+
+ QDir::setCurrent(testDataDir + QLatin1String("/ib/assetcatalog"));
+
+ QbsRunParameters params;
+ params.arguments = QStringList() << "-f" << "assetcatalogempty.qbs";
+ QCOMPARE(runQbs(params), 0);
+
+ // empty asset catalogs must still produce output
+ QVERIFY((bool)m_qbsStdout.contains("actool"));
+
+ // should not produce a CAR since minimumOsxVersion will be < 10.9
+ QVERIFY(!regularFileExists(productBuildDir("assetcatalogempty") + "/assetcatalogempty.app/Contents/Resources/Assets.car"));
+
+ rmDirR(buildDir);
+ params.arguments.append("cpp.minimumOsxVersion:10.9"); // force CAR generation
+ QCOMPARE(runQbs(params), 0);
+
+ // empty asset catalogs must still produce output
+ QVERIFY((bool)m_qbsStdout.contains("actool"));
+ QVERIFY(regularFileExists(productBuildDir("assetcatalogempty") + "/assetcatalogempty.app/Contents/Resources/Assets.car"));
+
+ // this asset catalog happens to have an embedded icon set,
+ // but this should NOT be built since it is not in the files list
+ QVERIFY(!(bool)m_qbsStdout.contains("iconutil"));
+
+ // now we'll add the iconset
+ rmDirR(buildDir);
+ params.arguments.append("project.includeIconset:true");
+ QCOMPARE(runQbs(params), 0);
+ QVERIFY((bool)m_qbsStdout.contains("actool"));
+ QVERIFY((bool)m_qbsStdout.contains("iconutil"));
+}
+
QString TestBlackbox::uniqueProductName(const QString &productName) const
{
return productName + '.' + buildProfileName;
diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h
index 0ac522d76..320039713 100644
--- a/tests/auto/blackbox/tst_blackbox.h
+++ b/tests/auto/blackbox/tst_blackbox.h
@@ -187,6 +187,7 @@ private slots:
void testTypeScript();
void testIconset();
void testIconsetApp();
+ void testAssetCatalog();
private:
QString uniqueProductName(const QString &productName) const;