Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Bug 968688 - Build sensors.json and support.json with settings/Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
timdream committed Feb 11, 2014
1 parent 4431bdc commit ca05cbb
Show file tree
Hide file tree
Showing 6 changed files with 98 additions and 19 deletions.
8 changes: 6 additions & 2 deletions apps/settings/Makefile
@@ -1,9 +1,13 @@
GAIA_ROOT_PATH?=../..

all: stamp-commit-hash
.PHONY: all build stamp-commit-hash
all: build stamp-commit-hash

build:
@echo 'Building wappush app...'
@$(call run-app-js-command, build)

# Generate a text file containing the current changeset of Gaia
.PHONY: stamp-commit-hash
stamp-commit-hash:
@(if [ -e ${GAIA_ROOT_PATH}/gaia_commit_override.txt ]; then \
cp ${GAIA_ROOT_PATH}/gaia_commit_override.txt ./resources/gaia_commit.txt; \
Expand Down
38 changes: 38 additions & 0 deletions apps/settings/build/build.js
@@ -0,0 +1,38 @@
'use strict';

/* global require, exports */
var utils = require('utils');

var SettingsAppBuilder = function(options) {
};

SettingsAppBuilder.prototype.writeSupportsJSON = function(options) {
var distDir = options.GAIA_DISTRIBUTION_DIR;

var file = utils.getFile(options.GAIA_DIR,
'apps', 'settings', 'resources', 'support.json');
var defaultContent = null;
var content = utils.getDistributionFileContent('support',
defaultContent, distDir);
utils.writeContent(file, content);
};

SettingsAppBuilder.prototype.writeSensorsJSON = function(options) {
var distDir = options.GAIA_DISTRIBUTION_DIR;

var file = utils.getFile(options.GAIA_DIR,
'apps', 'settings', 'resources', 'sensors.json');
var defaultContent = { ambientLight: true };
var content = utils.getDistributionFileContent('sensors',
defaultContent, distDir);
utils.writeContent(file, content);
};

SettingsAppBuilder.prototype.execute = function(options) {
this.writeSensorsJSON(options);
this.writeSupportsJSON(options);
};

exports.execute = function(options) {
(new SettingsAppBuilder()).execute(options);
};
16 changes: 0 additions & 16 deletions build/applications-data.js
Expand Up @@ -313,22 +313,6 @@ function execute(options) {
utils.writeContent(init,
utils.getDistributionFileContent('sms-blacklist', content, distDir));

// Active Sensors
init = utils.getFile(config.GAIA_DIR,
'apps', 'settings', 'resources', 'sensors.json');
content = { ambientLight: true };

utils.writeContent(init,
utils.getDistributionFileContent('sensors', content, distDir));

// Support
init = utils.getFile(config.GAIA_DIR,
'apps', 'settings', 'resources', 'support.json');
content = null;

utils.writeContent(init,
utils.getDistributionFileContent('support', content, distDir));

// Browser
init = utils.getFile(config.GAIA_DIR, 'apps', 'browser', 'js', 'init.json');

Expand Down
38 changes: 37 additions & 1 deletion build/test/integration/distribution.test.js
Expand Up @@ -12,7 +12,7 @@ suite('Distribution mechanism', function() {
rmrf('profile');
});

function validateSettings() {
function validatePreloadSettingDB() {
var settingsPath = path.join(process.cwd(), 'profile', 'settings.json');
var settings = JSON.parse(fs.readFileSync(settingsPath));
var expectedSettings = {
Expand All @@ -22,6 +22,41 @@ suite('Distribution mechanism', function() {
helper.checkSettings(settings, expectedSettings);
}

function validateSettings() {
var setingsZip = new AdmZip(path.join(process.cwd(), 'profile',
'webapps', 'settings.gaiamobile.org', 'application.zip'));
var supportContent =
setingsZip.readAsText(setingsZip.getEntry('resources/support.json'));
assert.isNotNull(supportContent, 'resources/support.json should exist');
var supportData = JSON.parse(supportContent);
var expectedSupportData = {
"onlinesupport": {
"href": "http://support.mozilla.org/",
"title": "Mozilla Support"
},
"callsupport": [
{
"href": "tel:12345678",
"title": "Call Support 1"
},
{
"href": "tel:87654321",
"title": "Call Support 2"
}
]
};
assert.deepEqual(supportData, expectedSupportData,
'support info should match the expected info.');

var sensorsContent =
setingsZip.readAsText(setingsZip.getEntry('resources/sensors.json'));
assert.isNotNull(sensorsContent, 'resources/sensors.json should exist');
var sensorsData = JSON.parse(sensorsContent);
var expectedSensorsData = { ambientLight: false };
assert.deepEqual(sensorsData, expectedSensorsData,
'sensors data should match the expected data.');
}

function validateCalendar() {
var calZip = new AdmZip(path.join(process.cwd(), 'profile',
'webapps', 'calendar.gaiamobile.org', 'application.zip'));
Expand Down Expand Up @@ -73,6 +108,7 @@ suite('Distribution mechanism', function() {
var cmd = 'GAIA_DISTRIBUTION_DIR=' + distDir + ' make';
exec(cmd, function(error, stdout, stderr) {
helper.checkError(error, stdout, stderr);
validatePreloadSettingDB();
validateSettings();
validateCalendar();
validateWappush();
Expand Down
1 change: 1 addition & 0 deletions build/test/resources/distribution_test/sensors.json
@@ -0,0 +1 @@
{ "ambientLight": false }
16 changes: 16 additions & 0 deletions build/test/resources/distribution_test/support.json
@@ -0,0 +1,16 @@
{
"onlinesupport": {
"href": "http://support.mozilla.org/",
"title": "Mozilla Support"
},
"callsupport": [
{
"href": "tel:12345678",
"title": "Call Support 1"
},
{
"href": "tel:87654321",
"title": "Call Support 2"
}
]
}

0 comments on commit ca05cbb

Please sign in to comment.