void ut_scale::testScaleTiled()
{
    QuillImageFilter *filter =
        QuillImageFilterFactory::createImageFilter("org.maemo.scale");

    QVERIFY(filter->setOption(QuillImageFilter::SizeAfter, QSize(4, 1)));

    QCOMPARE(filter->newFullImageSize(QSize(8, 2)), QSize(4, 1));
    QCOMPARE(filter->newFullImageSize(QSize(4, 4)), QSize(4, 1));

    // Rounded down
    QCOMPARE(filter->newArea(QSize(8, 2), QRect(2, 0, 3, 2)),
             QRect(1, 0, 1, 1));

    QImage image = Unittests::generatePaletteImage();

    QuillImage image1 = image.copy(0, 0, 3, 2);
    image1.setFullImageSize(QSize(8, 2));
    image1.setArea(QRect(0, 0, 3, 2));

    QuillImage resultImage1 = filter->apply(image1);
    QCOMPARE(resultImage1.area(), QRect(0, 0, 1, 1));
    QCOMPARE(resultImage1.fullImageSize(), QSize(4, 1));
    QCOMPARE((QImage)resultImage1, image1.scaled(QSize(1, 1),
                                                 Qt::IgnoreAspectRatio,
                                                 Qt::SmoothTransformation));

    QuillImage image2 = image.copy(3, 0, 3, 2);
    image2.setFullImageSize(QSize(8, 2));
    image2.setArea(QRect(3, 0, 3, 2));

    QuillImage resultImage2 = filter->apply(image2);
    QCOMPARE(resultImage2.area(), QRect(1, 0, 2, 1));
    QCOMPARE(resultImage2.fullImageSize(), QSize(4, 1));
    QCOMPARE((QImage)resultImage2, image2.scaled(QSize(2, 1),
                                                 Qt::IgnoreAspectRatio,
                                                 Qt::SmoothTransformation));

    QuillImage image3 = image.copy(6, 0, 2, 2);
    image3.setFullImageSize(QSize(8, 2));
    image3.setArea(QRect(6, 0, 2, 2));

    QuillImage resultImage3 = filter->apply(image3);
    QCOMPARE(resultImage3.area(), QRect(3, 0, 1, 1));
    QCOMPARE(resultImage3.fullImageSize(), QSize(4, 1));
    QCOMPARE((QImage)resultImage3, image3.scaled(QSize(1, 1),
                                                 Qt::IgnoreAspectRatio,
                                                 Qt::SmoothTransformation));

    delete filter;
}
void ut_load::testExifRotationSizePeek()
{
    QTemporaryFile testFile;
    testFile.open();

    QImage image("/usr/share/quillimagefilter-tests/images/16_color_palette.png");
    image.save(testFile.fileName(), "jpeg");

    QuillMetadata metadata;
    metadata.setEntry(QuillMetadata::Tag_Orientation, QVariant(6));
    metadata.write(testFile.fileName());

    QuillImageFilter *filter =
        QuillImageFilterFactory::createImageFilter("org.maemo.load");

    filter->setOption(QuillImageFilter::FileName, QString(testFile.fileName()));
    QCOMPARE(filter->newFullImageSize(QSize()), QSize(2, 8));

    delete filter;
}
void ut_load::testLoadError()
{
    QuillImageFilter *filter =
        QuillImageFilterFactory::createImageFilter("org.maemo.load");

    QTemporaryFile testFile;
    testFile.open();

    filter->setOption(QuillImageFilter::FileName, testFile.fileName());
    filter->setOption(QuillImageFilter::FileFormat, QString("png"));

    QCOMPARE(filter->option(QuillImageFilter::FileFormat).toString(),
             QString("png"));

    QSize size = filter->newFullImageSize(QSize());
    QVERIFY(!size.isValid());

    QCOMPARE((int)filter->error(), (int)QuillImageFilter::InvalidDataError);

    delete filter;
}