NodeCreationTests.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <qpushbutton.h>
  9. #include <GraphCanvas/Components/GridBus.h>
  10. #include <GraphCanvas/Components/Nodes/Group/NodeGroupBus.h>
  11. #include <EditorAutomationTests/NodeCreationTests.h>
  12. #include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
  13. #include <ScriptCanvas/GraphCanvas/MappingBus.h>
  14. #include <ScriptCanvas/Core/Node.h>
  15. #include <ScriptCanvas/Core/NodeBus.h>
  16. #include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
  17. #include <ScriptCanvasDeveloperEditor/EditorAutomation/EditorAutomationActions/ScriptCanvasActions/ElementInteractions.h>
  18. namespace ScriptCanvas::Developer
  19. {
  20. ///////////////////////
  21. // CreateCategoryTest
  22. ///////////////////////
  23. CreateCategoryTest::CreateCategoryTest(AZStd::string categoryString, GraphCanvas::NodePaletteWidget* nodePaletteWidget)
  24. : EditorAutomationTest(QString("Create %1 Category from Palette").arg(categoryString.c_str()))
  25. {
  26. AutomationStateModelId categoryId = "CategoryId";
  27. SetStateData(categoryId, categoryString);
  28. AddState(new CreateRuntimeGraphState());
  29. AutomationStateModelId viewCenterId = "ViewCenterId";
  30. AddState(new FindViewCenterState(viewCenterId));
  31. AddState(new CreateCategoryFromNodePaletteState(nodePaletteWidget, categoryId, viewCenterId));
  32. AddState(new ForceCloseActiveGraphState());
  33. }
  34. ///////////////////////////////////
  35. // CreateExecutionSplicedNodeTest
  36. ///////////////////////////////////
  37. CreateExecutionSplicedNodeTest::CreateExecutionSplicedNodeTest(QString nodeName)
  38. : EditorAutomationTest(QString("Create %1 via Connection Splice").arg(nodeName))
  39. {
  40. AddState(new CreateRuntimeGraphState());
  41. AutomationStateModelId onGraphStartTargetPointId = "OnGraphStartScenePoint";
  42. AutomationStateModelId onGraphStartId = "OnGraphStartId";
  43. AddState(new FindViewCenterState(onGraphStartTargetPointId));
  44. AddState(new CreateNodeFromContextMenuState("On Graph Start", CreateNodeFromContextMenuState::CreationType::ScenePosition, onGraphStartTargetPointId, onGraphStartId));
  45. AutomationStateModelId onGraphStartEndpoint = "OnGraphStart::ExecutionEndpoint";
  46. AddState(new FindEndpointOfTypeState(onGraphStartId, onGraphStartEndpoint, GraphCanvas::CT_Output, GraphCanvas::SlotTypes::ExecutionSlot));
  47. AutomationStateModelId printNodeId = "PrintId";
  48. AutomationStateModelId spliceTargetId = "SpliceTargetId";
  49. AddState(new CreateNodeFromProposalState("Print", onGraphStartEndpoint, "", printNodeId, spliceTargetId));
  50. AddState(new CreateNodeFromContextMenuState(nodeName, CreateNodeFromContextMenuState::CreationType::Splice, spliceTargetId));
  51. AddState(new ForceCloseActiveGraphState());
  52. }
  53. ///////////////////////////////////
  54. // CreateExecutionSplicedNodeTest
  55. ///////////////////////////////////
  56. CreateDragDropExecutionSpliceNodeTest::CreateDragDropExecutionSpliceNodeTest(GraphCanvas::NodePaletteWidget* nodePaletteWidget, QString nodeName)
  57. : EditorAutomationTest(QString("Create %1 via Dropped Connection Splice").arg(nodeName))
  58. {
  59. AddState(new CreateRuntimeGraphState());
  60. AutomationStateModelId onGraphStartTargetPointId = "OnGraphStartScenePoint";
  61. AutomationStateModelId onGraphStartId = "OnGraphStartId";
  62. AddState(new FindViewCenterState(onGraphStartTargetPointId));
  63. AddState(new CreateNodeFromContextMenuState("On Graph Start", CreateNodeFromContextMenuState::CreationType::ScenePosition, onGraphStartTargetPointId, onGraphStartId));
  64. AutomationStateModelId onGraphStartEndpoint = "OnGraphStart::ExecutionEndpoint";
  65. AddState(new FindEndpointOfTypeState(onGraphStartId, onGraphStartEndpoint, GraphCanvas::CT_Output, GraphCanvas::SlotTypes::ExecutionSlot));
  66. AutomationStateModelId printNodeId = "PrintId";
  67. AutomationStateModelId spliceTargetId = "SpliceTargetId";
  68. AddState(new CreateNodeFromProposalState("Print", onGraphStartEndpoint, "", printNodeId, spliceTargetId));
  69. AddState(new CreateNodeFromPaletteState(nodePaletteWidget, nodeName, CreateNodeFromPaletteState::CreationType::Splice, spliceTargetId));
  70. AddState(new ForceCloseActiveGraphState());
  71. }
  72. }