예제 #1
0
def install_keyboards_to_gnome(keyboards, packageDir, language=None):
    gnomeKeyboardsUtil = GnomeKeyboardsUtil()
    sources = gnomeKeyboardsUtil.read_input_sources()

    # install all kmx for first lang not just packageID
    for kb in keyboards:
        ibus_keyboard_id = get_ibus_keyboard_id(kb, packageDir, language)
        sources.append(('ibus', ibus_keyboard_id))

    gnomeKeyboardsUtil.write_input_sources(sources)
예제 #2
0
    def test_ConvertArrayToVariantToArray_MultipleElements(self):
        # Setup
        children = [('t1', 'id1'), ('t2', 'id2')]
        sut = GnomeKeyboardsUtil()
        # Execute
        variant = sut._convert_array_to_variant(children)
        array = sut._convert_variant_to_array(variant)

        # Verify
        self.assertEqual(array, children)
예제 #3
0
    def test_ConvertArrayToVariantToArray_Empty(self):
        # Setup
        children = []
        sut = GnomeKeyboardsUtil()
        # Execute
        variant = sut._convert_array_to_variant(children)
        array = sut._convert_variant_to_array(variant)

        # Verify
        self.assertEqual(array, children)
예제 #4
0
 def test_WriteInputSources(self, convertArrayToVariantMethod):
     # Setup
     convertArrayToVariantMethod.side_effect = lambda value: value
     sut = GnomeKeyboardsUtil()
     keyboards = [('xkb', 'en'), ('ibus', 'fooDir/foo1.kmx'),
                  ('ibus', 'fooDir/foo2.kmx')]
     # Execute
     sut.write_input_sources(keyboards)
     # Verify
     self.MockSettingsClass.return_value.set_value.assert_called_once_with(
         "sources", keyboards)
예제 #5
0
 def test_ReadInputSources(self, convertVariantToArrayMethod):
     # Setup
     keyboards = [('xkb', 'en')]
     mock_settingsInstance = self.MockSettingsClass.return_value
     mock_settingsInstance.get_value.return_value = keyboards
     convertVariantToArrayMethod.side_effect = lambda value: value
     sut = GnomeKeyboardsUtil()
     # Execute
     result = sut.read_input_sources()
     # Verify
     self.assertEqual(result, keyboards)
예제 #6
0
def uninstall_keyboards_from_gnome(keyboards, packageDir):
    gnomeKeyboardsUtil = GnomeKeyboardsUtil()
    sources = gnomeKeyboardsUtil.read_input_sources()

    # uninstall all kmx for all languages
    for kb in keyboards:
        ibus_keyboard_id = get_ibus_keyboard_id(kb, packageDir)
        tuple = ('ibus', ibus_keyboard_id)
        if tuple in sources:
            sources.remove(tuple)

        toRemove = []
        match_id = ":%s" % get_ibus_keyboard_id(
            kb, packageDir, ignore_language=True)
        for (type, id) in sources:
            if type == 'ibus' and id.endswith(match_id):
                toRemove.append((type, id))

        for val in toRemove:
            sources.remove(val)

    gnomeKeyboardsUtil.write_input_sources(sources)