2024-12-18 10:05:44 -05:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
#
|
|
|
|
# Copyright (c) 2024 Stormux
|
|
|
|
# Copyright (c) 2010-2012 The Orca Team
|
|
|
|
# Copyright (c) 2012 Igalia, S.L.
|
|
|
|
# Copyright (c) 2005-2010 Sun Microsystems Inc.
|
|
|
|
#
|
|
|
|
# This library is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
|
|
# License as published by the Free Software Foundation; either
|
|
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This library is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# Lesser General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
|
|
# License along with this library; if not, write to the
|
|
|
|
# Free Software Foundation, Inc., Franklin Street, Fifth Floor,
|
|
|
|
# Boston MA 02110-1301 USA.
|
|
|
|
#
|
|
|
|
# Fork of Orca Screen Reader (GNOME)
|
|
|
|
# Original source: https://gitlab.gnome.org/GNOME/orca
|
|
|
|
|
2024-10-17 16:33:13 -04:00
|
|
|
from cthulhu import settings_manager
|
|
|
|
from json import load, dump
|
|
|
|
from pprint import pprint
|
|
|
|
|
|
|
|
def exerciseBackendAPI(backendName, profile):
|
|
|
|
settingsManager = settings_manager.SettingsManager(backendName)
|
|
|
|
|
|
|
|
print("\n\n================ Testing Backend %s ====================\n\n" % \
|
|
|
|
backendName)
|
|
|
|
print('Profile: ', profile)
|
|
|
|
print('Profiles list: ', settingsManager.availableProfiles())
|
|
|
|
|
|
|
|
#settingsManager.setProfile(profile)
|
|
|
|
|
|
|
|
# Getters
|
|
|
|
preferences = settingsManager.getPreferences(profile)
|
|
|
|
print('preferences: \n', preferences, '\n\n')
|
|
|
|
|
|
|
|
generalSettings = settingsManager.getGeneralSettings(profile)
|
|
|
|
print('generalSettings: \n', generalSettings, '\n\n')
|
|
|
|
|
|
|
|
pronunciations = settingsManager.getPronunciations(profile)
|
|
|
|
print('pronunciations: \n', pronunciations, '\n\n')
|
|
|
|
|
|
|
|
keybindings = settingsManager.getKeybindings(profile)
|
|
|
|
print('keybindings: \n', keybindings, '\n\n')
|
|
|
|
|
|
|
|
# Adding new settings to the profile and merging them
|
|
|
|
newGeneralSettings = getSettingsFromFile('general')
|
|
|
|
print("newGeneralSettings = ")
|
|
|
|
pprint(newGeneralSettings)
|
|
|
|
settingsManager._setProfileGeneral(newGeneralSettings)
|
|
|
|
generalSettings = settingsManager.getGeneralSettings(profile)
|
|
|
|
print("generalSettings = ")
|
|
|
|
pprint(generalSettings)
|
|
|
|
|
|
|
|
newKeybindingsSettings = getSettingsFromFile('keybindings')
|
|
|
|
print("\n\nnewKeybindingsSettings = ")
|
|
|
|
pprint(newKeybindingsSettings)
|
|
|
|
settingsManager._setProfileKeybindings(newKeybindingsSettings)
|
|
|
|
keybindings = settingsManager.getKeybindings(profile)
|
|
|
|
print("keybindings = ")
|
|
|
|
pprint(keybindings)
|
|
|
|
|
|
|
|
newPronunciationsSettings = getSettingsFromFile('pronunciations')
|
|
|
|
print("\n\nnewPronunciationsSettings = ")
|
|
|
|
pprint(newPronunciationsSettings)
|
|
|
|
settingsManager._setProfileGeneral(newPronunciationsSettings)
|
|
|
|
pronunciations = settingsManager.getPronunciations(profile)
|
|
|
|
print("pronunciations = ")
|
|
|
|
pprint(pronunciations)
|
|
|
|
|
|
|
|
#settingsManager.saveSettings()
|
|
|
|
isFirstStart = settingsManager.isFirstStart()
|
|
|
|
print("\n\nIs First Start? => ", isFirstStart)
|
|
|
|
print("\n\nSetting firstStart key")
|
|
|
|
settingsManager.setFirstStart()
|
|
|
|
isFirstStart = settingsManager.isFirstStart()
|
|
|
|
print("\n\nIs First Start? => ", isFirstStart)
|
|
|
|
print("\n\n===========================================================\n\n")
|
|
|
|
|
|
|
|
print("\n\nTesting import from a file I")
|
|
|
|
print("\n===========================================================")
|
|
|
|
availableProfilesBefore = settingsManager.availableProfiles()
|
|
|
|
print("\nAvailable Profiles BEFORE the import => ", availableProfilesBefore)
|
|
|
|
settingsManager.importProfile('importFile.conf')
|
|
|
|
availableProfilesAfter = settingsManager.availableProfiles()
|
|
|
|
print("\nAvailable Profiles AFTER the import => ", availableProfilesAfter)
|
|
|
|
|
|
|
|
print("\n\nTesting import from a file II")
|
|
|
|
print("\n===========================================================")
|
|
|
|
availableProfilesBefore = settingsManager.availableProfiles()
|
|
|
|
print("\nAvailable Profiles BEFORE the import => ", availableProfilesBefore)
|
|
|
|
settingsManager.importProfile('importFile2.conf')
|
|
|
|
availableProfilesAfter = settingsManager.availableProfiles()
|
|
|
|
print("\nAvailable Profiles AFTER the import => ", availableProfilesAfter)
|
|
|
|
|
|
|
|
|
|
|
|
def getSettingsFromFile(dictName):
|
|
|
|
fileName = '%sSettings.conf' % dictName
|
|
|
|
try:
|
|
|
|
dictFile = open(fileName)
|
|
|
|
except:
|
|
|
|
import sys
|
|
|
|
print("You should run the test from the test directory")
|
|
|
|
sys.exit()
|
|
|
|
settings = load(dictFile)
|
|
|
|
dictFile.close()
|
|
|
|
return settings
|
|
|
|
|
|
|
|
# main
|
|
|
|
profile = 'default'
|
|
|
|
print('profile: default backendName: json\n')
|
|
|
|
exerciseBackendAPI('json', 'default')
|
|
|
|
#print 'profile: default backendName: gconf\n'
|
|
|
|
#exerciseBackendAPI('gconf', 'default')
|
|
|
|
#exerciseBackendAPI('default', 'gsettings', s)
|