@@ -18,6 +18,7 @@ private slots:
18
18
void undoRedo ();
19
19
void testSubtree ();
20
20
void modifyCustomModel ();
21
+ void multipleSubtrees ();
21
22
};
22
23
23
24
@@ -80,7 +81,7 @@ void EditorTest::loadFile()
80
81
// Next: expand the Subtree [DoorClosed]
81
82
auto tree = getAbstractTree (" MainTree" );
82
83
83
- auto subtree_abs_node = tree.findNode (" DoorClosed" );
84
+ auto subtree_abs_node = tree.findFirstNode (" DoorClosed" );
84
85
QVERIFY2 (subtree_abs_node, " Can't find node with ID [DoorClosed]" );
85
86
86
87
{
@@ -101,7 +102,7 @@ void EditorTest::loadFile()
101
102
// Next: collapse again Subtree [DoorClosed]
102
103
tree = getAbstractTree (" MainTree" );
103
104
104
- subtree_abs_node = tree.findNode (" DoorClosed" );
105
+ subtree_abs_node = tree.findFirstNode (" DoorClosed" );
105
106
QVERIFY2 (subtree_abs_node, " Can't find node with ID [DoorClosed]" );
106
107
107
108
{
@@ -130,7 +131,7 @@ void EditorTest::undoRedo()
130
131
131
132
sleepAndRefresh ( 500 );
132
133
133
- auto pippo_node = abs_tree_A.findNode (" Pippo" );
134
+ auto pippo_node = abs_tree_A.findFirstNode (" Pippo" );
134
135
auto gui_node = pippo_node->graphic_node ;
135
136
QPoint pippo_screen_pos = view->mapFromScene (pippo_node->pos );
136
137
const QPoint pos_offset (100 ,0 );
@@ -190,7 +191,7 @@ void EditorTest::undoRedo()
190
191
auto prev_tree = getAbstractTree ();
191
192
size_t prev_node_count = prev_tree.nodesCount ();
192
193
193
- auto node = prev_tree.findNode ( " DoSequenceStar" );
194
+ auto node = prev_tree.findFirstNode ( " DoSequenceStar" );
194
195
195
196
QPoint pos = view->mapFromScene (node->pos );
196
197
testMouseEvent (view, QEvent::MouseButtonDblClick, pos , Qt::LeftButton);
@@ -257,7 +258,7 @@ void EditorTest::testSubtree()
257
258
auto main_tree = getAbstractTree (" MainTree" );
258
259
auto closed_tree = getAbstractTree (" DoorClosed" );
259
260
260
- auto subtree_abs_node = main_tree.findNode (" DoorClosed" );
261
+ auto subtree_abs_node = main_tree.findFirstNode (" DoorClosed" );
261
262
auto data_model = subtree_abs_node->graphic_node ->nodeDataModel ();
262
263
auto subtree_model = dynamic_cast <SubtreeNodeModel*>(data_model);
263
264
@@ -282,7 +283,7 @@ void EditorTest::testSubtree()
282
283
sleepAndRefresh ( 500 );
283
284
284
285
auto tree_after_remove = getAbstractTree (" MainTree" );
285
- auto fallback_node = tree_after_remove.findNode (" root_Fallback" );
286
+ auto fallback_node = tree_after_remove.findFirstNode (" root_Fallback" );
286
287
287
288
QCOMPARE (fallback_node->children_index .size (), size_t (3 ) );
288
289
QVERIFY2 ( main_win->getTabByName (" DoorClosed" ) == nullptr , " Tab DoorClosed not deleted" );
@@ -291,7 +292,7 @@ void EditorTest::testSubtree()
291
292
// ---------------------------------------
292
293
// create again the subtree
293
294
294
- auto closed_sequence_node = tree_after_remove.findNode (" door_closed_sequence" );
295
+ auto closed_sequence_node = tree_after_remove.findFirstNode (" door_closed_sequence" );
295
296
auto container = main_win->currentTabInfo ();
296
297
// This must fail and create a MessageBox
297
298
testMessageBox (1000 , TEST_LOCATION (), [&]()
@@ -349,13 +350,37 @@ void EditorTest::modifyCustomModel()
349
350
350
351
auto abs_tree = getAbstractTree ();
351
352
352
- auto jump_abs_node = abs_tree.findNode ( jump_model.registration_ID );
353
+ auto jump_abs_node = abs_tree.findFirstNode ( jump_model.registration_ID );
353
354
QVERIFY ( jump_abs_node != nullptr );
354
355
QCOMPARE ( jump_abs_node->model , jump_model );
355
356
356
357
sleepAndRefresh ( 500 );
357
358
}
358
359
360
+ void EditorTest::multipleSubtrees ()
361
+ {
362
+ QString file_xml = readFile (" :/test_subtrees_issue_8.xml" );
363
+ main_win->on_actionClear_triggered ();
364
+ main_win->loadFromXML ( file_xml );
365
+
366
+ auto abs_tree = getAbstractTree (" MainTree" );
367
+
368
+ auto sequence_node = abs_tree.findFirstNode (" main_sequence" );
369
+ QVERIFY ( sequence_node != nullptr );
370
+ QCOMPARE ( sequence_node->children_index .size (), 2 );
371
+
372
+ int index_1 = sequence_node->children_index [0 ];
373
+ int index_2 = sequence_node->children_index [1 ];
374
+
375
+ auto first_child = abs_tree.node (index_1);
376
+ auto second_child = abs_tree.node (index_2);
377
+
378
+ QCOMPARE ( first_child->instance_name , " MoveToPredefinedPoint" );
379
+ QCOMPARE ( second_child->instance_name , " PickingItem" );
380
+
381
+ sleepAndRefresh ( 500 );
382
+ }
383
+
359
384
QTEST_MAIN (EditorTest)
360
385
361
386
#include " editor_test.moc"
0 commit comments