File tree 1 file changed +27
-0
lines changed
1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -541,6 +541,33 @@ class TestQgsExpression: public QObject
541
541
QVariant vPerimeter = exp3.evaluate ( &fPolygon );
542
542
QCOMPARE ( vPerimeter.toDouble (), 20 . );
543
543
}
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
+
544
571
};
545
572
546
573
QTEST_MAIN ( TestQgsExpression )
You can’t perform that action at this time.
0 commit comments