]> source.dussan.org Git - gwtquery.git/commitdiff
some changes to dev tests
authorManolo Carrasco <manolo@apache.org>
Mon, 21 Jun 2010 13:59:47 +0000 (13:59 +0000)
committerManolo Carrasco <manolo@apache.org>
Mon, 21 Jun 2010 13:59:47 +0000 (13:59 +0000)
devtest/pom.xml
devtest/src/main/java/com/google/gwt/query/client/DevTestRunner.java
devtest/src/main/java/com/google/gwt/query/public/test.html

index d7de4e7948ae3d77187c96a596fbcde064fee6fe..bc5933bd663f29e05d1121470b8b9900a757e73f 100644 (file)
@@ -62,7 +62,6 @@
                 <hostedWebapp>target/www</hostedWebapp>
                 <soyc>true</soyc>
             </configuration>
-<!--
         <executions>
           <execution>
             <phase>prepare-package</phase>
@@ -71,7 +70,6 @@
             </goals>
           </execution>
         </executions>
--->
       </plugin>
 
         </plugins>
index ba24fcf14c6a233b253b4a99ed627603c14883d9..701596e43ddc7872132b175c83654188641117a6 100644 (file)
@@ -19,21 +19,11 @@ import static com.google.gwt.query.client.GQuery.$;
 \r
 import com.google.gwt.core.client.EntryPoint;\r
 import com.google.gwt.core.client.GWT;\r
-import com.google.gwt.core.client.JsArray;\r
 import com.google.gwt.dom.client.Document;\r
 import com.google.gwt.dom.client.Element;\r
-import com.google.gwt.dom.client.Node;\r
 import com.google.gwt.dom.client.NodeList;\r
-import com.google.gwt.query.client.impl.SelectorEngineCssToXPath;\r
 import com.google.gwt.query.client.impl.SelectorEngineImpl;\r
-import com.google.gwt.query.client.impl.SelectorEngineJS;\r
-import com.google.gwt.query.client.impl.SelectorEngineNative;\r
-import com.google.gwt.query.client.impl.SelectorEngineSizzle;\r
-import com.google.gwt.query.client.impl.SelectorEngineXPath;\r
 import com.google.gwt.user.client.Timer;\r
