From 8f427b2b914d5b575a4a7c0ed65d2fb8f45acc76 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 24 Apr 2009 13:34:15 +0200 Subject: Long live Qt for S60! --- tests/auto/qicoimageformat/.gitignore | 1 + .../qicoimageformat/icons/invalid/35floppy.ico | Bin 0 -> 1078 bytes .../auto/qicoimageformat/icons/valid/35FLOPPY.ICO | Bin 0 -> 1078 bytes .../qicoimageformat/icons/valid/AddPerfMon.ico | Bin 0 -> 1078 bytes tests/auto/qicoimageformat/icons/valid/App.ico | Bin 0 -> 318 bytes .../icons/valid/Obj_N2_Internal_Mem.ico | Bin 0 -> 25214 bytes .../qicoimageformat/icons/valid/Status_Play.ico | Bin 0 -> 2862 bytes tests/auto/qicoimageformat/icons/valid/TIMER01.ICO | Bin 0 -> 1078 bytes tests/auto/qicoimageformat/icons/valid/WORLD.ico | Bin 0 -> 3310 bytes tests/auto/qicoimageformat/icons/valid/WORLDH.ico | Bin 0 -> 3310 bytes .../qicoimageformat/icons/valid/abcardWindow.ico | Bin 0 -> 22486 bytes .../icons/valid/semitransparent.ico | Bin 0 -> 25214 bytes .../icons/valid/trolltechlogo_tiny.ico | Bin 0 -> 3006 bytes tests/auto/qicoimageformat/qicoimageformat.pro | 24 ++ .../auto/qicoimageformat/tst_qticoimageformat.cpp | 311 +++++++++++++++++++++ 15 files changed, 336 insertions(+) create mode 100644 tests/auto/qicoimageformat/.gitignore create mode 100644 tests/auto/qicoimageformat/icons/invalid/35floppy.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO create mode 100644 tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/App.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/Status_Play.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/TIMER01.ICO create mode 100644 tests/auto/qicoimageformat/icons/valid/WORLD.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/WORLDH.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/abcardWindow.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/semitransparent.ico create mode 100644 tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico create mode 100644 tests/auto/qicoimageformat/qicoimageformat.pro create mode 100644 tests/auto/qicoimageformat/tst_qticoimageformat.cpp (limited to 'tests/auto/qicoimageformat') diff --git a/tests/auto/qicoimageformat/.gitignore b/tests/auto/qicoimageformat/.gitignore new file mode 100644 index 0000000000..9f673c5635 --- /dev/null +++ b/tests/auto/qicoimageformat/.gitignore @@ -0,0 +1 @@ +tst_qicoimageformat diff --git a/tests/auto/qicoimageformat/icons/invalid/35floppy.ico b/tests/auto/qicoimageformat/icons/invalid/35floppy.ico new file mode 100644 index 0000000000..96087612fb Binary files /dev/null and b/tests/auto/qicoimageformat/icons/invalid/35floppy.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO b/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO new file mode 100644 index 0000000000..e9551d6390 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO differ diff --git a/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico b/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico new file mode 100644 index 0000000000..3368d3634a Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/App.ico b/tests/auto/qicoimageformat/icons/valid/App.ico new file mode 100644 index 0000000000..03b80a68f8 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/App.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico b/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico new file mode 100644 index 0000000000..8da119efdd Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/Status_Play.ico b/tests/auto/qicoimageformat/icons/valid/Status_Play.ico new file mode 100644 index 0000000000..d05782cce9 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/Status_Play.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO b/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO new file mode 100644 index 0000000000..5563beec8c Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO differ diff --git a/tests/auto/qicoimageformat/icons/valid/WORLD.ico b/tests/auto/qicoimageformat/icons/valid/WORLD.ico new file mode 100644 index 0000000000..7a8ab39f56 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/WORLD.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/WORLDH.ico b/tests/auto/qicoimageformat/icons/valid/WORLDH.ico new file mode 100644 index 0000000000..c2b48f8d99 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/WORLDH.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico b/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico new file mode 100644 index 0000000000..e78a15c42b Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/semitransparent.ico b/tests/auto/qicoimageformat/icons/valid/semitransparent.ico new file mode 100644 index 0000000000..893ceb254c Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/semitransparent.ico differ diff --git a/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico b/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico new file mode 100644 index 0000000000..3e02a53e58 Binary files /dev/null and b/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico differ diff --git a/tests/auto/qicoimageformat/qicoimageformat.pro b/tests/auto/qicoimageformat/qicoimageformat.pro new file mode 100644 index 0000000000..df121b61d3 --- /dev/null +++ b/tests/auto/qicoimageformat/qicoimageformat.pro @@ -0,0 +1,24 @@ +load(qttest_p4) +SOURCES+= tst_qticoimageformat.cpp + +wince*: { + DEFINES += SRCDIR=\\\".\\\" + addFiles.sources = icons + addFiles.path = . + CONFIG(debug, debug|release):{ + addPlugins.sources = $$QT_BUILD_TREE/plugins/imageformats/qico4d.dll + } else { + addPlugins.sources = $$QT_BUILD_TREE/plugins/imageformats/qico4.dll + } + addPlugins.path = imageformats + DEPLOYMENT += addFiles addPlugins +} else:symbian* { + addFiles.sources = icons + addFiles.path = . + addPlugins.sources = qico.dll + addPlugins.path = imageformats + DEPLOYMENT += addFiles addPlugins + DEFINES += SYMBIAN_SRCDIR_UID=$$lower($$replace(TARGET.UID3,"0x","")) +} else { + DEFINES += SRCDIR=\\\"$$PWD\\\" +} diff --git a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp new file mode 100644 index 0000000000..114ecb5be0 --- /dev/null +++ b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp @@ -0,0 +1,311 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, 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.0, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include +#include + +#if defined(Q_OS_SYMBIAN) +# define STRINGIFY(x) #x +# define TOSTRING(x) STRINGIFY(x) +# define SRCDIR "C:/Private/" TOSTRING(SYMBIAN_SRCDIR_UID) "/" +#endif + +class tst_QtIcoImageFormat : public QObject +{ + Q_OBJECT + +public: + tst_QtIcoImageFormat(); + virtual ~tst_QtIcoImageFormat(); + + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); +private slots: + void format(); + void canRead_data(); + void canRead(); + void SequentialFile_data(); + void SequentialFile(); + void imageCount_data(); + void imageCount(); + void jumpToNextImage_data(); + void jumpToNextImage(); + void loopCount_data(); + void loopCount(); + void nextImageDelay_data(); + void nextImageDelay(); + +private: + QString m_IconPath; +}; + + +tst_QtIcoImageFormat::tst_QtIcoImageFormat() +{ + m_IconPath = QLatin1String(SRCDIR) + "/icons"; + qDebug() << m_IconPath; +} + +tst_QtIcoImageFormat::~tst_QtIcoImageFormat() +{ + +} + +void tst_QtIcoImageFormat::init() +{ + +} + +void tst_QtIcoImageFormat::cleanup() +{ + +} + +void tst_QtIcoImageFormat::initTestCase() +{ + +} + +void tst_QtIcoImageFormat::cleanupTestCase() +{ + +} + +void tst_QtIcoImageFormat::format() +{ + QImageReader reader(m_IconPath + "/valid/35FLOPPY.ICO", "ico"); + QByteArray fmt = reader.format(); + QCOMPARE(const_cast(fmt.data()), "ico" ); +} + +void tst_QtIcoImageFormat::canRead_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("isValid"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 1; + QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 1; + QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1; + QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 1; + QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 1; + QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 1; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 1; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 1; + QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; + QTest::newRow("103x16px, 24BPP") << "valid/trolltechlogo_tiny.ico" << 1; + QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 1; +} + +void tst_QtIcoImageFormat::canRead() +{ + QFETCH(QString, fileName); + QFETCH(int, isValid); + + QImageReader reader(m_IconPath + "/" + fileName); + QCOMPARE(reader.canRead(), (isValid == 0 ? false : true)); +} + +class QSequentialFile : public QFile +{ +public: + QSequentialFile(const QString &name) : QFile(name) {} + + virtual ~QSequentialFile() {} + + virtual bool isSequential() const { + return true; + } + +}; + +void tst_QtIcoImageFormat::SequentialFile_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("isValid"); + + QTest::newRow("floppy (16,32 pixels - 16 colors)") << "valid/35FLOPPY.ICO" << 1; + + QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; + + +} + +void tst_QtIcoImageFormat::SequentialFile() +{ + QFETCH(QString, fileName); + QFETCH(int, isValid); + + QSequentialFile *file = new QSequentialFile(m_IconPath + "/" + fileName); + QVERIFY(file); + QVERIFY(file->open(QFile::ReadOnly)); + QImageReader reader(file); + + // Perform the check twice. If canRead() does not restore the sequential device back to its original state, + // it will fail on the second try. + QCOMPARE(reader.canRead(), (isValid == 0 ? false : true)); + QCOMPARE(reader.canRead(), (isValid == 0 ? false : true)); + file->close(); +} + + +void tst_QtIcoImageFormat::imageCount_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("count"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 2; + QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 6; + QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1; + QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 9; + QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 3; + QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 2; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3; + QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; + QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; + +} + +void tst_QtIcoImageFormat::imageCount() +{ + QFETCH(QString, fileName); + QFETCH(int, count); + + QImageReader reader(m_IconPath + "/" + fileName); + QCOMPARE(reader.imageCount(), count); + +} + +void tst_QtIcoImageFormat::jumpToNextImage_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("count"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 2; + QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 6; + QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1; + QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 9; + QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 3; + QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 2; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3; + QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9; +} + +void tst_QtIcoImageFormat::jumpToNextImage() +{ + QFETCH(QString, fileName); + QFETCH(int, count); + + QImageReader reader(m_IconPath + "/" + fileName); + bool bJumped = reader.jumpToImage(0); + while (bJumped) { + count--; + bJumped = reader.jumpToNextImage(); + } + QCOMPARE(count, 0); +} + +void tst_QtIcoImageFormat::loopCount_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("count"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 0; + QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << 0; +} + +void tst_QtIcoImageFormat::loopCount() +{ + QFETCH(QString, fileName); + QFETCH(int, count); + + QImageReader reader(m_IconPath + "/" + fileName); + QCOMPARE(reader.loopCount(), count); +} + +void tst_QtIcoImageFormat::nextImageDelay_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("count"); + QTest::addColumn("delay"); + + QTest::newRow("floppy (16px,32px - 16 colors)") << "valid/35FLOPPY.ICO" << 2 << 0; + QTest::newRow("16px,32px,48px - 256,16M colors") << "valid/abcardWindow.ico" << 6 << 0; + QTest::newRow("16px - 16 colors") << "valid/App.ico" << 1 << 0; + QTest::newRow("16px,32px,48px - 16,256,16M colors") << "valid/Obj_N2_Internal_Mem.ico" << 9 << 0; + QTest::newRow("16px - 16,256,16M colors") << "valid/Status_Play.ico" << 3 << 0; + QTest::newRow("16px,32px - 16 colors") << "valid/TIMER01.ICO" << 2 << 0; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLD.ico" << 3 << 0; + QTest::newRow("16px16c, 32px32c, 32px256c") << "valid/WORLDH.ico" << 3 << 0; + QTest::newRow("invalid floppy (first 8 bytes = 0xff)") << "invalid/35floppy.ico" << -1 << -1; + QTest::newRow("includes 32BPP w/alpha") << "valid/semitransparent.ico" << 9 << 0; +} + +void tst_QtIcoImageFormat::nextImageDelay() +{ + QFETCH(QString, fileName); + QFETCH(int, count); + QFETCH(int, delay); + +#if QT_VERSION > 0x040001 + delay = 0; +#endif + + QImageReader reader(m_IconPath + "/" + fileName); + if (count == -1) { + QCOMPARE(reader.nextImageDelay(), delay); + + } else { + int i; + for (i = 0; i < count; i++) { + + QVERIFY(reader.jumpToImage(i)); + QCOMPARE(reader.nextImageDelay(), delay); + } + } +} +QTEST_MAIN(tst_QtIcoImageFormat) +#include "tst_qticoimageformat.moc" -- cgit v1.2.3