File indexing completed on 2025-02-02 04:19:50

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "zoomhandler_test.h"
0008 
0009 #include <simpletest.h>
0010 #include <QCoreApplication>
0011 
0012 #include <WidgetsDebug.h>
0013 
0014 #include "KoZoomHandler.h"
0015 #include "KoUnit.h"
0016 
0017 
0018 void zoomhandler_test::testConstruction()
0019 {
0020 
0021     QScopedPointer<KoZoomHandler> zoomHandler(new KoZoomHandler());
0022 
0023     QCOMPARE( zoomHandler->zoomFactorX(), 1. );
0024     QCOMPARE( zoomHandler->zoomFactorY(), 1. );
0025     QCOMPARE( ( int )INCH_TO_POINT( zoomHandler->resolutionX() ), ( int )72 );
0026     QCOMPARE( ( int )INCH_TO_POINT( zoomHandler->resolutionY() ), ( int )72 );
0027     QCOMPARE( ( int )INCH_TO_POINT( zoomHandler->zoomedResolutionX() ), ( int )72 );
0028     QCOMPARE( ( int )INCH_TO_POINT( zoomHandler->zoomedResolutionY() ), ( int )72 );
0029     QCOMPARE( zoomHandler->zoomMode(), KoZoomMode::ZOOM_CONSTANT );
0030     QCOMPARE( zoomHandler->zoomInPercent(), 100 );
0031 }
0032 
0033 void zoomhandler_test::testApi()
0034 {
0035     KoZoomHandler zoomHandler;
0036     qreal x, y;
0037 
0038     zoomHandler.setResolution( 128, 129 );
0039     QCOMPARE( zoomHandler.resolutionX(), 128. );
0040     QCOMPARE( zoomHandler.resolutionY(), 129. );
0041 
0042     zoomHandler.setZoomedResolution( 50, 60 );
0043     QCOMPARE( zoomHandler.zoomedResolutionX(), 50.);
0044     QCOMPARE( zoomHandler.zoomedResolutionY(), 60.);
0045 
0046     zoomHandler.setZoom( 0.2 ); // is 20%
0047     QCOMPARE( zoomHandler.zoomInPercent(), 20);
0048     QCOMPARE( zoomHandler.resolutionX(), 128. );
0049     QCOMPARE( zoomHandler.resolutionY(), 129. );
0050     QCOMPARE( zoomHandler.zoomedResolutionX(), 25.6 );
0051     QCOMPARE( zoomHandler.zoomedResolutionY(), 25.8 );
0052     zoomHandler.zoom( &x, &y );
0053     QVERIFY( x == 25.6 && y == 25.8 );
0054 
0055     zoomHandler.setZoom( 1. );
0056     zoomHandler.setZoom( 0.2 );
0057     QCOMPARE( zoomHandler.zoomInPercent(), 20 );
0058     QCOMPARE( zoomHandler.resolutionX(), 128. );
0059     QCOMPARE( zoomHandler.resolutionY(), 129. );
0060     QCOMPARE( zoomHandler.zoomedResolutionX(), 25.6 );
0061     QCOMPARE( zoomHandler.zoomedResolutionY(), 25.8 );
0062     zoomHandler.zoom( &x, &y );
0063     QVERIFY( x == 25.6 && y == 25.8 );
0064 
0065     zoomHandler.setZoomMode( KoZoomMode::ZOOM_CONSTANT );
0066     QCOMPARE( zoomHandler.zoomMode(), KoZoomMode::ZOOM_CONSTANT );
0067     zoomHandler.setZoomMode( KoZoomMode::ZOOM_PAGE );
0068     QCOMPARE( zoomHandler.zoomMode(), KoZoomMode::ZOOM_PAGE );
0069 
0070 }
0071 
0072 void zoomhandler_test::testViewToDocument()
0073 {
0074     KoZoomHandler zoomHandler;
0075     zoomHandler.setZoom( 1.0 );
0076     zoomHandler.setDpi( 100, 100 );
0077 
0078     QCOMPARE( zoomHandler.viewToDocument( QPointF( 0, 0 ) ), QPointF( 0, 0 ) );
0079     // 100 view pixels are 72 postscript points at 100% zoom, 100ppi.
0080     QCOMPARE( zoomHandler.viewToDocument( QRectF( 0, 0, 100, 100 ) ), QRectF( 0, 0, 72, 72 ) );
0081     QCOMPARE( zoomHandler.viewToDocumentX( 0 ), 0. );
0082     QCOMPARE( zoomHandler.viewToDocumentY( 0 ), 0. );
0083 
0084 }
0085 
0086 void zoomhandler_test::testDocumentToView()
0087 {
0088     KoZoomHandler zoomHandler;
0089     zoomHandler.setZoom( 1.0 );
0090     zoomHandler.setDpi( 100, 100 );
0091 
0092     QCOMPARE( zoomHandler.documentToView(  QPointF( 0,0 ) ), QPointF( 0, 0 ) );
0093     QCOMPARE( zoomHandler.documentToView(  QRectF( 0, 0, 72, 72 ) ), QRectF( 0, 0, 100, 100) );
0094     QCOMPARE( zoomHandler.documentToViewX( 72 ), 100. );
0095     QCOMPARE( zoomHandler.documentToViewY( 72 ), 100. );
0096 
0097 }
0098 
0099 
0100 QTEST_APPLESS_MAIN(zoomhandler_test)