Files
Terminal.Gui/UnitTests/Configuration/SettingsScopeTests.cs
Tig 16055c53b0 Fixes #3039. Fix View.HotKey (#3249)
* Added View.DefaultCommand etc... Started on dedicated scenario

* Fixed un-shifted hotkeys -> Fixed Key Equals. Fixed WindowsDriver passing wrong key. Etc.

* Fixed Key Bindings and HotKeys

* Fixed Key Bindings and HotKeys

* Label now correctly supports hotkey

* Disabled unix hot keys because they are annoying and get in the way

* Updated nuget. fixed warnings

* Trying to fix ci/ci issue

* Trying to fix ci/ci issue

* Trying to fix ci/ci issue

* Changed TextChangingEventArgs to inherit from CancelEventArgs

* TextChangingEventArgs -> TextEventArgs

* Simplified Text events by having only on args class

* Fixed unit tests fail

* Simplified by removing TitleEventArgs

* POC of Title being primary for hotkey. Label and Button hacked to work

* POC of Title being primary for hotkey. Label and Button hacked to work - all unit tests pass

* Dropped Microsoft.NETFramework.ReferenceAssemblies

* Fixed Dialogs scenario hotkeys

* Fixed build warnings

* Fixed Border Title render bug

* Regiggering default command handling

* Regiggering default command handling

* Checkbox clean up

* Added StateEventArgs POC

* Command.Default -> Command.HotKey

* Command.Default -> Command.HotKey - fixed TableView

* Command.Default -> Command.HotKey - fixed TableView

* Updated reactive example

* Fixed Toplevel.BringOverlappedTopToFront - was reordering SubViews when it shouldn't

* WIP - broke

* Finished impl of StateEventArgs

* Deleted ToggleEventArgs.cs. Added StateEventArgs.cs

* XML doc fix

* Removed old code

* Removed commented out code

* Label.Clicked -> Label.Accept (missed this before)

* Removed Labels as Buttons scenario as it's not really  useful

* Moved SubView tests to own file

* Moved SubView tests to own file

* Simplified Text test

* Added OnAccept test

* Deleted DefaultCommand

* Modernized CheckBox

* New button test

* Cleaned up RadioGroup; added tests

* KeyCode->Key in ListView

* Added ListView unit tests

* ListView now does Accept correctly

* TreeView now does Accept correctly

* Cleaned up some TextField tests

* TextView now handles Accept properly; updated CharMap and Adornments scenarios to test

* Fixed ComboBox to deal with TextView now handles Accept properly; updated CharMap and Adornments scenarios to test

* Removed un-needed using statement
2024-02-22 15:11:26 -07:00

84 lines
3.4 KiB
C#

using static Terminal.Gui.ConfigurationManager;
namespace Terminal.Gui.ConfigurationTests;
public class SettingsScopeTests
{
[Fact]
[AutoInitShutdown]
public void Apply_ShouldApplyProperties ()
{
// arrange
Assert.Equal (KeyCode.Q | KeyCode.CtrlMask, ((Key)Settings ["Application.QuitKey"].PropertyValue).KeyCode);
Assert.Equal (
KeyCode.PageDown | KeyCode.CtrlMask,
((Key)Settings ["Application.AlternateForwardKey"].PropertyValue).KeyCode
);
Assert.Equal (
KeyCode.PageUp | KeyCode.CtrlMask,
((Key)Settings ["Application.AlternateBackwardKey"].PropertyValue).KeyCode
);
Assert.False ((bool)Settings ["Application.IsMouseDisabled"].PropertyValue);
// act
Settings ["Application.QuitKey"].PropertyValue = Key.Q;
Settings ["Application.AlternateForwardKey"].PropertyValue = Key.F;
Settings ["Application.AlternateBackwardKey"].PropertyValue = Key.B;
Settings ["Application.IsMouseDisabled"].PropertyValue = true;
Settings.Apply ();
// assert
Assert.Equal (KeyCode.Q, Application.QuitKey.KeyCode);
Assert.Equal (KeyCode.F, Application.AlternateForwardKey.KeyCode);
Assert.Equal (KeyCode.B, Application.AlternateBackwardKey.KeyCode);
Assert.True (Application.IsMouseDisabled);
}
[Fact]
[AutoInitShutdown]
public void CopyUpdatedPropertiesFrom_ShouldCopyChangedPropertiesOnly ()
{
Settings ["Application.QuitKey"].PropertyValue = Key.End;
;
var updatedSettings = new SettingsScope ();
///Don't set Quitkey
updatedSettings ["Application.AlternateForwardKey"].PropertyValue = Key.F;
updatedSettings ["Application.AlternateBackwardKey"].PropertyValue = Key.B;
updatedSettings ["Application.IsMouseDisabled"].PropertyValue = true;
Settings.Update (updatedSettings);
Assert.Equal (KeyCode.End, ((Key)Settings ["Application.QuitKey"].PropertyValue).KeyCode);
Assert.Equal (KeyCode.F, ((Key)updatedSettings ["Application.AlternateForwardKey"].PropertyValue).KeyCode);
Assert.Equal (KeyCode.B, ((Key)updatedSettings ["Application.AlternateBackwardKey"].PropertyValue).KeyCode);
Assert.True ((bool)updatedSettings ["Application.IsMouseDisabled"].PropertyValue);
}
[Fact]
public void GetHardCodedDefaults_ShouldSetProperties ()
{
Reset ();
Assert.Equal (3, ((Dictionary<string, ThemeScope>)Settings ["Themes"].PropertyValue).Count);
GetHardCodedDefaults ();
Assert.NotEmpty (Themes);
Assert.Equal ("Default", Themes.Theme);
Assert.True (Settings ["Application.QuitKey"].PropertyValue is Key);
Assert.True (Settings ["Application.AlternateForwardKey"].PropertyValue is Key);
Assert.True (Settings ["Application.AlternateBackwardKey"].PropertyValue is Key);
Assert.True (Settings ["Application.IsMouseDisabled"].PropertyValue is bool);
Assert.True (Settings ["Theme"].PropertyValue is string);
Assert.Equal ("Default", Settings ["Theme"].PropertyValue as string);
Assert.True (Settings ["Themes"].PropertyValue is Dictionary<string, ThemeScope>);
Assert.Single ((Dictionary<string, ThemeScope>)Settings ["Themes"].PropertyValue);
}
}