@@ -32,11 +32,14 @@ class TestQgsDateTimeEdit: public QObject
32
32
33
33
void nullValues ();
34
34
void focus ();
35
+ void testDateTime ();
35
36
36
37
private:
37
38
std::unique_ptr<QgsDateTimeEditWrapper> widget1; // For field 0
38
39
std::unique_ptr<QgsDateTimeEditWrapper> widget2; // For field 1
39
40
std::unique_ptr<QgsDateTimeEditWrapper> widget3; // For field 2
41
+ std::unique_ptr<QgsDateTimeEditWrapper> widget4; // For field 3
42
+ std::unique_ptr<QgsDateTimeEditWrapper> widget5; // For field 4
40
43
std::unique_ptr<QgsVectorLayer> vl;
41
44
42
45
};
@@ -61,6 +64,8 @@ void TestQgsDateTimeEdit::init()
61
64
fields.append ( QgsField ( " date1" , QVariant::Date ) );
62
65
fields.append ( QgsField ( " date2" , QVariant::Date ) );
63
66
fields.append ( QgsField ( " date3" , QVariant::Date ) );
67
+ fields.append ( QgsField ( " time" , QVariant::Time ) );
68
+ fields.append ( QgsField ( " datetime" , QVariant::DateTime ) );
64
69
vl->dataProvider ()->addAttributes ( fields );
65
70
vl->updateFields ();
66
71
QVERIFY ( vl.get () );
@@ -69,9 +74,13 @@ void TestQgsDateTimeEdit::init()
69
74
widget1 = qgis::make_unique<QgsDateTimeEditWrapper>( vl.get (), 0 , nullptr , nullptr );
70
75
widget2 = qgis::make_unique<QgsDateTimeEditWrapper>( vl.get (), 1 , nullptr , nullptr );
71
76
widget3 = qgis::make_unique<QgsDateTimeEditWrapper>( vl.get (), 2 , nullptr , nullptr );
77
+ widget4 = qgis::make_unique<QgsDateTimeEditWrapper>( vl.get (), 3 , nullptr , nullptr );
78
+ widget5 = qgis::make_unique<QgsDateTimeEditWrapper>( vl.get (), 4 , nullptr , nullptr );
72
79
QVERIFY ( widget1.get () );
73
80
QVERIFY ( widget2.get () );
74
81
QVERIFY ( widget3.get () );
82
+ QVERIFY ( widget4.get () );
83
+ QVERIFY ( widget5.get () );
75
84
}
76
85
77
86
void TestQgsDateTimeEdit::cleanup ()
@@ -226,5 +235,31 @@ void TestQgsDateTimeEdit::focus()
226
235
QCOMPARE ( dateedit3->text (), QStringLiteral ( " nope" ) );
227
236
}
228
237
238
+ void TestQgsDateTimeEdit::testDateTime ()
239
+ {
240
+ QgsApplication::setNullRepresentation ( QString ( " nope" ) );
241
+ QWidget *w = new QWidget (); // required for focus events
242
+ QApplication::setActiveWindow ( w );
243
+
244
+ QVariantMap cfg;
245
+ cfg.insert ( QStringLiteral ( " AllowNull" ), true );
246
+
247
+ widget4->setConfig ( cfg );
248
+ QgsDateTimeEdit *dateedit4 = qobject_cast<QgsDateTimeEdit *>( widget4->createWidget ( w ) );
249
+ QVERIFY ( dateedit4 );
250
+ widget4->initWidget ( dateedit4 );
251
+ widget4->setValue ( QTime ( 23 , 10 , 57 ) );
252
+ QTime value { widget4->value ().toTime () };
253
+ QCOMPARE ( value, QTime ( 23 , 10 , 57 ) );
254
+
255
+ widget5->setConfig ( cfg );
256
+ QgsDateTimeEdit *dateedit5 = qobject_cast<QgsDateTimeEdit *>( widget5->createWidget ( w ) );
257
+ QVERIFY ( dateedit5 );
258
+ widget5->initWidget ( dateedit5 );
259
+ widget5->setValue ( QDate ( 1966 , 11 , 25 ) );
260
+ QDate value5 { widget5->value ().toDate () };
261
+ QCOMPARE ( value5, QDate ( 1966 , 11 , 25 ) );
262
+ }
263
+
229
264
QGSTEST_MAIN ( TestQgsDateTimeEdit )
230
265
#include " testqgsdatetimeedit.moc"
0 commit comments