| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <title>Test that cue fragment is mutable.</title> |
| 3 <head> | 3 <script src="../media-file.js"></script> |
| 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 4 <script src="../../resources/testharness.js"></script> |
| 5 <script src="../../resources/testharnessreport.js"></script> |
| 6 <style> |
| 7 p, div { display: none; } |
| 8 </style> |
| 9 <video> |
| 10 <track src="captions-webvtt/captions-html.vtt" kind="captions" default > |
| 11 </video> |
| 12 <p>Fragment 1</p> |
| 13 <div></div> |
| 5 | 14 |
| 6 <script src=../media-file.js></script> | 15 <p>Fragment 2</p> |
| 7 <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956 | 16 <div></div> |
| 8 (Please avoid writing new tests using video-test.js) --> | 17 <script> |
| 9 <script src=../video-test.js></script> | 18 async_test(function(t) { |
| 10 <script src=../media-controls.js></script> | 19 var video = document.querySelector("video"); |
| 20 var testTrack = document.querySelector("track"); |
| 11 | 21 |
| 12 <script> | 22 video.oncanplaythrough = t.step_func(testMutability); |
| 23 testTrack.onload = t.step_func(testMutability); |
| 13 | 24 |
| 14 var testTrack; | 25 var fragment; |
| 15 var testCue; | 26 var eventCount = 0; |
| 16 var fragment; | 27 function testMutability() { |
| 28 eventCount++; |
| 29 if (eventCount != 2) |
| 30 return; |
| 17 | 31 |
| 18 function createExpectedFragment(rootNode) | 32 var testCue = testTrack.track.cues[0]; |
| 19 { | |
| 20 fragment = rootNode; | |
| 21 fragment.appendChild(document.createTextNode("Lorem ")); | |
| 22 | 33 |
| 23 var bold = document.createElement("b"); | 34 // Test initial cue contents. |
| 24 bold.appendChild(document.createTextNode("ipsum")); | 35 assert_equals(testCue.text, "Lorem <b>ipsum</b> <u>dolor</u> <i.sit>sit<
/i> amet,"); |
| 25 fragment.appendChild(bold); | |
| 26 | 36 |
| 27 fragment.appendChild(document.createTextNode(" ")); | 37 // Cue getCueAsHTML() should return a correct fragment. |
| 38 createExpectedFragment(document.createDocumentFragment()); |
| 39 assert_true(fragment.isEqualNode(testCue.getCueAsHTML())); |
| 28 | 40 |
| 29 var underline = document.createElement("u"); | 41 // Appending getCuesAsHTML() twice to the DOM should be succesful. |
| 30 underline.appendChild(document.createTextNode("dolor")); | 42 document.getElementsByTagName("div")[0].appendChild(testCue.getCueAsHTML
()); |
| 31 fragment.appendChild(underline); | 43 document.getElementsByTagName("div")[1].appendChild(testCue.getCueAsHTML
()); |
| 32 | 44 |
| 33 fragment.appendChild(document.createTextNode(" ")); | 45 createExpectedFragment(document.createElement("div")); |
| 46 assert_true(fragment.isEqualNode(document.getElementsByTagName("div")[0]
)); |
| 47 assert_true(fragment.isEqualNode(document.getElementsByTagName("div")[1]
)); |
| 34 | 48 |
| 35 var italics = document.createElement("i"); | 49 // The fragment returned by getCuesAsHTML() should be independently muta
ble. |
| 36 italics.className = "sit"; | 50 document.getElementsByTagName("div")[0].firstChild.textContent = "Differ
ent text "; |
| 37 italics.appendChild(document.createTextNode("sit")); | 51 assert_false(fragment.isEqualNode(document.getElementsByTagName("div")[0
])); |
| 38 fragment.appendChild(italics); | 52 assert_true(fragment.isEqualNode(document.getElementsByTagName("div")[1]
)); |
| 39 | 53 |
| 40 fragment.appendChild(document.createTextNode(" amet,")); | 54 // Calling twice getCueAsHTML() should not return the same fragment. |
| 41 } | 55 assert_not_equals(testCue.getCueAsHTML(), testCue.getCueAsHTML()); |
| 42 | 56 |
| 43 function testMutability() | 57 t.done(); |
| 44 { | 58 } |
| 45 run("testCue = testTrack.track.cues[0]"); | |
| 46 | 59 |
| 47 consoleWrite("<br>** Test initial cue contents"); | 60 function createExpectedFragment(rootNode) { |
| 48 testExpected("testCue.text", "Lorem <b>ipsum</b> <u>dolor</u> <i.sit
>sit</i> amet,"); | 61 fragment = rootNode; |
| 62 fragment.appendChild(document.createTextNode("Lorem ")); |
| 49 | 63 |
| 50 consoleWrite("<br>** Cue getCueAsHTML() should return a correct frag
ment"); | 64 var bold = document.createElement("b"); |
| 51 createExpectedFragment(document.createDocumentFragment()); | 65 bold.appendChild(document.createTextNode("ipsum")); |
| 52 testExpected("fragment.isEqualNode(testCue.getCueAsHTML())", true); | 66 fragment.appendChild(bold); |
| 53 | 67 |
| 54 consoleWrite("<br>** Appending getCuesAsHTML() twice to the DOM shou
ld be succesful"); | 68 fragment.appendChild(document.createTextNode(" ")); |
| 55 run("document.getElementsByTagName('div')[0].appendChild(testCue.get
CueAsHTML())"); | |
| 56 run("document.getElementsByTagName('div')[1].appendChild(testCue.get
CueAsHTML())"); | |
| 57 | 69 |
| 58 createExpectedFragment(document.createElement('div')); | 70 var underline = document.createElement("u"); |
| 59 testExpected("fragment.isEqualNode(document.getElementsByTagName('di
v')[0])", true); | 71 underline.appendChild(document.createTextNode("dolor")); |
| 60 testExpected("fragment.isEqualNode(document.getElementsByTagName('di
v')[1])", true); | 72 fragment.appendChild(underline); |
| 61 | 73 |
| 62 consoleWrite("<br>** The fragment returned by getCuesAsHTML() should
be independently mutable"); | 74 fragment.appendChild(document.createTextNode(" ")); |
| 63 run("document.getElementsByTagName('div')[0].firstChild.textContent
= 'Different text '"); | |
| 64 testExpected("fragment.isEqualNode(document.getElementsByTagName('di
v')[0])", false); | |
| 65 testExpected("fragment.isEqualNode(document.getElementsByTagName('di
v')[1])", true); | |
| 66 | 75 |
| 67 consoleWrite("<br>** Calling twice getCueAsHTML() should not return
the same fragment"); | 76 var italics = document.createElement("i"); |
| 68 testExpected("testCue.getCueAsHTML() == testCue.getCueAsHTML()", fal
se); | 77 italics.className = "sit"; |
| 78 italics.appendChild(document.createTextNode("sit")); |
| 79 fragment.appendChild(italics); |
| 69 | 80 |
| 70 consoleWrite(""); | 81 fragment.appendChild(document.createTextNode(" amet,")); |
| 71 endTest(); | 82 } |
| 72 } | |
| 73 | 83 |
| 74 function loaded() | 84 video.src = findMediaFile("video", "../content/counting"); |
| 75 { | 85 }); |
| 76 findMediaElement(); | 86 </script> |
| 77 testTrack = document.querySelector('track'); | |
| 78 | |
| 79 waitForEventsAndCall([[video, 'canplaythrough'], [testTrack, 'load']
], testMutability); | |
| 80 | |
| 81 video.src = findMediaFile('video', '../content/counting'); | |
| 82 } | |
| 83 | |
| 84 </script> | |
| 85 </head> | |
| 86 <body onload="loaded()"> | |
| 87 <video controls > | |
| 88 <track src="captions-webvtt/captions-html.vtt" kind="captions" defau
lt > | |
| 89 </video> | |
| 90 <p>Test that cue text is mutable.</p> | |
| 91 | |
| 92 <p>Fragment 1</p> | |
| 93 <div></div> | |
| 94 | |
| 95 <p>Fragment 2</p> | |
| 96 <div></div> | |
| 97 </body> | |
| 98 </html> | |
| OLD | NEW |