summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image/qicon
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/image/qicon')
-rw-r--r--tests/auto/gui/image/qicon/qicon.pro2
-rw-r--r--tests/auto/gui/image/qicon/second_icons/testtheme/32x32/actions/appointment-new.png (renamed from tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png)bin2399 -> 2399 bytes
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.cpp18
-rw-r--r--tests/auto/gui/image/qicon/tst_qicon.qrc2
4 files changed, 16 insertions, 6 deletions
diff --git a/tests/auto/gui/image/qicon/qicon.pro b/tests/auto/gui/image/qicon/qicon.pro
index f48fe90dd8..6ff20ec8fa 100644
--- a/tests/auto/gui/image/qicon/qicon.pro
+++ b/tests/auto/gui/image/qicon/qicon.pro
@@ -7,4 +7,4 @@ qtHaveModule(widgets): QT += widgets
SOURCES += tst_qicon.cpp
RESOURCES = tst_qicon.qrc
-TESTDATA += icons/* *.png *.svg *.svgz
+TESTDATA += icons/* second_icons/* *.png *.svg *.svgz
diff --git a/tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png b/tests/auto/gui/image/qicon/second_icons/testtheme/32x32/actions/appointment-new.png
index 85daef3b0b..85daef3b0b 100644
--- a/tests/auto/gui/image/qicon/icons/testtheme/32x32/actions/appointment-new.png
+++ b/tests/auto/gui/image/qicon/second_icons/testtheme/32x32/actions/appointment-new.png
Binary files differ
diff --git a/tests/auto/gui/image/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp
index 550dd5bc33..add6da9efb 100644
--- a/tests/auto/gui/image/qicon/tst_qicon.cpp
+++ b/tests/auto/gui/image/qicon/tst_qicon.cpp
@@ -559,10 +559,12 @@ void tst_QIcon::task184901_badCache()
void tst_QIcon::fromTheme()
{
- QString searchPath = QLatin1String(":/icons");
- QIcon::setThemeSearchPaths(QStringList() << searchPath);
- QVERIFY(QIcon::themeSearchPaths().size() == 1);
- QCOMPARE(searchPath, QIcon::themeSearchPaths()[0]);
+ QString firstSearchPath = QLatin1String(":/icons");
+ QString secondSearchPath = QLatin1String(":/second_icons");
+ QIcon::setThemeSearchPaths(QStringList() << firstSearchPath << secondSearchPath);
+ QVERIFY(QIcon::themeSearchPaths().size() == 2);
+ QCOMPARE(firstSearchPath, QIcon::themeSearchPaths()[0]);
+ QCOMPARE(secondSearchPath, QIcon::themeSearchPaths()[1]);
QString themeName("testtheme");
QIcon::setThemeName(themeName);
@@ -576,6 +578,14 @@ void tst_QIcon::fromTheme()
QVERIFY(appointmentIcon.availableSizes().contains(QSize(32, 32)));
QVERIFY(appointmentIcon.availableSizes().contains(QSize(22, 22)));
+ // Test fallback to less specific icon
+ QIcon specificAppointmentIcon = QIcon::fromTheme("appointment-new-specific");
+ QVERIFY(!QIcon::hasThemeIcon("appointment-new-specific"));
+ QVERIFY(QIcon::hasThemeIcon("appointment-new"));
+ QCOMPARE(specificAppointmentIcon.name(), QString::fromLatin1("appointment-new"));
+ QCOMPARE(specificAppointmentIcon.availableSizes(), appointmentIcon.availableSizes());
+ QCOMPARE(specificAppointmentIcon.pixmap(32).cacheKey(), appointmentIcon.pixmap(32).cacheKey());
+
// Test icon from parent theme
QIcon abIcon = QIcon::fromTheme("address-book-new");
QVERIFY(!abIcon.isNull());
diff --git a/tests/auto/gui/image/qicon/tst_qicon.qrc b/tests/auto/gui/image/qicon/tst_qicon.qrc
index dc11a87ddd..1505ca925b 100644
--- a/tests/auto/gui/image/qicon/tst_qicon.qrc
+++ b/tests/auto/gui/image/qicon/tst_qicon.qrc
@@ -5,7 +5,7 @@
<file>rect.png</file>
<file>./icons/testtheme/16x16/actions/appointment-new.png</file>
<file>./icons/testtheme/22x22/actions/appointment-new.png</file>
-<file>./icons/testtheme/32x32/actions/appointment-new.png</file>
+<file>./second_icons/testtheme/32x32/actions/appointment-new.png</file>
<file>./icons/testtheme/index.theme</file>
<file>./icons/testtheme/scalable/actions/svg-only.svg</file>
<file>./icons/themeparent/16x16/actions/address-book-new.png</file>