Author: johnh
Date: Tue Mar 30 00:42:18 2010
New Revision: 928948
URL: http://svn.apache.org/viewvc?rev=928948&view=rev
Log:
Added test case for text-before-script gadget input.
This test demonstrates that the Caja-based parser works, whereas Neko does not.
This appears to be due to Neko's attempt to form a full HTML doc when parsing a
snippet, finding that #text is not a valid child of <head> (and thus discarding
it). The Neko test update reflects this by disabling the test.
Added:
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script-expected.html
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script.html
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/nekohtml/NekoParserAndSerializeTest.java
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java?rev=928948&r1=928947&r2=928948&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
Tue Mar 30 00:42:18 2010
@@ -94,4 +94,12 @@ public abstract class AbstractParserAndS
loadFile("org/apache/shindig/gadgets/parse/test-with-ampersands-expected.html");
parseAndCompareBalanced(content, expected, parser);
}
+
+ @Test
+ public void textBeforeScript() throws Exception {
+ String content =
loadFile("org/apache/shindig/gadgets/parse/test-text-before-script.html");
+ String expected =
+
loadFile("org/apache/shindig/gadgets/parse/test-text-before-script-expected.html");
+ parseAndCompareBalanced(content, expected, parser);
+ }
}
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/nekohtml/NekoParserAndSerializeTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/nekohtml/NekoParserAndSerializeTest.java?rev=928948&r1=928947&r2=928948&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/nekohtml/NekoParserAndSerializeTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/nekohtml/NekoParserAndSerializeTest.java
Tue Mar 30 00:42:18 2010
@@ -75,4 +75,14 @@ public class NekoParserAndSerializeTest
assertNull(parser.parseDom(content).getDoctype());
parseAndCompareBalanced(content, expected, parser);
}
+
+ @Test
+ public void textBeforeScript() throws Exception {
+ // Doesn't work in "native" form due to Neko's internals. Upon finding
first text, then a
+ // <script> node, Neko discards the text. To fix this, we would have to
either dive into
+ // Neko's internals, which could change underneath us, or do some overly
complicated and
+ // costly dual-parsing pass, to detect which "early" elements have been
discarded from
+ // the document by Neko. These use cases are marginal at best, and Caja's
parser does not
+ // exhibit this behavior, so we don't do so.
+ }
}
Added:
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script-expected.html
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script-expected.html?rev=928948&view=auto
==============================================================================
---
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script-expected.html
(added)
+++
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script-expected.html
Tue Mar 30 00:42:18 2010
@@ -0,0 +1,8 @@
+<html>
+<head>
+</head>
+<body>
+This is text.
+<script>alert('And this is script');</script>
+</body>
+</html>
Added:
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script.html
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script.html?rev=928948&view=auto
==============================================================================
---
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script.html
(added)
+++
shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-text-before-script.html
Tue Mar 30 00:42:18 2010
@@ -0,0 +1,2 @@
+This is text.
+<script>alert('And this is script');</script>