summaryrefslogtreecommitdiffstats
path: root/dom/manifest/test/test_ManifestProcessor_warnings.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/manifest/test/test_ManifestProcessor_warnings.html')
-rw-r--r--dom/manifest/test/test_ManifestProcessor_warnings.html90
1 files changed, 90 insertions, 0 deletions
diff --git a/dom/manifest/test/test_ManifestProcessor_warnings.html b/dom/manifest/test/test_ManifestProcessor_warnings.html
new file mode 100644
index 000000000..865ef8054
--- /dev/null
+++ b/dom/manifest/test/test_ManifestProcessor_warnings.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1086997
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1086997</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script src="common.js"></script>
+ <script>
+'use strict';
+
+const {
+ ConsoleAPI
+} = SpecialPowers.Cu.import('resource://gre/modules/Console.jsm');
+
+var warning = null;
+
+var originalWarn = ConsoleAPI.prototype.warn;
+ConsoleAPI.prototype.warn = function(aWarning) {
+ warning = aWarning;
+};
+
+[
+ {
+ func: () => data.jsonText = JSON.stringify(1),
+ warning: 'Manifest should be an object.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify(null),
+ warning: 'Manifest should be an object.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify('a string'),
+ warning: 'Manifest should be an object.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ scope: 'https://www.mozilla.org',
+ }),
+ warning: 'The scope URL must be same origin as document.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ scope: 'foo',
+ start_url: 'bar',
+ }),
+ warning: 'The start URL is outside the scope, so the scope is invalid.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ start_url: 'https://www.mozilla.org',
+ }),
+ warning: 'The start URL must be same origin as document.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ start_url: 42,
+ }),
+ warning: 'Expected the manifest\u2019s start_url member to be a string.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ theme_color: '42',
+ }),
+ warning: 'theme_color: 42 is not a valid CSS color.',
+ },
+ {
+ func: () => data.jsonText = JSON.stringify({
+ background_color: '42',
+ }),
+ warning: 'background_color: 42 is not a valid CSS color.',
+ },
+].forEach(function(test) {
+ test.func();
+
+ processor.process(data);
+
+ is(warning, test.warning, 'Correct warning.');
+
+ warning = null;
+ data.manifestURL = manifestURL;
+ data.docURL = docURL;
+});
+
+ConsoleAPI.prototype.warn = originalWarn;
+ </script>
+</head>