@@ -41,6 +41,7 @@ class TestQgsDateTimeEdit: public QObject
41
41
std::unique_ptr<QgsDateTimeEditWrapper> widget4; // For field 3
42
42
std::unique_ptr<QgsDateTimeEditWrapper> widget5; // For field 4
43
43
std::unique_ptr<QgsDateTimeEditWrapper> widget6; // For field 5
44
+ std::unique_ptr<QgsDateTimeEditWrapper> widget7; // For field 6
44
45
std::unique_ptr<QgsVectorLayer> vl;
45
46
46
47
};
@@ -68,6 +69,7 @@ void TestQgsDateTimeEdit::init()
68
69
fields.append ( QgsField ( " time" , QVariant::Time ) );
69
70
fields.append ( QgsField ( " datetime1" , QVariant::DateTime ) );
70
71
fields.append ( QgsField ( " datetime2" , QVariant::DateTime ) );
72
+ fields.append ( QgsField ( " text" , QVariant::String ) );
71
73
vl->dataProvider ()->addAttributes ( fields );
72
74
vl->updateFields ();
73
75
QVERIFY ( vl.get () );
@@ -79,12 +81,14 @@ void TestQgsDateTimeEdit::init()
79
81
widget4 = std::make_unique<QgsDateTimeEditWrapper>( vl.get (), 3 , nullptr , nullptr );
80
82
widget5 = std::make_unique<QgsDateTimeEditWrapper>( vl.get (), 4 , nullptr , nullptr );
81
83
widget6 = std::make_unique<QgsDateTimeEditWrapper>( vl.get (), 5 , nullptr , nullptr );
84
+ widget7 = std::make_unique<QgsDateTimeEditWrapper>( vl.get (), 6 , nullptr , nullptr );
82
85
QVERIFY ( widget1.get () );
83
86
QVERIFY ( widget2.get () );
84
87
QVERIFY ( widget3.get () );
85
88
QVERIFY ( widget4.get () );
86
89
QVERIFY ( widget5.get () );
87
90
QVERIFY ( widget6.get () );
91
+ QVERIFY ( widget7.get () );
88
92
}
89
93
90
94
void TestQgsDateTimeEdit::cleanup ()
@@ -319,6 +323,18 @@ void TestQgsDateTimeEdit::testDateTime()
319
323
widget6->setValue ( QDate ( 1 , 1 , 1 ) );
320
324
const QDate value6 { widget6->value ().toDate () };
321
325
QCOMPARE ( value6, QDate ( 1 , 1 , 1 ) );
326
+
327
+ // Test for issue GH #46542
328
+ widget7->setConfig ( cfg );
329
+ QgsDateTimeEdit *dateedit7 = qobject_cast<QgsDateTimeEdit *>( widget7->createWidget ( &w ) );
330
+ QVERIFY ( dateedit7 );
331
+ widget7->initWidget ( dateedit7 );
332
+ QgsFeature f { vl->fields () };
333
+ f.setAttribute ( QStringLiteral ( " text" ), QgsExpression{ QStringLiteral ( " now()" ) }.evaluate () );
334
+ widget7->setFeature ( f );
335
+ const QDate value7 { widget7->value ().toDate () };
336
+ QCOMPARE ( value7, QDate::currentDate () );
337
+
322
338
}
323
339
324
340
QGSTEST_MAIN ( TestQgsDateTimeEdit )
0 commit comments