Title: [158979] trunk
Revision
158979
Author
[email protected]
Date
2013-11-08 17:13:29 -0800 (Fri, 08 Nov 2013)

Log Message

getCueAsHTML() on an empty cue should return a document fragment
https://bugs.webkit.org/show_bug.cgi?id=124084

Reviewed by Darin Adler.

Source/WebCore: 

Test: media/track/track-cue-empty-cue-text.html

* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::createDocumentFragmentFromCueText): Don't return early when the
    passed an empty string.

LayoutTests: 

* media/track/track-cue-empty-cue-text-expected.txt: Added.
* media/track/track-cue-empty-cue-text.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (158978 => 158979)


--- trunk/LayoutTests/ChangeLog	2013-11-09 00:51:54 UTC (rev 158978)
+++ trunk/LayoutTests/ChangeLog	2013-11-09 01:13:29 UTC (rev 158979)
@@ -1,3 +1,13 @@
+2013-11-08  Eric Carlson  <[email protected]>
+
+        getCueAsHTML() on an empty cue should return a document fragment
+        https://bugs.webkit.org/show_bug.cgi?id=124084
+
+        Reviewed by Darin Adler.
+
+        * media/track/track-cue-empty-cue-text-expected.txt: Added.
+        * media/track/track-cue-empty-cue-text.html: Added.
+
 2013-11-08  Alexandru Chiculita  <[email protected]>
 
         Web Inspector: It should be possible to debug the Inspector code

Added: trunk/LayoutTests/media/track/track-cue-empty-cue-text-expected.txt (0 => 158979)


--- trunk/LayoutTests/media/track/track-cue-empty-cue-text-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/track/track-cue-empty-cue-text-expected.txt	2013-11-09 01:13:29 UTC (rev 158979)
@@ -0,0 +1,13 @@
+getCueAsHTML() on an empty cue should return a valid document fragment.
+
+
+** The getCueAsHTML() method should return a document fragment **
+EXPECTED (fragment != 'null') OK
+
+** The document fragment should have one child, an empty Text node **
+EXPECTED (fragment.childNodes.length == '1') OK
+EXPECTED (fragment.childNodes[0].length == '0') OK
+EXPECTED (fragment.childNodes[0].constructor.name == 'undefined') OK
+
+END OF TEST
+

Added: trunk/LayoutTests/media/track/track-cue-empty-cue-text.html (0 => 158979)


--- trunk/LayoutTests/media/track/track-cue-empty-cue-text.html	                        (rev 0)
+++ trunk/LayoutTests/media/track/track-cue-empty-cue-text.html	2013-11-09 01:13:29 UTC (rev 158979)
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <script src=""
+        <script src=""
+        <script>
+        var fragment;
+        function startTest()
+        {
+            var emptyCue = new TextTrackCue(0, 0, "");
+            fragment = emptyCue.getCueAsHTML();
+
+            consoleWrite("** The getCueAsHTML() method should return a document fragment **");
+            testExpected("fragment", null, "!=");
+
+            consoleWrite("<br>** The document fragment should have one child, an empty Text node **");
+            testExpected("fragment.childNodes.length", 1);
+            testExpected("fragment.childNodes[0].length", 0);
+            testExpected("fragment.childNodes[0].constructor.name", Text.name);
+
+            consoleWrite("");
+
+            endTest();
+          }
+        </script>
+    </head>
+
+    <body _onload_="startTest()">
+        <p>getCueAsHTML() on an empty cue should return a valid document fragment.</p>
+        <video controls />
+    </body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (158978 => 158979)


--- trunk/Source/WebCore/ChangeLog	2013-11-09 00:51:54 UTC (rev 158978)
+++ trunk/Source/WebCore/ChangeLog	2013-11-09 01:13:29 UTC (rev 158979)
@@ -1,3 +1,16 @@
+2013-11-08  Eric Carlson  <[email protected]>
+
+        getCueAsHTML() on an empty cue should return a document fragment
+        https://bugs.webkit.org/show_bug.cgi?id=124084
+
+        Reviewed by Darin Adler.
+
+        Test: media/track/track-cue-empty-cue-text.html
+
+        * html/track/WebVTTParser.cpp:
+        (WebCore::WebVTTParser::createDocumentFragmentFromCueText): Don't return early when the
+            passed an empty string.
+
 2013-11-08  Anders Carlsson  <[email protected]>
 
         KeyedEncoder should be able to encoder objects

Modified: trunk/Source/WebCore/html/track/WebVTTParser.cpp (158978 => 158979)


--- trunk/Source/WebCore/html/track/WebVTTParser.cpp	2013-11-09 00:51:54 UTC (rev 158978)
+++ trunk/Source/WebCore/html/track/WebVTTParser.cpp	2013-11-09 01:13:29 UTC (rev 158979)
@@ -348,13 +348,16 @@
     // 4.8.10.13.4 WebVTT cue text parsing rules and
     // 4.8.10.13.5 WebVTT cue text DOM construction rules.
 
-    if (!text.length())
-        return 0;
-
     ASSERT(m_scriptExecutionContext->isDocument());
     Document* document = toDocument(m_scriptExecutionContext);
     
     RefPtr<DocumentFragment> fragment = DocumentFragment::create(*document);
+
+    if (text.isEmpty()) {
+        fragment->parserAppendChild(Text::create(*document, emptyString()));
+        return fragment.release();
+    }
+
     m_currentNode = fragment;
     m_tokenizer->reset();
     m_token.clear();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to