diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:18:55 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:18:55 (GMT) |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /tests/auto/qicoimageformat | |
download | Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2 |
Long live Qt 4.5!
Diffstat (limited to 'tests/auto/qicoimageformat')
15 files changed, 323 insertions, 0 deletions
diff --git a/tests/auto/qicoimageformat/.gitignore b/tests/auto/qicoimageformat/.gitignore new file mode 100644 index 0000000..9f673c5 --- /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 Binary files differnew file mode 100644 index 0000000..9608761 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/invalid/35floppy.ico diff --git a/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO b/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO Binary files differnew file mode 100644 index 0000000..e9551d6 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/35FLOPPY.ICO diff --git a/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico b/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico Binary files differnew file mode 100644 index 0000000..3368d36 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/AddPerfMon.ico diff --git a/tests/auto/qicoimageformat/icons/valid/App.ico b/tests/auto/qicoimageformat/icons/valid/App.ico Binary files differnew file mode 100644 index 0000000..03b80a6 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/App.ico diff --git a/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico b/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico Binary files differnew file mode 100644 index 0000000..8da119e --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/Obj_N2_Internal_Mem.ico diff --git a/tests/auto/qicoimageformat/icons/valid/Status_Play.ico b/tests/auto/qicoimageformat/icons/valid/Status_Play.ico Binary files differnew file mode 100644 index 0000000..d05782c --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/Status_Play.ico diff --git a/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO b/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO Binary files differnew file mode 100644 index 0000000..5563bee --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/TIMER01.ICO diff --git a/tests/auto/qicoimageformat/icons/valid/WORLD.ico b/tests/auto/qicoimageformat/icons/valid/WORLD.ico Binary files differnew file mode 100644 index 0000000..7a8ab39 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/WORLD.ico diff --git a/tests/auto/qicoimageformat/icons/valid/WORLDH.ico b/tests/auto/qicoimageformat/icons/valid/WORLDH.ico Binary files differnew file mode 100644 index 0000000..c2b48f8 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/WORLDH.ico diff --git a/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico b/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico Binary files differnew file mode 100644 index 0000000..e78a15c4 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/abcardWindow.ico diff --git a/tests/auto/qicoimageformat/icons/valid/semitransparent.ico b/tests/auto/qicoimageformat/icons/valid/semitransparent.ico Binary files differnew file mode 100644 index 0000000..893ceb2 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/semitransparent.ico diff --git a/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico b/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico Binary files differnew file mode 100644 index 0000000..3e02a53 --- /dev/null +++ b/tests/auto/qicoimageformat/icons/valid/trolltechlogo_tiny.ico diff --git a/tests/auto/qicoimageformat/qicoimageformat.pro b/tests/auto/qicoimageformat/qicoimageformat.pro new file mode 100644 index 0000000..19c13b7 --- /dev/null +++ b/tests/auto/qicoimageformat/qicoimageformat.pro @@ -0,0 +1,17 @@ +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 { + DEFINES += SRCDIR=\\\"$$PWD\\\" +} diff --git a/tests/auto/qicoimageformat/tst_qticoimageformat.cpp b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp new file mode 100644 index 0000000..9fca6df --- /dev/null +++ b/tests/auto/qicoimageformat/tst_qticoimageformat.cpp @@ -0,0 +1,305 @@ +/**************************************************************************** +** +** 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 <QtTest/QtTest> +#include <QtGui> +#include <QtCore> + +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<const char*>(fmt.data()), "ico" ); +} + +void tst_QtIcoImageFormat::canRead_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::addColumn<int>("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<QString>("fileName"); + QTest::addColumn<int>("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<QString>("fileName"); + QTest::addColumn<int>("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<QString>("fileName"); + QTest::addColumn<int>("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<QString>("fileName"); + QTest::addColumn<int>("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<QString>("fileName"); + QTest::addColumn<int>("count"); + QTest::addColumn<int>("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" |