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

Side by Side Diff: third_party/WebKit/LayoutTests/media/audio-delete-while-slider-thumb-clicked.html

Issue 2004963003: Convert audio-controls* and audio-delete* tests to testharness.js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 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 <title>This tests that events don't continue to target a slider thumb if the med ia element is deleted while scrubbing.</title>
3 <head> 3 <script src="media-file.js"></script>
4 <script src=media-file.js></script> 4 <script src="media-controls.js"></script>
5 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 5 <script src="../resources/testharness.js"></script>
6 (Please avoid writing new tests using video-test.js) --> 6 <script src="../resources/testharnessreport.js"></script>
7 <script src=video-test.js></script> 7 <input type="button" value="Click Me!">
8 <script src=media-controls.js></script> 8 <audio autoplay controls></audio>
9 <script> 9 <script>
10 if (window.testRunner) { 10 async_test(function(t) {
11 testRunner.dumpAsText(); 11 var audio = document.querySelector("audio");
12 testRunner.waitUntilDone(); 12 audio.src = findMediaFile("audio", "content/test");
13 } 13 audio.onplaying = t.step_func(function() {
14 var seekCoords = mediaControlsButtonCoordinates(audio, "timeline");
15 var x = seekCoords[0];
16 var y = seekCoords[1];
14 17
15 function log(msg) 18 // Click in the slider to get the thumb under the mouse.
16 { 19 // clicking in controller.
17 var console = document.getElementById('console'); 20 eventSender.mouseMoveTo(x, y);
18 console.innerHTML = console.innerHTML + msg + "<br>"; 21 eventSender.mouseDown();
19 } 22 eventSender.mouseUp();
20 23
21 function forceGC() 24 // Click slider to scrub, leave the mouse down.
22 { 25 // clicking on thumb.
23 if (window.GCController) 26 eventSender.mouseDown();
24 return GCController.collect(); 27 eventSender.mouseMoveTo(x, y + 20);
25 28
26 // Force garbage collection 29 // Remove the element after seeking started
27 for (var ndx = 0; ndx < 99000; ndx++) 30 audio.onseeking = t.step_func(deleteAudio);
28 var str = new String("1234"); 31 });
29 }
30 32
31 function buttonClick() 33 function deleteAudio() {
32 { 34 // deleting audio element.
33 forceGC(); 35 audio.parentNode.removeChild(audio);
34 36
35 if (document.getElementById('audio')) 37 setTimeout(t.step_func(buttonClick), 10);
36 log("<br>FAIL: audio element not deleted!!"); 38 }
37 39
38 log("<br>clicking button"); 40 function buttonClick() {
41 gc();
39 42
40 // click the button 43 assert_equals(document.querySelector("audio"), null);
41 var button = document.getElementById('button');
42 eventSender.mouseMoveTo(button.offsetLeft + 20, button.offsetTop + 7);
43 eventSender.mouseDown();
44 eventSender.mouseUp();
45 44
46 testRunner.notifyDone(); 45 // click the button
47 } 46 var button = document.querySelector("input");
48 47 button.onmouseup = t.step_func_done();
49 function deleteAudio() 48 eventSender.mouseMoveTo(button.offsetLeft + 20, button.offsetTop + 7);
50 { 49 eventSender.mouseDown();
51 var audio = document.getElementById('audio'); 50 eventSender.mouseUp();
52 if (!audio) 51 }
53 return; 52 });
54 53 </script>
55 log("<br>deleting audio element");
56 audio.parentNode.removeChild(audio);
57
58 setTimeout(buttonClick, 10);
59 }
60
61 function drag()
62 {
63 if (!window.testRunner)
64 return;
65
66 testRunner.dumpAsText();
67 testRunner.waitUntilDone();
68
69 var audio = document.getElementById('audio');
70 var seekCoords;
71 try {
72 seekCoords = mediaControlsButtonCoordinates(audio, "timeline ");
73 } catch (exception) {
74 failTest(exception.description);
75 return;
76 }
77 var x = seekCoords[0];
78 var y = seekCoords[1];
79
80 // Click in the slider to get the thumb under the mouse.
81 log("clicking in controller");
82 eventSender.mouseMoveTo(x, y);
83 eventSender.mouseDown();
84 eventSender.mouseUp();
85
86 // Click slider to scrub, leave the mouse down.
87 log("clicking on thumb");
88 eventSender.mouseDown();
89 eventSender.mouseMoveTo(x, y + 20);
90
91 // Remove the element after seeking started
92 audio.addEventListener("seeking", deleteAudio);
93 }
94
95
96 function start()
97 {
98 setSrcByTagName("audio", findMediaFile("audio", "content/test")) ;
99 }
100
101 </script>
102 </head>
103 <body onload="start()">
104 This tests that events don't continue to target a slider thumb if the me dia element is deleted while scrubbing.
105 <br>
106 <input type="button" id="button" value="Click Me!" onmouseup="log('butto n click!')">
107 <br>
108 <audio id="audio" autoplay onplaying="drag()" controls></audio><br><br>
109 <div id="console"></div>
110 </body>
111 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698