]> source.dussan.org Git - gwtquery.git/commitdiff
changes in dev test module
authorManolo Carrasco <manolo@apache.org>
Thu, 3 Mar 2011 10:13:24 +0000 (10:13 +0000)
committerManolo Carrasco <manolo@apache.org>
Thu, 3 Mar 2011 10:13:24 +0000 (10:13 +0000)
devtest/pom.xml
devtest/src/main/java/com/google/gwt/query/client/DevTestRunner.java

index 4a212515c26f9c0d20e35cade3472a4990efa010..2c69b0c4a5b304f9338867d5c60951de873ef2d5 100644 (file)
             <type>jar</type>
             <scope>provided</scope>
         </dependency>
-
         <dependency>
-            <groupId>${groupId}</groupId>
-            <artifactId>gwtquery-plugins</artifactId>
-            <version>${version}</version>
-            <type>jar</type>
+            <groupId>com.google.gwt</groupId>
+            <artifactId>gwt-user</artifactId>
+            <version>${gwtversion}</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>com.google.gwt</groupId>
+            <artifactId>gwt-dev</artifactId>
+            <version>${gwtversion}</version>
+            <scope>provided</scope>
+        </dependency>        
     </dependencies>
     <build>
        <outputDirectory>./target/www/WEB-INF/classes</outputDirectory>
index e03c34e09ea8d4a01a05d1a61ab873828be8ddea..f8f562154ed69d35dd97d74df437a0bd68b21717 100644 (file)
 package com.google.gwt.query.client;\r
 \r
 import static com.google.gwt.query.client.GQuery.$;\r
-import static com.google.gwt.query.client.GQuery.document;\r
 \r
 import com.google.gwt.core.client.EntryPoint;\r
-import com.google.gwt.core.client.GWT;\r
-import com.google.gwt.dom.client.Document;\r
-import com.google.gwt.dom.client.Element;\r
-import com.google.gwt.dom.client.NodeList;\r
-import com.google.gwt.event.dom.client.ClickEvent;\r
-import com.google.gwt.event.dom.client.ClickHandler;\r
 import com.google.gwt.event.dom.client.FocusHandler;\r
 import com.google.gwt.event.shared.GwtEvent;\r
 import com.google.gwt.event.shared.HandlerRegistration;\r
-import com.google.gwt.query.client.impl.SelectorEngineImpl;\r
-import com.google.gwt.query.client.plugins.Events;\r
-import com.google.gwt.query.client.plugins.Widgets;\r
-import com.google.gwt.user.client.Event;\r
+import com.google.gwt.query.client.js.JsUtils;\r
+import com.google.gwt.query.client.plugins.effects.PropertiesAnimation;\r
+import com.google.gwt.query.client.plugins.effects.PropertiesAnimation.Easing;\r
 import com.google.gwt.user.client.Timer;\r
