@@ -50,6 +50,7 @@ class TestQgsFieldExpressionWidget : public QObject
50
50
void testRemoveJoin ();
51
51
void asExpression ();
52
52
void testIsValid ();
53
+ void testFilters ();
53
54
54
55
private:
55
56
QgsFieldExpressionWidget* mWidget ;
@@ -219,6 +220,55 @@ void TestQgsFieldExpressionWidget::testIsValid()
219
220
QgsMapLayerRegistry::instance ()->removeMapLayer ( layer );
220
221
}
221
222
223
+ void TestQgsFieldExpressionWidget::testFilters ()
224
+ {
225
+ QgsVectorLayer* layer = new QgsVectorLayer ( " point?field=intfld:int&field=stringfld:string&field=string2fld:string&field=longfld:long&field=doublefld:double&field=datefld:date&field=timefld:time&field=datetimefld:datetime" , " x" , " memory" );
226
+ QgsMapLayerRegistry::instance ()->addMapLayer ( layer );
227
+
228
+ QScopedPointer< QgsFieldExpressionWidget > widget ( new QgsFieldExpressionWidget () );
229
+ widget->setLayer ( layer );
230
+
231
+ QCOMPARE ( widget->mCombo ->count (), 8 );
232
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " intfld" ) );
233
+ QCOMPARE ( widget->mCombo ->itemText ( 1 ), QString ( " stringfld" ) );
234
+ QCOMPARE ( widget->mCombo ->itemText ( 2 ), QString ( " string2fld" ) );
235
+ QCOMPARE ( widget->mCombo ->itemText ( 3 ), QString ( " longfld" ) );
236
+ QCOMPARE ( widget->mCombo ->itemText ( 4 ), QString ( " doublefld" ) );
237
+ QCOMPARE ( widget->mCombo ->itemText ( 5 ), QString ( " datefld" ) );
238
+ QCOMPARE ( widget->mCombo ->itemText ( 6 ), QString ( " timefld" ) );
239
+ QCOMPARE ( widget->mCombo ->itemText ( 7 ), QString ( " datetimefld" ) );
240
+
241
+ widget->setFilters ( QgsFieldProxyModel::String );
242
+ QCOMPARE ( widget->mCombo ->count (), 2 );
243
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " stringfld" ) );
244
+ QCOMPARE ( widget->mCombo ->itemText ( 1 ), QString ( " string2fld" ) );
245
+
246
+ widget->setFilters ( QgsFieldProxyModel::Int );
247
+ QCOMPARE ( widget->mCombo ->count (), 1 );
248
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " intfld" ) );
249
+
250
+ widget->setFilters ( QgsFieldProxyModel::LongLong );
251
+ QCOMPARE ( widget->mCombo ->count (), 1 );
252
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " longfld" ) );
253
+
254
+ widget->setFilters ( QgsFieldProxyModel::Double );
255
+ QCOMPARE ( widget->mCombo ->count (), 1 );
256
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " doublefld" ) );
257
+
258
+ widget->setFilters ( QgsFieldProxyModel::Numeric );
259
+ QCOMPARE ( widget->mCombo ->count (), 3 );
260
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " intfld" ) );
261
+ QCOMPARE ( widget->mCombo ->itemText ( 1 ), QString ( " longfld" ) );
262
+ QCOMPARE ( widget->mCombo ->itemText ( 2 ), QString ( " doublefld" ) );
263
+
264
+ widget->setFilters ( QgsFieldProxyModel::Date );
265
+ QCOMPARE ( widget->mCombo ->count (), 2 );
266
+ QCOMPARE ( widget->mCombo ->itemText ( 0 ), QString ( " datefld" ) );
267
+ QCOMPARE ( widget->mCombo ->itemText ( 1 ), QString ( " datetimefld" ) );
268
+
269
+ QgsMapLayerRegistry::instance ()->removeMapLayer ( layer );
270
+ }
271
+
222
272
QTEST_MAIN ( TestQgsFieldExpressionWidget )
223
273
#include " testqgsfieldexpressionwidget.moc"
224
274
0 commit comments