Index: LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState.html b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9bbb2e722f377ddc6a067581a41d713a12c32ab |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-invoke-insert-source-networkState.html |
@@ -0,0 +1,38 @@ |
+<!doctype html> |
+<title>NOT invoking resource selection by inserting <source> when networkState is not NETWORK_EMPTY</title> |
+<script src="../../../../../../../resources/testharness.js"></script> |
+<script src="../../../../../../../resources/testharnessreport.js"></script> |
+<div id=log></div> |
+<script> |
+var loadstartCount = 0; |
+var s1ErrorCount = 0; |
+var s2ErrorCount = 0; |
+var v; |
+var t = async_test(function(t) { |
+ v = document.createElement('video'); |
+ v.onloadstart = function() { loadstartCount++; }; |
+ var s1 = document.createElement('source'); |
+ s1.src = 'resources/delayed-broken-video.py'; |
+ s1.onerror = function() { s1ErrorCount++; }; |
+ v.appendChild(s1); // invokes resource selection |
+ assert_equals(v.networkState, v.NETWORK_NO_SOURCE, 'networkState in first script'); |
+}); |
+</script> |
+<script> |
+t.step(function() { |
+ assert_equals(v.networkState, v.NETWORK_LOADING, 'networkState in second script'); |
+ assert_equals(s1ErrorCount, 0, 's1ErrorCount in second script'); |
+ var s2 = document.createElement('source'); |
+ s2.onerror = t.step_func(function() { |
+ s2ErrorCount++; |
+ assert_equals(s1ErrorCount, 1, 's1ErrorCount in s2.onerror'); |
+ }); |
+ v.appendChild(s2); |
+ onload = t.step_func(function() { |
+ assert_equals(s2ErrorCount, 1, 's2ErrorCount in window.onload'); |
+ assert_equals(loadstartCount, 1, 'loadstartCount in window.onload'); // reliable if https://www.w3.org/Bugs/Public/show_bug.cgi?id=24353 is fixed |
+ assert_equals(v.networkState, v.NETWORK_NO_SOURCE, 'networkState in window.onload'); // See Waiting step |
+ t.done(); |
+ }); |
+}); |
+</script> |