-import com.google.gwt.user.client.ui.Button;\r
-import com.google.gwt.user.client.ui.FlowPanel;\r
-import com.google.gwt.user.client.ui.Label;\r
-import com.google.gwt.user.client.ui.RootPanel;\r
-import com.google.gwt.user.client.ui.SimplePanel;\r
-import com.google.gwt.user.client.ui.Widget;\r
 \r
 /**\r
  * This module is thought to emulate a test environment similar to\r
@@ -60,293 +46,99 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
   public void onModuleLoad() {\r
     try {\r
       gwtSetUp();\r
-      testEventsPlugin();\r
+      testPropertiesAnimationComputeEffects();\r
     } catch (Exception ex) {\r
       ex.printStackTrace();\r
       $(e).html("").after("<div>ERROR: " + ex.getMessage() + "</div>");\r
     }\r
   }\r
   \r
-  public void testEventsPlugin() {\r
-    $(e).html("<p>Content</p>");\r
-\r
-    // click\r
-    $("p", e).click(new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("color", "red");\r
-      }\r
-    }, new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("background", "green");\r
-      }\r
-    });\r
-    $("p", e, Events.Events).trigger(Event.ONCLICK);\r
-    assertEquals("red", $("p", e).css("color"));\r
-    assertEquals("green", $("p", e).css("background-color"));\r
-\r
-    // unbind\r
-    $("p", e).css("color", "white");\r
-    $("p", e).unbind(Event.ONCLICK);\r
-    $("p", e).click();\r
-    assertEquals("white", $("p", e).css("color"));\r
-\r
-    // toggle\r
-    $("p", e).unbind(Event.ONCLICK);\r
-    $("p", e).toggle(new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("color", "red");\r
-      }\r
-    }, new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("color", "blue");\r
-      }\r
-    });\r
-    $("p", e).click();\r
-    assertEquals("red", $("p", e).css("color"));\r
-    $("p", e).click();\r
-    assertEquals("blue", $("p", e).css("color"));\r
-\r
-    // one\r
-    $("p", e).unbind(Event.ONCLICK);\r
-    $("p", e).one(Event.ONCLICK, null, new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("color", "red");\r
-      }\r
-    });\r
-    $("p", e).click();\r
-    assertEquals("red", $("p", e).css("color"));\r
-    $("p", e).css("color", "white");\r
-    $("p", e).click();\r
-    assertEquals("white", $("p", e).css("color"));\r
-\r
-    // hover (mouseover, mouseout)\r
-    $("p", e).hover(new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("background-color", "yellow");\r
-      }\r
-    }, new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("background-color", "white");\r
-      }\r
-    });\r
-    $("p", e).trigger(Event.ONMOUSEOVER);\r
-    assertEquals("yellow", $("p", e).css("background-color"));\r
-    $("p", e).trigger(Event.ONMOUSEOUT);\r
-    assertEquals("white", $("p", e).css("background-color"));\r
-\r
-    // focus\r
-    $("p", e).focus(new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("border", "1px dotted black");\r
-      }\r
-    });\r
-    $("p", e).focus();\r
-    assertEquals("black", $("p", e).css("border-top-color"));\r
-    assertEquals("dotted", $("p", e).css("border-top-style"));\r
-    assertEquals("1px", $("p", e).css("border-top-width"));\r
+  public void testPropertiesAnimationComputeEffects() {\r
+    $(e)\r
+        .html(\r
+            "<div id='parent' style='background-color: yellow; width: 100px; height: 200px; top:130px; position: absolute; left: 130px'><p id='child' style='background-color: pink; width: 100px; height: 100px; position: absolute; padding: 5px; margin: 0px'>Content 1</p></div>");\r
+    GQuery g = $("#child");\r
+    Properties prop1;\r
 \r
-    // blur\r
-    $("p", e).blur(new Function() {\r
-      public void f(Element elem) {\r
-        $(elem).css("border", "");\r
-      }\r
-    });\r
-    $("p", e).blur();\r
-    assertEquals("", $("p", e).css("border"));\r
+    assertEquals("attr=marginTop value=-110px start=0 end=-110 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginTop", "-110px",\r
+            false).toString());\r
+    assertEquals("attr=marginLeft value=-110px start=0 end=-110 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginLeft", "-110px",\r
+            false).toString());\r
+    assertEquals("attr=top value=50% start=0 end=50 unit=%",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "top", "50%", false)\r
+            .toString());\r
+    assertEquals("attr=left value=50% start=0 end=50 unit=%",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "left", "50%", false)\r
+            .toString());\r
+    assertEquals("attr=width value=174px start=100 end=174 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "width", "174px", false)\r
+            .toString());\r
+    assertEquals("attr=height value=174px start=100 end=174 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "height", "174px", false)\r
+            .toString());\r
+    assertEquals("attr=padding value=20px start=5 end=20 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "padding", "20px", false)\r
+            .toString());\r
 \r
-    // key events\r
-    $(e).html("<input type='text'/>");\r
-    Function keyEventAction = new Function() {\r
-      public boolean f(Event evnt) {\r
-        GQuery gq = $(evnt);\r
-        gq.val(gq.val() + Character.toString((char) evnt.getKeyCode()));\r
-        return false;\r
-      }\r
-    };\r
-    $("input", e).keypress(keyEventAction);\r
-    $("input", e).keydown(keyEventAction);\r
-    $("input", e).keyup(keyEventAction);\r
-    $("input", e).focus();\r
-    $("input", e).keydown('a');\r
-    $("input", e).keypress('b');\r
-    $("input", e).keyup('c');\r
-    assertEquals("abc", $("input", e).val());\r
-  }\r
-  \r
-  public void testUnbindMultipleEvents() {\r
-    String content = "<p>content</p>";\r
-    $(e).html(content);\r
-    $(document).bind(Event.ONMOUSEMOVE, null, new Function() {\r
-      public void f(Element e){\r
-        $("p").css("color", "red");\r
-      }\r
-    });\r
-    $(document).bind(Event.ONMOUSEUP, null, new Function(){\r
-      public void f(Element e){\r
-        $("p").css("color", "yellow");\r
-      }\r
-    });\r
-    $(document).trigger(Event.ONMOUSEMOVE);\r
-    assertEquals("red", $("p").css("color"));\r
-    $(document).trigger(Event.ONMOUSEUP);\r
-    assertEquals("yellow", $("p").css("color"));\r
-    $("p").css("color", "black");\r
-    $(document).unbind(Event.ONMOUSEUP|Event.ONMOUSEMOVE);\r
-    $(document).trigger(Event.ONMOUSEMOVE);\r
-    assertEquals("black", $("p").css("color"));\r
-    $(document).trigger(Event.ONMOUSEUP);\r
-    assertEquals("black", $("p").css("color"));\r
-  }\r
-  \r
-  public void testGWTQueryCoreWidgets() {\r
-    final FlowPanel p = new FlowPanel();\r
-    Button b = new Button("test");\r
-    RootPanel.get().add(b);\r
-    RootPanel.get().add(p);\r
-    \r
-    int nitems = 4;\r
-    final String label1 = "I'm the label ";\r
-    final String label2 = "Finally I'm just a simple label";\r
-    \r
-    for (int i = 0; i < nitems; i++) {\r
-      Label l = new Label(label1 + i);\r
-      p.add(l);\r
-    }\r
-    $("<div>whatever</div").appendTo($(p));\r
-    \r
-    b.addClickHandler(new ClickHandler() {\r
-      public void onClick(ClickEvent event) {\r
-        $(".gwt-Label", p).each(new Function() {\r
-          @Override\r
-          public void f(Widget w) {\r
-            Label l = (Label) w;\r
-            l.setText(label2);\r
-          }\r
-        });\r
-      }\r
-    });\r
-    \r
-    $(".gwt-Label", p).each(new Function() {\r
-      @Override\r
-      public Object f(Widget w, int i) {\r
-        assertEquals(label1 + i, ((Label)w).getText());\r
-        return null;\r
-      }\r
-    });\r
-    \r
-    $(b).click();\r
-\r
-    $(".gwt-Label", p).each(new Function() {\r
-      public void f(Element e) {\r
-        assertEquals(label2, $(e).text());\r
-      }\r
-    });\r
-    \r
-    $("div", p).each(new Function() {\r
-      public void f(Element e) {\r
-        // Just to avoid the exception when non-widget elements match\r
-      }\r
-      public void f(Widget w) {\r
-        if (w instanceof Label) {\r
-          assertEquals(label2, $(e).text());\r
-        }\r
-      }\r
-    });\r
-    \r
-    p.removeFromParent();\r
-    b.removeFromParent();\r
-  }\r
-  \r
-  public void testGQueryWidgets() {\r
-    final Button b1 = new Button("click-me");\r
-    RootPanel.get().add(b1);\r
-    GQuery g = $(b1);\r
-    Button b2 = (Button) g.as(Widgets.Widgets).widget();\r
-    assertEquals(b1, b2);\r
-    \r
-    \r
-    b2 = (Button)$("<button>Click-me</button>").appendTo(document).asWidget();\r
-    b2.addClickHandler(new ClickHandler() {\r
-      public void onClick(ClickEvent event) {\r
-        $(b1).css("color", "red");\r
-      }\r
-    });\r
-    \r
-    b2.click();\r
-    assertEquals("red", $(b1).css("color"));\r
-  }\r
-  \r
-  public void testSiblings() {\r
-    String content = "<table><tr ><td class='r1'>1</td><td>2</td></tr><tr><td>1</td><td>2</td></tr></table>";\r
-    $(e).html(content);\r
-    $(".r1").css("background", "red");\r
-    \r
-    $(".r1").hover(new Function() {\r
-      public void f(Element e) {\r
-        $(e).add($(e).siblings()).text("A");\r
-      }\r
-    },new Function() {\r
-      public void f(Element e) {\r
-        $(e).add($(e).siblings()).text("B");\r
-      }\r
-    });\r
-  }\r
-  \r
-  \r
-  public void testNamedBinding() {\r
-    $(e).html("<p>Content</p>");\r
+    prop1 = GQuery.$$("marginTop: '-110px', marginLeft: '-110px', top: '50%', left: '50%', width: '174px', height: '174px', padding: '20px'");\r
+    PropertiesAnimation an = new PropertiesAnimation(Easing.SWING, g.get(0), prop1);\r
+    an.onStart();\r
+    an.onComplete();\r
 \r
-    $("p", e, Events.Events).bind("click.first.namespace", null, new Function() {; \r
-      public void f(Element elem) {\r
-        $(elem).css("color", "red");\r
-      }\r
-    });\r
-    $("p", e, Events.Events).bind("click.second.namespace", null, new Function() {; \r
-      public void f(Element elem) {\r
-        $(elem).css("background", "green");\r
-      }\r
-    });\r
-    $("p", e, Events.Events).bind("click", null, new Function() {; \r
-      public void f(Element elem) {\r
-        $(elem).css("fontSize", "24px");\r
-      }\r
-    });\r
-    $("p", e, Events.Events).trigger(Event.ONCLICK);\r
-    assertEquals("red", $("p", e).css("color"));\r
-    assertEquals("green", $("p", e).css("background-color"));\r
-    assertEquals(24.0d, GQUtils.cur($("p", e).get(0), "fontSize", true));\r
-    \r
-    $("p", e).css("color","").css("background-color","").css("fontSize", "12px");\r
-    assertFalse("red".equalsIgnoreCase($("p", e).css("color")));\r
-    assertFalse("green".equalsIgnoreCase($("p", e).css("background-color")));\r
-    assertEquals(12.0d, GQUtils.cur($("p", e).get(0), "fontSize", true));\r
+    assertEquals("attr=marginTop value=0 start=-110 end=0 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginTop", "0", false)\r
+            .toString());\r
+    assertEquals("attr=marginLeft value=0 start=-110 end=0 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginLeft", "0", false)\r
+            .toString());\r
+    assertEquals("attr=top value=0% start=50 end=0 unit=%", PropertiesAnimation\r
+        .computeFxProp(g.get(0), "top", "0%", false).toString());\r
+    assertEquals("attr=left value=0% start=50 end=0 unit=%",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "left", "0%", false)\r
+            .toString());\r
+    assertEquals("attr=width value=100px start=174 end=100 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "width", "100px", false)\r
+            .toString());\r
+    assertEquals("attr=height value=100px start=174 end=100 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "height", "100px", false)\r
+            .toString());\r
+    assertEquals("attr=padding value=5px start=20 end=5 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "padding", "5px", false)\r
+            .toString());\r
 \r
-    $("p", e, Events.Events).unbind("click.first.namespace");\r
-    $("p", e, Events.Events).trigger(Event.ONCLICK);\r
-    assertFalse("red".equalsIgnoreCase($("p", e).css("color")));\r
-    assertEquals("green", $("p", e).css("background-color"));\r
-    assertEquals(24.0d, GQUtils.cur($("p", e).get(0), "fontSize", true));\r
-    \r
-    \r
-    $("p", e).css("color","").css("background-color","").css("fontSize", "12px");\r
-    assertFalse("red".equalsIgnoreCase($("p", e).css("color")));\r
-    assertFalse("green".equalsIgnoreCase($("p", e).css("background-color")));\r
-    assertEquals(12.0d, GQUtils.cur($("p", e).get(0), "fontSize", true));\r
+    prop1 = GQuery.$$("marginTop: '0', marginLeft: '0', top: '0%', left: '0%', width: '100px', height: '100px', padding: '5px'");\r
+    an = new PropertiesAnimation(Easing.SWING, g.get(0), prop1);\r
+    an.onStart();\r
+    an.onComplete();\r
 \r
-    $("p", e, Events.Events).unbind("click");\r
-    $("p", e, Events.Events).trigger(Event.ONCLICK);\r
-    assertFalse("red".equalsIgnoreCase($("p", e).css("color")));\r
-    assertFalse("green".equalsIgnoreCase($("p", e).css("background-color")));\r
-    assertEquals(12.0d, GQUtils.cur($("p", e).get(0), "fontSize", true));\r
-  }\r
-  \r
-  public void testSelectorEngineNative() {\r
-    SelectorEngineImpl selEng = GWT.create(SelectorEngineImpl.class);\r
-    executeSelectorEngineTests(selEng);\r
+    assertEquals("attr=marginTop value=-110px start=0 end=-110 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginTop", "-110px",\r
+            false).toString());\r
+    assertEquals("attr=marginLeft value=-110px start=0 end=-110 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "marginLeft", "-110px",\r
+            false).toString());\r
+    assertEquals("attr=top value=50% start=0 end=50 unit=%",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "top", "50%", false)\r
+            .toString());\r
+    assertEquals("attr=left value=50% start=0 end=50 unit=%",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "left", "50%", false)\r
+            .toString());\r
+    assertEquals("attr=width value=174px start=100 end=174 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "width", "174px", false)\r
+            .toString());\r
+    assertEquals("attr=height value=174px start=100 end=174 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "height", "174px", false)\r
+            .toString());\r
+    assertEquals("attr=padding value=20px start=5 end=20 unit=px",\r
+        PropertiesAnimation.computeFxProp(g.get(0), "padding", "20px", false)\r
+            .toString());\r
   }\r
   \r
\r
   public void runTestJQuery() {\r
-    GQUtils.loadScript("jquery-1.3.1.js", "jq");\r
+    JsUtils.loadScript("jquery-1.3.1.js", "jq");\r
     new Timer(){\r
       private int cont = 0;\r
       private native boolean loaded(String func) /*-{\r
@@ -354,7 +146,7 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
       }-*/;\r
       public void run() {\r
         if (cont++ > 10 || loaded("$")) {\r
-          testPropertiesAnimationComputeEffects();\r
+          testCompare();\r
         } else {\r
           schedule(100);\r
         }\r
@@ -382,202 +174,24 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
   }\r
   public void validateCurBoth(String selector, String... attrs) {\r
     for (String attr: attrs) {\r
-      String gs = Double.toString(GQUtils.cur($(selector).get(0), attr, true)).replaceFirst("\\.\\d+$", "");\r
+      String gs = Double.toString($(selector).cur(attr, true)).replaceFirst("\\.\\d+$", "");\r
       String js = evalJQurey("$.cur($('" + selector + "').get(0), '" + attr + "', true)");\r
       System.out.println(selector + " " + attr + " " + gs + " " + js + " " + (gs.equals(js)));\r
       assertEquals(gs, js);\r
     }\r
   }\r
   \r
