68 lines
2.0 KiB
C++
68 lines
2.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "TestHarness.h"
|
|
|
|
#include "ToolMenus.h"
|
|
|
|
TEST_CASE("UE::ToolMenus::FToolMenuTestInstanceScoped replaces the singleton while the scope is active", "[ToolMenus]")
|
|
{
|
|
UToolMenus* const OriginalSingleton = UToolMenus::Get();
|
|
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope1;
|
|
|
|
UToolMenus* const FirstNestedSingleton = UToolMenus::Get();
|
|
|
|
CHECK(FirstNestedSingleton != OriginalSingleton);
|
|
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope2;
|
|
|
|
UToolMenus* const SecondNestedSingleton = UToolMenus::Get();
|
|
|
|
CHECK(SecondNestedSingleton != FirstNestedSingleton);
|
|
CHECK(SecondNestedSingleton != OriginalSingleton);
|
|
}
|
|
}
|
|
}
|
|
|
|
TEST_CASE("UE::ToolMenus::FToolMenuTestInstanceScoped reinstates the original singleton when the scope is destructed", "[ToolMenus]")
|
|
{
|
|
UToolMenus* const OriginalSingleton = UToolMenus::Get();
|
|
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope1;
|
|
|
|
UToolMenus* const FirstNestedSingleton = UToolMenus::Get();
|
|
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope2;
|
|
}
|
|
|
|
CHECK(FirstNestedSingleton == UToolMenus::Get());
|
|
}
|
|
|
|
CHECK(OriginalSingleton == UToolMenus::Get());
|
|
}
|
|
|
|
const FName FToolMenuTestInstanceScopedMenuName =
|
|
"FToolMenuTestInstanceScoped_prevents_names_from_leaking_between_tests";
|
|
|
|
TEST_CASE("UE::ToolMenus::FToolMenuTestInstanceScoped prevents menu names from leaking between tests (test 1 of 2)", "[ToolMenus]")
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope;
|
|
|
|
CHECK(!UToolMenus::Get()->IsMenuRegistered(FToolMenuTestInstanceScopedMenuName));
|
|
|
|
UToolMenus::Get()->RegisterMenu(FToolMenuTestInstanceScopedMenuName);
|
|
}
|
|
|
|
TEST_CASE("UE::ToolMenus::FToolMenuTestInstanceScoped prevents menu names from leaking between tests (test 2 of 2)", "[ToolMenus]")
|
|
{
|
|
UE::ToolMenus::FToolMenuTestInstanceScoped Scope;
|
|
|
|
CHECK(!UToolMenus::Get()->IsMenuRegistered(FToolMenuTestInstanceScopedMenuName));
|
|
|
|
UToolMenus::Get()->RegisterMenu(FToolMenuTestInstanceScopedMenuName);
|
|
}
|