[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, '<');
+ 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, '<'));
+
+ log('');
+}
+
+Markup.noAutoDump();
+
+var test = document.getElementById('test');
+log('test contents:\n' + Markup.get(test).replace(/</g, '<') + '\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