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>    


Reply via email to