[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

rniwa at webkit.org rniwa at webkit.org
Wed Dec 22 18:38:58 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 95a975a0255042f1eecaed085c6ea5d70ae8d35b
Author: rniwa at webkit.org <rniwa at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Dec 15 03:06:23 2010 +0000

    2010-12-14  Ryosuke Niwa  <rniwa at webkit.org>
    
            Reviewed by Darin Adler.
    
            Range::extractContents needs more tests
            https://bugs.webkit.org/show_bug.cgi?id=51005
    
            Added a test to ensure Range::extractContents work as expected.
    
            * fast/dom/Range/range-extract-contents-crash-expected.txt: Renamed from LayoutTests/fast/dom/Range/range-extractContents-expected.txt.
            * fast/dom/Range/range-extract-contents-crash.html: Renamed from LayoutTests/fast/dom/Range/range-extractContents.html.
            * fast/dom/Range/range-extract-contents-expected.txt: Added.
            * fast/dom/Range/range-extract-contents.html: Added.
            * resources/dump-as-markup.js:
            (Markup.dump): Don't call node.getElementsByTagName if it doesn't exist.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 15a1355..3cbb829 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,19 @@
+2010-12-14  Ryosuke Niwa  <rniwa at webkit.org>
+
+        Reviewed by Darin Adler.
+
+        Range::extractContents needs more tests
+        https://bugs.webkit.org/show_bug.cgi?id=51005
+
+        Added a test to ensure Range::extractContents work as expected.
+
+        * fast/dom/Range/range-extract-contents-crash-expected.txt: Renamed from LayoutTests/fast/dom/Range/range-extractContents-expected.txt.
+        * fast/dom/Range/range-extract-contents-crash.html: Renamed from LayoutTests/fast/dom/Range/range-extractContents.html.
+        * fast/dom/Range/range-extract-contents-expected.txt: Added.
+        * fast/dom/Range/range-extract-contents.html: Added.
+        * resources/dump-as-markup.js:
+        (Markup.dump): Don't call node.getElementsByTagName if it doesn't exist.
+
 2010-12-14  Jian Li  <jianli at chromium.org>
 
         Unreviewed. Mark 2 new focus-ring-* tests as failed in chromium.
diff --git a/LayoutTests/fast/dom/Range/range-extract-contents-expected.txt b/LayoutTests/fast/dom/Range/range-extract-contents-expected.txt
new file mode 100644
index 0000000..3b319d7
--- /dev/null
+++ b/LayoutTests/fast/dom/Range/range-extract-contents-expected.txt
@@ -0,0 +1,162 @@
+test contents:
+| "hello world"
+| <span>
+|   style="font-weight: bold;"
+|   "WebKit"
+| <em>
+|   <script>
+|     "var i=0;"
+|   <b>
+|     <code>
+|       "This"
+|     " is"
+|   " a "
+|   <tt>
+|     "test "
+|     <wbr>
+|     "of "
+|     <blockquote>
+|       "Range's extractContents."
+| <q>
+|   <dfn>
+|     "This"
+| <!--  test  -->
+| " "
+| <header>
+|   <h3>
+|     "test"
+| " also works in Firefox."
+
+PASS: Extracting empty contents yields:
+| 
+
+PASS: Extracting entire contents yields:
+| "hello world"
+| <span>
+|   style="font-weight: bold;"
+|   "WebKit"
+| <em>
+|   <script>
+|     "var i=0;"
+|   <b>
+|     <code>
+|       "This"
+|     " is"
+|   " a "
+|   <tt>
+|     "test "
+|     <wbr>
+|     "of "
+|     <blockquote>
+|       "Range's extractContents."
+| <q>
+|   <dfn>
+|     "This"
+| <!--  test  -->
+| " "
+| <header>
+|   <h3>
+|     "test"
+| " also works in Firefox."
+
+PASS: Extracting single text node yields:
+| "hello world"
+
+PASS: Extracting substring of a text node (2, 5) yields:
+| "llo"
+
+PASS: Extracting single text node and start of span yields:
+| "hello world"
+| <span>
+|   style="font-weight: bold;"
+
+PASS: Extracting single text node and a span yields:
+| "hello world"
+| <span>
+|   style="font-weight: bold;"
+|   "WebKit"
+
+PASS: Extracting span through first b yields:
+| <span>
+|   style="font-weight: bold;"
+|   "WebKit"
+| <em>
+|   <script>
+|     "var i=0;"
+|   <b>
+
+PASS: Extracting code through blockquote yields:
+| <b>
+|   <code>
+|     "This"
+|   " is"
+| " a "
+| <tt>
+|   "test "
+|   <wbr>
+|   "of "
+|   <blockquote>
+|     "Range's extractContents."
+
+PASS: Extracting wbr through blockquote yields:
+| <wbr>
+| "of "
+| <blockquote>
+|   "Range's extractContents."
+
+PASS: Extracting q through header yields:
+| <q>
+|   <dfn>
+|     "This"
+| <!--  test  -->
+| " "
+| <header>
+|   <h3>
+|     "test"
+
+PASS: Extracting q through header using node index yields:
+| <q>
+|   <dfn>
+|     "This"
+| <!--  test  -->
+| " "
+| <header>
+|   <h3>
+|     "test"
+
+PASS: Extracting dfn through header yields:
+| <q>
+|   <dfn>
+|     "This"
+| <!--  test  -->
+| " "
+| <header>
+|   <h3>
+|     "test"
+
+PASS: Extracting script through dfn yields:
+| <em>
+|   <script>
+|     "var i=0;"
+|   <b>
+|     <code>
+|       "This"
+|     " is"
+|   " a "
+|   <tt>
+|     "test "
+|     <wbr>
+|     "of "
+|     <blockquote>
+|       "Range's extractContents."
+| <q>
+|   <dfn>
+|     "This"
+
+PASS: Extracting blockquote through em yields:
+| <tt>
+|   <blockquote>
+|     "Range's extractContents."
+
+DONE
+
diff --git a/LayoutTests/fast/dom/Range/range-extract-contents.html b/LayoutTests/fast/dom/Range/range-extract-contents.html
new file mode 100644
index 0000000..2d2d44c
--- /dev/null
+++ b/LayoutTests/fast/dom/Range/range-extract-contents.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+<body>
+<div id="test">hello world<span style="font-weight: bold;">WebKit</span><em><script>var i=0;</script><b><code>This</code> is</u></b> a <tt>test <wbr>of <blockquote>Range's extractContents.</blockquote></tt></em><q><dfn>This</dfn></q><!-- test --> <header><h3>test</header> also works in Firefox.</h3></div>
+<div id="expectations">
+    <div id="test_empty"></div>
+    <div id="test_text">hello world</div>
+    <div id="test_substring">llo</div>
+    <div id="test_text_with_start_tag">hello world<span style="font-weight: bold;"></span></div>
+    <div id="test_text_and_span">hello world<span style="font-weight: bold;">WebKit</span></div>
+    <div id="test_span_b"><span style="font-weight: bold;">WebKit</span><em><script>var i=0;</script><b></b></em></div>
+    <div id="test_code_blockquote"><b><code>This</code> is</u></b> a <tt>test <wbr>of <blockquote>Range's extractContents.</blockquote></tt></div>
+    <div id="test_wbr_blockquote"><wbr>of <blockquote>Range's extractContents.</blockquote></div>
+    <div id="test_q_header"><q><dfn>This</dfn></q><!-- test --> <header><h3>test</h3></header></div>
+    <div id="test_script_dfn"><em><script>var i=0;</script><b><code>This</code> is</u></b> a <tt>test <wbr>of <blockquote>Range's extractContents.</blockquote></tt></em><q><dfn>This</dfn></div>
+    <div id="test_blockquote_em"><tt><blockquote>Range's extractContents.</blockquote></tt></div>
+</div>
+<pre id="console"></pre>
+<script src="../../../resources/dump-as-markup.js"></script>
+<script>
+
+function log(message) {
+    document.getElementById('console').innerHTML += message + '\n';
+}
+
+function testExtractContents(description, startContainer, startOffset, endContainer, endOffset, expectedContentsId) {
+    var testContents = document.getElementById('test').innerHTML;
+
+    var range = document.createRange();
+    range.setStart(startContainer, startOffset);
+    range.setEnd(endContainer, endOffset);
+    var actualContents = range.extractContents();
+    
+    document.getElementById('test').innerHTML = testContents;
+
+    var action = description + ' yields:\n' + Markup.get(actualContents).replace(/</g, '&lt;');
+    var expectedContents = document.getElementById(expectedContentsId);
+    if (Markup.get(actualContents) == Markup.get(expectedContents))
+        log('PASS: ' + action);
+    else
+        log('FAIL: ' + action + '\n but expected:\n' + Markup.get(expectedContents).replace(/</g, '&lt;'));
+
+    log('');
+}
+
+Markup.noAutoDump();
+
+var test = document.getElementById('test');
+log('test contents:\n' + Markup.get(test).replace(/</g, '&lt;') + '\n')
+
+function firstElement(name) {
+    return test.getElementsByTagName(name)[0];
+}
+
+testExtractContents('Extracting empty contents', test, 0, test, 0, 'test_empty');
+testExtractContents('Extracting entire contents', test, 0, test, test.childNodes.length, 'test');
+testExtractContents('Extracting single text node', test, 0, test, 1, 'test_text')
+testExtractContents('Extracting substring of a text node (2, 5)', test.firstChild, 2, test.firstChild, 5, 'test_substring');
+testExtractContents('Extracting single text node and start of span', test, 0, test.childNodes[1], 0, 'test_text_with_start_tag');
+testExtractContents('Extracting single text node and a span', test, 0, test, 2, 'test_text_and_span');
+testExtractContents('Extracting span through first b', firstElement('span'), 0, firstElement('b'), 0, 'test_span_b');
+testExtractContents('Extracting code through blockquote', firstElement('code'), 0, firstElement('blockquote'), 1, 'test_code_blockquote');
+testExtractContents('Extracting wbr through blockquote', firstElement('wbr'), 0, firstElement('blockquote'), 1, 'test_wbr_blockquote');
+testExtractContents('Extracting q through header', firstElement('q'), 0, firstElement('header'), 1, 'test_q_header');
+testExtractContents('Extracting q through header using node index', test, 3, test, 7, 'test_q_header');
+testExtractContents('Extracting dfn through header', firstElement('dfn'), 0, firstElement('header'), 1, 'test_q_header');
+testExtractContents('Extracting script through dfn', firstElement('script'), 0, firstElement('dfn'), 1, 'test_script_dfn');
+testExtractContents('Extracting blockquote through em', firstElement('blockquote'), 0, firstElement('em'), firstElement('em').childNodes.length, 'test_blockquote_em');
+
+test.style.display = 'none';
+document.getElementById('expectations').style.display = 'none';
+
+log('DONE');
+
+</script>
+</body>
+</html>
diff --git a/LayoutTests/resources/dump-as-markup.js b/LayoutTests/resources/dump-as-markup.js
index 4d5306e..f73dddf 100644
--- a/LayoutTests/resources/dump-as-markup.js
+++ b/LayoutTests/resources/dump-as-markup.js
@@ -63,13 +63,16 @@ Markup.dump = function(opt_node, opt_description)
 
     // FIXME: Have this respect layoutTestController.dumpChildFramesAsText?
     // FIXME: Should we care about framesets?
-    var iframes = node.getElementsByTagName('iframe');
-    for (var i = 0; i < iframes.length; i++) {
-        markup += '\n\nFRAME ' + i + ':\n'
-        try {
-            markup += Markup.get(iframes[i].contentDocument.body.parentElement);
-        } catch (e) {
-            markup += 'FIXME: Add method to layout test controller to get access to cross-origin frames.';
+    // DocumentFragment doesn't have a getElementsByTagName method.
+    if (node.getElementsByTagName) {
+        var iframes = node.getElementsByTagName('iframe');
+        for (var i = 0; i < iframes.length; i++) {
+            markup += '\n\nFRAME ' + i + ':\n'
+            try {
+                markup += Markup.get(iframes[i].contentDocument.body.parentElement);
+            } catch (e) {
+                markup += 'FIXME: Add method to layout test controller to get access to cross-origin frames.';
+            }
         }
     }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list