@@ -131,6 +131,10 @@ void TestAdapterDeviceSettings::missingNameFallsBackToDeviceN()
131131
132132 auto * tabs = w.findChild <AddableTabWidget*>();
133133 QVERIFY (tabs != nullptr );
134+ if (tabs == nullptr )
135+ {
136+ return ;
137+ }
134138 QVERIFY (tabs->tabText (0 ).startsWith (" Device " ));
135139}
136140
@@ -159,7 +163,7 @@ void TestAdapterDeviceSettings::acceptValuesSavesToAdapterConfig()
159163
160164 const AdapterData* adapter = model.adapterData (" adapterA" );
161165 QCOMPARE (adapter->hasStoredConfig (), true );
162- QCOMPARE (adapter->currentConfig ()[ " devices" ] .toArray ().at (0 ).toObject ()[ " id" ] .toInt (), 2 );
166+ QCOMPARE (adapter->currentConfig (). value ( " devices" ) .toArray ().at (0 ).toObject (). value ( " id" ) .toInt (), 2 );
163167}
164168
165169void TestAdapterDeviceSettings::acceptValuesSavesDeviceNameToModel ()
@@ -190,4 +194,42 @@ void TestAdapterDeviceSettings::acceptValuesSavesDeviceNameToModel()
190194 QCOMPARE (model.deviceSettings (1 )->name (), QStringLiteral (" New Name" ));
191195}
192196
197+ void TestAdapterDeviceSettings::addTabUsesDeviceDefaults ()
198+ {
199+ SettingsModel model;
200+
201+ QJsonObject describe = makeAdapterDescribe (" adapterA" );
202+ QJsonObject defaultDevice;
203+ defaultDevice[" id" ] = 5 ;
204+ QJsonObject defaults;
205+ defaults[" devices" ] = QJsonArray{ defaultDevice };
206+ defaults[" connections" ] = QJsonArray ();
207+ defaults[" general" ] = QJsonObject ();
208+ describe[" defaults" ] = defaults;
209+
210+ model.updateAdapterFromDescribe (" adapterA" , describe);
211+
212+ QJsonObject config;
213+ config[" general" ] = QJsonObject ();
214+ config[" connections" ] = QJsonArray ();
215+ config[" devices" ] = QJsonArray ();
216+ model.setAdapterCurrentConfig (" adapterA" , config);
217+
218+ AdapterDeviceSettings w (&model);
219+
220+ auto * tabs = w.findChild <AddableTabWidget*>();
221+ QVERIFY (tabs != nullptr );
222+ QCOMPARE (tabs->count (), 0 );
223+
224+ emit tabs->addTabRequested ();
225+
226+ QCOMPARE (tabs->count (), 1 );
227+ auto * tab = qobject_cast<DeviceConfigTab*>(tabs->tabContent (0 ));
228+ QVERIFY (tab != nullptr );
229+
230+ auto * spin = tab->findChild <QSpinBox*>();
231+ QVERIFY (spin != nullptr );
232+ QCOMPARE (spin->value (), 5 );
233+ }
234+
193235QTEST_MAIN (TestAdapterDeviceSettings)
0 commit comments