15
15
16
16
#include " qgscompositionchecker.h"
17
17
#include " qgscomposition.h"
18
+ #include < QDebug>
18
19
#include < QDir>
19
20
#include < QFileInfo>
20
21
#include < QImage>
21
22
#include < QPainter>
22
23
23
- QgsCompositionChecker::QgsCompositionChecker ( QgsComposition* composition, const QString& expectedImageFile ): mComposition( composition ), mExpectedImageFile( expectedImageFile )
24
+ QgsCompositionChecker::QgsCompositionChecker ( const QString& testName, QgsComposition* composition, const QString& expectedImageFile ): mTestName( testName ),
25
+ mComposition( composition ), mExpectedImageFile( expectedImageFile )
24
26
{
25
27
}
26
28
@@ -73,19 +75,33 @@ bool QgsCompositionChecker::testComposition()
73
75
mComposition ->render ( &p, targetArea, sourceArea );
74
76
p.end ();
75
77
78
+ QString renderedFilePath = QDir::tempPath () + QDir::separator () + QFileInfo ( mExpectedImageFile ).baseName () + " _rendered.png" ;
79
+ outputImage.save ( renderedFilePath, " PNG" );
80
+
76
81
QString diffFilePath = QDir::tempPath () + QDir::separator () + QFileInfo ( mExpectedImageFile ).baseName () + " _diff.png" ;
77
- return compareImages ( expectedImage, outputImage, diffFilePath );
82
+ bool testResult = compareImages ( expectedImage, outputImage, diffFilePath );
83
+
84
+ QString myDashMessage = " <DartMeasurementFile name=\" Rendered Image " + mTestName + " \" "
85
+ " type=\" image/png\" >" + renderedFilePath +
86
+ " </DartMeasurementFile>"
87
+ " <DartMeasurementFile name=\" Expected Image " + mTestName + " \" type=\" image/png\" >" +
88
+ mExpectedImageFile + " </DartMeasurementFile>"
89
+ " <DartMeasurementFile name=\" Difference Image " + mTestName + " \" type=\" image/png\" >" +
90
+ diffFilePath + " </DartMeasurementFile>" ;
91
+ qDebug ( ) << myDashMessage;
92
+
93
+ return testResult;
78
94
}
79
95
80
- bool QgsCompositionChecker::compareImages ( const QImage& img1 , const QImage& img2 , const QString& differenceImagePath ) const
96
+ bool QgsCompositionChecker::compareImages ( const QImage& imgExpected , const QImage& imgRendered , const QString& differenceImagePath ) const
81
97
{
82
- if ( img1 .width () != img2 .width () || img1 .height () != img2 .height () )
98
+ if ( imgExpected .width () != imgRendered .width () || imgExpected .height () != imgRendered .height () )
83
99
{
84
100
return false ;
85
101
}
86
102
87
- int imageWidth = img1 .width ();
88
- int imageHeight = img1 .height ();
103
+ int imageWidth = imgExpected .width ();
104
+ int imageHeight = imgExpected .height ();
89
105
int mismatchCount = 0 ;
90
106
91
107
QImage differenceImage ( imageWidth, imageHeight, QImage::Format_ARGB32_Premultiplied );
@@ -96,8 +112,8 @@ bool QgsCompositionChecker::compareImages( const QImage& img1, const QImage& img
96
112
{
97
113
for ( int j = 0 ; j < imageWidth; ++j )
98
114
{
99
- pixel1 = img1 .pixel ( j, i );
100
- pixel2 = img2 .pixel ( j, i );
115
+ pixel1 = imgExpected .pixel ( j, i );
116
+ pixel2 = imgRendered .pixel ( j, i );
101
117
if ( pixel1 != pixel2 )
102
118
{
103
119
++mismatchCount;
0 commit comments