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

Side by Side Diff: third_party/WebKit/LayoutTests/media/video-source-removed.html

Issue 1715303002: Add TODOs to convert from video-test.js to testharness.js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add bug ref Created 4 years, 10 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
OLDNEW
1 <!doctype HTML> 1 <!doctype HTML>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>crash after removing &lt;source&gt; test</title> 4 <title>crash after removing &lt;source&gt; test</title>
5 <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956
6 (Please avoid writing new tests using video-test.js) -->
5 <script src=video-test.js></script> 7 <script src=video-test.js></script>
6 <script src=media-file.js></script> 8 <script src=media-file.js></script>
7 <script> 9 <script>
8 10
9 var testInfo = 11 var testInfo =
10 { 12 {
11 current : -1, 13 current : -1,
12 tests : [removeChild, innerHTML, replaceChild] 14 tests : [removeChild, innerHTML, replaceChild]
13 }; 15 };
14 16
15 function removeChild(sources) 17 function removeChild(sources)
16 { 18 {
17 consoleWrite("Removing all &lt;source&gt; elements with <i>remov eChild()<" + "/i>"); 19 consoleWrite("Removing all &lt;source&gt; elements with <i>remov eChild()<" + "/i>");
18 for (var ndx = 0; ndx < sources.length; ++ndx) { 20 for (var ndx = 0; ndx < sources.length; ++ndx) {
19 consoleWrite(" -> removeChild(" + ndx + ")"); 21 consoleWrite(" -> removeChild(" + ndx + ")");
20 video.removeChild(sources[ndx]); 22 video.removeChild(sources[ndx]);
21 } 23 }
22 } 24 }
23 25
24 function innerHTML() 26 function innerHTML()
25 { 27 {
26 consoleWrite("Removing all &lt;source&gt; by setting <i>.innerHT ML<" + "/i>"); 28 consoleWrite("Removing all &lt;source&gt; by setting <i>.innerHT ML<" + "/i>");
27 consoleWrite(" -> video.innerHTML = ''"); 29 consoleWrite(" -> video.innerHTML = ''");
28 } 30 }
29 31
30 function replaceChild(sources) 32 function replaceChild(sources)
31 { 33 {
32 consoleWrite("Removing all &lt;source&gt; elements with <i>repla ceChild()<" + "/i>"); 34 consoleWrite("Removing all &lt;source&gt; elements with <i>repla ceChild()<" + "/i>");
33 var span = document.createElement("span") 35 var span = document.createElement("span")
34 span.appendChild(document.createTextNode("Yo")); 36 span.appendChild(document.createTextNode("Yo"));
35 for (var ndx = 0; ndx < sources.length; ++ndx) { 37 for (var ndx = 0; ndx < sources.length; ++ndx) {
36 consoleWrite(" -> replaceChild(" + ndx + ")"); 38 consoleWrite(" -> replaceChild(" + ndx + ")");
37 video.replaceChild(span, sources[ndx]); 39 video.replaceChild(span, sources[ndx]);
38 } 40 }
39 } 41 }
40 42
41 function runOneTest() 43 function runOneTest()
42 { 44 {
43 testInfo.tests[testInfo.current](document.querySelectorAll('sour ce')); 45 testInfo.tests[testInfo.current](document.querySelectorAll('sour ce'));
44 setTimeout(configureNextTest, 100); 46 setTimeout(configureNextTest, 100);
45 } 47 }
46 48
47 function addSource(index) 49 function addSource(index)
48 { 50 {
49 source = document.createElement('source'); 51 source = document.createElement('source');
50 source.src = findMediaFile("video", index + "-" + Date.now()); 52 source.src = findMediaFile("video", index + "-" + Date.now());
51 source.type = mimeTypeForExtension(source.src.split('.').pop()); 53 source.type = mimeTypeForExtension(source.src.split('.').pop());
52 video.appendChild(source); 54 video.appendChild(source);
53 } 55 }
54 56
55 function runNextTest() 57 function runNextTest()
56 { 58 {
57 consoleWrite(""); 59 consoleWrite("");
58 if (++testInfo.current >= testInfo.tests.length) { 60 if (++testInfo.current >= testInfo.tests.length) {
59 consoleWrite("PASS: A crash did not occur when removing &lt; source&gt; elements.<br>"); 61 consoleWrite("PASS: A crash did not occur when removing &lt; source&gt; elements.<br>");
60 endTest(); 62 endTest();
61 return; 63 return;
62 } 64 }
63 65
64 video = mediaElement = document.createElement('video'); 66 video = mediaElement = document.createElement('video');
65 document.body.appendChild(video); 67 document.body.appendChild(video);
66 video.addEventListener("loadstart", runOneTest); 68 video.addEventListener("loadstart", runOneTest);
67 69
68 // Add a bunch of source elements with bogus urls because we wan t to remove elements 70 // Add a bunch of source elements with bogus urls because we wan t to remove elements
69 // after the media engine begins processing sources, and we can' t predict the delay 71 // after the media engine begins processing sources, and we can' t predict the delay
70 // between when the media element fires an 'error' event and our handler is called, 72 // between when the media element fires an 'error' event and our handler is called,
71 // but we need to guarantee that there are <source> elements tha t haven't been processed 73 // but we need to guarantee that there are <source> elements tha t haven't been processed
72 // when we run the test. 74 // when we run the test.
73 for (var ndx = 1; ndx <= 10; ndx++) 75 for (var ndx = 1; ndx <= 10; ndx++)
74 addSource(ndx); 76 addSource(ndx);
75 } 77 }
76 78
77 function configureNextTest() 79 function configureNextTest()
78 { 80 {
79 var videos = document.querySelectorAll('video'); 81 var videos = document.querySelectorAll('video');
80 for (var ndx = 0; ndx < videos.length; ++ndx) 82 for (var ndx = 0; ndx < videos.length; ++ndx)
81 videos[ndx].parentNode.removeChild(videos[ndx]); 83 videos[ndx].parentNode.removeChild(videos[ndx]);
82 video = mediaElement = null; 84 video = mediaElement = null;
83 setTimeout(runNextTest, 100); 85 setTimeout(runNextTest, 100);
84 } 86 }
85 </script> 87 </script>
86 </head> 88 </head>
87 89
88 <body> 90 <body>
89 Test to make sure removing a media element's &lt;source&gt;(s) does not cause a crash. 91 Test to make sure removing a media element's &lt;source&gt;(s) does not cause a crash.
90 <script>configureNextTest()</script> 92 <script>configureNextTest()</script>
91 </body> 93 </body>
92 </html> 94 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698