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

rniwa at webkit.org rniwa at webkit.org
Wed Dec 22 12:26:30 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit c6153ad9dcace616a024f3ed237d76bb5a496e0f
Author: rniwa at webkit.org <rniwa at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 23 20:20:23 2010 +0000

    2010-08-19  Ryosuke Niwa  <rniwa at webkit.org>
    
            Reviewed by Tony Chang.
    
            There is no test for unicode-bidi / direction support in ApplyStyleCommand::applyInlineStyle
            https://bugs.webkit.org/show_bug.cgi?id=43989
    
            Added a test for MakeTextWritingDirectionNatural, MakeTextWritingDirectionLeftToRight,
            and MakeTextWritingDirectionRightToLeft commands.
    
            * editing/style/make-text-writing-direction-inline.html: Added.
            * editing/style/script-tests/make-text-writing-direction-inline.js: Added.
            (modifyWritingDirection):
            (selectFirstWord):
            (selectSecondAndThirdWords):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index f035b72..ca3260c 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,19 @@
+2010-08-19  Ryosuke Niwa  <rniwa at webkit.org>
+
+        Reviewed by Tony Chang.
+
+        There is no test for unicode-bidi / direction support in ApplyStyleCommand::applyInlineStyle
+        https://bugs.webkit.org/show_bug.cgi?id=43989
+
+        Added a test for MakeTextWritingDirectionNatural, MakeTextWritingDirectionLeftToRight,
+        and MakeTextWritingDirectionRightToLeft commands.
+
+        * editing/style/make-text-writing-direction-inline.html: Added.
+        * editing/style/script-tests/make-text-writing-direction-inline.js: Added.
+        (modifyWritingDirection):
+        (selectFirstWord):
+        (selectSecondAndThirdWords):
+
 2010-08-23  Abhishek Arya  <inferno at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/LayoutTests/editing/style/make-text-writing-direction-inline-expected.txt b/LayoutTests/editing/style/make-text-writing-direction-inline-expected.txt
