3
0

CanAddAnimGraph.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 <gtest/gtest.h>
  9. #include <QPushButton>
  10. #include <QAction>
  11. #include <QtTest>
  12. #include <qtoolbar.h>
  13. #include <Tests/UI/UIFixture.h>
  14. #include <EMotionFX/Source/AnimGraphManager.h>
  15. #include <EMotionStudio/EMStudioSDK/Source/EMStudioManager.h>
  16. #include <EMotionStudio/Plugins/StandardPlugins/Source/AnimGraph/AnimGraphPlugin.h>
  17. #include <EMotionStudio/Plugins/StandardPlugins/Source/AnimGraph/BlendGraphViewWidget.h>
  18. namespace EMotionFX
  19. {
  20. TEST_F(UIFixture, CanAddAnimGraph)
  21. {
  22. RecordProperty("test_case_id", "C953542");
  23. EMStudio::GetMainWindow()->ApplicationModeChanged("AnimGraph");
  24. auto animGraphPlugin = static_cast<EMStudio::AnimGraphPlugin*>(EMStudio::GetPluginManager()->FindActivePlugin(EMStudio::AnimGraphPlugin::CLASS_ID));
  25. ASSERT_TRUE(animGraphPlugin) << "Anim graph plugin not found.";
  26. ASSERT_FALSE(animGraphPlugin->GetActiveAnimGraph()) << "No anim graph should be activated.";
  27. ASSERT_EQ(0, EMotionFX::GetAnimGraphManager().GetNumAnimGraphs()) << "Anim graph manager should contain 0 anim graph.";
  28. auto toolBar = animGraphPlugin->GetViewWidget()->findChild<QToolBar*>("EMFX.BlendGraphViewWidget.TopToolBar");
  29. QWidget* addAnimGraphButton = UIFixture::GetWidgetFromToolbar(toolBar, "Create a new anim graph");
  30. ASSERT_NE(addAnimGraphButton, nullptr) << "Add Animgraph button was not found";
  31. QTest::mouseClick(addAnimGraphButton, Qt::LeftButton);
  32. AnimGraph* newGraph = animGraphPlugin->GetActiveAnimGraph();
  33. // The empty graph should contain one node (the root statemachine).
  34. ASSERT_TRUE(newGraph && newGraph->GetNumNodes() == 1) << "An empty anim graph should be activated.";
  35. ASSERT_EQ(1, EMotionFX::GetAnimGraphManager().GetNumAnimGraphs()) << "Anim graph manager should contain 1 anim graph.";
  36. QTest::mouseClick(addAnimGraphButton, Qt::LeftButton);
  37. ASSERT_EQ(2, EMotionFX::GetAnimGraphManager().GetNumAnimGraphs()) << "Anim graph manager should contain 2 anim graphs.";
  38. AnimGraph* newGraph2 = animGraphPlugin->GetActiveAnimGraph();
  39. ASSERT_NE(newGraph, newGraph2) << "After the second click, the active graph should change.";
  40. QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
  41. }
  42. } // namespace EMotionFX