xpathevaluatorbase-creatensresolver.html (1963B)
1 <!DOCTYPE html> 2 <script src='/resources/testharness.js'></script> 3 <script src='/resources/testharnessreport.js'></script> 4 <body> 5 <script> 6 [document, new XPathEvaluator()].forEach(evaluator => { 7 test(() => { 8 assert_equals(evaluator.createNSResolver(document), document, 'Document'); 9 const fragment = document.createDocumentFragment(); 10 assert_equals(evaluator.createNSResolver(fragment), fragment, 11 'DocumentFragment'); 12 assert_equals(evaluator.createNSResolver(document.doctype), 13 document.doctype, 'DocumentType'); 14 assert_equals(evaluator.createNSResolver(document.body), document.body, 15 'Element'); 16 assert_equals(evaluator.createNSResolver(document.body.firstChild), 17 document.body.firstChild, 'Text'); 18 const attr = document.createAttribute('foo'); 19 assert_equals(evaluator.createNSResolver(attr), attr, 'Attr'); 20 }, `createNSResolver() should return the specified node as is. (${evaluator.constructor.name})`); 21 22 function createAndLookup(evaluator, node) { 23 return evaluator.createNSResolver(node).lookupNamespaceURI('xml'); 24 } 25 26 test(() => { 27 assert_equals(createAndLookup(evaluator, new Document()), null, 'Document'); 28 assert_equals(createAndLookup(evaluator, new DocumentFragment()), null, 29 'DocumentFragment'); 30 assert_equals(createAndLookup(evaluator, document.doctype), null, 31 'DocumentType'); 32 assert_equals(createAndLookup(evaluator, document.createElement('body')), 33 'http://www.w3.org/XML/1998/namespace', 'Element'); 34 assert_equals(createAndLookup(evaluator, document.createTextNode('foo')), 35 null, 'Text'); 36 assert_equals(createAndLookup(evaluator, document.createAttribute('bar')), 37 null, 'Attr'); 38 }, `createNSResolver() resultant object should not add support of 'xml' prefix. (${evaluator.constructor.name})`); 39 }); 40 </script> 41 </body>