diff -r 000000000000 -r 6474c204b198 dom/apps/tests/unit/test_manifestSanitizer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/apps/tests/unit/test_manifestSanitizer.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,63 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +function testEntryPoint(aRoot) { + do_check_true(aRoot.name == "hello world"); + do_check_true(aRoot.description == "A bold name"); + do_check_true(aRoot.developer.name == "Blink Inc."); + + let permissions = aRoot.permissions; + do_check_true(permissions.contacts.description == "Required for autocompletion in the share screen"); + do_check_true(permissions.alarms.description == "Required to schedule notifications"); +} + +function run_test() { + Components.utils.import("resource:///modules/AppsUtils.jsm"); + + do_check_true(!!AppsUtils); + + // Test manifest, with one entry point. + let manifest = { + name: "hello world", + description: "A bold name", + developer: { + name: "Blink Inc.", + url: "http://blink.org" + }, + permissions : { + "contacts": { + "description": "Required for autocompletion in the share screen", + "access": "readcreate" + }, + "alarms": { + "description": "Required to schedule notifications" + } + }, + + entry_points: { + "subapp": { + name: "hello world", + description: "A bold name", + developer: { + name: "Blink Inc.", + url: "http://blink.org" + }, + permissions : { + "contacts": { + "description": "Required for autocompletion in the share screen", + "access": "readcreate" + }, + "alarms": { + "description": "Required to schedule notifications" + } + } + } + } + } + + AppsUtils.sanitizeManifest(manifest); + + // Check the main section and the subapp entry point. + testEntryPoint(manifest); + testEntryPoint(manifest.entry_points.subapp); +}