tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_ImageObjectProcessor_src.html (2297B)


      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 src member
     15 * https://w3c.github.io/manifest/#src-member
     16 */
     17 "use strict";
     18 
     19 var noSrc = {
     20  icons: [{}, {
     21    src: [],
     22  }, {
     23    src: {},
     24  }, {
     25    src: null,
     26  }, {
     27    type: "image/jpg",
     28  }, {
     29    sizes: "1x1,2x2",
     30  }, {
     31    sizes: "any",
     32    type: "image/jpg",
     33  }],
     34 };
     35 
     36 var expected = `Expect icons without a src prop to be filtered out.`;
     37 data.jsonText = JSON.stringify(noSrc);
     38 var result = processor.process(data);
     39 is(result.icons.length, 0, expected);
     40 
     41 var invalidSrc = {
     42  icons: [{
     43    src: null,
     44  }, {
     45    src: 1,
     46  }, {
     47    src: [],
     48  }, {
     49    src: {},
     50  }, {
     51    src: true,
     52  }, {
     53    src: "",
     54  }],
     55 };
     56 
     57 expected = `Expect icons with invalid src prop to be filtered out.`;
     58 data.jsonText = JSON.stringify(invalidSrc);
     59 result = processor.process(data);
     60 is(result.icons.length, 0, expected);
     61 
     62 expected = `Expect icon's src to be a string.`;
     63 var withSrc = {
     64  icons: [{
     65    src: "pass",
     66  }],
     67 };
     68 data.jsonText = JSON.stringify(withSrc);
     69 result = processor.process(data);
     70 is(typeof result.icons[0].src, "string", expected);
     71 
     72 
     73 expected = `Expect only icons with a src prop to be kept.`;
     74 withSrc = {
     75  icons: [{
     76    src: "pass",
     77  }, {
     78    src: "pass",
     79  }, {}, {
     80    foo: "foo",
     81  }],
     82 };
     83 data.jsonText = JSON.stringify(withSrc);
     84 result = processor.process(data);
     85 is(result.icons.length, 2, expected);
     86 
     87 var expectedURL = new URL("pass", manifestURL);
     88 for (var icon of result.icons) {
     89  expected = `Expect src prop to be ${expectedURL.toString()}`;
     90  is(icon.src.toString(), expectedURL.toString(), expected);
     91 }
     92 
     93 
     94 // Resolve URLs relative to manfiest
     95 var URLs = ["path", "/path", "../../path"];
     96 
     97 URLs.forEach((url) => {
     98  expected = `Resolve icon src URLs relative to manifest.`;
     99  data.jsonText = JSON.stringify({
    100    icons: [{
    101      src: url,
    102    }],
    103  });
    104  var absURL = new URL(url, manifestURL).toString();
    105  result = processor.process(data);
    106  is(result.icons[0].src.toString(), absURL, expected);
    107 });
    108 
    109  </script>
    110 </head>