summaryrefslogtreecommitdiffstats
path: root/accessible/tests/browser/e10s/browser_caching_innerHTML.js
blob: 7baee32e269422df30584dfb5eeef250dfa8647f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

/**
 * Test caching of innerHTML on math elements for Windows clients.
 */
addAccessibleTask(
  `
<p id="p">test</p>
<math id="math"><mfrac><mi>x</mi><mi>y</mi></mfrac></math>
  `,
  async function (browser, docAcc) {
    const p = findAccessibleChildByID(docAcc, "p");
    let hasHtml;
    try {
      p.cache.getStringProperty("html");
      hasHtml = true;
    } catch (e) {
      hasHtml = false;
    }
    ok(!hasHtml, "p doesn't have cached html");

    const math = findAccessibleChildByID(docAcc, "math");
    is(
      math.cache.getStringProperty("html"),
      "<mfrac><mi>x</mi><mi>y</mi></mfrac>",
      "math cached html is correct"
    );

    info("Mutating math");
    await invokeContentTask(browser, [], () => {
      content.document.querySelectorAll("mi")[1].textContent = "z";
    });
    await untilCacheIs(
      () => math.cache.getStringProperty("html"),
      "<mfrac><mi>x</mi><mi>z</mi></mfrac>",
      "math cached html is correct after mutation"
    );
  },
  {
    topLevel: true,
    iframe: true,
    remoteIframe: true,
  }
);