summaryrefslogtreecommitdiffstats
path: root/dom/manifest/test/test_ImageObjectProcessor_sizes.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/manifest/test/test_ImageObjectProcessor_sizes.html')
-rw-r--r--dom/manifest/test/test_ImageObjectProcessor_sizes.html88
1 files changed, 88 insertions, 0 deletions
diff --git a/dom/manifest/test/test_ImageObjectProcessor_sizes.html b/dom/manifest/test/test_ImageObjectProcessor_sizes.html
new file mode 100644
index 0000000000..9418b44118
--- /dev/null
+++ b/dom/manifest/test/test_ImageObjectProcessor_sizes.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1079453
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Bug 1079453</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script src="common.js"></script>
+ <script>
+/**
+ * Image object's sizes member
+ * https://w3c.github.io/manifest/#sizes-member
+ **/
+"use strict";
+var validSizes = [{
+ test: "16x16",
+ expect: ["16x16"],
+}, {
+ test: "hello 16x16 16x16",
+ expect: ["16x16"],
+}, {
+ test: "32x32 16 48x48 12",
+ expect: ["32x32", "48x48"],
+}, {
+ test: `${whiteSpace}128x128${whiteSpace}512x512 8192x8192 32768x32768${whiteSpace}`,
+ expect: ["128x128", "512x512", "8192x8192", "32768x32768"],
+}, {
+ test: "any",
+ expect: ["any"],
+}, {
+ test: "Any",
+ expect: ["Any"],
+}, {
+ test: "16x32",
+ expect: ["16x32"],
+}, {
+ test: "17x33",
+ expect: ["17x33"],
+}, {
+ test: "32x32 32x32",
+ expect: ["32x32"],
+}, {
+ test: "32X32",
+ expect: ["32X32"],
+}, {
+ test: "any 32x32",
+ expect: ["any", "32x32"],
+}];
+
+var testIcon = {
+ icons: [{
+ src: "test",
+ sizes: undefined,
+ }],
+};
+
+validSizes.forEach(({test, expect}) => {
+ testIcon.icons[0].sizes = test;
+ data.jsonText = JSON.stringify(testIcon);
+ var result = processor.process(data);
+ var sizes = result.icons[0].sizes;
+ var expected = `Expect sizes to equal ${expect.join(" ")}`;
+ is(sizes.join(" "), expect.join(" "), expected);
+});
+
+var invalidSizes = ["invalid", "", " ", "16 x 16", "32", "21", "16xx16", "16 x x 6"];
+invalidSizes.forEach((invalidSize) => {
+ var expected = "Expect invalid sizes to return undefined.";
+ testIcon.icons[0].sizes = invalidSize;
+ data.jsonText = JSON.stringify(testIcon);
+ var result = processor.process(data);
+ var sizes = result.icons[0].sizes;
+ is(sizes, undefined, expected);
+});
+
+typeTests.forEach((type) => {
+ var expected = `Expect non-string sizes ${typeof type} to be undefined.`;
+ testIcon.icons[0].sizes = type;
+ data.jsonText = JSON.stringify(testIcon);
+ var result = processor.process(data);
+ var sizes = result.icons[0].sizes;
+ is(sizes, undefined, expected);
+});
+ </script>
+</head>