new file mode 100644
index 0000000..d5d9128
--- /dev/null
+++ b/LayoutTests/editing/style/make-text-writing-direction-inline-expected.txt
@@ -0,0 +1,39 @@
+Tests to ensure MakeTextWritingDirection* modifies the direction of text and embed texts properly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Natural on first word of "hello world"
+PASS LeftToRight on first word of "hello world"
+PASS RightToLeft on first word of "hello world"
+PASS Natural on second and third words of "<b>hello world</b> webkit"
+PASS LeftToRight on second and third words of "<b>hello world</b> webkit"
+PASS RightToLeft on second and third words of "<b>hello world</b> webkit"
+FAIL (due to the bug 44359) Natural on third word of "<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>" yielded <span dir="rtl">hello <span dir="ltr">world</span></span><span><span> webkit</span></span><span dir="rtl"><span dir="ltr"> rocks</span></span> but expected <span dir="rtl">hello <span dir="ltr">world</span></span> webkit<span dir="rtl"><span dir="ltr"> rocks</span></span>
+FAIL (due to the bug 44359) LeftToRight on third word of "<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>" yielded <span dir="rtl">hello <span dir="ltr">world</span></span><span><span><span style="unicode-bidi: embed;"> webkit</span></span></span><span dir="rtl"><span dir="ltr"> rocks</span></span> but expected <span dir="rtl">hello <span dir="ltr">world</span></span><span style="unicode-bidi: embed;"> webkit</span><span dir="rtl"><span dir="ltr"> rocks</span></span>
+FAIL (due to the bug 44359) RightToLeft on third word of "<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>" yielded <span dir="rtl">hello <span dir="ltr">world</span><span> webkit</span><span dir="ltr"> rocks</span></span> but expected <span dir="rtl">hello <span dir="ltr">world</span> webkit<span dir="ltr"> rocks</span></span>
+PASS Natural on first word of "هنا يكتب النص العربي"
+PASS LeftToRight on first word of "هنا يكتب النص العربي"
+PASS RightToLeft on first word of "هنا يكتب النص العربي"
+PASS Natural on second and third words of "<b>هنا يكتب</b> النص العربي"
+PASS LeftToRight on second and third words of "<b>هنا يكتب</b> النص العربي"
+PASS RightToLeft on second and third words of "<b>هنا يكتب</b> النص العربي"
+PASS Natural on first word of "<div dir="rtl">هنا يكتب النص العربي</div>"
+PASS LeftToRight on first word of "<div dir="rtl">هنا يكتب النص العربي</div>"
+PASS RightToLeft on first word of "<div dir="rtl">هنا يكتب النص العربي</div>"
+PASS Natural on second and third words of "<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>"
+PASS LeftToRight on second and third words of "<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>"
+PASS RightToLeft on second and third words of "<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>"
+FAIL (due to the bug 44359) Natural on third word of "<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>" yielded <div dir="rtl">هنا <span dir="ltr">يكتب</span><span> النص</span><span dir="ltr"> العربي</span></div> but expected <div dir="rtl">هنا <span dir="ltr">يكتب</span> النص<span dir="ltr"> العربي</span></div>
+PASS LeftToRight on third word of "<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>"
+FAIL (due to the bug 44359) RightToLeft on third word of "<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>" yielded <div dir="rtl">هنا <span dir="ltr">يكتب</span><span><span style="unicode-bidi: embed;"> النص</span></span><span dir="ltr"> العربي</span></div> but expected <div dir="rtl">هنا <span dir="ltr">يكتب</span><span style="unicode-bidi: embed;"> النص</span><span dir="ltr"> العربي</span></div>
+PASS Natural on first word of "写中文"
+PASS LeftToRight on first word of "写中文"
+PASS RightToLeft on first word of "写中文"
+PASS Natural on first word of "<div dir="rtl">写中文</div>"
+PASS LeftToRight on first word of "<div dir="rtl">写中文</div>"
+PASS RightToLeft on first word of "<div dir="rtl">写中文</div>"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/editing/style/make-text-writing-direction-inline.html b/LayoutTests/editing/style/make-text-writing-direction-inline.html
new file mode 100644
index 0000000..da136e1
--- /dev/null
+++ b/LayoutTests/editing/style/make-text-writing-direction-inline.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/make-text-writing-direction-inline.js"></script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/editing/style/script-tests/make-text-writing-direction-inline.js b/LayoutTests/editing/style/script-tests/make-text-writing-direction-inline.js
new file mode 100644
index 0000000..bb8dd48
--- /dev/null
+++ b/LayoutTests/editing/style/script-tests/make-text-writing-direction-inline.js
@@ -0,0 +1,115 @@
+description('Tests to ensure MakeTextWritingDirection* modifies the direction of text and embed texts properly.');
+
+if (!window.layoutTestController)
+    testFailed('This test requires layoutTestController');
+
+var testContainer = document.createElement("div");
+testContainer.contentEditable = true;
+document.body.appendChild(testContainer);
+
+function recursivelyRemoveExtraenousSpan(node) {
+    for (var i = 0; i < node.childNodes.length; i++)
+        recursivelyRemoveExtraenousSpan(node.childNodes[i]);
+    if (node.localName == 'span' && node.attributes.length == 0) {
+        var childNodes = node.childNodes;
+        while (node.firstChild)
+            node.parentNode.insertBefore(node.firstChild, node);
+        node.parentNode.removeChild(node);
+    }
+}
+
+function modifyWritingDirection(content, selector, command, expected)
+{
+    if (!window.layoutTestController)
+        return;
+
+    testContainer.innerHTML = content;
+    var selected = selector(testContainer);
+    window.layoutTestController.execCommand('MakeTextWritingDirection' + command);
+
+    // Remove Apple-style-span because it does not need to be tested here.
+    var actual = testContainer.innerHTML.replace(/ class="Apple-style-span"/g, '');
+    var action = command + ' on ' + selected + ' of "' + content + '"';
+    if (actual == expected)
+        testPassed(action);
+    else {
+        error = ' yielded ' + actual + ' but expected ' + expected;
+        recursivelyRemoveExtraenousSpan(testContainer);
+        if (testContainer.innerHTML.replace(/ class="Apple-style-span"/g, '') == expected)
+            testFailed('(due to the bug 44359) ' + action + error);
+        else
+            testFailed(action + error);
+    }
+}
+
+function selectFirstWord(container) {
+    document.getSelection().setBaseAndExtent(container, 0, container, 0);
+    document.getSelection().modify('extend', 'forward', 'word');
+    return 'first word';
+}
+
+function selectSecondAndThirdWords(container) {
+    document.getSelection().setBaseAndExtent(container, 0, container, 0);
+    document.getSelection().modify('move', 'forward', 'word');
+    document.getSelection().modify('extend', 'forward', 'word');
+    document.getSelection().modify('extend', 'forward', 'word');
+    return 'second and third words';
+}
+
+function selectThirdWord(container) {
+    document.getSelection().setBaseAndExtent(container, 0, container, 0);
+    document.getSelection().modify('move', 'forward', 'word');
+    document.getSelection().modify('move', 'forward', 'word');
+    document.getSelection().modify('extend', 'forward', 'word');
+    return 'third word';
+}
+
+// left to right language
+modifyWritingDirection('hello world', selectFirstWord, 'Natural', 'hello world');
+modifyWritingDirection('hello world', selectFirstWord, 'LeftToRight', '<span style="unicode-bidi: embed;">hello</span> world');
+modifyWritingDirection('hello world', selectFirstWord, 'RightToLeft', '<span style="unicode-bidi: embed; direction: rtl;">hello</span> world');
+modifyWritingDirection('<b>hello world</b> webkit', selectSecondAndThirdWords, 'Natural', '<b>hello world</b> webkit');
+modifyWritingDirection('<b>hello world</b> webkit', selectSecondAndThirdWords, 'LeftToRight', '<b>hello<span style="unicode-bidi: embed;"> world</span></b><span style="unicode-bidi: embed;"> webkit</span>');
+modifyWritingDirection('<b>hello world</b> webkit', selectSecondAndThirdWords, 'RightToLeft', '<b>hello<span style="unicode-bidi: embed; direction: rtl;"> world</span></b><span style="unicode-bidi: embed; direction: rtl;"> webkit</span>');
+modifyWritingDirection('<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>', selectThirdWord, 'Natural',
+                       '<span dir="rtl">hello <span dir="ltr">world</span></span> webkit<span dir="rtl"><span dir="ltr"> rocks</span></span>');
+modifyWritingDirection('<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>', selectThirdWord, 'LeftToRight',
+                       '<span dir="rtl">hello <span dir="ltr">world</span></span><span style="unicode-bidi: embed;"> webkit</span><span dir="rtl"><span dir="ltr"> rocks</span></span>');
+modifyWritingDirection('<span dir="rtl">hello <span dir="ltr">world webkit rocks</span></span>', selectThirdWord, 'RightToLeft',
+                       '<span dir="rtl">hello <span dir="ltr">world</span> webkit<span dir="ltr"> rocks</span></span>');
+
+// right to left language
+modifyWritingDirection('هنا يكتب النص العربي', selectFirstWord, 'Natural', 'هنا يكتب النص العربي');
+modifyWritingDirection('هنا يكتب النص العربي', selectFirstWord, 'LeftToRight', '<span style="unicode-bidi: embed;">هنا</span> يكتب النص العربي');
+modifyWritingDirection('هنا يكتب النص العربي', selectFirstWord, 'RightToLeft', '<span style="unicode-bidi: embed; direction: rtl;">هنا</span> يكتب النص العربي');
+
+modifyWritingDirection('<b>هنا يكتب</b> النص العربي', selectSecondAndThirdWords, 'Natural', '<b>هنا يكتب</b> النص العربي');
+modifyWritingDirection('<b>هنا يكتب</b> النص العربي', selectSecondAndThirdWords, 'LeftToRight', '<b>هنا<span style="unicode-bidi: embed;"> يكتب</span></b><span style="unicode-bidi: embed;"> النص</span> العربي');
+modifyWritingDirection('<b>هنا يكتب</b> النص العربي', selectSecondAndThirdWords, 'RightToLeft', '<b>هنا<span style="unicode-bidi: embed; direction: rtl;"> يكتب</span></b><span style="unicode-bidi: embed; direction: rtl;"> النص</span> العربي');
+
+modifyWritingDirection('<div dir="rtl">هنا يكتب النص العربي</div>', selectFirstWord, 'Natural', '<div dir="rtl">هنا يكتب النص العربي</div>');
+modifyWritingDirection('<div dir="rtl">هنا يكتب النص العربي</div>', selectFirstWord, 'LeftToRight', '<div dir="rtl"><span style="unicode-bidi: embed; direction: ltr;">هنا</span> يكتب النص العربي</div>');
+modifyWritingDirection('<div dir="rtl">هنا يكتب النص العربي</div>', selectFirstWord, 'RightToLeft', '<div dir="rtl"><span style="unicode-bidi: embed;">هنا</span> يكتب النص العربي</div>');
+
+modifyWritingDirection('<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>', selectSecondAndThirdWords, 'Natural', '<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>');
+modifyWritingDirection('<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>', selectSecondAndThirdWords, 'LeftToRight', '<div dir="rtl"><b>هنا<span style="unicode-bidi: embed; direction: ltr;"> يكتب</span></b><span style="unicode-bidi: embed; direction: ltr;"> النص</span> العربي</div>');
+modifyWritingDirection('<div dir="rtl"><b>هنا يكتب</b> النص العربي</div>', selectSecondAndThirdWords, 'RightToLeft', '<div dir="rtl"><b>هنا<span style="unicode-bidi: embed;"> يكتب</span></b><span style="unicode-bidi: embed;"> النص</span> العربي</div>');
+modifyWritingDirection('<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>', selectThirdWord, 'Natural',
+                       '<div dir="rtl">هنا <span dir="ltr">يكتب</span> النص<span dir="ltr"> العربي</span></div>');
+modifyWritingDirection('<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>', selectThirdWord, 'LeftToRight',
+                       '<div dir="rtl"><span style="direction: ltr;">هنا </span><span dir="ltr">يكتب النص العربي</span></div>');
+modifyWritingDirection('<div dir="rtl">هنا <span dir="ltr">يكتب النص العربي</span></div>', selectThirdWord, 'RightToLeft',
+                       '<div dir="rtl">هنا <span dir="ltr">يكتب</span><span style="unicode-bidi: embed;"> النص</span><span dir="ltr"> العربي</span></div>');
+
+// bidirectional langauge
+modifyWritingDirection('写中文', selectFirstWord, 'Natural', '写中文');
+modifyWritingDirection('写中文', selectFirstWord, 'LeftToRight', '<span style="unicode-bidi: embed;">写</span>中文');
+modifyWritingDirection('写中文', selectFirstWord, 'RightToLeft', '<span style="unicode-bidi: embed; direction: rtl;">写</span>中文');
+
+modifyWritingDirection('<div dir="rtl">写中文</div>', selectFirstWord, 'Natural', '<div dir="rtl">写中文</div>');
+modifyWritingDirection('<div dir="rtl">写中文</div>', selectFirstWord, 'LeftToRight', '<div dir="rtl"><span style="unicode-bidi: embed; direction: ltr;">写</span>中文</div>');
+modifyWritingDirection('<div dir="rtl">写中文</div>', selectFirstWord, 'RightToLeft', '<div dir="rtl"><span style="unicode-bidi: embed;">写</span>中文</div>');
+
+document.body.removeChild(testContainer);
+
+var successfullyParsed = true;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list