From af63afa05b009409b3050fa04708094e9a43b8f7 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 17 Sep 2012 15:22:58 +0200 Subject: [PATCH] Add diagram test files --- tests/src/core/CMakeLists.txt | 1 + tests/src/core/testqgsdiagram.cpp | 178 ++++++++++++++++++ .../expected_diagram/expected_piediagram.png | Bin 0 -> 428140 bytes tests/testdata/points.dbf | Bin 2237 -> 2452 bytes 4 files changed, 179 insertions(+) create mode 100644 tests/src/core/testqgsdiagram.cpp create mode 100644 tests/testdata/control_images/expected_diagram/expected_piediagram.png diff --git a/tests/src/core/CMakeLists.txt b/tests/src/core/CMakeLists.txt index 22b32b66c680..d04da65d335f 100644 --- a/tests/src/core/CMakeLists.txt +++ b/tests/src/core/CMakeLists.txt @@ -80,6 +80,7 @@ ENDMACRO (ADD_QGIS_TEST) ADD_QGIS_TEST(distanceareatest testqgsdistancearea.cpp) ADD_QGIS_TEST(applicationtest testqgsapplication.cpp) +ADD_QGIS_TEST(diagramtest testqgsdiagram.cpp) ADD_QGIS_TEST(expressiontest testqgsexpression.cpp) ADD_QGIS_TEST(filewritertest testqgsvectorfilewriter.cpp) ADD_QGIS_TEST(regression992 regression992.cpp) diff --git a/tests/src/core/testqgsdiagram.cpp b/tests/src/core/testqgsdiagram.cpp new file mode 100644 index 000000000000..3afd98cdaa58 --- /dev/null +++ b/tests/src/core/testqgsdiagram.cpp @@ -0,0 +1,178 @@ +/*************************************************************************** + testqgsdiagram.cpp + -------------------------------------- + Date : Sep 7 2012 + Copyright : (C) 2012 by Matthias Kuhn + Email : matthias dot kuhn at gmx dot ch + *************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +//qgis includes... +// #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//qgis test includes +#include "qgsrenderchecker.h" + +/** \ingroup UnitTests + * This is a unit test for the vector layer class. + */ +class TestQgsDiagram: public QObject +{ + Q_OBJECT; + private: + bool mTestHasError; + QgsMapRenderer * mMapRenderer; + QgsVectorLayer * mPointsLayer; + QgsComposition * mComposition; + QString mTestDataDir; + QString mReport; + QgsPieDiagram * mPieDiagram; + QgsComposerMap * mComposerMap; + + private slots: + + + // will be called before the first testfunction is executed. + void initTestCase() + { + mTestHasError = false; + QgsApplication::init(); + QgsApplication::initQgis(); + QgsApplication::showSettings(); + + //create some objects that will be used in all tests... + + // + //create a non spatial layer that will be used in all tests... + // + QString myDataDir( TEST_DATA_DIR ); //defined in CmakeLists.txt + mTestDataDir = myDataDir + QDir::separator(); + + // + //create a point layer that will be used in all tests... + // + QString myPointsFileName = mTestDataDir + "points.shp"; + QFileInfo myPointFileInfo( myPointsFileName ); + mPointsLayer = new QgsVectorLayer( myPointFileInfo.filePath(), + myPointFileInfo.completeBaseName(), "ogr" ); + + // Register the layer with the registry + QgsMapLayerRegistry::instance()->addMapLayers( + QList() << mPointsLayer ); + + // Create diagrams + mPieDiagram = new QgsPieDiagram(); + + // Create map composition to draw on + mMapRenderer = new QgsMapRenderer(); + mMapRenderer->setLayerSet( QStringList() << mPointsLayer->id() ); + mMapRenderer->setLabelingEngine( new QgsPalLabeling() ); + mComposition = new QgsComposition( mMapRenderer ); + mComposition->setPaperSize( 297, 210 ); // A4 landscape + mComposerMap = new QgsComposerMap( mComposition, 20, 20, 200, 100 ); + mComposerMap->setFrameEnabled( true ); + mComposition->addComposerMap( mComposerMap ); + + mReport += "

Diagram Tests

\n"; + } + + // will be called after the last testfunction was executed. + void cleanupTestCase() + { + QString myReportFile = QDir::tempPath() + QDir::separator() + "qgistest.html"; + QFile myFile( myReportFile ); + if ( myFile.open( QIODevice::WriteOnly | QIODevice::Append ) ) + { + QTextStream myQTextStream( &myFile ); + myQTextStream << mReport; + myFile.close(); + //QDesktopServices::openUrl( "file:///" + myReportFile ); + } + + delete mComposerMap; + delete mComposition; + delete mMapRenderer; + delete mPointsLayer; + } + void init() {};// will be called before each testfunction is executed. + void cleanup() {};// will be called after every testfunction. + + void testPieDiagram() + { + QgsDiagramSettings ds; + QColor col1 = Qt::red; + QColor col2 = Qt::yellow; + col1.setAlphaF( 0.5 ); + col2.setAlphaF( 0.5 ); + ds.categoryColors = QList() << col1 << col2; + ds.categoryIndices = QList() << 3 << 4; // Pilots / Cabin Crew + ds.maxScaleDenominator = -1; + ds.minScaleDenominator = -1; + ds.minimumSize = 0; + ds.penColor = Qt::green; + ds.penWidth = .5; + ds.scaleByArea = true; + ds.sizeType = QgsDiagramSettings::MM; + ds.size = QSizeF( 15, 15 ); + + + QgsLinearlyInterpolatedDiagramRenderer *dr = new QgsLinearlyInterpolatedDiagramRenderer(); + dr->setLowerValue( 0.0 ); + dr->setLowerSize( QSizeF( 0.0, 0.0 ) ); + dr->setUpperValue( 10 ); + dr->setUpperSize( QSizeF( 100, 100 ) ); + dr->setClassificationAttribute( 5 ); // Staff + dr->setDiagram( mPieDiagram ); + dr->setDiagramSettings( ds ); + mPointsLayer->setDiagramRenderer( dr ); + + QgsDiagramLayerSettings dls = QgsDiagramLayerSettings(); + dls.placement = QgsDiagramLayerSettings::OverPoint; + dls.renderer = dr; + + dynamic_cast (mMapRenderer->labelingEngine())->setShowingAllLabels( true ); + + mPointsLayer->setDiagramLayerSettings( dls ); + + mComposerMap->setNewExtent( QgsRectangle( -122, -79, -70, 47 ) ); + QgsCompositionChecker checker( "Composer map render", mComposition, QString( QString( TEST_DATA_DIR ) + + QDir::separator() + "control_images" + QDir::separator() + "expected_diagram" + QDir::separator() + + "expected_piediagram.png" ) ); + + QVERIFY( checker.testComposition() ); + + mPointsLayer->setDiagramRenderer( 0 ); + } +}; + +QTEST_MAIN( TestQgsDiagram ) +#include "moc_testqgsdiagram.cxx" diff --git a/tests/testdata/control_images/expected_diagram/expected_piediagram.png b/tests/testdata/control_images/expected_diagram/expected_piediagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fab76291bcfdabc2073588663310366d48e597 GIT binary patch literal 428140 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