83 lines
2.5 KiB
C#
83 lines
2.5 KiB
C#
using Exchanger.UI.OnScreenKeyboard;
|
|
using NUnit.Framework;
|
|
|
|
namespace Exchanger.Tests;
|
|
|
|
[TestFixture]
|
|
public sealed class OnScreenKeyboardStateTests
|
|
{
|
|
[Test]
|
|
public void StartsWithCompleteRussianLayout()
|
|
{
|
|
var state = new OnScreenKeyboardState();
|
|
|
|
Assert.Multiple((System.Action)(() =>
|
|
{
|
|
Assert.That(state.Layout, Is.EqualTo(OnScreenKeyboardLayout.Russian));
|
|
Assert.That(state.Keys, Has.Count.EqualTo(33));
|
|
Assert.That(state.Keys[0], Is.EqualTo("й"));
|
|
Assert.That(state.Keys[32], Is.EqualTo("ё"));
|
|
}));
|
|
}
|
|
|
|
[Test]
|
|
public void LanguageSwitchKeepsEnglishAfterSymbolsRoundTrip()
|
|
{
|
|
var state = new OnScreenKeyboardState();
|
|
state.ToggleLanguage();
|
|
state.ToggleSymbols();
|
|
state.ToggleSymbols();
|
|
|
|
Assert.Multiple((System.Action)(() =>
|
|
{
|
|
Assert.That(state.Layout, Is.EqualTo(OnScreenKeyboardLayout.English));
|
|
Assert.That(state.AlphabeticLayout, Is.EqualTo(OnScreenKeyboardLayout.English));
|
|
Assert.That(state.Keys, Has.Count.EqualTo(26));
|
|
Assert.That(state.Keys[0], Is.EqualTo("q"));
|
|
}));
|
|
}
|
|
|
|
[Test]
|
|
public void SymbolsHaveExactlyAsManyEntriesAsThemeSlots()
|
|
{
|
|
var state = new OnScreenKeyboardState();
|
|
state.ToggleSymbols();
|
|
|
|
Assert.Multiple((System.Action)(() =>
|
|
{
|
|
Assert.That(state.Layout, Is.EqualTo(OnScreenKeyboardLayout.Symbols));
|
|
Assert.That(state.Keys, Has.Count.EqualTo(OnScreenKeyboardState.TextKeyCount));
|
|
Assert.That(state.Keys, Does.Contain("?"));
|
|
Assert.That(state.Keys, Does.Contain("₽"));
|
|
Assert.That(state.Keys, Does.Contain("\\"));
|
|
}));
|
|
}
|
|
|
|
[Test]
|
|
public void ShiftOnlyChangesAlphabeticLayout()
|
|
{
|
|
var state = new OnScreenKeyboardState();
|
|
state.ToggleShift();
|
|
Assert.That(state.Keys[0], Is.EqualTo("Й"));
|
|
|
|
state.ToggleSymbols();
|
|
state.ToggleShift();
|
|
Assert.Multiple((System.Action)(() =>
|
|
{
|
|
Assert.That(state.Shift, Is.False);
|
|
Assert.That(state.Keys[10], Is.EqualTo("!"));
|
|
}));
|
|
}
|
|
|
|
[Test]
|
|
public void NumericModeReturnsToLastAlphabeticLayout()
|
|
{
|
|
var state = new OnScreenKeyboardState();
|
|
state.ToggleLanguage();
|
|
state.UseNumericLayout();
|
|
state.UseTextLayout();
|
|
|
|
Assert.That(state.Layout, Is.EqualTo(OnScreenKeyboardLayout.English));
|
|
}
|
|
}
|