-import com.google.gwt.user.client.Window;\r
-import com.google.gwt.user.client.ui.HTML;\r
-import com.google.gwt.user.client.ui.RootPanel;\r
 \r
 /**\r
  * This module is thought to emulate a test environment similar to\r
@@ -47,90 +37,83 @@ import com.google.gwt.user.client.ui.RootPanel;
  */\r
 public class DevTestRunner extends MyTestCase implements EntryPoint {\r
 \r
+  static native String $j (String s) /*-{\r
+    return "" + eval(s);\r
+  }-*/;\r
   public void onModuleLoad() {\r
     try {\r
       gwtSetUp();\r
-      \r
-      testCompiledSelectors();\r
-      testIssue12();\r
-      testSelectElementsInsideContext();\r
-      testSelectorEngineDomAssistant();\r
-      testSelectorEngineSizzle();\r
-      testSelectorEngineXpath();\r
-      testSelectorEngineCssToXpath();\r
       testSelectorEngineNative();\r
-      testSelectorsGeneratorNative();\r
-      testSelectorsWithContext();\r
-      testUnique();\r
-      \r
-      testFade();\r
+      testCompiledSelectors();\r
+      testPropertiesAnimationComputeEffects();\r
       \r
-//      $(e).html("").after("<div>OK</div>");\r
+      $(e).html("").after("<div>OK</div>");\r
     } catch (Exception ex) {\r
       ex.printStackTrace();\r
       $(e).html("").after("<div>ERROR: " + ex.getMessage() + "</div>");\r
     }\r
   }\r
-\r
-  public void testFade() {\r
-    $(e)\r
-    .html(\r
-        "<p id='id1' style='display: inline'>Content 1</p><p id='id2'>Content 2</p><p id='id3'>Content 3</p>");\r
-\r
-    final GQuery sectA = $("#id1");\r
-    final GQuery sectB = $("#id2");\r
-    \r
-    // fadeIn() & fadeOut() are tested with delayed assertions\r
-    sectA.hide();\r
-    sectA.fadeIn(2000);\r
-    sectB.fadeOut(2000);\r
-\r
-    // Configure the max duration for this test\r
-    // If the test exceeds the timeout without calling finishTest() it will fail\r
-    delayTestFinish(2500);\r
-\r
-    // Delayed assertions at different intervals\r
-    Timer timerShortTime = new Timer() {\r
-      public void run() {\r
-        double o = Double.valueOf(sectA.css("opacity"));\r
-        assertTrue(\r
-            "'sectA' opacity must be in the interval 0-0.5 but is: " + o, o > 0\r
-                && o < 0.5);\r
-        o = Double.valueOf(sectB.css("opacity"));\r
-        assertTrue(\r
-            "'sectB' opacity must be in the interval 0.5-1 but is: " + o,\r
-            o > 0.5 && o < 1);\r
-      }\r
-    };\r
-    Timer timerMidTime = new Timer() {\r
-      public void run() {\r
-        assertEquals("inline", sectA.css("display"));\r
-        assertEquals("", sectB.css("display"));\r
-        double o = Double.valueOf(sectA.css("opacity"));\r
-        assertTrue(\r
-            "'sectA' opacity must be in the interval 0.5-1 but is: " + o,\r
-            o > 0.5 && o < 1);\r
-        o = Double.valueOf(sectB.css("opacity"));\r
-        assertTrue(\r
-            "'sectB' opacity must be in the interval 0-0.5 but is: " + o, o > 0\r
-                && o < 0.5);\r
-      }\r
-    };\r
-    Timer timerLongTime = new Timer() {\r
+  public void testSelectorEngineNative() {\r
+    SelectorEngineImpl selEng = GWT.create(SelectorEngineImpl.class);\r
+    executeSelectorEngineTests(selEng);\r
+  }\r
+  \r
+  public void runTestJQuery() {\r
+    GQUtils.loadScript("jquery-1.3.1.js", "jq");\r
+    new Timer(){\r
+      private int cont = 0;\r
+      private native boolean loaded(String func) /*-{\r
+        return eval("$wnd." + func) ? true : false; \r
+      }-*/;\r
       public void run() {\r
-        assertEquals("inline", sectA.css("display"));\r
-        assertEquals("none", sectB.css("display"));\r
-        // Last delayed assertion has to stop the test to avoid a timeout\r
-        // failure\r
-        finishTest();\r
+        if (cont++ > 10 || loaded("$")) {\r
+          testPropertiesAnimationComputeEffects();\r
+        } else {\r
+          schedule(100);\r
+        }\r
       }\r
-    };\r
+    }.run();\r
+  }\r
+  \r
+  private native String evalJQurey(String command) /*-{\r
+    command = command.replace(/\$/g, "$wnd.$");\r
+    try {\r
+      return "" + eval(command);\r
+    } catch(e) {\r
+      $wnd.alert(command + " " + e);\r
+      return "";\r
+    }\r
+  }-*/;\r
+  \r
+  public void validateCssBoth(String selector, boolean force, String... attrs) {\r
+    for (String attr: attrs) {\r
+      String gs = $(selector).css(attr, force);\r
+      String js = evalJQurey("$.css($('" + selector + "').get(0), '" + attr + "', " + force + ")");\r
+      System.out.println(selector + " " + attr + " " + force + " g:" + gs + " j:" + js + " " + (gs.replaceAll("px", "").equals(js.replaceAll("px", ""))));\r
+      assertEquals(gs.replaceAll("px", ""), js.replaceAll("px", ""));\r
+    }\r
+  }\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 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
+    $(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
-    // schedule the delayed assertions\r
-    timerShortTime.schedule(200);\r
-    timerMidTime.schedule(1200);\r
-    timerLongTime.schedule(2200);    \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
@@ -214,44 +197,7 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
     @Selector("ul.toc li.tocline2")\r
     NodeList<Element> ulTocLiTocLine2();\r
   }\r
-\r
-  protected interface TestSelectors extends Selectors {\r
-    @Selector("*:checked")\r
-    GQuery allChecked();\r
-    @Selector("*:checked")\r
-    GQuery allChecked(Node n);\r
-    @Selector(".branchA")\r
-    GQuery branchA();\r
-    @Selector(".branchA")\r
-    GQuery branchA(Node n);\r
-    @Selector(".branchB")\r
-    GQuery branchB();\r
-    @Selector(".branchB")\r
-    GQuery branchB(Node n);\r
-    @Selector(".target")\r
-    GQuery target();\r
-    @Selector(".target")\r
-    GQuery target(Node n);\r
-  }\r
-\r
-  static Element e = null;\r
-  static HTML testPanel = null;\r
-\r
-  public String getModuleName() {\r
-    return "com.google.gwt.query.Query";\r
-  }\r
-\r
-  public void gwtSetUp() {\r
-    if (e == null) {\r
-      testPanel = new HTML();\r
-      RootPanel.get().add(testPanel);\r
-      e = testPanel.getElement();\r
-      e.setId("select-tst");\r
-    } else {\r
-      e.setInnerHTML("");\r
-    }\r
-  }\r
-\r
+  \r
   public void testCompiledSelectors() {\r
     final AllSelectors sel = GWT.create(AllSelectors.class);\r
     $(e).html(getTestContent());\r
@@ -265,7 +211,7 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
     // assertArrayContains(sel.title().getLength(), 1);\r
 \r
     assertEquals(1, sel.body().getLength());\r
-    assertArrayContains(sel.bodyDiv().getLength(), 53, 55);\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
@@ -299,137 +245,12 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
     assertArrayContains(sel.titleAndh1Title().getLength(), 0, 1);\r
     assertArrayContains(sel.ulTocline2().getLength(), 12);\r
     assertArrayContains(sel.ulTocLiTocLine2().getLength(), 12);\r
-  }\r
-\r
-  public void testIssue12() {\r
-    $(e).html("<table><tr><td><p myCustomAttr='whatever'><input disabled='disabled' type='radio' name='wantedName' value='v1'>1</input></p><input type='radio' name='n' value='v2' checked='checked'>2</input></td><td><button myCustomAttr='val'>Click</button></tr><td></table>");\r
-    executeSelectInAllImplementations(":checked", e, 1);\r
-    executeSelectInAllImplementations(":disabled", e, 1);\r
-    executeSelectInAllImplementations("input:enabled", e, 1);\r
-    executeSelectInAllImplementations("[myCustomAttr]", e, 2);\r
-    executeSelectInAllImplementations("*[myCustomAttr]", e, 2);\r
-    executeSelectInAllImplementations("input[name=wantedName]", e, 1);\r
-    executeSelectInAllImplementations("input[name='wantedName']", e, 1);\r
-    executeSelectInAllImplementations("input[name=\"wantedName\"]", e, 1);\r
-  }\r
-  \r
-  public void testSelectElementsInsideContext() {\r
-    $(e).html("<spam><p>s</p></spam>");\r
-    GQuery q = $("spam", e);\r
-    // TODO: in XPath engine it returns 2 when it should return 1\r
-    executeSelectInAllImplementations("*", q.get(0), 1, 2);\r
-  }\r
-\r
-  public void testSelectorEngineDomAssistant() {\r
-    // This test runs very slow in chrome\r
-    SelectorEngineImpl selEng = new SelectorEngineJS();\r
-    executeSelectorEngineTests(selEng);\r
-  }\r
-\r
-  public void testSelectorEngineSizzle() {\r
-    SelectorEngineImpl selEng = new SelectorEngineSizzle();\r
-    executeSelectorEngineTests(selEng);\r
-  }\r
-\r
-  public void testSelectorEngineNative() {\r
-    SelectorEngineImpl selEng = new SelectorEngineNative();\r
-    if (hasNativeSelector()) {\r
-      Window.alert("Testing native selector");\r
-      executeSelectorEngineTests(selEng);\r
-    }\r
-  }\r
-\r
-  public void testSelectorEngineXpath() {\r
-    SelectorEngineImpl selEng = new SelectorEngineXPath();\r
-    executeSelectorEngineTests(selEng);\r
-  }\r
-\r
-  public void testSelectorEngineCssToXpath() {\r
-    SelectorEngineImpl selEng = new SelectorEngineCssToXPath();\r
-    executeSelectorEngineTests(selEng);\r
-  }\r
-\r
-  public void testSelectorsGeneratorNative() {\r
-    $(e).html(\r
-            "<input type='radio' name='n' value='v1'>1</input>"\r
-                + "<input type='radio' name='n' value='v2' checked='checked'>2</input>");\r
-\r
-    TestSelectors selectors = GWT.create(TestSelectors.class);\r
-    assertEquals(1, selectors.allChecked().size());\r
-  }\r
-  \r
-  public void testSelectorsWithContext() {\r
-    $(e).append(\r
-            "<div class='branchA'><div class='target'>branchA target</div></div>"\r
-                + "<div class='branchB'><div class='target'>branchB target</div></div>");\r
-\r
-    TestSelectors selectors = GWT.create(TestSelectors.class);\r
-\r
-    assertEquals(2, selectors.target().length());\r
-    Element branchA = selectors.branchA().get(0);\r
-    Element branchB = selectors.branchB().get(0);\r
-    assertNotNull(selectors.branchA().get(0));\r
-    assertNotNull(selectors.branchB().get(0));\r
-\r
-    assertEquals(2, selectors.target(RootPanel.getBodyElement()).length());\r
-    branchA = selectors.branchA(RootPanel.getBodyElement()).get(0);\r
-    branchB = selectors.branchB(RootPanel.getBodyElement()).get(0);\r
-    assertNotNull(branchA);\r
-    assertNotNull(branchB);\r
-    assertEquals("branchA target", selectors.target(branchA).text());\r
-    assertEquals("branchB target", selectors.target(branchB).text());\r
-\r
-    selectors.setRoot(branchA);\r
-    assertEquals(1, selectors.target().length());\r
-    assertEquals("branchA target", selectors.target().text());\r
-\r
-    selectors.setRoot(branchB);\r
-    assertEquals(1, selectors.target().length());\r
-    assertEquals("branchB target", selectors.target().text());\r
-  }\r
-  \r
-  public void testUnique() {\r
-    SelectorEngineImpl selSizz = new SelectorEngineSizzle();\r
-    $(e).html(getTestContent());\r
-    \r
-    JsArray<Element> a;\r
-    a = selSizz.select("p", e).cast();\r
-    int n = a.length();\r
-    assertTrue(n > 300);\r
-    for (int i=0; i<n; i++) {\r
-      a.push(a.get(i));\r
-    }\r
-    assertEquals(n * 2 , a.length());\r
-    a = SelectorEngineImpl.unique(a);\r
-    assertEquals(n, a.length());\r
-  }\r
-  \r
-  private void executeSelectInAllImplementations(String selector, Element elem, Object... array) {\r
-    SelectorEngineImpl selSizz = new SelectorEngineSizzle();\r
-    SelectorEngineImpl selJS = new SelectorEngineJS();\r
-    SelectorEngineImpl selXpath = new SelectorEngineXPath();\r
-    SelectorEngineImpl selC2X = new SelectorEngineCssToXPath();\r
-    SelectorEngineImpl selNative = new SelectorEngineNative();\r
-    assertArrayContains(selector, selSizz.select(selector, elem).getLength(), array);\r
-    assertArrayContains(selector, selJS.select(selector, elem).getLength(), array);\r
-    if (hasNativeSelector()) {\r
-      assertArrayContains(selector, selNative.select(selector, elem).getLength(), array);\r
-    }   \r
-//    assertArrayContains(selector, selXpath.select(selector, elem).getLength(), array);\r
-//    assertArrayContains(selector, selC2X.select(selector, elem).getLength(), array);\r
\r
-  }\r
-  \r
-  private static native boolean hasNativeSelector() /*-{\r
-//    alert(document.querySelectorAll + " " + document.querySelector);\r
-    return !!(document.querySelectorAll && /native/.test(String(document.querySelectorAll)));\r
-  }-*/;\r
-\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, 55);\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
@@ -467,7 +288,7 @@ public class DevTestRunner extends MyTestCase implements EntryPoint {
     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
+    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
index 69862e2a239b2c3e5c66a27cefc479d7275a9a26..5e3d76f4dfae9ab0171bec0ea687c9b75dc686d5 100644 (file)
@@ -1,15 +1,9 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\r
-"http://www.w3.org/TR/html4/strict.dtd">\r
-\r
-<!-- \r
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \r
- "http://www.w3.org/TR/html4/loose.dtd">\r
- -->\r
+<!doctype html>\r
 <html>\r
   <head>\r
-    <script language="javascript" src="test.nocache.js"></script>\r
   </head>\r
   <body>\r
+   <script language="javascript" src="test.nocache.js"></script>\r
   </body>\r
 </html>\r
     
\ No newline at end of file