aboutsummaryrefslogtreecommitdiffstats
path: root/common/tests/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'common/tests/src/com')
-rw-r--r--common/tests/src/com/android/util/PositionXmlParserTest.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/common/tests/src/com/android/util/PositionXmlParserTest.java b/common/tests/src/com/android/util/PositionXmlParserTest.java
index 1573c90..ba560a6 100644
--- a/common/tests/src/com/android/util/PositionXmlParserTest.java
+++ b/common/tests/src/com/android/util/PositionXmlParserTest.java
@@ -22,6 +22,7 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
@@ -80,6 +81,7 @@ public class PositionXmlParserTest extends TestCase {
Position start = parser.getPosition(attr);
Position end = start.getEnd();
assertEquals(2, start.getLine());
+ assertEquals(4, start.getColumn());
assertEquals(xml.indexOf("android:layout_width"), start.getOffset());
assertEquals(2, end.getLine());
String target = "android:layout_width=\"match_parent\"";
@@ -91,6 +93,7 @@ public class PositionXmlParserTest extends TestCase {
end = start.getEnd();
assertNull(end.getEnd());
assertEquals(6, start.getLine());
+ assertEquals(4, start.getColumn());
assertEquals(xml.indexOf("<Button"), start.getOffset());
assertEquals(xml.indexOf("/>") + 2, end.getOffset());
assertEquals(10, end.getLine());
@@ -100,6 +103,7 @@ public class PositionXmlParserTest extends TestCase {
start = parser.getPosition(button2);
end = start.getEnd();
assertEquals(12, start.getLine());
+ assertEquals(4, start.getColumn());
assertEquals(xml.indexOf("<Button", button1End), start.getOffset());
assertEquals(xml.indexOf("/>", start.getOffset()) + 2, end.getOffset());
assertEquals(16, end.getLine());
@@ -107,6 +111,52 @@ public class PositionXmlParserTest extends TestCase {
file.delete();
}
+ public void testText() throws Exception {
+ String xml =
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
+ "<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" +
+ " android:layout_width=\"match_parent\"\n" +
+ " android:layout_height=\"wrap_content\"\n" +
+ " android:orientation=\"vertical\" >\n" +
+ "\n" +
+ " <Button\n" +
+ " android:id=\"@+id/button1\"\n" +
+ " android:layout_width=\"wrap_content\"\n" +
+ " android:layout_height=\"wrap_content\"\n" +
+ " android:text=\"Button\" />\n" +
+ " some text\n" +
+ "\n" +
+ "</LinearLayout>\n";
+ PositionXmlParser parser = new PositionXmlParser();
+ File file = File.createTempFile("parsertest", ".xml");
+ file.deleteOnExit();
+ Writer fw = new BufferedWriter(new FileWriter(file));
+ fw.write(xml);
+ fw.close();
+ Document document = parser.parse(new FileInputStream(file));
+ assertNotNull(document);
+
+ // Basic parsing heart beat tests
+ Element linearLayout = (Element) document.getElementsByTagName("LinearLayout").item(0);
+ assertNotNull(linearLayout);
+ NodeList buttons = document.getElementsByTagName("Button");
+ assertEquals(1, buttons.getLength());
+ final String ANDROID_URI = "http://schemas.android.com/apk/res/android";
+ assertEquals("wrap_content",
+ linearLayout.getAttributeNS(ANDROID_URI, "layout_height"));
+
+ // Check text positions
+ Element button = (Element) buttons.item(0);
+ Text text = (Text) button.getNextSibling();
+ assertNotNull(text);
+
+ // Check attribute positions
+ Position start = parser.getPosition(text);
+ assertEquals(11, start.getLine());
+ assertEquals(10, start.getColumn());
+ assertEquals(xml.indexOf("some text"), start.getOffset());
+ }
+
public void testLineEndings() throws Exception {
// Test for http://code.google.com/p/android/issues/detail?id=22925
String xml =