OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
3 | 3 |
4 <div id="sandbox"></div> | 4 <div id="sandbox"></div> |
5 | 5 |
6 <script> | 6 <script> |
7 description("Media query listeners should fire grouped by the MediaQueryList
."); | 7 description("Media query listeners should fire grouped by the MediaQueryList
."); |
| 8 var jsTestIsAsync = true; |
8 | 9 |
9 var sandbox = document.getElementById("sandbox"); | 10 var sandbox = document.getElementById("sandbox"); |
10 var iframe = document.createElement("iframe"); | 11 var iframe = document.createElement("iframe"); |
11 sandbox.appendChild(iframe); | 12 sandbox.appendChild(iframe); |
12 | 13 |
13 var matchMedia = iframe.contentWindow.matchMedia; | 14 var matchMedia = iframe.contentWindow.matchMedia; |
14 var mediaList1 = matchMedia("(max-width: 100px)"); | 15 var mediaList1 = matchMedia("(max-width: 100px)"); |
15 var mediaList2 = matchMedia("(max-width: 100px)"); | 16 var mediaList2 = matchMedia("(max-width: 100px)"); |
16 var mediaList3 = matchMedia("(max-width: 100px)"); | 17 var mediaList3 = matchMedia("(max-width: 100px)"); |
17 | 18 |
18 var listenersCalled = []; | 19 var listenersCalled = []; |
19 | 20 |
20 function makeListener(label) { | 21 function makeListener(label) { |
21 return function() { listenersCalled.push(label); }; | 22 return function() { listenersCalled.push(label); }; |
22 } | 23 } |
23 | 24 |
24 mediaList3.addListener(makeListener("mediaList3_1")); | 25 mediaList3.addListener(makeListener("mediaList3_1")); |
25 mediaList2.addListener(makeListener("mediaList2_1")); | 26 mediaList2.addListener(makeListener("mediaList2_1")); |
26 mediaList1.addListener(makeListener("mediaList1_1")); | 27 mediaList1.addListener(makeListener("mediaList1_1")); |
27 mediaList2.addListener(makeListener("mediaList2_2")); | 28 mediaList2.addListener(makeListener("mediaList2_2")); |
28 | 29 mediaList3.addListener(verifyResult); |
29 // FIXME: You shouldn't need to touch offsetTop to force these updates. | |
30 | 30 |
31 iframe.style.width = "200px"; | 31 iframe.style.width = "200px"; |
32 iframe.offsetTop; | |
33 | 32 |
34 var expectedResult = ["mediaList1_1", "mediaList2_1", "mediaList2_2", "media
List3_1"]; | 33 var expectedResult = ["mediaList1_1", "mediaList2_1", "mediaList2_2", "media
List3_1"]; |
35 shouldBe("listenersCalled", "expectedResult"); | 34 function verifyResult() { |
| 35 shouldBe("listenersCalled", "expectedResult"); |
| 36 finishJSTest(); |
| 37 } |
36 </script> | 38 </script> |
OLD | NEW |