-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #224 from yutak/shadow-dom/window-named-properties
shadow-dom: Refine a test for Window object's named properties.
- Loading branch information
Showing
4 changed files
with
189 additions
and
98 deletions.
There are no files selected for viewing
98 changes: 0 additions & 98 deletions
98
shadow-dom/shadow-trees/upper-boundary-encapsulation/test-003.html
This file was deleted.
Oops, something went wrong.
91 changes: 91 additions & 0 deletions
91
shadow-dom/shadow-trees/upper-boundary-encapsulation/window-named-properties-001.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
<!DOCTYPE html> | ||
<!-- | ||
Distributed under both the W3C Test Suite License [1] and the W3C | ||
3-clause BSD License [2]. To contribute to a W3C Test Suite, see the | ||
policies and contribution forms [3]. | ||
[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license | ||
[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license | ||
[3] http://www.w3.org/2004/10/27-testcases | ||
--> | ||
<html> | ||
<head> | ||
<title>Shadow DOM Test: Window object named properties: Frames</title> | ||
<link rel="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru"> | ||
<link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> | ||
<link rel="author" title="Yuta Kitamura" href="mailto:yutak@google.com"> | ||
<link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#upper-boundary-encapsulation"> | ||
<meta name="assert" content="Upper-boundary encapsulation: The nodes and named elements are not accessible from Window object named properties."> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="../../testcommon.js"></script> | ||
<link rel="stylesheet" href="/resources/testharness.css"> | ||
</head> | ||
<body> | ||
<div id="log"></div> | ||
<script> | ||
test(function () { | ||
var host = document.createElement('div'); | ||
try { | ||
host.style.display = 'none'; | ||
document.body.appendChild(host); | ||
var shadowRoot = host.createShadowRoot(); | ||
var iframe = document.createElement('iframe'); | ||
iframe.style.display = 'none'; | ||
iframe.name = 'test-name'; | ||
shadowRoot.appendChild(iframe); | ||
assert_false('test-name' in window); | ||
} finally { | ||
if (host.parentNode) | ||
host.parentNode.removeChild(host); | ||
} | ||
}, | ||
'An iframe element in a shadow tree should not be accessible from ' + | ||
'window\'s named properties with its "name" attribute value.' | ||
); | ||
|
||
var frameTest = async_test( | ||
'A frame element in a shadow tree should not be accessible from ' + | ||
'window\'s named properties with its "name" attribute value.'); | ||
|
||
frameTest.step(function () { | ||
// To test a document with frames, an iframe containing frames is created. | ||
var srcdoc = [ | ||
'<!DOCTYPE html>', | ||
'<html>', | ||
'<head>', | ||
'<title>Frames Test</title>', | ||
'<script src="../../testcommon.js"><' + '/script>', | ||
'</head>', | ||
'<frameset id="host" cols="50%,*">', | ||
'<frame src="about:blank" name="host-frame1">', | ||
'<frame src="about:blank" name="host-frame2">', | ||
'</frameset>', | ||
'</html>' | ||
].join('\n'); | ||
var iframe = document.createElement('iframe'); | ||
iframe.srcdoc = srcdoc; | ||
iframe.style.display = 'none'; | ||
|
||
iframe.addEventListener('load', frameTest.step_func(function (event) { | ||
try { | ||
var doc = iframe.contentDocument; | ||
var win = iframe.contentWindow; | ||
var shadowRoot = doc.getElementById('host').createShadowRoot(); | ||
shadowRoot.innerHTML = | ||
'<frame src="about:blank" name="shadow-frame1">\n' + | ||
'<frame src="about:blank" name="shadow-frame2">'; | ||
assert_false('shadow-frame1' in win); | ||
assert_false('shadow-frame2' in win); | ||
frameTest.done(); | ||
} finally { | ||
if (iframe.parentNode) | ||
iframe.parentNode.removeChild(iframe); | ||
} | ||
})); | ||
|
||
document.body.appendChild(iframe); | ||
}); | ||
</script> | ||
</body> | ||
</html> |
51 changes: 51 additions & 0 deletions
51
shadow-dom/shadow-trees/upper-boundary-encapsulation/window-named-properties-002.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
<!DOCTYPE html> | ||
<!-- | ||
Distributed under both the W3C Test Suite License [1] and the W3C | ||
3-clause BSD License [2]. To contribute to a W3C Test Suite, see the | ||
policies and contribution forms [3]. | ||
[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license | ||
[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license | ||
[3] http://www.w3.org/2004/10/27-testcases | ||
--> | ||
<html> | ||
<head> | ||
<title>Shadow DOM Test: Window object named properties: "name" attribute</title> | ||
<link rel="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru"> | ||
<link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> | ||
<link rel="author" title="Yuta Kitamura" href="mailto:yutak@google.com"> | ||
<link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#upper-boundary-encapsulation"> | ||
<meta name="assert" content="Upper-boundary encapsulation: The nodes and named elements are not accessible from Window object named properties."> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="../../testcommon.js"></script> | ||
<link rel="stylesheet" href="/resources/testharness.css"> | ||
</head> | ||
<body> | ||
<div id="log"></div> | ||
<script> | ||
function testNameAttribute(elementName) { | ||
var doc = document.implementation.createHTMLDocument('Title'); | ||
var shadowRoot = doc.body.createShadowRoot(); | ||
var element = doc.createElement(elementName); | ||
element.name = 'test-name'; | ||
shadowRoot.appendChild(element); | ||
assert_false('test-name' in window); | ||
} | ||
|
||
var namedElements = [ | ||
'a', 'applet', 'area', 'embed', 'form', 'frameset', 'img', 'object' | ||
]; | ||
|
||
var nameAttributeTestParameter = namedElements.map(function (elementName) { | ||
return [ | ||
'"' + elementName + '" element with name attribute in a shadow tree ' + | ||
'should not be accessible from window object\'s named property.', | ||
elementName | ||
]; | ||
}); | ||
|
||
generate_tests(testNameAttribute, nameAttributeTestParameter); | ||
</script> | ||
</body> | ||
</html> |
47 changes: 47 additions & 0 deletions
47
shadow-dom/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<!DOCTYPE html> | ||
<!-- | ||
Distributed under both the W3C Test Suite License [1] and the W3C | ||
3-clause BSD License [2]. To contribute to a W3C Test Suite, see the | ||
policies and contribution forms [3]. | ||
[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license | ||
[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license | ||
[3] http://www.w3.org/2004/10/27-testcases | ||
--> | ||
<html> | ||
<head> | ||
<title>Shadow DOM Test: Window object named properties: "id" attribute</title> | ||
<link rel="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru"> | ||
<link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> | ||
<link rel="author" title="Yuta Kitamura" href="mailto:yutak@google.com"> | ||
<link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#upper-boundary-encapsulation"> | ||
<meta name="assert" content="Upper-boundary encapsulation: The nodes and named elements are not accessible from Window object named properties."> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="../../testcommon.js"></script> | ||
<link rel="stylesheet" href="/resources/testharness.css"> | ||
</head> | ||
<body> | ||
<div id="log"></div> | ||
<script> | ||
function testIDAttribute(elementName) { | ||
var doc = document.implementation.createHTMLDocument('Title'); | ||
var shadowRoot = doc.body.createShadowRoot(); | ||
var element = doc.createElement(elementName); | ||
element.id = 'test-id'; | ||
shadowRoot.appendChild(element); | ||
assert_false('test-id' in window); | ||
} | ||
|
||
var idAttributeTestParameter = HTML5_ELEMENT_NAMES.map(function (elementName) { | ||
return [ | ||
'"' + elementName + '" element with id attribute in a shadow tree ' + | ||
'should not be accessible from window object\'s named property.', | ||
elementName | ||
]; | ||
}); | ||
|
||
generate_tests(testIDAttribute, idAttributeTestParameter); | ||
</script> | ||
</body> | ||
</html> |