Index: third_party/WebKit/LayoutTests/fast/dom/shadow/event-scoped-user-setting-on-creation.html |
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/event-scoped-user-setting-on-creation.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/event-scoped-user-setting-on-creation.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ef0f3c05243c0d95f9985d8f3b81ee62a558dc3 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/event-scoped-user-setting-on-creation.html |
@@ -0,0 +1,73 @@ |
+<!DOCTYPE html> |
+<script src="../../../resources/testharness.js"></script> |
+<script src="../../../resources/testharnessreport.js"></script> |
+<script src="resources/shadow-dom.js"></script> |
+<img id="img" src="../../images/resources/test-load.jpg"> |
+<div id="sandbox"> |
+ <div id = "host"> |
+ <template> |
+ <img id="target" src="../../images/resources/test-load.jpg"> |
+ </template> |
+ </div> |
+</div> |
+<script> |
+setup({ explicit_done: true }); |
+var e; |
+test(function() { |
+ e = new Event('test'); |
+ assert_equals(e.scoped, false); |
+}, "A new event's scoped value should be set to false by default."); |
+ |
+test(function() { |
+ e = new Event('test', { scoped: true }); |
+ assert_equals(e.scoped, true); |
+}, 'Users should be able to set a scoped value.'); |
+ |
+img.onload = function (e) { |
hayato
2016/01/15 03:59:52
Nit: Remove a space between "function" and "(e)".
yuzuchan
2016/01/15 05:32:27
Done.
|
+ test(function () { |
hayato
2016/01/15 03:59:52
Nit: "function ()" => "function()"
yuzuchan
2016/01/15 05:32:27
Done.
|
+ assert_equals(e.scoped, true); |
+ }, "UA load event's scoped should be set to true"); |
+}; |
+ |
+var resultTrusted = []; |
+var resultNonTrusted = []; |
+ |
+function addEventListeners(nodes) |
+{ |
+ for (var i = 0; i < nodes.length; ++i) { |
+ var node = getNodeInTreeOfTrees(nodes[i]); |
+ node.addEventListener('load', recordEvent, false); |
+ node.addEventListener('error', recordEvent, false); |
+ } |
+} |
+var eventCount = 0; |
+function recordEvent(event) |
+{ |
+ if (event.type == 'load'){ |
hayato
2016/01/15 03:59:52
Nit. One space is required. between ")" and "{"
yuzuchan
2016/01/15 05:32:27
Done.
yuzuchan
2016/01/15 05:32:27
Done.
yuzuchan
2016/01/15 05:32:27
Done.
|
+ if(event.currentTarget){ |
hayato
2016/01/15 03:59:52
I guess event.currentTarget is always non-null.
Ca
hayato
2016/01/15 03:59:52
Ditto. One space is required. ") {"
yuzuchan
2016/01/15 05:32:27
Done.
yuzuchan
2016/01/15 05:32:27
Done.
|
+ resultTrusted.push(event.currentTarget.id); |
+ } |
+ }else if (event.type == 'error'){ |
hayato
2016/01/15 03:59:52
Ditto:
- "} else if"
- ") {"
yuzuchan
2016/01/15 05:32:27
Done.
|
+ if(event.currentTarget){ |
+ resultNonTrusted.push(event.currentTarget.id); |
+ } |
+ } |
+ eventCount++; |
+ if (eventCount == 3) { |
hayato
2016/01/15 03:59:52
This is assuming that "load" event happens before
yuzuchan
2016/01/15 05:32:27
Very true. Fixed in Patch 3. Done.
On 2016/01/15
|
+ test(function () { |
hayato
2016/01/15 03:59:52
Nit: "function ()" => "function()"
yuzuchan
2016/01/15 05:32:27
Done.
|
+ assert_array_equals(resultTrusted,['target']); |
hayato
2016/01/15 03:59:52
Nit: One space is required after ","
yuzuchan
2016/01/15 05:32:27
Done.
|
+ assert_array_equals(resultNonTrusted, ['target', 'host']); |
+ }, "Only certain trusted events like load should stop in bubbling."); |
+ done(); |
+ } |
+} |
+var sandbox = document.getElementById('sandbox'); |
+convertTemplatesToShadowRootsWithin(sandbox); |
+var targetImg = getNodeInTreeOfTrees('host/target'); |
+addEventListeners(['host', 'host/target']); |
+ |
+targetImg.setAttribute('src', '../../images/resources/lenna.jpg'); |
+var userError = new Event('error'); |
+targetImg.dispatchEvent(userError); |
+ |
+</script> |