tor-browser

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

resolver-non-string-result.html (1453B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>XPathNSResolver non-string return value</title>
      4 <link rel="help" href="https://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="resources/invalid_namespace_test.js"></script>
      8 <div id=log></div>
      9 <script>
     10 "use strict";
     11 
     12 promise_test(t => {
     13  return invalid_namespace_test(t, () => undefined);
     14 }, "undefined");
     15 
     16 promise_test(t => {
     17  return invalid_namespace_test(t, () => null);
     18 }, "null");
     19 
     20 test(t => {
     21  let resolverCalls = 0;
     22 
     23  document.evaluate("/foo:bar", document.documentElement, () => {
     24    resolverCalls++;
     25    return 0;
     26  });
     27 
     28  assert_equals(resolverCalls, 1);
     29 }, "number");
     30 
     31 test(t => {
     32  let resolverCalls = 0;
     33 
     34  document.evaluate("/foo:bar", document.documentElement, () => {
     35    resolverCalls++;
     36    return false;
     37  });
     38 
     39  assert_equals(resolverCalls, 1);
     40 }, "boolean");
     41 
     42 promise_test(t => {
     43  return promise_rejects_js(t, TypeError,
     44    invalid_namespace_test(t, () => Symbol())
     45  );
     46 }, "symbol");
     47 
     48 promise_test(t => {
     49  const testError = { name: "test" };
     50  const resolverResult = {
     51    toString: () => { throw testError; },
     52    valueOf: t.unreached_func("`valueOf` should not be called."),
     53  };
     54 
     55  return promise_rejects_exactly(t, testError,
     56    invalid_namespace_test(t, () => resolverResult)
     57  );
     58 }, "object coercion (abrupt completion)");
     59 </script>
     60 </body>