summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/auto.pro1
-rw-r--r--tests/auto/qicon_svg/icons/heart.svg55
-rw-r--r--tests/auto/qicon_svg/icons/heart.svgzbin0 -> 1506 bytes
-rw-r--r--tests/auto/qicon_svg/icons/image.pngbin0 -> 14743 bytes
-rw-r--r--tests/auto/qicon_svg/icons/rect.svg76
-rw-r--r--tests/auto/qicon_svg/icons/trash.svg58
-rw-r--r--tests/auto/qicon_svg/qicon_svg.pro12
-rw-r--r--tests/auto/qicon_svg/tst_qicon_svg.cpp158
-rw-r--r--tests/auto/qicon_svg/tst_qicon_svg.qrc9
9 files changed, 369 insertions, 0 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 9a7e229..7052605 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -3,5 +3,6 @@ SUBDIRS=\
qsvgdevice \
qsvggenerator \
qsvgrenderer \
+ qicon_svg \
!cross_compile: SUBDIRS += host.pro
diff --git a/tests/auto/qicon_svg/icons/heart.svg b/tests/auto/qicon_svg/icons/heart.svg
new file mode 100644
index 0000000..8c982cd
--- /dev/null
+++ b/tests/auto/qicon_svg/icons/heart.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg viewBox="100 200 550 500" height="841.88976pt" id="svg1" inkscape:version="0.40+cvs" sodipodi:docbase="C:\Documents and Settings\Jon Phillips\My Documents\projects\clipart-project\submissions" sodipodi:docname="heart-left-highlight.svg" sodipodi:version="0.32" width="595.27559pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg">
+<metadata>
+<rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<cc:Work rdf:about="">
+<dc:title>Heart Left-Highlight</dc:title>
+<dc:description>This is a normal valentines day heart.</dc:description>
+<dc:subject>
+<rdf:Bag>
+<rdf:li>holiday</rdf:li>
+<rdf:li>valentines</rdf:li>
+<rdf:li></rdf:li>
+<rdf:li>valentine</rdf:li>
+<rdf:li>hash(0x8a091c0)</rdf:li>
+<rdf:li>hash(0x8a0916c)</rdf:li>
+<rdf:li>signs_and_symbols</rdf:li>
+<rdf:li>hash(0x8a091f0)</rdf:li>
+<rdf:li>day</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:publisher>
+<cc:Agent rdf:about="http://www.openclipart.org">
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:publisher>
+<dc:creator>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:rights>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:rights>
+<dc:date></dc:date>
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+<cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+<dc:language>en</dc:language>
+</cc:Work>
+<cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+</cc:License>
+</rdf:RDF>
+</metadata>
+<defs id="defs3"/>
+<sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="549.40674" inkscape:cy="596.00159" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="615" inkscape:window-width="866" inkscape:window-x="88" inkscape:window-y="116" inkscape:zoom="0.35000000" pagecolor="#ffffff" showguides="true"/>
+<g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
+<path d="M 263.41570,235.14588 C 197.17570,235.14588 143.41575,288.90587 143.41575,355.14588 C 143.41575,489.90139 279.34890,525.23318 371.97820,658.45392 C 459.55244,526.05056 600.54070,485.59932 600.54070,355.14588 C 600.54070,288.90588 546.78080,235.14587 480.54070,235.14588 C 432.49280,235.14588 391.13910,263.51631 371.97820,304.33338 C 352.81740,263.51630 311.46370,235.14587 263.41570,235.14588 z " id="path7" sodipodi:nodetypes="ccccccc" style="fill:#e60000;fill-opacity:1.0000000;stroke:#000000;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+<path d="M 265.00000,253.59375 C 207.04033,253.59375 160.00000,300.63407 160.00000,358.59375 C 160.00000,476.50415 278.91857,507.43251 359.96875,624.00000 C 366.52868,614.08205 220.00000,478.47309 220.00000,378.59375 C 220.00000,320.63407 267.04033,273.59375 325.00000,273.59375 C 325.50453,273.59375 325.99718,273.64912 326.50000,273.65625 C 309.22436,261.07286 288.00557,253.59374 265.00000,253.59375 z " id="path220" sodipodi:nodetypes="ccccccc" style="fill:#e6e6e6;fill-opacity:0.64556962;stroke:none;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+</g>
+</svg>
diff --git a/tests/auto/qicon_svg/icons/heart.svgz b/tests/auto/qicon_svg/icons/heart.svgz
new file mode 100644
index 0000000..0f0913f
--- /dev/null
+++ b/tests/auto/qicon_svg/icons/heart.svgz
Binary files differ
diff --git a/tests/auto/qicon_svg/icons/image.png b/tests/auto/qicon_svg/icons/image.png
new file mode 100644
index 0000000..8d70364
--- /dev/null
+++ b/tests/auto/qicon_svg/icons/image.png
Binary files differ
diff --git a/tests/auto/qicon_svg/icons/rect.svg b/tests/auto/qicon_svg/icons/rect.svg
new file mode 100644
index 0000000..8eb2472
--- /dev/null
+++ b/tests/auto/qicon_svg/icons/rect.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="40px"
+ height="5px"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="test.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:window-height="1005"
+ inkscape:window-width="1280"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="13.6"
+ inkscape:cx="20"
+ inkscape:cy="2.5"
+ inkscape:window-x="-4"
+ inkscape:window-y="-4"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 2.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="40 : 2.5 : 1"
+ inkscape:persp3d-origin="20 : 1.6666667 : 1"
+ id="perspective9" />
+ </defs>
+ <g
+ id="layer1">
+ <rect
+ width="40px"
+ height="5px"
+ x="0px"
+ y="0px"
+ id="rect2393"
+ style="fill:#ff0000" />
+ </g>
+ <rect
+ style="fill:#000000"
+ id="rect2382"
+ width="2"
+ height="2"
+ x="19"
+ y="1.5" />
+</svg>
diff --git a/tests/auto/qicon_svg/icons/trash.svg b/tests/auto/qicon_svg/icons/trash.svg
new file mode 100644
index 0000000..c44e4c7
--- /dev/null
+++ b/tests/auto/qicon_svg/icons/trash.svg
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 10, SVG Export Plug-In . SVG Version: 3.0.0 Build 76) --><svg enable-background="new 0 0 347 348" height="348" i:pageBounds="0 792 612 0" i:rulerOrigin="0 0" i:viewOrigin="131 567" overflow="visible" space="preserve" viewBox="-20 -20 387 388" width="347" xmlns="http://www.w3.org/2000/svg" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" xmlns:graph="http://ns.adobe.com/Graphs/1.0/" xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" xmlns:x="http://ns.adobe.com/Extensibility/1.0/" xmlns:xlink="http://www.w3.org/1999/xlink">
+<metadata>
+<rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<cc:Work rdf:about="">
+<dc:title>Keep Tidy Inside</dc:title>
+<dc:description></dc:description>
+<dc:subject>
+<rdf:Bag>
+<rdf:li></rdf:li>
+<rdf:li>symbol</rdf:li>
+<rdf:li>bin</rdf:li>
+<rdf:li>signs_and_symbols</rdf:li>
+<rdf:li>clean</rdf:li>
+<rdf:li>rubish</rdf:li>
+<rdf:li>trash</rdf:li>
+<rdf:li>inside</rdf:li>
+<rdf:li>garbage</rdf:li>
+<rdf:li>sign</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:publisher>
+<cc:Agent rdf:about="http://www.openclipart.org">
+<dc:title>Martin Owens</dc:title>
+</cc:Agent>
+</dc:publisher>
+<dc:creator>
+<cc:Agent>
+<dc:title>Martin Owens</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:rights>
+<cc:Agent>
+<dc:title>Martin Owens</dc:title>
+</cc:Agent>
+</dc:rights>
+<dc:date></dc:date>
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+<cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+<dc:language>en</dc:language>
+</cc:Work>
+<cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+</cc:License>
+</rdf:RDF>
+</metadata>
+<g i:dimmedPercent="50" i:knockout="Off" i:layer="yes" i:rgbTrio="#4F008000FFFF" id="Layer_1">
+<path d="M347,174c0,96.098-77.679,174-173.5,174C77.679,348,0,270.098,0,174 C0,77.902,77.679,0,173.5,0C269.321,0,347,77.902,347,174z" fill="#10A040" i:knockout="Off"/>
+<path d="M238,53c0,13.807-11.864,25-26.5,25S185,66.807,185,53s11.864-25,26.5-25 S238,39.193,238,53z" fill="#FFFFFF" i:knockout="Off"/>
+<path d="M66,175c1.055,6.355,19.333,126.417,19.333,126.417h68.333 c0,0,14.105-122.524,14.333-126.417c6.224-0.622,6.667-13-2-13c-12.164,0-89.205-0.059-98,0S61.167,174.487,66,175z" fill="#FFFFFF" i:knockout="Off"/>
+<path d="M78,141c17.292-5.325,24.179-23.532,27-31c14.513,6.596,40.333,12.265,59,8 c3.683,19.419-28.043,19.31-23,37C132.577,145.705,89.404,167.292,78,141z" fill="#FFFFFF" i:knockout="Off"/>
+<path d="M103,82l139-1c-0.6,3.421,33.633,57.497,29,67c-4.089,0.418-67,5-67,5 c6.109-9.379-13-43-13-43L103,82z" fill="#FFFFFF" i:knockout="Off"/>
+<path d="M270,156l-66-3c0,0-23.565,143.355-24,145s1.855,2.536,3,1s51-82,51-82 s19.754,80.701,20,82s3.721,1.209,4,0S270,156,270,156z" fill="#FFFFFF" i:knockout="Off"/>
+</g>
+</svg>
diff --git a/tests/auto/qicon_svg/qicon_svg.pro b/tests/auto/qicon_svg/qicon_svg.pro
new file mode 100644
index 0000000..6ea218b
--- /dev/null
+++ b/tests/auto/qicon_svg/qicon_svg.pro
@@ -0,0 +1,12 @@
+CONFIG += testcase
+TARGET = tst_qicon_svg
+
+QT += widgets testlib
+SOURCES += tst_qicon_svg.cpp
+RESOURCES = tst_qicon_svg.qrc
+
+wince* {
+ QT += xml svg
+ DEPLOYMENT_PLUGIN += qsvg
+}
+TESTDATA += icons/*
diff --git a/tests/auto/qicon_svg/tst_qicon_svg.cpp b/tests/auto/qicon_svg/tst_qicon_svg.cpp
new file mode 100644
index 0000000..c986e13
--- /dev/null
+++ b/tests/auto/qicon_svg/tst_qicon_svg.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QImageReader>
+#include <QtGui>
+
+class tst_QIcon_Svg : public QObject
+{
+ Q_OBJECT
+public:
+
+public slots:
+ void initTestCase();
+
+private slots:
+ void svgActualSize();
+ void svg();
+ void availableSizes();
+
+private:
+ QString prefix;
+};
+
+void tst_QIcon_Svg::initTestCase()
+{
+ prefix = QFINDTESTDATA("icons/");
+ if (prefix.isEmpty())
+ QFAIL("Can't find images directory!");
+ if (!QImageReader::supportedImageFormats().contains("svg"))
+ QFAIL("SVG support is not available");
+}
+
+void tst_QIcon_Svg::svgActualSize()
+{
+ QIcon icon(prefix + "rect.svg");
+ QCOMPARE(icon.actualSize(QSize(16, 2)), QSize(16, 2));
+ QCOMPARE(icon.pixmap(QSize(16, 16)).size(), QSize(16, 2));
+
+ QPixmap p(16, 16);
+ p.fill(Qt::cyan);
+ icon.addPixmap(p);
+
+ QCOMPARE(icon.actualSize(QSize(16, 16)), QSize(16, 16));
+ QCOMPARE(icon.pixmap(QSize(16, 16)).size(), QSize(16, 16));
+
+ QEXPECT_FAIL("", "QTBUG-24139 - Test fails due to possible change in IconEngine", Abort);
+ QCOMPARE(icon.actualSize(QSize(16, 14)), QSize(16, 2));
+ QCOMPARE(icon.pixmap(QSize(16, 14)).size(), QSize(16, 2));
+}
+
+void tst_QIcon_Svg::svg()
+{
+ QIcon icon1(prefix + "heart.svg");
+ QVERIFY(!icon1.pixmap(32).isNull());
+ QImage img1 = icon1.pixmap(32).toImage();
+ QVERIFY(!icon1.pixmap(32, QIcon::Disabled).isNull());
+ QImage img2 = icon1.pixmap(32, QIcon::Disabled).toImage();
+
+ icon1.addFile(prefix + "trash.svg", QSize(), QIcon::Disabled);
+ QVERIFY(!icon1.pixmap(32, QIcon::Disabled).isNull());
+ QImage img3 = icon1.pixmap(32, QIcon::Disabled).toImage();
+ QVERIFY(img3 != img2);
+ QVERIFY(img3 != img1);
+
+ QPixmap pm(prefix + "image.png");
+ icon1.addPixmap(pm, QIcon::Normal, QIcon::On);
+ QVERIFY(!icon1.pixmap(128, QIcon::Normal, QIcon::On).isNull());
+ QImage img4 = icon1.pixmap(128, QIcon::Normal, QIcon::On).toImage();
+ QVERIFY(img4 != img3);
+ QVERIFY(img4 != img2);
+ QVERIFY(img4 != img1);
+
+ QIcon icon2;
+ icon2.addFile(prefix + "heart.svg");
+ QVERIFY(icon2.pixmap(57).toImage() == icon1.pixmap(57).toImage());
+
+ QIcon icon3(prefix + "trash.svg");
+ icon3.addFile(prefix + "heart.svg");
+ QEXPECT_FAIL("", "QTBUG-24139 - Test fails due to possible change in IconEngine", Abort);
+ QVERIFY(icon3.pixmap(57).toImage() == icon1.pixmap(57).toImage());
+
+ QIcon icon4(prefix + "heart.svg");
+ icon4.addFile(prefix + "image.png", QSize(), QIcon::Active);
+ QVERIFY(!icon4.pixmap(32).isNull());
+ QVERIFY(!icon4.pixmap(32, QIcon::Active).isNull());
+ QVERIFY(icon4.pixmap(32).toImage() == img1);
+ QIcon pmIcon(pm);
+ QVERIFY(icon4.pixmap(pm.size(), QIcon::Active).toImage() == pmIcon.pixmap(pm.size(), QIcon::Active).toImage());
+
+#ifndef QT_NO_COMPRESS
+ QIcon icon5("heart.svgz");
+ QVERIFY(!icon5.pixmap(32).isNull());
+#endif
+}
+
+void tst_QIcon_Svg::availableSizes()
+{
+ {
+ // checks that there are no availableSizes for scalable images.
+ QIcon icon(prefix + "heart.svg");
+ QList<QSize> availableSizes = icon.availableSizes();
+ qDebug() << availableSizes;
+ QEXPECT_FAIL("", "QTBUG-24139 - Test fails due to possible change in IconEngine", Abort);
+ QVERIFY(availableSizes.isEmpty());
+ }
+
+ {
+ // even if an a scalable image contain added pixmaps,
+ // availableSizes still should be empty.
+ QIcon icon(prefix + "heart.svg");
+ icon.addFile(prefix + "image.png", QSize(32,32));
+ QList<QSize> availableSizes = icon.availableSizes();
+ QVERIFY(availableSizes.isEmpty());
+ }
+}
+
+QTEST_MAIN(tst_QIcon_Svg)
+#include "tst_qicon_svg.moc"
diff --git a/tests/auto/qicon_svg/tst_qicon_svg.qrc b/tests/auto/qicon_svg/tst_qicon_svg.qrc
new file mode 100644
index 0000000..fd9422b
--- /dev/null
+++ b/tests/auto/qicon_svg/tst_qicon_svg.qrc
@@ -0,0 +1,9 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource prefix="/">
+<file>./icons/heart.svg</file>
+<file>./icons/heart.svgz</file>
+<file>./icons/image.png</file>
+<file>./icons/rect.svg</file>
+<file>./icons/trash.svg</file>
+</qresource>
+</RCC>