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:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
51
gaia/tests/jsmarionette/runner/mozilla-profile-builder/examples/options.js
Executable file
51
gaia/tests/jsmarionette/runner/mozilla-profile-builder/examples/options.js
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
'use strict';
|
||||
var fs = require('fs'),
|
||||
profile = require('../index'),
|
||||
remove = require('remove');
|
||||
|
||||
var PROFILE_DIR = __dirname + '/profile';
|
||||
|
||||
if (fs.existsSync(PROFILE_DIR))
|
||||
remove.removeSync(PROFILE_DIR);
|
||||
|
||||
fs.mkdirSync(PROFILE_DIR);
|
||||
fs.mkdirSync(PROFILE_DIR + '/webapps');
|
||||
|
||||
// launch about:config in firefox for more pref names.
|
||||
var options = {
|
||||
profile: PROFILE_DIR,
|
||||
|
||||
prefs: {
|
||||
// turn on dump so it will output to stdout
|
||||
'browser.dom.window.dump.enabled': true,
|
||||
|
||||
// bump up max workers
|
||||
'dom.workers.maxPerDomain': 100
|
||||
},
|
||||
|
||||
settings: {
|
||||
'lockscreen.enabled': true
|
||||
},
|
||||
|
||||
apps: {
|
||||
'my-new-app.com': __dirname + '/../test/fixtures/test-app-a',
|
||||
'other-app.com': __dirname + '/../test/fixtures/test-app-b'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// this will create a temp dir for a profile that will be
|
||||
// removed when the process closes... keep: true can be passed
|
||||
// to turn off the default behaviour
|
||||
profile.create(options, function(err, instance) {
|
||||
console.log('user.js');
|
||||
console.log(fs.readFileSync(instance.path + '/user.js', 'utf8').trim());
|
||||
|
||||
console.log('\n----\n');
|
||||
|
||||
console.log('settings.json');
|
||||
console.log(fs.readFileSync(instance.path + '/settings.json', 'utf8').trim());
|
||||
|
||||
console.log('\n see profile at: ', instance.path);
|
||||
});
|
||||
81
gaia/tests/jsmarionette/runner/mozilla-profile-builder/index.js
Executable file
81
gaia/tests/jsmarionette/runner/mozilla-profile-builder/index.js
Executable file
|
|
@ -0,0 +1,81 @@
|
|||
'use strict';
|
||||
// we obvious always need to create a profile =p
|
||||
var Profile = require('./lib/profile'),
|
||||
profileOption = require('./lib/options/profile');
|
||||
|
||||
/**
|
||||
* Profile generation is made up of calling out to many smaller
|
||||
* modules.. This primary module handles the glue and ordering
|
||||
* of how the smaller modules are invoked.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Object to module mappings. Individual modules may consume one or more options
|
||||
* but are only loaded when their primary option is invoked.
|
||||
*/
|
||||
var OPTIONS = {
|
||||
'apps': './lib/options/apps',
|
||||
'prefs': './lib/options/prefs',
|
||||
'settings': './lib/options/settings',
|
||||
'extracts': './lib/options/extracts'
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a profile for use with a gecko product.
|
||||
*
|
||||
* Master copy of options is kept in the README.md.
|
||||
*
|
||||
* @param {Object} options (see docs README.md or individual option files).
|
||||
* @param {Function} callback [Error err, Profile profile].
|
||||
*/
|
||||
function create(options, callback) {
|
||||
options = options || {};
|
||||
|
||||
// always create a profile first.
|
||||
profileOption(options, function(err, path) {
|
||||
if (err) return callback(err);
|
||||
|
||||
// create the object representing the profile.
|
||||
var instance = new Profile(path);
|
||||
|
||||
// next step is to build the chain of actions
|
||||
var pending;
|
||||
var actions = [];
|
||||
|
||||
for (var key in options) {
|
||||
var module = OPTIONS[key];
|
||||
if (module) {
|
||||
actions.push(require(module));
|
||||
}
|
||||
}
|
||||
|
||||
pending = actions.length;
|
||||
|
||||
// abort async if we don't have any other steps
|
||||
if (pending === 0) {
|
||||
return process.nextTick(callback.bind(null, null, instance));
|
||||
}
|
||||
|
||||
var lastErr = null;
|
||||
// executed when each action ends.
|
||||
function next(err) {
|
||||
// XXX: allow options to set properties on the profile object?
|
||||
|
||||
// we don't fail on error but record the most recent one and pass it up.
|
||||
lastErr = err || lastErr;
|
||||
if (--pending === 0) {
|
||||
callback(lastErr, instance);
|
||||
}
|
||||
}
|
||||
|
||||
var action;
|
||||
while ((action = actions.shift())) {
|
||||
// every option function accepts a profile, the options and a callback
|
||||
action(path, options, next);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
module.exports.create = create;
|
||||
module.exports.Profile = Profile;
|
||||
76
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/createprofile.js
Executable file
76
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/createprofile.js
Executable file
|
|
@ -0,0 +1,76 @@
|
|||
'use strict';
|
||||
var fs = require('fs'),
|
||||
tmpdir = require('./tmpdir');
|
||||
|
||||
var Profiles = {
|
||||
/**
|
||||
* Attempts to find a gaia profile from a directory and then copies it to a
|
||||
* new directory.
|
||||
*
|
||||
* @param {String} path to runtime (/Applications/B2G.App).
|
||||
* @param {Function} callback [Error err, String path].
|
||||
*/
|
||||
gaia: function(path, callback) {
|
||||
var gaiaProfile = require('./gaiaprofile');
|
||||
gaiaProfile(path, function(err, basePath) {
|
||||
if (err) return callback(err);
|
||||
this.baseProfile(basePath, callback);
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a new profile by copying an existing one.
|
||||
*
|
||||
* @param {String} path to copy profile from.
|
||||
* @param {Function} callback [Error err, String path].
|
||||
*/
|
||||
baseProfile: function(path, callback) {
|
||||
var traverseDir = require('traverse-directory');
|
||||
this.tmp(function(err, target) {
|
||||
var traverse = traverseDir(path, target);
|
||||
|
||||
traverse.file(function(source, target, next) {
|
||||
next(traverseDir.copyfile, source, target);
|
||||
});
|
||||
|
||||
traverse.directory(function(source, target, next) {
|
||||
var leaf = source.replace(path, '');
|
||||
|
||||
// the / here is really important otherwise we will end up symlinking
|
||||
// the entire webapps directory is not what we want.
|
||||
if (leaf.indexOf('webapps/') !== -1) {
|
||||
next(traverseDir.symlinkdir, source, target);
|
||||
return;
|
||||
}
|
||||
next(traverseDir.copydir, source, target);
|
||||
});
|
||||
|
||||
traverse.run(function() {
|
||||
if (err) return callback(err);
|
||||
callback(null, target);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Verifies profile exists and returns it or an error.
|
||||
*
|
||||
* @param {Function} callback [Error err, String path].
|
||||
*/
|
||||
profile: function(path, callback) {
|
||||
fs.exists(path, function(pathExists) {
|
||||
if (pathExists) return callback(null, path);
|
||||
|
||||
callback(new Error('invalid profile path: "' + path + '" is not found.'));
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a tmpdir for profile to reside in.
|
||||
*
|
||||
* @param {Function} callback [Error err, dir].
|
||||
*/
|
||||
tmp: tmpdir
|
||||
};
|
||||
|
||||
module.exports = Profiles;
|
||||
32
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/gaiaprofile.js
Executable file
32
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/gaiaprofile.js
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
'use strict';
|
||||
var fsPath = require('path'),
|
||||
fs = require('fs');
|
||||
|
||||
/**
|
||||
* Detects the gaia profile inside of a runtime directory.
|
||||
*
|
||||
* @param {String} path of runtime.
|
||||
* @return {String} location of base profile.
|
||||
*/
|
||||
function gaiaProfile (basePath, callback) {
|
||||
var foundPath = false;
|
||||
var pending = 2;
|
||||
|
||||
function next(path, exists) {
|
||||
if (exists) {
|
||||
foundPath = true;
|
||||
callback(null, path);
|
||||
}
|
||||
|
||||
if (--pending === 0 && !foundPath) {
|
||||
callback(new Error('could not find path to gaia profile'));
|
||||
}
|
||||
}
|
||||
|
||||
var linux = fsPath.join(basePath, 'gaia', 'profile');
|
||||
fs.exists(linux, next.bind(null, linux));
|
||||
var macos = fsPath.join(basePath, 'Contents', 'Resources', 'gaia', 'profile');
|
||||
fs.exists(macos, next.bind(null, macos));
|
||||
}
|
||||
|
||||
module.exports = gaiaProfile;
|
||||
25
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/options/apps.js
Executable file
25
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/options/apps.js
Executable file
|
|
@ -0,0 +1,25 @@
|
|||
'use strict';
|
||||
var installApps = require('packaged-webapp').installApps;
|
||||
|
||||
function apps(profile, options, callback) {
|
||||
// abort if no apps are given
|
||||
if (
|
||||
// no options
|
||||
!options ||
|
||||
// no apps
|
||||
!options.apps ||
|
||||
// empty app object
|
||||
(Object.keys(options.apps).length === 0)
|
||||
) {
|
||||
return process.nextTick(callback.bind(null, null, profile));
|
||||
}
|
||||
|
||||
var list = [];
|
||||
for (var origin in options.apps) {
|
||||
list.push({ origin: origin, source: options.apps[origin] });
|
||||
}
|
||||
|
||||
installApps(profile, list, callback);
|
||||
}
|
||||
|
||||
module.exports = apps;
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
'use strict';
|
||||
var fse = require('fs-extra');
|
||||
|
||||
/**
|
||||
* Recursively copy a directory of prebuilt files into a profile. Used for
|
||||
* overwriting files in a clean profile for tests.
|
||||
*
|
||||
* Options:
|
||||
* - (Object) extract: Directory to copy into profile.
|
||||
*
|
||||
* @param {String} profile path to profile.
|
||||
* @param {Object} options for directory.
|
||||
* @param {Function} callback fires after successfully copying.
|
||||
*/
|
||||
function copyExtract(profile, options, callback) {
|
||||
// we userPrefs was used in the past
|
||||
var extractsDir = options.extracts;
|
||||
// don't do anything unless there is a directory to copy
|
||||
if (!extractsDir) {
|
||||
return process.nextTick(callback.bind(null, null, profile));
|
||||
}
|
||||
|
||||
fse.copy(extractsDir, profile, function(err) {
|
||||
if (err) return callback(err);
|
||||
return callback(null, profile);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = copyExtract;
|
||||
32
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/options/prefs.js
Executable file
32
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/options/prefs.js
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
'use strict';
|
||||
var fs = require('fs'),
|
||||
fsPath = require('path'),
|
||||
pref = require('../pref');
|
||||
|
||||
var USER_PREF = 'user.js';
|
||||
/**
|
||||
* Appends prefs to the given profile.
|
||||
*
|
||||
* Options:
|
||||
* - (Object) prefs: key/value pairs.
|
||||
*
|
||||
* @param {String} profile path to profile.
|
||||
* @param {Object} options for prefs.
|
||||
* @param {Function} callback fires after successfully saving.
|
||||
*/
|
||||
function appendPrefs(profile, options, callback) {
|
||||
// we userPrefs was used in the past
|
||||
var prefsConfig = options.prefs || options.userPrefs;
|
||||
// don't do anything unless there are some new prefs
|
||||
if (!prefsConfig || Object.keys(prefsConfig).length === 0) {
|
||||
return process.nextTick(callback.bind(null, null, profile));
|
||||
}
|
||||
|
||||
var filename = fsPath.join(profile, USER_PREF);
|
||||
fs.appendFile(filename, '\n' + pref(prefsConfig), function(err) {
|
||||
if (err) return callback(err);
|
||||
callback(null, profile);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = appendPrefs;
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
'use strict';
|
||||
/** handles mutation of settings.json */
|
||||
var SETTINGS = 'settings.json';
|
||||
var PERMISSIONS_DB = 'permissions.sqlite';
|
||||
|
||||
var fs = require('fs'),
|
||||
fsPath = require('path');
|
||||
|
||||
/**
|
||||
* Updates the settings.json file of a given profile
|
||||
*
|
||||
* @param {String} profile path.
|
||||
* @param {Options} options with .settings.
|
||||
* @param {Function} callback [Error err, profile].
|
||||
*/
|
||||
function settings(profile, options, callback) {
|
||||
if (!options || !options.settings) {
|
||||
return process.nextTick(callback.bind(null, null, profile));
|
||||
}
|
||||
|
||||
// location of settings.json
|
||||
var settingsPath = fsPath.join(profile, SETTINGS);
|
||||
// location of permissions
|
||||
var permissionsPath = fsPath.join(profile, PERMISSIONS_DB);
|
||||
|
||||
function readSettings() {
|
||||
fs.readFile(settingsPath, 'utf8', function(err, content) {
|
||||
var json;
|
||||
try {
|
||||
json = JSON.parse(content);
|
||||
} catch (e) {
|
||||
return callback(e);
|
||||
}
|
||||
|
||||
writeSettings(json);
|
||||
});
|
||||
}
|
||||
|
||||
function writeSettings(original) {
|
||||
// copy new settings over
|
||||
var newSettings = options.settings;
|
||||
for (var name in newSettings) {
|
||||
original[name] = newSettings[name];
|
||||
}
|
||||
|
||||
var pending = 2;
|
||||
function next(err) {
|
||||
if (err) {
|
||||
callback && callback(err);
|
||||
callback = null;
|
||||
}
|
||||
|
||||
if (--pending === 0)
|
||||
callback(null, profile);
|
||||
}
|
||||
|
||||
fs.exists(permissionsPath, function(itDoes) {
|
||||
if (!itDoes)
|
||||
return next();
|
||||
|
||||
fs.unlink(permissionsPath, next);
|
||||
});
|
||||
|
||||
// and finally write the file back out
|
||||
fs.writeFile(
|
||||
settingsPath,
|
||||
// slows it down a but but makes it readable!
|
||||
JSON.stringify(original, null, 2),
|
||||
next
|
||||
);
|
||||
}
|
||||
|
||||
// check if file exists
|
||||
fs.exists(settingsPath, function(fileExists) {
|
||||
if (fileExists) {
|
||||
// when file exists read it then write
|
||||
readSettings();
|
||||
} else {
|
||||
// otherwise simply write
|
||||
writeSettings({});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = settings;
|
||||
60
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/pref.js
Executable file
60
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/pref.js
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
'use strict';
|
||||
var PREF = 'pref';
|
||||
|
||||
/**
|
||||
* Builds a multi line string of prefs.
|
||||
*
|
||||
* @param {Object} prefs key/value pairs.
|
||||
* @return {String} lines
|
||||
*/
|
||||
function prefs(object) {
|
||||
var result = [];
|
||||
Object.keys(object).forEach(function(key) {
|
||||
result.push(pref(key, object[key]));
|
||||
});
|
||||
|
||||
return result.join('\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a pref string based on a name/value pair.
|
||||
*
|
||||
* pref('browser.dom.window.dump.enabled', true);
|
||||
* // => 'pref("browser.dom.window.dump.enabled", true);'
|
||||
*
|
||||
* // can also be given a single object
|
||||
*
|
||||
* pref({
|
||||
* 'key': value
|
||||
* });
|
||||
* // => multiple lines
|
||||
*
|
||||
* @param {String} name of pref;
|
||||
* @param {Object|Number|String} value of pref.
|
||||
* @return {String} version of pref.
|
||||
*/
|
||||
function pref(name, value) {
|
||||
if (!value && typeof name === 'object')
|
||||
return prefs(name);
|
||||
|
||||
var type = typeof value;
|
||||
var out = PREF + '("' + name + '", ';
|
||||
|
||||
switch (type) {
|
||||
case 'string':
|
||||
out += '"' + value + '"';
|
||||
break;
|
||||
case 'number':
|
||||
case 'boolean':
|
||||
out += value;
|
||||
break;
|
||||
default:
|
||||
out += '"' + JSON.stringify(value) + '"';
|
||||
break;
|
||||
}
|
||||
|
||||
out += ');';
|
||||
return out;
|
||||
}
|
||||
|
||||
module.exports = pref;
|
||||
37
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/tmpdir.js
Executable file
37
gaia/tests/jsmarionette/runner/mozilla-profile-builder/lib/tmpdir.js
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
'use strict';
|
||||
var tmp = require('tmp');
|
||||
|
||||
// https://github.com/mozilla-b2g/mozilla-profile-builder/issues/2
|
||||
process.on('SIGINT', function() {});
|
||||
|
||||
/**
|
||||
* Wrapper around common tmp dir creation functionality.
|
||||
*
|
||||
* Options:
|
||||
* - (Boolean) keep: when true profile will not be removed on process close.
|
||||
*
|
||||
* @param {Object} options for tmp dir creation.
|
||||
* @param {Function} callback for tmp dir creation.
|
||||
*/
|
||||
function tmpdir(options, callback) {
|
||||
if (typeof options === 'function') {
|
||||
callback = options;
|
||||
options = null;
|
||||
}
|
||||
|
||||
// configuration for temp directory
|
||||
// https://github.com/raszi/node-tmp#options
|
||||
var tmpConfig = {};
|
||||
if (options && options.keep) {
|
||||
// keep directory for later
|
||||
tmpConfig.keep = true;
|
||||
} else {
|
||||
// discard directory when process closes.
|
||||
tmpConfig.unsafeCleanup = true;
|
||||
tmpConfig.keep = false;
|
||||
}
|
||||
|
||||
tmp.dir(tmpConfig, callback);
|
||||
}
|
||||
|
||||
module.exports = tmpdir;
|
||||
15
gaia/tests/jsmarionette/runner/mozilla-profile-builder/package.json
Executable file
15
gaia/tests/jsmarionette/runner/mozilla-profile-builder/package.json
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "mozilla-profile-builder",
|
||||
"version": "0.4.0",
|
||||
"author": "James Lal [:lightsofapollo]",
|
||||
"description": "Create profiles for firefox/b2g desktop",
|
||||
"main": "index.js",
|
||||
|
||||
"dependencies" : {
|
||||
"fs-extra": "~0.8.1",
|
||||
"packaged-webapp": "~0.1.1",
|
||||
"remove": "~0.1",
|
||||
"tmp": "~0.0.21",
|
||||
"traverse-directory": "~0.1.0"
|
||||
}
|
||||
}
|
||||
109
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/createprofile.js
Executable file
109
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/createprofile.js
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
suite('createprofile', function() {
|
||||
var subject = require('../lib/createprofile'),
|
||||
fs = require('fs'),
|
||||
fsPath = require('path');
|
||||
|
||||
suite('.gaia', function() {
|
||||
var target = __dirname + '/fixtures/b2g-mac';
|
||||
var path;
|
||||
|
||||
setup(function(done) {
|
||||
subject.gaia(target, function(err, _path) {
|
||||
if (err) return done(err);
|
||||
path = _path;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('copied files from profile', function() {
|
||||
assert.ok(fs.existsSync(path + '/yey.js'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('.baseProfile', function() {
|
||||
var target = __dirname + '/fixtures/b2g-profile';
|
||||
|
||||
var path;
|
||||
setup(function(done) {
|
||||
subject.baseProfile(target, function(err, _path) {
|
||||
if (err) return done(err);
|
||||
path = _path;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('exists', function(done) {
|
||||
subject.profile(path, done);
|
||||
});
|
||||
|
||||
test('is a new path', function() {
|
||||
assert.ok(path !== target);
|
||||
});
|
||||
|
||||
[
|
||||
'webapps/a.js',
|
||||
'webapps/webapps.json',
|
||||
'settings.json'
|
||||
].forEach(function(file) {
|
||||
test('copies ' + file, function() {
|
||||
var targetFile = fsPath.join(target, file);
|
||||
// verify they are not symlinked
|
||||
var stat = fs.lstatSync(targetFile);
|
||||
assert.ok(!stat.isSymbolicLink(), 'is not a symlink');
|
||||
|
||||
assert.equal(
|
||||
fs.readFileSync(targetFile, 'utf8'),
|
||||
fs.readFileSync(path + '/' + file, 'utf8'),
|
||||
'file equality'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
[
|
||||
'webapps/app1',
|
||||
'webapps/app2'
|
||||
].forEach(function(file) {
|
||||
test('symlinks ' + file, function() {
|
||||
var sourceFile = fsPath.join(target, file);
|
||||
var targetFile = fsPath.join(path, file);
|
||||
|
||||
assert.ok(fs.existsSync(targetFile), 'link exists');
|
||||
assert.equal(sourceFile, fs.readlinkSync(targetFile), 'is symlinked');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
test('.tmp', function(done) {
|
||||
subject.tmp(function(err, profile) {
|
||||
if (err) return done(err);
|
||||
assert.ok(fs.existsSync(profile));
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suite('.profile', function() {
|
||||
test('missing', function(done) {
|
||||
subject.profile('probably/is/not/here', function(err) {
|
||||
if (!err) done(new Error('should throw an error'));
|
||||
|
||||
assert.ok(/invalid/.test(err.message));
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('exists', function(done) {
|
||||
subject.tmp(function(err, path) {
|
||||
subject.profile(path, function(err, givenPath) {
|
||||
if (err) return done(err);
|
||||
assert.equal(path, givenPath);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/permissions.sqlite
vendored
Executable file
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/permissions.sqlite
vendored
Executable file
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/settings.json
vendored
Executable file
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/settings.json
vendored
Executable file
File diff suppressed because one or more lines are too long
187
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/user.js
vendored
Executable file
187
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/user.js
vendored
Executable file
|
|
@ -0,0 +1,187 @@
|
|||
user_pref("browser.manifestURL", "app://system.gaiamobile.org/manifest.webapp");
|
||||
user_pref("browser.homescreenURL", "app://system.gaiamobile.org/index.html");
|
||||
user_pref("network.http.max-connections-per-server", 15);
|
||||
user_pref("ril.debugging.enabled", false);
|
||||
user_pref("network.dns.localDomains", "gaiamobile.org,bluetooth.gaiamobile.org,browser.gaiamobile.org,calendar.gaiamobile.org,camera.gaiamobile.org,clock.gaiamobile.org,communications.gaiamobile.org,costcontrol.gaiamobile.org,email.gaiamobile.org,fm.gaiamobile.org,gallery.gaiamobile.org,homescreen.gaiamobile.org,keyboard.gaiamobile.org,music.gaiamobile.org,pdfjs.gaiamobile.org,settings.gaiamobile.org,sms.gaiamobile.org,system.gaiamobile.org,video.gaiamobile.org,wallpaper.gaiamobile.org");
|
||||
pref("geo.gps.supl_server", "supl.izatcloud.net");
|
||||
pref("geo.gps.supl_port", 22024);
|
||||
pref("dom.payment.provider.0.name", "firefoxmarket");
|
||||
pref("dom.payment.provider.0.description", "marketplace.firefox.com");
|
||||
pref("dom.payment.provider.0.uri", "https://marketplace.firefox.com/mozpay/?req=");
|
||||
pref("dom.payment.provider.0.type", "mozilla/payments/pay/v1");
|
||||
pref("dom.payment.provider.0.requestMethod", "GET");
|
||||
// Send these sites a custom user-agent. Bugs to remove each override after
|
||||
// evangelism are included.
|
||||
pref("general.useragent.override.youtube.com", "\(Mobile#(Android; Mobile"); // bug 827636
|
||||
pref("general.useragent.override.accounts.google.com", "\(Mobile#(Android; Mobile"); // bug 805164
|
||||
pref("general.useragent.override.maps.google.com", "\(Mobile#(Android; Mobile"); // bug 802981
|
||||
pref("general.useragent.override.uol.com.br", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826330
|
||||
pref("general.useragent.override.live.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826332
|
||||
pref("general.useragent.override.globo.com", "\(Mobile#(Android; Mobile"); // bug 826335
|
||||
pref("general.useragent.override.yahoo.com", "\(Mobile#(Android; Mobile"); // bug 826338
|
||||
pref("general.useragent.override.mercadolivre.com.br", "\(Mobile#(Android; Mobile"); // bug 826342
|
||||
pref("general.useragent.override.ig.com.br", "\(Mobile#(Android; Mobile"); // bug 826343
|
||||
pref("general.useragent.override.abril.com.br", "\(Mobile#(Android; Mobile"); // bug 826344
|
||||
pref("general.useragent.override.msn.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826347
|
||||
pref("general.useragent.override.linkedin.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826348
|
||||
pref("general.useragent.override.itau.com.br", "\(Mobile#(Android; Mobile"); // bug 826353
|
||||
pref("general.useragent.override.tumblr.com", "\(Mobile#(Android; Mobile"); // bug 826361
|
||||
pref("general.useragent.override.4shared.com", "\(Mobile#(Android; Mobile"); // bug 826502
|
||||
pref("general.useragent.override.orkut.com.br", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826504
|
||||
pref("general.useragent.override.r7.com", "\(Mobile#(Android; Mobile"); // bug 826510
|
||||
pref("general.useragent.override.amazon.com", "\(Mobile#(Android; Mobile"); // bug 826512
|
||||
pref("general.useragent.override.estadao.com.br", "\(Mobile#(Android; Mobile"); // bug 826514
|
||||
pref("general.useragent.override.letras.mus.br", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826517
|
||||
pref("general.useragent.override.bb.com.br", "\(Mobile#(Android; Mobile"); // bug 826711
|
||||
pref("general.useragent.override.orkut.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 826712
|
||||
pref("general.useragent.override.noticias.uol.com.br", "\(Mobile#(Android; Mobile"); // bug 826715
|
||||
pref("general.useragent.override.olx.com.br", "\(Mobile#(Android; Mobile"); // bug 826720
|
||||
pref("general.useragent.override.bancobrasil.com.br", "\(Mobile#(Android; Mobile"); // bug 826736
|
||||
pref("general.useragent.override.techtudo.com.br", "\(Mobile#(Android; Mobile"); // bug 826845
|
||||
pref("general.useragent.override.clickjogos.uol.com.br", "\(Mobile#(Android; Mobile"); // bug 826949
|
||||
pref("general.useragent.override.ebay.com", "\(Mobile#(Android; Mobile");// bug 826958
|
||||
pref("general.useragent.override.bing.com", "\(Mobile#(Android; Mobile"); // bug 827622
|
||||
pref("general.useragent.override.tam.com.br", "\(Mobile#(Android; Mobile"); // bug 827623
|
||||
pref("general.useragent.override.pontofrio.com.br", "\(Mobile#(Android; Mobile"); // bug 827624
|
||||
pref("general.useragent.override.pagseguro.uol.com.br", "\(Mobile#(Android; Mobile"); // bug 827625
|
||||
pref("general.useragent.override.magazineluiza.com.br", "\(Mobile#(Android; Mobile"); // bug 827626
|
||||
pref("general.useragent.override.bol.uol.com.br", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 827627
|
||||
pref("general.useragent.override.groupon.com.br", "\(Mobile#(Android; Mobile"); // bug 827628
|
||||
pref("general.useragent.override.vagalume.com.br", "\(Mobile#(Android; Mobile"); // bug 827630
|
||||
pref("general.useragent.override.climatempo.com.br", "\(Mobile#(Android; Mobile"); // bug 827631
|
||||
pref("general.useragent.override.tecmundo.com.br", "\(Mobile#(Android; Mobile"); // bug 827632
|
||||
pref("general.useragent.override.hao123.com", "\(Mobile#(Android; Mobile"); // bug 827633
|
||||
pref("general.useragent.override.imdb.com", "\(Mobile#(Android; Mobile"); // bug 827634
|
||||
pref("general.useragent.override.lancenet.com.br", "\(Mobile#(Android; Mobile"); // bug 827576
|
||||
pref("general.useragent.override.webmotors.com.br", "\(Mobile#(Android; Mobile"); // bug 827573
|
||||
pref("general.useragent.override.mercadolibre.com.co", "\(Mobile#(Android; Mobile"); // bug 827661
|
||||
pref("general.useragent.override.elespectador.com", "\(Mobile#(Android; Mobile"); // bug 827664
|
||||
pref("general.useragent.override.slideshare.net", "\(Mobile#(Android; Mobile"); // bug 827666
|
||||
pref("general.useragent.override.scribd.com", "\(Mobile#(Android; Mobile"); // bug 827668
|
||||
pref("general.useragent.override.elpais.com.co", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 827670
|
||||
pref("general.useragent.override.olx.com.co", "\(Mobile#(Android; Mobile"); // bug 827672
|
||||
pref("general.useragent.override.avianca.com", "\(Mobile#(Android; Mobile"); // bug 827674
|
||||
pref("general.useragent.override.marca.com", "\(Mobile#(Android; Mobile"); // bug 827678
|
||||
pref("general.useragent.override.wp.pl", "\(Mobile#(Android; Mobile"); // bug 828351
|
||||
pref("general.useragent.override.gazeta.pl", "\(Mobile#(Android; Mobile"); // bug 828354
|
||||
pref("general.useragent.override.o2.pl", "\(Mobile#(Android; Mobile"); // bug 828356
|
||||
pref("general.useragent.override.ceneo.pl", "\(Mobile#(Android; Mobile"); // bug 828358
|
||||
pref("general.useragent.override.sport.pl", "\(Mobile#(Android; Mobile"); // bug 828360
|
||||
pref("general.useragent.override.tvn24.pl", "\(Mobile#(Android; Mobile"); // bug 828362
|
||||
pref("general.useragent.override.nk.pl", "\(Mobile#(Android; Mobile"); // bug 828364
|
||||
pref("general.useragent.override.wyborcza.biz", "\(Mobile#(Android; Mobile"); // bug 828366
|
||||
pref("general.useragent.override.money.pl", "\(Mobile#(Android; Mobile"); // bug 828369
|
||||
pref("general.useragent.override.ingbank.pl", "\(Mobile#(Android; Mobile"); // bug 828371
|
||||
pref("general.useragent.override.tablica.pl", "\(Mobile#(Android; Mobile"); // bug 828374
|
||||
pref("general.useragent.override.plotek.pl", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 828376
|
||||
pref("general.useragent.override.wyborcza.pl", "\(Mobile#(Android; Mobile"); // bug 828378
|
||||
pref("general.useragent.override.deser.pl", "\(Mobile#(Android; Mobile"); // bug 828380
|
||||
pref("general.useragent.override.as.com", "\(Mobile#(Android; Mobile"); // bug 828383
|
||||
pref("general.useragent.override.ebay.es", "\(Mobile#(Android; Mobile"); // bug 828386
|
||||
pref("general.useragent.override.amazon.es", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 828388
|
||||
pref("general.useragent.override.20minutos.es", "\(Mobile#(Android; Mobile"); // bug 828390
|
||||
pref("general.useragent.override.infojobs.net", "\(Mobile#(Android; Mobile"); // bug 828392
|
||||
pref("general.useragent.override.vimeo.com", "\(Mobile#(Android; Mobile"); // bug 828394
|
||||
pref("general.useragent.override.elconfidencial.com", "\(Mobile#(Android; Mobile"); // bug 828397
|
||||
pref("general.useragent.override.antena3.com", "\(Mobile#(Android; Mobile"); // bug 828399
|
||||
pref("general.useragent.override.ingdirect.es", "\(Mobile#(Android; Mobile"); // bug 828401
|
||||
pref("general.useragent.override.fotocasa.es", "\(Mobile#(Android; Mobile"); // bug 828403
|
||||
pref("general.useragent.override.orange.es", "\(Mobile#(Android; Mobile"); // bug 828406
|
||||
pref("general.useragent.override.amazon.co.uk", "\(Mobile#(Android; Mobile"); // bug 828412
|
||||
pref("general.useragent.override.paginasamarillas.es", "\(Mobile#(Android; Mobile"); // bug 828414
|
||||
pref("general.useragent.override.loteriasyapuestas.es", "\(Mobile#(Android; Mobile"); // bug 828416
|
||||
pref("general.useragent.override.bbva.es", "\(Mobile#(Android; Mobile"); // bug 828418
|
||||
pref("general.useragent.override.booking.com", "\(Mobile#(Android; Mobile"); // bug 828420
|
||||
pref("general.useragent.override.publico.es", "\(Mobile#(Android; Mobile"); // bug 828422
|
||||
pref("general.useragent.override.mercadolibre.com.ve", "\(Mobile#(Android; Mobile"); // bug 828425
|
||||
pref("general.useragent.override.espn.go.com", "\(Mobile#(Android; Mobile"); // bug 828431
|
||||
pref("general.useragent.override.olx.com.ve", "\(Mobile#(Android; Mobile"); // bug 828433
|
||||
pref("general.useragent.override.rincondelvago.com", "\(Mobile#(Android; Mobile"); // bug 828435
|
||||
pref("general.useragent.override.movistar.com.ve", "\(Mobile#(Android; Mobile"); // bug 828439
|
||||
pref("general.useragent.override.despegar.com.ve", "\(Mobile#(Android; Mobile"); // bug 828443
|
||||
pref("general.useragent.override.bumeran.com.ve", "\(Mobile#(Android; Mobile"); // bug 828445
|
||||
pref("general.useragent.override.petardas.com", "\(Mobile#(Android; Mobile"); // bug 828448
|
||||
pref("general.useragent.override.mail.google.com", "\(Mobile#(Android; Mobile"); // bug 827869
|
||||
pref("general.useragent.override.enfemenino.com", "\(Mobile#(Android; Mobile"); // bug 843109
|
||||
pref("general.useragent.override.movil.bankinter.es", "\(Mobile#(Android; Mobile"); // bug 843112
|
||||
pref("general.useragent.override.einforma.com", "\(Mobile#(Android; Mobile"); // bug 843114
|
||||
pref("general.useragent.override.wwwhatsnew.com", "\(Mobile#(Android; Mobile"); // bug 843116
|
||||
pref("general.useragent.override.askthebuilder.com", "\(Mobile#(Android; Mobile"); // bug 843119
|
||||
pref("general.useragent.override.tor.com", "\(Mobile#(Android; Mobile"); // bug 843121
|
||||
pref("general.useragent.override.maruccisports.com", "\(Mobile#(Android; Mobile"); // bug 843124
|
||||
pref("general.useragent.override.es.playstation.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 843126
|
||||
pref("general.useragent.override.11870.com", "\(Mobile#(Android; Mobile"); // bug 843129
|
||||
pref("general.useragent.override.iphonejuegosgratis.com", "\(Mobile#(Android; Mobile"); // bug 843200
|
||||
pref("general.useragent.override.comunio.es", "\(Mobile#(Android; Mobile"); // bug 843132
|
||||
pref("general.useragent.override.news.google.com", "\(Mobile#(Android; Mobile"); // bug 843134
|
||||
pref("general.useragent.override.deviantart.com", "\(Mobile#(Android; Mobile"); // bug 843136
|
||||
pref("general.useragent.override.nytimes.com", "\(Mobile#(Android; Mobile"); // bug 843137
|
||||
pref("general.useragent.override.consumersearch.com", "\(Mobile#(Android; Mobile"); // bug 843139
|
||||
pref("general.useragent.override.foodily.com", "\(Mobile#(Android; Mobile"); // bug 843141
|
||||
pref("general.useragent.override.foxnewsinsider.com", "\(Mobile#(Android; Mobile"); // bug 843143
|
||||
pref("general.useragent.override.edmunds.com", "\(Mobile#(Android; Mobile"); // bug 843146
|
||||
pref("general.useragent.override.icanhas.cheezburger.com", "\(Mobile#(Android; Mobile"); // bug 843197
|
||||
pref("general.useragent.override.arstechnica.com", "\(Mobile#(Android; Mobile"); // bug 843149
|
||||
pref("general.useragent.override.citibank.com", "\(Mobile#(Android; Mobile"); // bug 843151
|
||||
pref("general.useragent.override.games.com", "\(Mobile#(Android; Mobile"); // bug 843153
|
||||
pref("general.useragent.override.nba.com", "\(Mobile#(Android; Mobile"); // bug 843154
|
||||
pref("general.useragent.override.orbitz.com", "\(Mobile#(Android; Mobile"); // bug 843156
|
||||
pref("general.useragent.override.starwoodhotels.com", "\(Mobile#(Android; Mobile"); // bug 843158
|
||||
pref("general.useragent.override.ehow.com", "\(Mobile#(Android; Mobile"); // bug 843160
|
||||
pref("general.useragent.override.urbanspoon.com", "\(Mobile#(Android; Mobile"); // bug 843162
|
||||
pref("general.useragent.override.virginatlantic.com", "\(Mobile#(Android; Mobile"); // bug 843165
|
||||
pref("general.useragent.override.cheaptickets.com", "\(Mobile#(Android; Mobile"); // bug 843168
|
||||
pref("general.useragent.override.etsy.com", "\(Mobile#(Android; Mobile"); // bug 843170
|
||||
pref("general.useragent.override.zimbio.com", "\(Mobile#(Android; Mobile"); // bug 843172
|
||||
pref("general.useragent.override.thinkgeek.com", "\(Mobile#(Android; Mobile"); // bug 843174
|
||||
pref("general.useragent.override.tylted.com", "\(Mobile#(Android; Mobile"); // bug 843176
|
||||
pref("general.useragent.override.txt2nite.com", "\(Mobile#(Android; Mobile"); // bug 843178
|
||||
pref("general.useragent.override.slashgear.com", "\(Mobile#(Android; Mobile"); // bug 843181
|
||||
pref("general.useragent.override.chevrolet.com", "\(Mobile#(Android; Mobile"); // bug 843186
|
||||
pref("general.useragent.override.deadline.com", "\(Mobile#(Android; Mobile"); // bug 848854
|
||||
pref("general.useragent.override.3g.qq.com", "\(Mobile#(Android; Mobile"); // bug 866577
|
||||
pref("general.useragent.override.aprod.hu", "\\(Mobile#(Android; Mobile"); // bug 878220
|
||||
pref("general.useragent.override.arukereso.hu", "\\(Mobile#(Android; Mobile"); // bug 878222
|
||||
pref("general.useragent.override.badoo.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 878224
|
||||
pref("general.useragent.override.bet365.com", "\\(Mobile#(Android; Mobile"); // bug 878226
|
||||
pref("general.useragent.override.blikk.hu", "\\(Mobile#(Android; Mobile"); // bug 878228
|
||||
pref("general.useragent.override.citromail.hu", "\\(Mobile#(Android; Mobile"); // bug 878230
|
||||
pref("general.useragent.override.hazipatika.com", "\\(Mobile#(Android; Mobile"); // bug 878232
|
||||
pref("general.useragent.override.hvg.hu", "\\(Mobile#(Android; Mobile"); // bug 878234
|
||||
pref("general.useragent.override.jofogas.hu", "\\(Mobile#(Android; Mobile"); // bug 878236
|
||||
pref("general.useragent.override.koponyeg.hu", "\\(Mobile#(Android; Mobile"); // bug 878238
|
||||
pref("general.useragent.override.kuruc.info", "\\(Mobile#(Android; Mobile"); // bug 878240
|
||||
pref("general.useragent.override.nemzetisport.hu", "\\(Mobile#(Android; Mobile"); // bug 878242
|
||||
pref("general.useragent.override.nlcafe.hu", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 878244
|
||||
pref("general.useragent.override.port.hu", "\\(Mobile#(Android; Mobile"); // bug 878246
|
||||
pref("general.useragent.override.portfolio.hu", "\\(Mobile#(Android; Mobile"); // bug 878249
|
||||
pref("general.useragent.override.profession.hu", "\\(Mobile#(Android; Mobile"); // bug 878251
|
||||
pref("general.useragent.override.vatera.hu", "\\(Mobile#(Android; Mobile"); // bug 878253
|
||||
pref("general.useragent.override.24sata.hr", "\\(Mobile#(Android; Mobile"); // bug 878255
|
||||
pref("general.useragent.override.bet365.com", "\\(Mobile#(Android; Mobile"); // bug 878256
|
||||
pref("general.useragent.override.blackhatteam.com", "\\(Mobile#(Android; Mobile"); // bug 878258
|
||||
pref("general.useragent.override.cdm.me", "\\(Mobile#(Android; Mobile"); // bug 878260
|
||||
pref("general.useragent.override.download.com", "\\(Mobile#(Android; Mobile"); // bug 878262
|
||||
pref("general.useragent.override.haber.ba", "\\(Mobile#(Android; Mobile"); // bug 878264
|
||||
pref("general.useragent.override.i-dizajn.com", "\\(Mobile#(Android; Mobile"); // bug 878266
|
||||
pref("general.useragent.override.jutarnji.hr", "\\(Mobile#(Android; Mobile"); // bug 878268
|
||||
pref("general.useragent.override.kurir-info.rs", "\\(Mobile#(Android; Mobile"); // bug 878271
|
||||
pref("general.useragent.override.livescore.com", "\\(Mobile#(Android; Mobile"); // bug 878273
|
||||
pref("general.useragent.override.mondo.rs", "\\(Mobile#(Android; Mobile"); // bug 878275
|
||||
pref("general.useragent.override.naslovi.net", "\\(Mobile#(Android; Mobile"); // bug 878277
|
||||
pref("general.useragent.override.softonic.com", "\\(Mobile#(Android; Mobile"); // bug 878284
|
||||
pref("general.useragent.override.yandex.ru", "\\(Mobile#(Android; Mobile"); // bug 878286
|
||||
pref("general.useragent.override.ask.com", "\\(Mobile#(Android; Mobile"); // bug 878630
|
||||
pref("general.useragent.override.banorte.com", "\\(Mobile#(Android; Mobile"); // bug 878632
|
||||
pref("general.useragent.override.buenastareas.com", "\\(Mobile#(Android; Mobile"); // bug 878634
|
||||
pref("general.useragent.override.cnn.com", "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"); // bug 878635
|
||||
pref("general.useragent.override.eluniversal.com.mx", "\\(Mobile#(Android; Mobile"); // bug 878637
|
||||
pref("general.useragent.override.flickr.com", "\\(Mobile#(Android; Mobile"); // bug 878638
|
||||
pref("general.useragent.override.hootsuite.com", "\\(Mobile#(Android; Mobile"); // bug 878640
|
||||
pref("general.useragent.override.mercadolibre.com.mx", "\\(Mobile#(Android; Mobile"); // bug 878642
|
||||
pref("general.useragent.override.olx.com.mx", "\\(Mobile#(Android; Mobile"); // bug 878645
|
||||
pref("general.useragent.override.sat.gob.mx", "\\(Mobile#(Android; Mobile"); // bug 878647
|
||||
pref("general.useragent.override.univision.com", "\\(Mobile#(Android; Mobile"); // bug 878649
|
||||
pref("general.useragent.override.b92.net", "\\(Mobile#(Android; Mobile"); // bug 878651
|
||||
pref("general.useragent.override.redstarbelgrade.info", "\\(Mobile#(Android; Mobile"); // bug 878653
|
||||
pref("general.useragent.override.vesti-online.com", "\\(Mobile#(Android; Mobile"); // bug 878655
|
||||
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/a.js
vendored
Executable file
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/a.js
vendored
Executable file
|
|
@ -0,0 +1 @@
|
|||
{ foo: true };
|
||||
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/app1/app.js
vendored
Executable file
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/app1/app.js
vendored
Executable file
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/app2/app.js
vendored
Executable file
0
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/app2/app.js
vendored
Executable file
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/webapps.json
vendored
Executable file
1
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/b2g-profile/webapps/webapps.json
vendored
Executable file
|
|
@ -0,0 +1 @@
|
|||
{}
|
||||
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/test-app-a/manifest.webapp
vendored
Executable file
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/test-app-a/manifest.webapp
vendored
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "webapp a",
|
||||
"type": "web"
|
||||
}
|
||||
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/test-app-b/manifest.webapp
vendored
Executable file
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/fixtures/test-app-b/manifest.webapp
vendored
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "webapp b",
|
||||
"type": "web"
|
||||
}
|
||||
23
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/gaiaprofile.js
Executable file
23
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/gaiaprofile.js
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
suite('#gaiaProfile', function() {
|
||||
var subject = require('../lib/gaiaprofile');
|
||||
var linux = __dirname + '/fixtures/b2g-linux';
|
||||
var mac = __dirname + '/fixtures/b2g-mac';
|
||||
|
||||
test('mac', function(done) {
|
||||
subject(mac, function(err, path) {
|
||||
if (err) return done(err);
|
||||
assert.equal(path, mac + '/Contents/Resources/gaia/profile');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('linux', function(done) {
|
||||
subject(linux, function(err, path) {
|
||||
if (err) return done(err);
|
||||
assert.equal(path, linux + '/gaia/profile');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/helper.js
Executable file
4
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/helper.js
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
global.assert = require('assert');
|
||||
global.sinon = require('sinon');
|
||||
|
||||
global.sinon.assert.expose(global.assert, { prefix: '' });
|
||||
23
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/index.js
Executable file
23
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/index.js
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
suite('mozprofilebuilder', function() {
|
||||
var subject = require('../index'),
|
||||
Profile = require('../lib/profile'),
|
||||
fs = require('fs');
|
||||
|
||||
test('without options', function(done) {
|
||||
subject.create({}, function(err, profile) {
|
||||
if (err) return done(err);
|
||||
assert.ok(profile instanceof Profile, 'is Profile instance');
|
||||
assert.ok(fs.existsSync(profile.path), 'path exists');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('with options', function(done) {
|
||||
// mostly to make sure things don't explode- this functionality
|
||||
// should be 100% covered from the unit level and we should cover
|
||||
// the rest at the integration test level if possible.
|
||||
subject.create({ settings: {}, prefs: {}, apps: {} }, done);
|
||||
});
|
||||
});
|
||||
35
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/options/apps.js
Executable file
35
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/options/apps.js
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
|
||||
var baseProfile = __dirname + '/../fixtures/b2g-profile',
|
||||
apps = require('../../lib/options/apps'),
|
||||
createProfile = require('../../lib/createprofile');
|
||||
|
||||
suite('apps', function() {
|
||||
suite('app installation', function() {
|
||||
var options = {
|
||||
apps: {
|
||||
'testa.com': __dirname + '/../fixtures/test-app-a/',
|
||||
'testb.com': __dirname + '/../fixtures/test-app-b/'
|
||||
}
|
||||
};
|
||||
|
||||
var profile;
|
||||
setup(function(done) {
|
||||
createProfile.baseProfile(baseProfile, function(err, _profile) {
|
||||
if (err) return done(err);
|
||||
profile = _profile;
|
||||
apps(profile, options, done);
|
||||
});
|
||||
});
|
||||
|
||||
test('both apps are in primary manifest', function() {
|
||||
var installedApps = require(profile + '/webapps/webapps.json');
|
||||
|
||||
assert.ok(installedApps['testa.com'], 'testa.com');
|
||||
assert.ok(installedApps['testb.com'], 'testb.com');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
54
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/options/prefs.js
Executable file
54
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/options/prefs.js
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
suite('prefs', function() {
|
||||
var prefs = require('../../lib/options/prefs.js'),
|
||||
fixtureDir = __dirname + '/../fixtures/',
|
||||
fixture = fixtureDir + '/user.js',
|
||||
pref = require('../../lib/pref'),
|
||||
fs = require('fs');
|
||||
|
||||
function removeFixture() {
|
||||
if (fs.existsSync(fixture)) {
|
||||
fs.unlinkSync(fixture);
|
||||
}
|
||||
}
|
||||
|
||||
setup(removeFixture);
|
||||
teardown(removeFixture);
|
||||
|
||||
test('append to new file', function(done) {
|
||||
var config = { 'foobar': true };
|
||||
prefs(fixtureDir, { prefs: config }, function(err) {
|
||||
if (err) return done(err);
|
||||
assert.equal(
|
||||
fs.readFileSync(fixture, 'utf8'),
|
||||
'\n' + pref(config)
|
||||
);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('no prefs', function(done) {
|
||||
prefs(fixtureDir, {}, function(err, path) {
|
||||
assert.deepEqual(path, fixtureDir);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('append to existing file', function(done) {
|
||||
var prefix = 'foo';
|
||||
var config = { 'foobar': true, 'woot': true };
|
||||
fs.appendFileSync(fixture, prefix);
|
||||
|
||||
prefs(fixtureDir, { prefs: config } , function(err) {
|
||||
if (err) return done(err);
|
||||
var expected = prefix + '\n' + pref(config);
|
||||
assert.equal(
|
||||
fs.readFileSync(fixture, 'utf8'),
|
||||
expected
|
||||
);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/* global assert */
|
||||
'use strict';
|
||||
suite('settings', function() {
|
||||
var createProfile = require('../../lib/createprofile'),
|
||||
settings = require('../../lib/options/settings'),
|
||||
fs = require('fs'),
|
||||
baseProfile = __dirname + '/../fixtures/b2g-profile';
|
||||
|
||||
suite('intial settings', function() {
|
||||
|
||||
var profile;
|
||||
var originalSettings;
|
||||
var options;
|
||||
|
||||
setup(function(done) {
|
||||
options = { settings: { myfoo: true } };
|
||||
originalSettings = require(baseProfile + '/settings.json');
|
||||
createProfile.baseProfile(baseProfile, function(err, _profile) {
|
||||
if (err) return done(err);
|
||||
profile = _profile;
|
||||
settings(profile, options, done);
|
||||
});
|
||||
});
|
||||
|
||||
test('new settings', function() {
|
||||
var settings = require(profile + '/settings.json');
|
||||
originalSettings.myfoo = true;
|
||||
assert.deepEqual(
|
||||
originalSettings,
|
||||
settings,
|
||||
'updates setting'
|
||||
);
|
||||
});
|
||||
|
||||
test('update settings', function(done) {
|
||||
var perms = 'permissions.sqlite';
|
||||
options.settings.myfoo = 111;
|
||||
|
||||
settings(profile, options, function(err, newProfile) {
|
||||
if (err) return done(err);
|
||||
var settings = require(newProfile + '/settings.json');
|
||||
assert.ok(!fs.existsSync(newProfile + '/' + perms));
|
||||
assert.equal(settings.myfoo, 111);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
47
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/pref.js
Executable file
47
gaia/tests/jsmarionette/runner/mozilla-profile-builder/test/pref.js
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
'use strict';
|
||||
suite('pref', function() {
|
||||
var assert = require('assert');
|
||||
var pref = require('../lib/pref');
|
||||
var prefFn = 'pref';
|
||||
|
||||
test('string', function() {
|
||||
assert.equal(
|
||||
pref('foo', 'bar'),
|
||||
prefFn + '("foo", "bar");'
|
||||
);
|
||||
});
|
||||
|
||||
test('boolean', function() {
|
||||
assert.equal(
|
||||
pref('foo', true),
|
||||
prefFn + '("foo", true);'
|
||||
);
|
||||
});
|
||||
|
||||
test('object', function() {
|
||||
var obj = { a: true };
|
||||
assert.equal(
|
||||
pref('foo', obj),
|
||||
prefFn + '("foo", "' + JSON.stringify(obj) + '");'
|
||||
);
|
||||
});
|
||||
|
||||
test('array', function() {
|
||||
var obj = ['foo', 'bar'];
|
||||
assert.equal(
|
||||
pref('foo', obj),
|
||||
prefFn + '("foo", "' + JSON.stringify(obj) + '");'
|
||||
);
|
||||
});
|
||||
|
||||
test('given a single object', function() {
|
||||
var expected = '';
|
||||
expected += pref('foo', true) + '\n';
|
||||
expected += pref('bar', true);
|
||||
|
||||
assert.equal(
|
||||
pref({ foo: true, bar: true }),
|
||||
expected
|
||||
);
|
||||
});
|
||||
});
|
||||
Loading…
Reference in a new issue