Skip to content

Commit 17b6f04

Browse files
author
Hugo Mercier
committed
Add test units for special columns in QgsExpression
1 parent 9a671f9 commit 17b6f04

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tests/src/core/testqgsexpression.cpp

+27
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,33 @@ class TestQgsExpression: public QObject
541541
QVariant vPerimeter = exp3.evaluate( &fPolygon );
542542
QCOMPARE( vPerimeter.toDouble(), 20. );
543543
}
544+
545+
void eval_special_columns()
546+
{
547+
QTest::addColumn<QString>( "string" );
548+
QTest::addColumn<QVariant>( "result" );
549+
550+
QgsExpression::setSpecialColumn( "$var1", QVariant((int)42) );
551+
552+
QgsExpression exp( "$var1 + 1" );
553+
QVariant v1 = exp.evaluate();
554+
QCOMPARE( v1.toInt(), 43 );
555+
556+
QgsExpression::setSpecialColumn( "$var1", QVariant((int)100) );
557+
QVariant v2 = exp.evaluate();
558+
QCOMPARE( v2.toInt(), 101 );
559+
560+
QgsExpression exp2( "_specialcol_('$var1')+1" );
561+
QVariant v3 = exp2.evaluate();
562+
QCOMPARE( v3.toInt(), 101 );
563+
564+
QgsExpression exp3( "_specialcol_('undefined')");
565+
QVariant v4 = exp3.evaluate();
566+
QCOMPARE( v4, QVariant() );
567+
568+
QgsExpression::unsetSpecialColumn( "$var1" );
569+
}
570+
544571
};
545572

546573
QTEST_MAIN( TestQgsExpression )

0 commit comments

Comments
 (0)