test_ImageObjectProcessor_sizes.html (2184B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1079453 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 1079453</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 <script src="common.js"></script> 12 <script> 13 /** 14 * Image object's sizes member 15 * https://w3c.github.io/manifest/#sizes-member 16 */ 17 "use strict"; 18 var validSizes = [{ 19 test: "16x16", 20 expect: ["16x16"], 21 }, { 22 test: "hello 16x16 16x16", 23 expect: ["16x16"], 24 }, { 25 test: "32x32 16 48x48 12", 26 expect: ["32x32", "48x48"], 27 }, { 28 test: `${whiteSpace}128x128${whiteSpace}512x512 8192x8192 32768x32768${whiteSpace}`, 29 expect: ["128x128", "512x512", "8192x8192", "32768x32768"], 30 }, { 31 test: "any", 32 expect: ["any"], 33 }, { 34 test: "Any", 35 expect: ["Any"], 36 }, { 37 test: "16x32", 38 expect: ["16x32"], 39 }, { 40 test: "17x33", 41 expect: ["17x33"], 42 }, { 43 test: "32x32 32x32", 44 expect: ["32x32"], 45 }, { 46 test: "32X32", 47 expect: ["32X32"], 48 }, { 49 test: "any 32x32", 50 expect: ["any", "32x32"], 51 }]; 52 53 var testIcon = { 54 icons: [{ 55 src: "test", 56 sizes: undefined, 57 }], 58 }; 59 60 validSizes.forEach(({test, expect}) => { 61 testIcon.icons[0].sizes = test; 62 data.jsonText = JSON.stringify(testIcon); 63 var result = processor.process(data); 64 var sizes = result.icons[0].sizes; 65 var expected = `Expect sizes to equal ${expect.join(" ")}`; 66 is(sizes.join(" "), expect.join(" "), expected); 67 }); 68 69 var invalidSizes = ["invalid", "", " ", "16 x 16", "32", "21", "16xx16", "16 x x 6"]; 70 invalidSizes.forEach((invalidSize) => { 71 var expected = "Expect invalid sizes to return undefined."; 72 testIcon.icons[0].sizes = invalidSize; 73 data.jsonText = JSON.stringify(testIcon); 74 var result = processor.process(data); 75 var sizes = result.icons[0].sizes; 76 is(sizes, undefined, expected); 77 }); 78 79 typeTests.forEach((type) => { 80 var expected = `Expect non-string sizes ${typeof type} to be undefined.`; 81 testIcon.icons[0].sizes = type; 82 data.jsonText = JSON.stringify(testIcon); 83 var result = processor.process(data); 84 var sizes = result.icons[0].sizes; 85 is(sizes, undefined, expected); 86 }); 87 </script> 88 </head>