diff --git a/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp b/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp index 16191eedb..a3dcbb45f 100644 --- a/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp +++ b/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp @@ -1271,7 +1271,7 @@ namespace TerminalAppLocalTests void SettingsTests::TestElevateArg() { - const std::string settingsJson{ R"( + static constexpr std::wstring_view settingsJson{ LR"( { "defaultProfile": "{6239a42c-0000-49a3-80bd-e8fdd045185c}", "profiles": [ @@ -1312,20 +1312,20 @@ namespace TerminalAppLocalTests const winrt::guid guid1{ ::Microsoft::Console::Utils::GuidFromString(L"{6239a42c-1111-49a3-80bd-e8fdd045185c}") }; const winrt::guid guid2{ ::Microsoft::Console::Utils::GuidFromString(L"{6239a42c-2222-49a3-80bd-e8fdd045185c}") }; - CascadiaSettings settings{ til::u8u16(settingsJson) }; + CascadiaSettings settings{ settingsJson, {} }; - auto keymap = settings.GlobalSettings().KeyMap(); + auto keymap = settings.GlobalSettings().ActionMap(); VERIFY_ARE_EQUAL(3u, settings.ActiveProfiles().Size()); const auto profile2Guid = settings.ActiveProfiles().GetAt(2).Guid(); VERIFY_ARE_NOT_EQUAL(winrt::guid{}, profile2Guid); - VERIFY_ARE_EQUAL(9u, keymap.Size()); + VERIFY_ARE_EQUAL(9u, keymap.KeyBindings().Size()); { Log::Comment(L"profile.elevate=omitted, action.elevate=nullopt: don't auto elevate"); - KeyChord kc{ true, false, false, static_cast('A') }; + KeyChord kc{ true, false, false, false, static_cast('A'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1339,15 +1339,15 @@ namespace TerminalAppLocalTests VERIFY_ARE_EQUAL(L"profile0", realArgs.TerminalArgs().Profile()); VERIFY_IS_NULL(realArgs.TerminalArgs().Elevate()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid0, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"cmd.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(false, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=true, action.elevate=nullopt: DO auto elevate"); - KeyChord kc{ true, false, false, static_cast('B') }; + KeyChord kc{ true, false, false, false, static_cast('B'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1361,15 +1361,15 @@ namespace TerminalAppLocalTests VERIFY_ARE_EQUAL(L"profile1", realArgs.TerminalArgs().Profile()); VERIFY_IS_NULL(realArgs.TerminalArgs().Elevate()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid1, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"pwsh.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(true, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=false, action.elevate=nullopt: don't auto elevate"); - KeyChord kc{ true, false, false, static_cast('C') }; + KeyChord kc{ true, false, false, false, static_cast('C'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1383,8 +1383,8 @@ namespace TerminalAppLocalTests VERIFY_ARE_EQUAL(L"profile2", realArgs.TerminalArgs().Profile()); VERIFY_IS_NULL(realArgs.TerminalArgs().Elevate()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid2, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"wsl.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(false, termSettings.Elevate()); } @@ -1392,7 +1392,7 @@ namespace TerminalAppLocalTests { Log::Comment(L"profile.elevate=omitted, action.elevate=false: don't auto elevate"); - KeyChord kc{ true, false, false, static_cast('D') }; + KeyChord kc{ true, false, false, false, static_cast('D'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1407,15 +1407,15 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_FALSE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid0, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"cmd.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(false, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=true, action.elevate=false: don't auto elevate"); - KeyChord kc{ true, false, false, static_cast('E') }; + KeyChord kc{ true, false, false, false, static_cast('E'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1430,15 +1430,15 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_FALSE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid1, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"pwsh.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(false, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=false, action.elevate=false: don't auto elevate"); - KeyChord kc{ true, false, false, static_cast('F') }; + KeyChord kc{ true, false, false, false, static_cast('F'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1453,8 +1453,8 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_FALSE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid2, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"wsl.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(false, termSettings.Elevate()); } @@ -1462,7 +1462,7 @@ namespace TerminalAppLocalTests { Log::Comment(L"profile.elevate=omitted, action.elevate=true: DO auto elevate"); - KeyChord kc{ true, false, false, static_cast('G') }; + KeyChord kc{ true, false, false, false, static_cast('G'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1477,14 +1477,14 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_TRUE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid0, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"cmd.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(true, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=true, action.elevate=true: DO auto elevate"); - KeyChord kc{ true, false, false, static_cast('H') }; + KeyChord kc{ true, false, false, false, static_cast('H'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1499,15 +1499,15 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_TRUE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid1, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"pwsh.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(true, termSettings.Elevate()); } { Log::Comment(L"profile.elevate=false, action.elevate=true: DO auto elevate"); - KeyChord kc{ true, false, false, static_cast('I') }; + KeyChord kc{ true, false, false, false, static_cast('I'), 0 }; auto actionAndArgs = TestUtils::GetActionAndArgs(keymap, kc); VERIFY_ARE_EQUAL(ShortcutAction::NewTab, actionAndArgs.Action()); const auto& realArgs = actionAndArgs.Args().try_as(); @@ -1522,8 +1522,8 @@ namespace TerminalAppLocalTests VERIFY_IS_NOT_NULL(realArgs.TerminalArgs().Elevate()); VERIFY_IS_TRUE(realArgs.TerminalArgs().Elevate().Value()); - const auto [guid, termSettings] = winrt::TerminalApp::implementation::TerminalSettings::BuildSettings(settings, realArgs.TerminalArgs(), nullptr); - VERIFY_ARE_EQUAL(guid2, guid); + const auto termSettingsResult = TerminalSettings::CreateWithNewTerminalArgs(settings, realArgs.TerminalArgs(), nullptr); + const auto termSettings = termSettingsResult.DefaultSettings(); VERIFY_ARE_EQUAL(L"wsl.exe", termSettings.Commandline()); VERIFY_ARE_EQUAL(true, termSettings.Elevate()); }