Revision 7c96c90ed8f1b469c37f06c37f248c42535060b8 authored by Hiroki Nakagawa on 26 March 2018, 09:29:42 UTC, committed by Chromium WPT Sync on 26 March 2018, 09:29:42 UTC
This CL allows dynamic import() on DedicatedWorkerGlobalScope and adds WPT
tests. Note that ES Modules on DedicatedWorker is an experimental feature behind
the runtime flag.

Design doc:
https://docs.google.com/document/d/1IMGWAK7Wq37mLehwkbysNRBBnhQBo3z2MbYyMkViEnY/edit#heading=h.637avx8i5qtn

Bug: 680046
Change-Id: I1f8fed5c319aab634f96bcfabeb3c95f5dc7d9a7
Reviewed-on: https://chromium-review.googlesource.com/970127
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545748}
1 parent 4ff4c66
Raw File
XMLSerializer-serializeToString.html
<!DOCTYPE HTML>
<meta charset=utf-8>
<html>
 <head>
  <title>domparsing Test: XMLSerializer.serializeToString</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
 </head>
 <body>
    <h1>domparsing_XMLSerializer_serializeToString</h1>
  <script>
function createXmlDoc(){
  var input = '<?xml version="1.0" encoding="UTF-8"?><root><child1>value1</child1></root>';
  var parser = new DOMParser();
  return parser.parseFromString(input, 'text/xml');
}

test(function() {
  var serializer = new XMLSerializer();
  var root = createXmlDoc().documentElement;
  var xmlString = serializer.serializeToString(root);
  assert_equals(xmlString, '<root><child1>value1</child1></root>');
}, 'check XMLSerializer.serializeToString method could parsing xmldoc to string');

test(function() {
  var serializer = new XMLSerializer();
  var root = createXmlDoc().documentElement;
  var element = root.ownerDocument.createElementNS('urn:foo', 'another');
  var child1 = root.firstChild;
  root.replaceChild(element, child1);
  element.appendChild(child1);
  var xmlString = serializer.serializeToString(root);
  assert_equals(xmlString, '<root><another xmlns="urn:foo"><child1 xmlns="">value1</child1></another></root>');
}, 'Check if the default namespace is correctly reset.');

test(function() {
  var input = '<root xmlns="urn:bar"><outer xmlns=""><inner>value1</inner></outer></root>';
  var root = (new DOMParser()).parseFromString(input, 'text/xml').documentElement;
  var xmlString = (new XMLSerializer()).serializeToString(root);
  assert_equals(xmlString, '<root xmlns="urn:bar"><outer xmlns=""><inner>value1</inner></outer></root>');
}, 'Check if there is no redundant empty namespace declaration.');

test(function() {
  var serializer = new XMLSerializer();
  var parser = new DOMParser();
  var root = parser.parseFromString('<root />', 'text/xml').documentElement;
  root.setAttribute('attr', '\t');
  assert_in_array(serializer.serializeToString(root), [
    '<root attr="&#9;"/>', '<root attr="&#x9;"/>']);
  root.setAttribute('attr', '\n');
  assert_in_array(serializer.serializeToString(root), [
    '<root attr="&#xA;"/>', '<root attr="&#10;"/>']);
  root.setAttribute('attr', '\r');
  assert_in_array(serializer.serializeToString(root), [
    '<root attr="&#xD;"/>', '<root attr="&#13;"/>']);
}, 'check XMLSerializer.serializeToString escapes attribute values for roundtripping');

</script>
 </body>
</html>
back to top