public void InstalledKeyboards_Belgium()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardBelgium };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            // It seems that Dutch (Belgium) got added recently, so some machines are missing
            // this.
            Assert.That(keyboards.Count == 3 || keyboards.Count == 2);
            keyboards.Sort((x, y) => {
                return(x.Id.CompareTo(y.Id));
            });
            var expectedKeyboards = new List <IKeyboardDescription>()
            {
                new KeyboardDescription(2060, "French (Belgium)", null)
            };

            // Windows doesn't define German (Belgium), so there is no LCID defined. ICU returns
            // some arbitrary number (7 in my case). We cheat and expect what we get here.
            expectedKeyboards.Add(new KeyboardDescription(keyboards[0].Id, "German (Belgium)", null));

            if (keyboards.Count > 2)
            {
                expectedKeyboards.Add(new KeyboardDescription(2067, "Dutch (Belgium)", null));
            }

            CollectionAssert.AreEquivalent(expectedKeyboards, keyboards);
            Assert.AreEqual(0, KeyboardController.ErrorKeyboards.Count);
        }
        public void ErrorKeyboards()
        {
            XklEngineResponder.SetGroupNames = new string[] { "Fake" };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            Assert.AreEqual(0, keyboards.Count);
            Assert.AreEqual(1, KeyboardController.ErrorKeyboards.Count);
            Assert.AreEqual("Fake", KeyboardController.ErrorKeyboards[0].Details);
        }
Example #3
0
        public void ActivateKeyboard_FirstTime_NotCrash()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardUSA };

            var adaptor = new XkbKeyboardAdaptor(new XklEngineResponder());

            KeyboardController.Manager.SetKeyboardAdaptors(new [] { adaptor });

            var keyboards = Keyboard.Controller.AllAvailableKeyboards;

            adaptor.ActivateKeyboard(keyboards.First());
        }
        public void InstalledKeyboards_NorthernSami()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardFinlandNorthernSaami };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            Assert.AreEqual(1, keyboards.Count);
            Assert.AreEqual(59, keyboards[0].Id);
            Assert.AreEqual(ExpectedKeyboardFinlandNorthernSaami, keyboards[0].Name);
            Assert.AreEqual(0, KeyboardController.ErrorKeyboards.Count);
        }
        public void InstalledKeyboards_Germany_GermanCulture()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardGermany };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            Assert.AreEqual(1, keyboards.Count);
            Assert.AreEqual(1031, keyboards[0].Id);
            Assert.AreEqual("Deutsch (Deutschland)", keyboards[0].Name);
            Assert.AreEqual(0, KeyboardController.ErrorKeyboards.Count);
        }
        public void InstalledKeyboards_FrenchWithVariant()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardFranceEliminateDeadKeys };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            Assert.AreEqual(1, keyboards.Count);
            Assert.AreEqual(1036, keyboards[0].Id);
            Assert.AreEqual(ExpectedKeyboardFranceEliminateDeadKeys, keyboards[0].Name);
            Assert.AreEqual(0, KeyboardController.ErrorKeyboards.Count);
        }
        public void InstalledKeyboards_Multiple()
        {
            XklEngineResponder.SetGroupNames = new string[] { KeyboardUSA, KeyboardGermany };

            XkbKeyboardAdaptor.SetXklEngineType <XklEngineResponder>();
            KeyboardController.Manager.SetKeyboardAdaptors(new [] { new XkbKeyboardAdaptor() });
            var keyboards = KeyboardController.InstalledKeyboards;

            Assert.AreEqual(2, keyboards.Count);
            Assert.AreEqual(1033, keyboards[0].Id);
            Assert.AreEqual(ExpectedKeyboardUSA, keyboards[0].Name);
            Assert.AreEqual(1031, keyboards[1].Id);
            Assert.AreEqual(ExpectedKeyboardGermany, keyboards[1].Name);
            Assert.AreEqual(0, KeyboardController.ErrorKeyboards.Count);
        }
Example #8
0
        private static XkbKeyboardDescription CreateMockXkbKeyboard(string name, string layout, string locale,
                                                                    string layoutName, int group, XkbKeyboardAdaptor adapter)
        {
            var keyboard = new XkbKeyboardDescription(name, layout, locale,
                                                      new InputLanguageWrapper(locale, IntPtr.Zero, layoutName), adapter, group);

            KeyboardController.Manager.RegisterKeyboard(keyboard);
            return(keyboard);
        }