Author: scottbw
Date: Tue Apr 5 13:03:00 2011
New Revision: 1089014
URL: http://svn.apache.org/viewvc?rev=1089014&view=rev
Log:
Corrected the handling of default text direction of i18n text to reflect both
W3C P&C and TWI specifications. Rather than always return "LTR" as a default we
allow NULL and then follow the algorithm for not using unicode escape
characters for NULL direction. This gets us much closer to TWI conformance.
Also updated our unit tests to reflect this behaviour change.
Modified:
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/DirectionalityUtilsTest.java
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/FormattingUtilsTest.java
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/AbstractLocalizedEntity.java
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/util/FormattingUtils.java
Modified:
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/DirectionalityUtilsTest.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/DirectionalityUtilsTest.java?rev=1089014&r1=1089013&r2=1089014&view=diff
==============================================================================
---
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/DirectionalityUtilsTest.java
(original)
+++
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/DirectionalityUtilsTest.java
Tue Apr 5 13:03:00 2011
@@ -30,7 +30,7 @@ public class DirectionalityUtilsTest {
Element widget = new Element("widget");
@SuppressWarnings("unused")
Document document = new Document(widget);
- assertEquals(AbstractLocalizedEntity.getTextDirection(widget),
AbstractLocalizedEntity.LEFT_TO_RIGHT);
+
assertEquals(AbstractLocalizedEntity.getTextDirection(widget),null);
}
@Test
@@ -57,6 +57,7 @@ public class DirectionalityUtilsTest {
@Test
public void getDirectionalityChildElementDefault(){
Element widget = new Element("widget");
+ widget.setAttribute("dir", "ltr");
Element name = new Element("name");
@SuppressWarnings("unused")
Document document = new Document(widget);
@@ -87,6 +88,7 @@ public class DirectionalityUtilsTest {
@Test
public void getDirectionalityChildElementOverridesWrongCase(){
Element widget = new Element("widget");
+ widget.setAttribute("dir", "ltr");
Element name = new Element("name");
name.setAttribute("dir", "rTl");
widget.addContent(name);
Modified:
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/FormattingUtilsTest.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/FormattingUtilsTest.java?rev=1089014&r1=1089013&r2=1089014&view=diff
==============================================================================
---
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/FormattingUtilsTest.java
(original)
+++
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/FormattingUtilsTest.java
Tue Apr 5 13:03:00 2011
@@ -32,8 +32,7 @@ public class FormattingUtilsTest {
@Test
public void name(){
String name = "×פ×<span dir=\"lro\">××</span>×§";
- String expected =
"\u202A\u05DD\u05E4\u05DC\u202D\u05D7\u05DC\u202C\u05E7\u202C";
- String expected2 =
"\u05DD\u05E4\u05DC\u202D\u05D7\u05DC\u202C\u05E7";
+ String expected =
"\u05DD\u05E4\u05DC\u202D\u05D7\u05DC\u202C\u05E7";
String dir = null;
assertEquals(expected.length(),
FormattingUtils.getEncoded(dir,name).length());
assertEquals(expected, FormattingUtils.getEncoded(dir,name));
@@ -69,7 +68,7 @@ public class FormattingUtilsTest {
@Test
public void ltr(){
- assertEquals("Hello World", FormattingUtils.getEncoded("ltr",
"Hello World"));
+ assertEquals("\u202aHello World\u202c",
FormattingUtils.getEncoded("ltr", "Hello World"));
}
@Test
@@ -89,7 +88,7 @@ public class FormattingUtilsTest {
@Test
public void embeddedOnly(){
- assertEquals("\u202aGoodbye \u202bleurc\u202c World\u202c",
FormattingUtils.getEncoded(null, "Goodbye <span dir=\"rtl\">leurc</span>
World"));
+ assertEquals("Goodbye \u202bleurc\u202c World",
FormattingUtils.getEncoded(null, "Goodbye <span dir=\"rtl\">leurc</span>
World"));
}
@Test
Modified:
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/AbstractLocalizedEntity.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/AbstractLocalizedEntity.java?rev=1089014&r1=1089013&r2=1089014&view=diff
==============================================================================
---
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/AbstractLocalizedEntity.java
(original)
+++
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/AbstractLocalizedEntity.java
Tue Apr 5 13:03:00 2011
@@ -124,7 +124,7 @@ public abstract class AbstractLocalizedE
try {
Attribute dir =
element.getAttribute(IW3CXMLConfiguration.DIR_ATRRIBUTE);
if (dir == null){
- if (element.isRootElement()) return
LEFT_TO_RIGHT;
+ if (element.isRootElement()) return null;
return
getTextDirection(element.getParentElement());
} else {
String dirValue =
UnicodeUtils.normalizeSpaces(dir.getValue());
Modified:
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/util/FormattingUtils.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/util/FormattingUtils.java?rev=1089014&r1=1089013&r2=1089014&view=diff
==============================================================================
---
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/util/FormattingUtils.java
(original)
+++
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/util/FormattingUtils.java
Tue Apr 5 13:03:00 2011
@@ -132,10 +132,10 @@ public class FormattingUtils {
// Encode any embedded SPAN tags into unicode control characters
String checkSpans = encodeSpan(value);
// If no changes, and no dir property, return original string
unmodified
- if (checkSpans.equals(value) && (dir == null ||
dir.equals("ltr"))) return value;
+ if (checkSpans.equals(value) && (dir == null)) return value;
value = checkSpans;
// Prepend direction control character
- if (dir == null) dir = "ltr";
+ if (dir == null) return value;
if (dir.equals("ltr")) dir = LTR;
if (dir.equals("lro")) dir = LRO;
if (dir.equals("rlo")) dir = RLO;