-  public void testPropertiesAnimationComputeEffects() {\r
+  public void testCompare() {\r
     $(e).html("<div id='parent' style='background-color: yellow; width: 100px; height: 200px; top:130px; position: absolute; left: 130px'><p id='child' style='background-color: pink; width: 100px; height: 100px; position: absolute; padding: 5px'>Content 1</p></div>");\r
-    \r
     GQuery g = $("#child");\r
     Properties prop1;\r
 \r
     prop1 = GQuery.$$("marginTop: '0', marginLeft: '0', top: '0%', left: '0%', width: '100px', height: '100px', padding: '5px'");\r
     g.css(prop1);\r
     validateCurBoth("#child", prop1.keys());\r
-    \r
   }\r
   \r
   \r
-  protected interface AllSelectors extends Selectors {\r
-    // @Selector("h1[id]:contains(Selectors)")\r
-    // NodeList<Element> h1IdContainsSelectors();\r
-    // @Selector("*:first")\r
-    // NodeList<Element> allFirst();\r
-    // @Selector("div[class!=madeup]")\r
-    // NodeList<Element> divWithClassNotContainsMadeup();\r
-    // @Selector("div, p a")\r
-    // NodeList<Element> divCommaPA();\r
-    // @Selector("p:contains(selectors)")\r
-    // NodeList<Element> pContainsSelectors();\r
-    @Selector("a[href][lang][class]")\r
-    NodeList<Element> aHrefLangClass();\r
-    @Selector("*:checked")\r
-    NodeList<Element> allChecked();\r
-    @Selector("body")\r
-    NodeList<Element> body();\r
-    @Selector("body div")\r
-    NodeList<Element> bodyDiv();\r
-    @Selector("div .example")\r
-    NodeList<Element> divExample();\r
-    @Selector("div > div")\r
-    NodeList<Element> divGtP();\r
-    @Selector("div:not(.example)")\r
-    NodeList<Element> divNotExample();\r
-    @Selector("div p")\r
-    NodeList<Element> divP();\r
-    @Selector("div p a")\r
-    NodeList<Element> divPA();\r
-    @Selector("div + p")\r
-    NodeList<Element> divPlusP();\r
-    @Selector("div[class^=exa][class$=mple]")\r
-    NodeList<Element> divPrefixExaSuffixMple();\r
-    @Selector("div #title")\r
-    NodeList<Element> divSpaceTitle();\r
-    @Selector("div ~ p")\r
-    NodeList<Element> divTildeP();\r
-    @Selector("div[class]")\r
-    NodeList<Element> divWithClass();\r
-    @Selector("div[class~=dialog]")\r
-    NodeList<Element> divWithClassContainsDialog();\r
-    @Selector("div[class*=e]")\r
-    NodeList<Element> divWithClassContainsE();\r
-    @Selector("div[class=example]")\r
-    NodeList<Element> divWithClassExample();\r
-    @Selector("div[class~=dialog]")\r
-    NodeList<Element> divWithClassListContainsDialog();\r
-    @Selector("div[class^=exa]")\r
-    NodeList<Element> divWithClassPrefixExa();\r
-    @Selector("div[class$=mple]")\r
-    NodeList<Element> divWithClassSuffixMple();\r
-    @Selector("p:first-child")\r
-    NodeList<Element> firstChild();\r
-    @Selector("h1#title")\r
-    NodeList<Element> h1Title();\r
-    @Selector("h1#title + em > span")\r
-    NodeList<Element> h1TitlePlusEmGtSpan();\r
-    @Selector("p:last-child")\r
-    NodeList<Element> lastChild();\r
-    @Selector(".note")\r
-    NodeList<Element> note();\r
-    @Selector("p:nth-child(n)")\r
-    NodeList<Element> nthChild();\r
-    @Selector("p:nth-child(2n)")\r
-    NodeList<Element> nThChild2n();\r
-    @Selector("p:nth-child(2n+1)")\r
-    NodeList<Element> nThChild2nPlus1();\r
-    @Selector("p:nth-child(even)")\r
-    NodeList<Element> nThChildEven();\r
-    @Selector("p:nth-child(odd)")\r
-    NodeList<Element> nThChildOdd();\r
-    @Selector("p:only-child")\r
-    NodeList<Element> onlyChild();\r
-    @Selector("#title")\r
-    NodeList<Element> title();\r
-    @Selector("#title,h1#title")\r
-    NodeList<Element> titleAndh1Title();\r
-    @Selector("ul .tocline2")\r
-    NodeList<Element> ulTocline2();\r
-    @Selector("ul.toc li.tocline2")\r
-    NodeList<Element> ulTocLiTocLine2();\r
-  }\r
-  \r
-  public void testCompiledSelectors() {\r
-    final AllSelectors sel = GWT.create(AllSelectors.class);\r
-    $(e).html(getTestContent());\r
-\r
-    // TODO: fix these selectors\r
-    // sel.h1IdContainsSelectors().getLength()\r
-    // sel.allFirst().getLength()\r
-    // sel.divWithClassNotContainsMadeup().getLength()\r
-    // sel.divCommaPA().getLength()\r
-    // sel.pContainsSelectors().getLength()\r
-    // assertArrayContains(sel.title().getLength(), 1);\r
-\r
-    assertEquals(1, sel.body().getLength());\r
-    assertArrayContains(sel.bodyDiv().getLength(), 53, 54, 55);\r
-    sel.setRoot(e);\r
-    assertArrayContains(sel.aHrefLangClass().getLength(), 0, 1);\r
-    assertArrayContains(sel.allChecked().getLength(), 1);\r
-    assertArrayContains(sel.divExample().getLength(), 43);\r
-    assertArrayContains(sel.divGtP().getLength(), 51, 52);\r
-    assertArrayContains(sel.divNotExample().getLength(), 9, 10);\r
-    assertArrayContains(sel.divP().getLength(), 324);\r
-    assertArrayContains(sel.divPA().getLength(), 84);\r
-    assertArrayContains(sel.divPlusP().getLength(), 22);\r
-    assertArrayContains(sel.divPrefixExaSuffixMple().getLength(), 43);\r
-    assertArrayContains(sel.divSpaceTitle().getLength(), 1);\r
-    assertArrayContains(sel.divTildeP().getLength(), 183);\r
-    assertArrayContains(sel.divWithClass().getLength(), 51, 52);\r
-    assertArrayContains(sel.divWithClassContainsDialog().getLength(), 1);\r
-    assertArrayContains(sel.divWithClassContainsE().getLength(), 50);\r
-    assertArrayContains(sel.divWithClassExample().getLength(), 43);\r
-    assertArrayContains(sel.divWithClassListContainsDialog().getLength(), 1);\r
-    assertArrayContains(sel.divWithClassPrefixExa().getLength(), 43);\r
-    assertArrayContains(sel.divWithClassSuffixMple().getLength(), 43);\r
-    assertArrayContains(sel.firstChild().getLength(), 54);\r
-    assertArrayContains(sel.h1Title().getLength(), 1);\r
-    assertArrayContains(sel.h1TitlePlusEmGtSpan().getLength(), 1);\r
-    assertArrayContains(sel.lastChild().getLength(), 19);\r
-    assertArrayContains(sel.note().getLength(), 14);\r
-    assertArrayContains(sel.nthChild().getLength(), 324);\r
-    assertArrayContains(sel.nThChild2n().getLength(), 159);\r
-    assertArrayContains(sel.nThChild2nPlus1().getLength(), 165);\r
-    assertArrayContains(sel.nThChildEven().getLength(), 159);\r
-    assertArrayContains(sel.nThChildOdd().getLength(), 165);\r
-    assertArrayContains(sel.onlyChild().getLength(), 3);\r
-    assertArrayContains(sel.titleAndh1Title().getLength(), 0, 1);\r
-    assertArrayContains(sel.ulTocline2().getLength(), 12);\r
-    assertArrayContains(sel.ulTocLiTocLine2().getLength(), 12);\r
-  }  \r
-  private void executeSelectorEngineTests(SelectorEngineImpl selEng) {\r
-    $(e).html(getTestContent());\r
-\r
-    assertArrayContains(selEng.select("body", Document.get()).getLength(), 1);\r
-    assertArrayContains(selEng.select("body div", Document.get()).getLength(), 53, 54, 55);\r
-\r
-    assertArrayContains(selEng.select("h1[id]:contains(Selectors)", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("div[class!=madeup]", e).getLength(), 52, 53);\r
-    assertArrayContains(selEng.select("div, p a", e).getLength(), 136, 137, 138);\r
-    assertArrayContains(selEng.select("p:contains(selectors)", e).getLength(), 54, 55);\r
-    assertArrayContains(selEng.select("a[href][lang][class]", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("*:checked", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("div .example", e).getLength(), 43);\r
-    assertArrayContains(selEng.select("div > div", e).getLength(), 51, 52);\r
-    assertArrayContains(selEng.select("div:not(.example)", e).getLength(), 9, 10);\r
-    assertArrayContains(selEng.select("div p", e).getLength(), 324);\r
-    assertArrayContains(selEng.select("div p a", e).getLength(), 85, 84);\r
-    assertArrayContains(selEng.select("div + p", e).getLength(), 22);\r
-    assertArrayContains(selEng.select("div[class^=exa][class$=mple]", e).getLength(), 43);\r
-    assertArrayContains(selEng.select("div #title", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("div ~ p", e).getLength(), 183);\r
-    assertArrayContains(selEng.select("div[class]", e).getLength(), 51, 52);\r
-    assertArrayContains(selEng.select("div[class~=dialog]", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("div[class*=e]", e).getLength(), 50);\r
-    assertArrayContains(selEng.select("div[class=example]", e).getLength(), 43);\r
-    assertArrayContains(selEng.select("div[class~=dialog]", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("div[class^=exa]", e).getLength(), 43);\r
-    assertArrayContains(selEng.select("div[class$=mple]", e).getLength(), 43);\r
-    assertArrayContains(selEng.select("p:first-child", e).getLength(), 54);\r
-    assertArrayContains(selEng.select("h1#title", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("h1#title + em > span", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("p:last-child", e).getLength(), 19, 22);\r
-    assertArrayContains(selEng.select(".note", e).getLength(), 14);\r
-    assertArrayContains(selEng.select("p:nth-child(n)", e).getLength(), 324);\r
-    assertArrayContains(selEng.select("p:nth-child(2n)", e).getLength(), 159);\r
-    assertArrayContains(selEng.select("p:nth-child(2n+1)", e).getLength(), 165);\r
-    assertArrayContains(selEng.select("p:nth-child(even)", e).getLength(), 159);\r
-    assertArrayContains(selEng.select("p:nth-child(odd)", e).getLength(), 165);\r
-    assertArrayContains(selEng.select("p:only-child", e).getLength(), 3);\r
-    assertArrayContains(selEng.select("#title", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("#title, h1#title", e).getLength(), 1);\r
-    assertArrayContains(selEng.select("ul.toc li.tocline2", e).getLength(), 12);    \r
-    assertArrayContains(selEng.select("h1[id]:contains(Selectors)", e).getLength(),  1);\r
-  }\r
-\r
   // This method is used to initialize a huge html String, because\r
   // java 1.5 has a limitation in the size of static strings.\r
   private String getTestContent() {\r