MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / testSubtree

Method testSubtree

test/editor_test.cpp:293–366  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

291}
292
293void EditorTest::testSubtree()
294{
295 QString file_xml = readFile(":/crossdoor_with_subtree.xml");
296 main_win->on_actionClear_triggered();
297 main_win->loadFromXML( file_xml );
298
299 auto main_tree = getAbstractTree("MainTree");
300 auto closed_tree = getAbstractTree("DoorClosed");
301
302 auto subtree_abs_node = main_tree.findFirstNode("DoorClosed");
303 auto data_model = subtree_abs_node->graphic_node->nodeDataModel();
304 auto subtree_model = dynamic_cast<SubtreeNodeModel*>(data_model);
305
306 QTest::mouseClick( subtree_model->expandButton(), Qt::LeftButton );
307
308 QAbstractButton *button_lock = main_win->findChild<QAbstractButton*>("buttonLock");
309 QVERIFY2(button_lock != nullptr, "Can't find the object [buttonLock]");
310
311 button_lock->setChecked(false);
312
313 QTreeWidget* treeWidget = main_win->findChild<QTreeWidget*>("paletteTreeWidget");
314 QVERIFY2(treeWidget != nullptr, "Can't find the object [paletteTreeWidget]");
315
316 auto subtree_items = treeWidget->findItems("DoorClosed", Qt::MatchExactly | Qt::MatchRecursive);
317 sleepAndRefresh( 500 );
318
319 QCOMPARE(subtree_items.size(), 1);
320 sleepAndRefresh( 500 );
321
322 auto sidepanel_editor = main_win->findChild<SidepanelEditor*>("SidepanelEditor");
323 sidepanel_editor->onRemoveModel("DoorClosed");
324 sleepAndRefresh( 500 );
325
326 auto tree_after_remove = getAbstractTree("MainTree");
327 auto fallback_node = tree_after_remove.findFirstNode("root_Fallback");
328
329 QCOMPARE(fallback_node->children_index.size(), size_t(3) );
330 QVERIFY2( main_win->getTabByName("DoorClosed") == nullptr, "Tab DoorClosed not deleted");
331 sleepAndRefresh( 500 );
332
333 //---------------------------------------
334 // create again the subtree
335
336 auto closed_sequence_node = tree_after_remove.findFirstNode("door_closed_sequence");
337 auto container = main_win->currentTabInfo();
338 // This must fail and create a MessageBox
339 testMessageBox(1000, TEST_LOCATION(), [&]()
340 {
341 container->createSubtree( *closed_sequence_node->graphic_node, "MainTree" );
342 });
343
344 container->createSubtree( *closed_sequence_node->graphic_node, "DoorClosed" );
345 sleepAndRefresh( 500 );
346
347 auto new_main_tree = getAbstractTree("MainTree");
348 auto new_closed_tree = getAbstractTree("DoorClosed");
349
350 bool is_same = (main_tree == new_main_tree);

Callers

nothing calls this directly

Calls 9

loadFromXMLMethod · 0.80
findFirstNodeMethod · 0.80
expandButtonMethod · 0.80
onRemoveModelMethod · 0.80
getTabByNameMethod · 0.80
currentTabInfoMethod · 0.80
createSubtreeMethod · 0.80
debugPrintMethod · 0.80

Tested by

no test coverage detected