Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
103 lines
2.9 KiB
JavaScript
Executable file
103 lines
2.9 KiB
JavaScript
Executable file
'use strict';
|
|
|
|
var assert = require('chai').assert;
|
|
var proxyquire = require('proxyquire');
|
|
var mockUtils = require('./mock_utils.js');
|
|
|
|
suite('keyboard-layouts.js', function() {
|
|
var app;
|
|
var config = {
|
|
KEYBOARD_LAYOUTS_PATH: 'test_keyboard_layouts.json'
|
|
};
|
|
|
|
var defaultManifestURL = 'app://keyboard.gaiamobile.org/manifest.webapp';
|
|
var webappsMapping = {
|
|
keyboard: {
|
|
manifestURL: defaultManifestURL
|
|
}
|
|
};
|
|
|
|
var result;
|
|
|
|
suiteSetup(function() {
|
|
app = proxyquire.noCallThru().load(
|
|
'../../keyboard-layouts', {
|
|
'./utils': mockUtils
|
|
});
|
|
mockUtils.writeContent = function(file, content) {
|
|
result = content;
|
|
};
|
|
|
|
mockUtils.resolve = function(fileName, dir) {
|
|
return {
|
|
exists: function() {
|
|
return true;
|
|
},
|
|
path: dir + '/' + fileName
|
|
};
|
|
};
|
|
|
|
mockUtils.getJSON = function() {
|
|
return {
|
|
'layout': {
|
|
'en-US': [
|
|
{'layoutId': 'en', 'app': ['apps', 'keyboard']}
|
|
],
|
|
'zh-TW': [
|
|
{'layoutId': 'zhuyin', 'app': ['apps', 'keyboard']},
|
|
{'layoutId': 'en', 'app': ['apps', 'keyboard']}
|
|
],
|
|
'es': [
|
|
{'layoutId': 'es', 'app': ['apps', 'keyboard']}
|
|
]
|
|
},
|
|
'langIndependentLayouts':
|
|
[{'layoutId': 'number', 'app': ['apps', 'keyboard']}]
|
|
,
|
|
'fallbackLayouts':
|
|
[{'layoutId': 'preload', 'app': ['apps', 'keyboard']}]
|
|
};
|
|
};
|
|
|
|
mockUtils.getFileContent = function() {
|
|
return '';
|
|
};
|
|
});
|
|
|
|
test('Check the generated keyboard_layouts.json', function() {
|
|
var preloadSet = ['en', 'zhuyin', 'es'];
|
|
app.genDefaultLayouts(config, webappsMapping, preloadSet);
|
|
|
|
var expectedResult = {
|
|
'layout': {
|
|
'en-US': [{'layoutId': 'en', 'appManifestURL': defaultManifestURL}],
|
|
'zh-TW': [{'layoutId': 'zhuyin', 'appManifestURL': defaultManifestURL},
|
|
{'layoutId': 'en', 'appManifestURL': defaultManifestURL}],
|
|
'es': [{'layoutId': 'es', 'appManifestURL': defaultManifestURL}],
|
|
},
|
|
'langIndependentLayouts':
|
|
[{'layoutId': 'number', 'appManifestURL': defaultManifestURL}]
|
|
};
|
|
|
|
assert.equal(result, JSON.stringify(expectedResult, null, 2));
|
|
});
|
|
|
|
test('Check the generatedkeyboard_layouts.json with a minimal' +
|
|
' preloaded layout set', function() {
|
|
|
|
var preloadSet = ['en'];
|
|
app.genDefaultLayouts(config, webappsMapping, preloadSet);
|
|
|
|
var expectedResult = {
|
|
'layout': {
|
|
'en-US': [{'layoutId': 'en', 'appManifestURL': defaultManifestURL}],
|
|
'zh-TW': [{'layoutId': 'en', 'appManifestURL': defaultManifestURL}],
|
|
'es': [{'layoutId': 'preload', 'appManifestURL': defaultManifestURL}]
|
|
},
|
|
'langIndependentLayouts':
|
|
[{'layoutId': 'number', 'appManifestURL': defaultManifestURL}]
|
|
};
|
|
|
|
assert.equal(result, JSON.stringify(expectedResult, null, 2));
|
|
});
|
|
});
|