Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,134 @@
'use strict';
var KeyboardTestApp = require('./lib/keyboard_test_app');
var ImeTestApp = require('./lib/ime_test_app');
var Keyboard = require('./lib/keyboard');
var assert = require('assert');
marionette('Switch Keyboard App', function() {
var keyboardTestApp = null;
var keyboard = null;
var systemInputMgmt = null;
var imeTestApp = null;
var client = null;
var actions = null;
var apps = {};
var system = null;
// Pre-install keyboard testing app
apps[KeyboardTestApp.ORIGIN] = __dirname + '/apps/keyboardtestapp';
// And a testing 3rd-party IME app
apps[ImeTestApp.ORIGIN] = __dirname + '/apps/imetestapp';
var keyboardSettings = {};
keyboardSettings[Keyboard.MANIFEST_URL] = {
'en': true,
'number': true
};
// Enable a testing IME app
keyboardSettings[ImeTestApp.MANIFEST_URL] = {
'lol': true
};
client = marionette.client({
profile: {
apps: apps,
prefs: {
'focusmanager.testmode': true
},
settings: {
'keyboard.enabled-layouts': keyboardSettings
}
},
desiredCapabilities: { raisesAccessibilityExceptions: false }
});
/*
* To check the 3rd-party IME is shown.
*/
function check3rdPartyIme() {
// switch back to system
client.switchToFrame();
// wait for the 2nd keyboard is loaded
systemInputMgmt.ensureInputWindowCount(2);
systemInputMgmt.switchToActiveKeyboardFrame();
assert.ok(imeTestApp.sendKeyButton.displayed());
}
setup(function() {
actions = client.loader.getActions();
systemInputMgmt = client.loader.getAppClass('system', 'input_management');
system = client.loader.getAppClass('system');
system.waitForFullyLoaded();
imeTestApp = new ImeTestApp(client);
keyboard = new Keyboard(client);
keyboardTestApp = new KeyboardTestApp(client);
keyboard.waitForKeyboardReady();
keyboardTestApp.launch();
keyboardTestApp.switchTo();
keyboardTestApp.urlInput.click();
keyboard.switchTo();
keyboardTestApp.switchTo();
keyboardTestApp.textInput.click();
// Wait for the keyboard pop up and switch to it
keyboard.switchTo();
});
test('Checking the switching IME function is available', function() {
var imeSwitchingKey = keyboard.imeSwitchingKey;
assert.ok(imeSwitchingKey.displayed());
// Click to switch to next IME
imeSwitchingKey.click();
check3rdPartyIme();
});
test('Long press to show the IME menu', function() {
var imeSwitchingKey = keyboard.imeSwitchingKey;
// Long press to show IME menu
actions.longPress(imeSwitchingKey, 0.7).perform();
// switch back to system
client.switchToFrame();
var imeMenu = systemInputMgmt.imeMenu;
assert.ok(imeMenu.displayed());
// select the 3rd-party IME
systemInputMgmt.selectImeOption(1);
check3rdPartyIme();
});
test('Drag down the utility tray', function() {
// Swipe to drag down the utility tray
systemInputMgmt.dragDownUtilityTray();
// Check the IME switching buttion in notification
var imeNotification = systemInputMgmt.imeNotification;
client.waitFor(function() {
return imeNotification.displayed();
});
imeNotification.click();
assert.ok(systemInputMgmt.imeMenu.displayed());
//XXX: Wait for the previous keyboard to hide or we may not be able to
// switch to the next keyboard.
client.waitFor(function() {
return systemInputMgmt.keyboardFrameHidden();
});
// select the 3rd-party IME
systemInputMgmt.selectImeOption(1);
check3rdPartyIme();
});
});