]> source.dussan.org Git - gwtquery.git/commitdiff
Fixed an issue which happened in domManip when it received a list of nodes with multi...
authorManolo Carrasco <manolo@apache.org>
Wed, 12 May 2010 09:53:32 +0000 (09:53 +0000)
committerManolo Carrasco <manolo@apache.org>
Wed, 12 May 2010 09:53:32 +0000 (09:53 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryCoreTest.java

index 0bb29fef7f1dc4aebb1a899e529c6eba0cffefe6..4e48334f02ba3c3aef21d0daeb456be1d66d7c06 100644 (file)
@@ -405,10 +405,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
   }\r
 \r
   private static GQuery innerHtml(String html) {\r
-    Element div = DOM.createDiv();\r
-    div.setInnerHTML(html);\r
-    return new GQuery(\r
-        copyNodeList((NodeList<Element>) (NodeList<?>) div.getChildNodes()));\r
+    return $(clean(html));\r
   }\r
 \r
   private static native String[] jsArrayToString0(JsArrayString array) /*-{\r
@@ -2395,7 +2392,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
     }\r
   }\r
 \r
-  private JSArray clean(String elem) {\r
+  protected static JSArray clean(String elem) {\r
     String tags = elem.trim().toLowerCase();\r
     String preWrap = "", postWrap = "";\r
     int wrapPos = 0;\r
@@ -2475,11 +2472,11 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
     return domManip(clean(html), func);\r
   }\r
 \r
-  private GQuery domManip(NodeList nodes, int func) {\r
+  private GQuery domManip(NodeList<?> nodes, int func) {\r
     for (Element e : elements()) {\r
       for (int i = 0; i < nodes.getLength(); i++) {\r
         Node n = nodes.getItem(i);\r
-        if (size() > 1) {\r
+        if (nodes.getLength() > 1) {\r
           n = n.cloneNode(true);\r
         }\r
 \r
index 5732802ddf44ac0ad627a3974cd8b53129055677..03a89b86b479a4027fc46ae070087e1248877df0 100644 (file)
@@ -44,7 +44,7 @@ public class GQueryCoreTest extends GWTTestCase {
     // Investigate: IE in method filter adds the attrib added="null"
     return s.toString().trim().toLowerCase().
         replaceAll("[\r\n]", "").
-        replaceAll(" ([\\w]+)=[\"]([^\"]+)[\"]", " $1=$2").
+        replaceAll(" ([\\w]+)=[\"']([^\"']+)[\"']", " $1=$2").
         replaceAll("\\s+\\$h=\"[^\"]+\"", "").
         replaceAll(" added=[^ >]+", "");
   }
@@ -519,9 +519,19 @@ public class GQueryCoreTest extends GWTTestCase {
     assertHtmlEquals(expected, $(e).html());
 
     $(e).html(content + wrapper);
-    expected
-        = "<b><p>Test Paragraph.</p></b><b><div id=\"content\">Content</div></b>";
+    expected = "<b><p>Test Paragraph.</p></b><b><div id=\"content\">Content</div></b>";
     $("*", e).wrap("<b></b>");
     assertHtmlEquals(expected, $(e).html());
   }
+  
+  public void testDomManip() {
+    String content = "<span class='branchA'><span class='target'>branchA target</span></span>"
+      + "<span class='branchB'><span class='target'>branchB target</span></span>";
+    
+    $(e).html("");
+    $(e).append(content);
+    assertEquals(4, $("span", e).size());
+    assertEquals(2, $("span.target", e).size());
+    assertHtmlEquals(content, $(e).html());
+  }
 }