Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Side by Side Diff: LayoutTests/media/media-blocked-by-beforeload.html

Issue 205523003: Remove beforeload events. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove more tests Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!doctype html>
2 <html>
3 <head>
4 <style>
5 video { background-color: yellow; width: 320px; height: 240px;}
6 </style>
7 <script src=media-file.js></script>
8 <script src=video-test.js></script>
9 </head>
10 <body>
11 <video controls ></video>
12 <p>Test to ensure that a media file blocked by a beforeload handler generate s an error
13 and does not block the document's 'load' event.</p>
14
15 <script>
16 if (window.testRunner)
17 testRunner.dumpAsText();
18
19 var blockedURL;
20 var allowedURL;
21 var test;
22 var loadedmetadataFired = false;
23 var loadedFired = false;
24
25 function logEvent(evt)
26 {
27 consoleWrite("<br>EVENT('" + evt.type + "')");
28 }
29
30 function loadedmetadata(evt)
31 {
32 logEvent(evt);
33 consoleWrite("");
34 loadedmetadataFired = true;
35 checkEndTest();
36 }
37
38 function setupSourceTest()
39 {
40 consoleWrite("<br>*** Test using the &lt;source&gt; element ***");
41 blockedURL = relativeURL(video.src);
42 allowedURL = findMediaFile("audio", "content/test");
43
44 // Remove 'src' attribute so <source> will be used when we force a r eload
45 video.removeAttribute('src');
46
47 var blockedSource = document.createElement('source');
48 blockedSource.src = blockedURL;
49 blockedSource.type = mimeTypeForExtension(blockedSource.src.split('. ').pop());
50 video.appendChild(blockedSource);
51
52 var allowedSource = document.createElement('source');
53 allowedSource.src = allowedURL;
54 allowedSource.type = mimeTypeForExtension(allowedSource.src.split('. ').pop());
55 video.appendChild(allowedSource);
56
57 test = 2;
58 video.load();
59 };
60
61 function error(evt)
62 {
63 logEvent(evt);
64 switch (test)
65 {
66 case 1:
67 testExpected("event.target.tagName", "VIDEO");
68 testExpected("video.error", null, "!=");
69 testExpected("video.error.code", MediaError.MEDIA_ERR_SRC_NO T_SUPPORTED);
70 testExpected("video.networkState", HTMLMediaElement.NETWORK_ NO_SOURCE);
71
72 setupSourceTest();
73 break;
74 case 2:
75 // The error should have been fired at the <source> and the media element should
76 // not be in an error state.
77 testExpected("event.target.tagName", "SOURCE");
78 testExpected("video.error", null);
79 break;
80 case 3:
81 failTest("Unexpected 'error' event fired!");
82 break;
83 }
84 }
85
86 function beforeload(evt)
87 {
88 logEvent(evt);
89 testExpected("event.target.tagName", "VIDEO");
90 switch (test)
91 {
92 case 1:
93 consoleWrite("blocking load of 'src'");
94 evt.preventDefault();
95 break;
96
97 case 2:
98 if (relativeURL(evt.url) == blockedURL) {
99 consoleWrite("blocking load of first &lt;source&gt; elem ent");
100 evt.preventDefault();
101 } else {
102 consoleWrite("allowing load of second &lt;source&gt; ele ment");
103 }
104 break;
105 }
106 }
107
108 function loaded(evt)
109 {
110 loadedFired = true;
111 checkEndTest();
112 };
113
114 function checkEndTest()
115 {
116 if (loadedmetadataFired && loadedFired)
117 endTest();
118 };
119
120 findMediaElement();
121
122 video.addEventListener('loadstart', logEvent, true);
123 video.addEventListener('loadedmetadata', loadedmetadata, true);
124 video.addEventListener('beforeload', beforeload, true);
125 video.addEventListener('error', error, true);
126 window.addEventListener('load', loaded, true);
127
128 consoleWrite("*** Test initial state ***");
129 testExpected("video.networkState", HTMLMediaElement.NETWORK_EMPTY);
130 testExpected("video.error", null);
131
132 consoleWrite("<br>*** Test blocking the 'src' attribute ***");
133 test = 1;
134 var mediaFile = findMediaFile("video", "content/test");
135 video.src = mediaFile;
136 </script>
137
138 </body>
139 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698