Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!doctype html> | 1 <!doctype html> |
| 2 <title>activation behavior</title> | 2 <title>activation behavior</title> |
| 3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
| 4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
| 5 <script src="media-file.js"></script> | 5 <script src="media-file.js"></script> |
| 6 <div id="log"></div> | 6 <div id="log"></div> |
| 7 <script> | 7 <script> |
| 8 function activation_behavior_test(tagName, src) | 8 function activation_behavior_test(tagName, src) |
| 9 { | 9 { |
| 10 // FIXME: hack used to investigate http://crbug.com/355489 | |
| 11 function uniqueSrc() | |
| 12 { | |
| 13 return src + '?' + Math.random(); | |
|
acolwell GONE FROM CHROMIUM
2014/03/29 00:37:46
nit: Would a global var make this unique, but more
philipj_slow
2014/03/29 06:27:15
Yeah, a simple counter should do the trick, the on
| |
| 14 } | |
| 15 | |
| 10 async_test(function(t) | 16 async_test(function(t) |
| 11 { | 17 { |
| 12 var e = document.createElement(tagName); | 18 var e = document.createElement(tagName); |
| 13 e.controls = true; | 19 e.controls = true; |
| 14 e.src = src; | 20 e.src = uniqueSrc(); |
| 15 e.preload = 'auto'; | 21 e.preload = 'auto'; |
| 16 e.oncanplay = t.step_func(function() | 22 e.oncanplay = t.step_func(function() |
| 17 { | 23 { |
| 18 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); | 24 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); |
| 19 e.controller = new MediaController(); | 25 e.controller = new MediaController(); |
| 20 assert_false(e.controller.paused, 'controller paused state before cl ick'); | 26 assert_false(e.controller.paused, 'controller paused state before cl ick'); |
| 21 assert_true(e.paused, 'element paused state before click'); | 27 assert_true(e.paused, 'element paused state before click'); |
| 22 e.click(); | 28 e.click(); |
| 23 assert_false(e.controller.paused, 'controller paused state after cli ck'); | 29 assert_false(e.controller.paused, 'controller paused state after cli ck'); |
| 24 assert_false(e.paused, 'element paused state after click'); | 30 assert_false(e.paused, 'element paused state after click'); |
| 25 t.done(); | 31 t.done(); |
| 26 }); | 32 }); |
| 27 }, tagName + ' activation behavior for restrained media controller'); | 33 }, tagName + ' activation behavior for restrained media controller'); |
| 28 | 34 |
| 29 async_test(function(t) | 35 async_test(function(t) |
| 30 { | 36 { |
| 31 var e = document.createElement(tagName); | 37 var e = document.createElement(tagName); |
| 32 e.controls = true; | 38 e.controls = true; |
| 33 e.src = src; | 39 e.src = uniqueSrc(); |
| 34 e.preload = 'auto'; | 40 e.preload = 'auto'; |
| 35 e.oncanplay = t.step_func(function() | 41 e.oncanplay = t.step_func(function() |
| 36 { | 42 { |
| 37 e.pause(); // clears autoplaying flag | 43 e.pause(); // clears autoplaying flag |
| 38 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); | 44 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); |
| 39 e.controller = new MediaController(); | 45 e.controller = new MediaController(); |
| 40 assert_false(e.controller.paused, 'controller paused state before cl ick'); | 46 assert_false(e.controller.paused, 'controller paused state before cl ick'); |
| 41 assert_true(e.paused, 'element paused state before click'); | 47 assert_true(e.paused, 'element paused state before click'); |
| 42 e.click(); | 48 e.click(); |
| 43 assert_false(e.controller.paused, 'controller paused state after cli ck'); | 49 assert_false(e.controller.paused, 'controller paused state after cli ck'); |
| 44 assert_false(e.paused, 'element paused state after click'); | 50 assert_false(e.paused, 'element paused state after click'); |
| 45 t.done(); | 51 t.done(); |
| 46 }); | 52 }); |
| 47 }, tagName + ' activation behavior for restrained media controller (with non -autoplaying paused slave)'); | 53 }, tagName + ' activation behavior for restrained media controller (with non -autoplaying paused slave)'); |
| 48 | 54 |
| 49 async_test(function(t) | 55 async_test(function(t) |
| 50 { | 56 { |
| 51 var e1 = document.createElement(tagName); | 57 var e1 = document.createElement(tagName); |
| 52 var e2 = document.createElement(tagName); | 58 var e2 = document.createElement(tagName); |
| 53 e1.controls = true; | 59 e1.controls = true; |
| 54 e1.src = e2.src = src; | 60 e1.src = uniqueSrc(); |
| 61 e2.src = uniqueSrc(); | |
| 55 e1.preload = e2.preload = 'auto'; | 62 e1.preload = e2.preload = 'auto'; |
| 56 var canplaycount = 0; | 63 var canplaycount = 0; |
| 57 e1.oncanplay = e2.oncanplay = t.step_func(function() | 64 e1.oncanplay = e2.oncanplay = t.step_func(function() |
| 58 { | 65 { |
| 59 if (++canplaycount != 2) { | 66 if (++canplaycount != 2) { |
| 60 return; | 67 return; |
| 61 } | 68 } |
| 62 e1.play(); | 69 e1.play(); |
| 63 assert_greater_than(e1.readyState, e1.HAVE_CURRENT_DATA, 'element 1 readyState'); | 70 assert_greater_than(e1.readyState, e1.HAVE_CURRENT_DATA, 'element 1 readyState'); |
| 64 assert_greater_than(e2.readyState, e2.HAVE_CURRENT_DATA, 'element 2 readyState'); | 71 assert_greater_than(e2.readyState, e2.HAVE_CURRENT_DATA, 'element 2 readyState'); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 85 assert_true(e.paused, 'element paused state before click'); | 92 assert_true(e.paused, 'element paused state before click'); |
| 86 e.click(); | 93 e.click(); |
| 87 assert_false(e.controller.paused, 'controller paused state after click') ; | 94 assert_false(e.controller.paused, 'controller paused state after click') ; |
| 88 assert_true(e.paused, 'element paused state after click'); | 95 assert_true(e.paused, 'element paused state after click'); |
| 89 }, tagName + ' activation behavior for paused media controller'); | 96 }, tagName + ' activation behavior for paused media controller'); |
| 90 | 97 |
| 91 async_test(function(t) | 98 async_test(function(t) |
| 92 { | 99 { |
| 93 var e = document.createElement(tagName); | 100 var e = document.createElement(tagName); |
| 94 e.controls = true; | 101 e.controls = true; |
| 95 e.src = src; | 102 e.src = uniqueSrc(); |
| 96 e.preload = 'auto'; | 103 e.preload = 'auto'; |
| 97 e.oncanplay = t.step_func(function() | 104 e.oncanplay = t.step_func(function() |
| 98 { | 105 { |
| 99 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); | 106 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); |
| 100 e.controller = new MediaController(); | 107 e.controller = new MediaController(); |
| 101 e.controller.pause(); | 108 e.controller.pause(); |
| 102 assert_true(e.controller.paused, 'controller paused state before cli ck'); | 109 assert_true(e.controller.paused, 'controller paused state before cli ck'); |
| 103 assert_true(e.paused, 'element paused state before click'); | 110 assert_true(e.paused, 'element paused state before click'); |
| 104 e.click(); | 111 e.click(); |
| 105 assert_false(e.controller.paused, 'controller paused state after cli ck'); | 112 assert_false(e.controller.paused, 'controller paused state after cli ck'); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 118 assert_false(e.paused, 'element paused state before click'); | 125 assert_false(e.paused, 'element paused state before click'); |
| 119 e.click(); | 126 e.click(); |
| 120 assert_true(e.controller.paused, 'controller paused state after click'); | 127 assert_true(e.controller.paused, 'controller paused state after click'); |
| 121 assert_false(e.paused, 'element paused state after click'); | 128 assert_false(e.paused, 'element paused state after click'); |
| 122 }, tagName + ' activation behavior for playing media controller'); | 129 }, tagName + ' activation behavior for playing media controller'); |
| 123 | 130 |
| 124 async_test(function(t) | 131 async_test(function(t) |
| 125 { | 132 { |
| 126 var e = document.createElement(tagName); | 133 var e = document.createElement(tagName); |
| 127 e.controls = true; | 134 e.controls = true; |
| 128 e.src = src; | 135 e.src = uniqueSrc(); |
| 129 e.preload = 'auto'; | 136 e.preload = 'auto'; |
| 130 e.oncanplay = t.step_func(function() | 137 e.oncanplay = t.step_func(function() |
| 131 { | 138 { |
| 132 e.play(); | 139 e.play(); |
| 133 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); | 140 assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element read yState'); |
| 134 e.controller = new MediaController(); | 141 e.controller = new MediaController(); |
| 135 assert_false(e.controller.paused, 'controller paused state before cl ick'); | 142 assert_false(e.controller.paused, 'controller paused state before cl ick'); |
| 136 assert_false(e.paused, 'element paused state before click'); | 143 assert_false(e.paused, 'element paused state before click'); |
| 137 e.click(); | 144 e.click(); |
| 138 assert_true(e.controller.paused, 'controller paused state after clic k'); | 145 assert_true(e.controller.paused, 'controller paused state after clic k'); |
| 139 assert_false(e.paused, 'element paused state after click'); | 146 assert_false(e.paused, 'element paused state after click'); |
| 140 t.done(); | 147 t.done(); |
| 141 }); | 148 }); |
| 142 }, tagName + ' activation behavior for playing media controller (with non-bl ocked playing slave)'); | 149 }, tagName + ' activation behavior for playing media controller (with non-bl ocked playing slave)'); |
| 143 | 150 |
| 144 async_test(function(t) | 151 async_test(function(t) |
| 145 { | 152 { |
| 146 var e1 = document.createElement(tagName); | 153 var e1 = document.createElement(tagName); |
| 147 var e2 = document.createElement(tagName); | 154 var e2 = document.createElement(tagName); |
| 148 e1.controls = true; | 155 e1.controls = true; |
| 149 e1.src = src; | 156 e1.src = uniqueSrc(); |
| 150 e1.preload = 'auto'; | 157 e1.preload = 'auto'; |
| 151 e1.oncanplay = t.step_func(function() | 158 e1.oncanplay = t.step_func(function() |
| 152 { | 159 { |
| 153 assert_greater_than(e1.readyState, e1.HAVE_CURRENT_DATA, 'element 1 readyState'); | 160 assert_greater_than(e1.readyState, e1.HAVE_CURRENT_DATA, 'element 1 readyState'); |
| 154 assert_equals(e2.readyState, e2.HAVE_NOTHING, 'element 2 readyState' ); | 161 assert_equals(e2.readyState, e2.HAVE_NOTHING, 'element 2 readyState' ); |
| 155 e1.controller = new MediaController(); | 162 e1.controller = new MediaController(); |
| 156 e2.controller = e1.controller; | 163 e2.controller = e1.controller; |
| 157 assert_false(e1.controller.paused, 'controller paused state before c lick'); | 164 assert_false(e1.controller.paused, 'controller paused state before c lick'); |
| 158 assert_true(e1.paused, 'element 1 paused state before click'); | 165 assert_true(e1.paused, 'element 1 paused state before click'); |
| 159 assert_true(e2.paused, 'element 2 paused state before click'); | 166 assert_true(e2.paused, 'element 2 paused state before click'); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 199 var e = document.createElement(tagName); | 206 var e = document.createElement(tagName); |
| 200 assert_true(e.paused, 'paused state before click()'); | 207 assert_true(e.paused, 'paused state before click()'); |
| 201 e.click(); | 208 e.click(); |
| 202 assert_true(e.paused, 'paused state after click()'); | 209 assert_true(e.paused, 'paused state after click()'); |
| 203 }, tagName + ' activation behavior without controls'); | 210 }, tagName + ' activation behavior without controls'); |
| 204 } | 211 } |
| 205 | 212 |
| 206 activation_behavior_test('audio', findMediaFile('audio', 'content/test')); | 213 activation_behavior_test('audio', findMediaFile('audio', 'content/test')); |
| 207 activation_behavior_test('video', findMediaFile('video', 'content/test')); | 214 activation_behavior_test('video', findMediaFile('video', 'content/test')); |
| 208 </script> | 215 </script> |
| OLD | NEW |