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.body;\r
+import static com.google.gwt.query.client.plugins.Effects.Effects;\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.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.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.SelectorEngineSizzleGwt;\r
+import com.google.gwt.query.client.impl.SelectorEngineXPath;\r
+import com.google.gwt.query.client.plugins.Effects;\r
import com.google.gwt.user.client.Timer;\r
\r
/**\r
* \r
*/\r
public class DevTestRunner extends MyTestCase implements EntryPoint {\r
+ \r
+ public void test() {\r
+ Effects e = $().as(Effects).dequeue();\r
+ }\r
\r
static native String $j (String s) /*-{\r
return "" + eval(s);\r
}-*/;\r
+ \r
+ public void testSelectorsInIframe() {\r
+ $(e).html("<iframe name='miframe' id='miframe' src=\"javascript:''\">");\r
+ Element d = $("#miframe").contents().empty().get(0);\r
+ assertNotNull(d);\r
+ \r
+ $(d).html(\r
+ "<div class='branchA'><div class='target'>branchA target</div></div>"\r
+ + "<div class='branchB'><div class='target'>branchB target</div></div>");\r
+ \r
+ \r
+ executeSelectInAllImplementations(".branchA .target", d, 1);\r
+ executeSelectInAllImplementations(".branchA .target", body, 0);\r
+ executeSelectInAllImplementations("div .target", d, 2);\r
+ executeSelectInAllImplementations("div .target", body, 0);\r
+\r
+// TestSelectors selectors = GWT.create(TestSelectors.class);\r
+// assertEquals(1, selectors.branchAtarget(d).length());\r
+// assertEquals(0, selectors.branchAtarget().length());\r
+// assertEquals(2, selectors.divTarget(d).length());\r
+// assertEquals(0, selectors.divTarget().length());\r
+\r
+ }\r
+ private void executeSelectInAllImplementations(String selector, Element elem, Object... array) {\r
+ SelectorEngineImpl selSizz = new SelectorEngineSizzle();\r
+ SelectorEngineImpl selSizzGwt = new SelectorEngineSizzleGwt();\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, selSizzGwt.select(selector, elem).getLength(), array);\r
+ assertArrayContains(selector, selJS.select(selector, elem).getLength(), array);\r
+ assertArrayContains(selector, selNative.select(selector, elem).getLength(), array);\r
+ assertArrayContains(selector, selXpath.select(selector, elem).getLength(), array);\r
+ assertArrayContains(selector, selC2X.select(selector, elem).getLength(), array);\r
+ }\r
+ \r
+ public void testIFrameManipulation() {\r
+ $(e).html("<iframe name='miframe' id='miframe' src=\"javascript:''\">");\r
+ Document d = $("#miframe").contents().empty().get(0).cast();\r
+ $(d).html(getTestContent());\r
+ \r
+ SelectorEngineImpl s = new SelectorEngineSizzle();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+ s = new SelectorEngineSizzleGwt();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+ s = new SelectorEngineJS();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+ s = new SelectorEngineNative();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+ s = new SelectorEngineCssToXPath();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+ s = new SelectorEngineXPath();\r
+ System.out.println(s.select("div", d).getLength());\r
+ System.out.println(s.select("div", GQuery.document).getLength());\r
+// \r
+// assertNotNull(d);\r
+// assertNotNull(d.getBody());\r
+// assertEquals(1, $("#miframe").contents().size());\r
+// assertEquals(1, $("#miframe").contents().find("body").size());\r
+// assertEquals(0, $("#miframe").contents().find("body > h1").size());\r
+// $("#miframe").contents().find("body").append("<h1>Test</h1>");\r
+// assertEquals(1, $("#miframe").contents().find("body > h1").size());\r
+// assertEquals(1, $(d).find("h1").size());\r
+ }\r
+ \r
public void onModuleLoad() {\r
try {\r
gwtSetUp();\r
- testSelectorEngineNative();\r
- testCompiledSelectors();\r
- testPropertiesAnimationComputeEffects();\r
- \r
- $(e).html("").after("<div>OK</div>");\r
+ testSelectorsInIframe();\r
} catch (Exception ex) {\r
ex.printStackTrace();\r
$(e).html("").after("<div>ERROR: " + ex.getMessage() + "</div>");\r
}\r
}\r
+ \r
+ public void testDomManip() {\r
+ String content = "<p>First</p><p class=\"selected\">Hello</p><p>How are you?</p>";\r
+ String expected = "<p class=\"selected\">Hello</p>"; \r
+ // filter()\r
+// Commented because GQuery doesn't support this syntax yet\r
+ $(e).html(content);\r
+ System.out.println($("p", e).filter("p.selected:first-child"));\r
+// assertHtmlEquals(expected, $("p", e).filter(".selected").toString());\r
+ \r
+ } \r
public void testSelectorEngineNative() {\r
SelectorEngineImpl selEng = GWT.create(SelectorEngineImpl.class);\r
executeSelectorEngineTests(selEng);\r
// java 1.5 has a limitation in the size of static strings.\r
private String getTestContent() {\r
String ret = "";\r
- ret += "<html><head> </head><body><div>";\r
+ ret += "<div>";\r
ret += " <div class='head dialog'>";\r
ret += " <p><a href='http://www.w3.org/'><img alt='W3C' src='' height='48' width='72'></a></p>";\r
ret += " <h1 id='title'>Selectors</h1>";\r
ret += " </dd></dl>'; </div>";\r
ret += " <input name='n' value='v1' type='radio'>1";\r
ret += " <input name='n' value='v2' checked='checked' type='radio'>2";\r
- ret += "</body></html>";\r
+ ret += "";\r
return ret;\r
}\r
+\r
+ public HandlerRegistration addFocusHandler(FocusHandler handler) {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ public void fireEvent(GwtEvent<?> event) {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
\r
}\r