using Blacklight.WebGL2; using Clave; namespace Blacklight.WebGL2.UnitTests { public class AltGrWatcherTests : UnitTestSharp.TestFixture { public class NoteKeyDownTests : UnitTestSharp.TestFixture { public void ALeftControl_IsWhatAnAltGrIsToldBy() { var watcher = new AltGrWatcher(); watcher.NoteKeyDown(KeyCode.ControlLeft, isRepeat: false, timeStamp: 100); Check(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 100)); } public void ARepeatingLeftControl_DoesNotMoveIt() { var watcher = new AltGrWatcher(); watcher.NoteKeyDown(KeyCode.ControlLeft, isRepeat: false, timeStamp: 100); watcher.NoteKeyDown(KeyCode.ControlLeft, isRepeat: true, timeStamp: 400); CheckFalse(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 400)); } public void AnotherKey_IsNotNoted() { var watcher = new AltGrWatcher(); watcher.NoteKeyDown(KeyCode.ControlRight, isRepeat: false, timeStamp: 100); watcher.NoteKeyDown(KeyCode.A, isRepeat: false, timeStamp: 100); CheckFalse(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 100)); } public void ALaterLeftControl_ReplacesTheEarlierOne() { var watcher = new AltGrWatcher(); watcher.NoteKeyDown(KeyCode.ControlLeft, isRepeat: false, timeStamp: 100); watcher.NoteKeyDown(KeyCode.ControlLeft, isRepeat: false, timeStamp: 900); Check(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 900)); CheckFalse(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 100)); } } public class IsAltGrTests : UnitTestSharp.TestFixture { public static AltGrWatcher ControlDownAt(double timeStamp) { var returnMe = new AltGrWatcher(); returnMe.NoteKeyDown(KeyCode.ControlLeft, isRepeat: false, timeStamp); return returnMe; } public void NoControlNoted_IsFalse() { var watcher = new AltGrWatcher(); CheckFalse(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 0)); } public void StampedAtTheSameTime_IsTrue() { Check(ControlDownAt(250.5).IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 250.5)); } public void StampedWithinTheTolerance_IsTrue() { AltGrWatcher watcher = ControlDownAt(100); Check(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 100 + AltGrWatcher.ToleranceMs)); } public void StampedJustPastTheTolerance_IsFalse() { AltGrWatcher watcher = ControlDownAt(100); CheckFalse(watcher.IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 100 + AltGrWatcher.ToleranceMs + 0.01)); } public void StampedMuchLater_IsFalse() { CheckFalse(ControlDownAt(100).IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: false, timeStamp: 500)); } public void AltRightThatIsOnlyAnAlt_IsFalse() { CheckFalse(ControlDownAt(100).IsAltGr(KeyCode.AltRight, "Alt", isRepeat: false, timeStamp: 100)); } public void AnotherKeyNamedAltGraph_IsFalse() { CheckFalse(ControlDownAt(100).IsAltGr(KeyCode.AltLeft, "AltGraph", isRepeat: false, timeStamp: 100)); } public void ARepeat_IsFalse() { CheckFalse(ControlDownAt(100).IsAltGr(KeyCode.AltRight, "AltGraph", isRepeat: true, timeStamp: 100)); } } } }