From: Manolo Carrasco Date: Sun, 9 May 2010 21:06:09 +0000 (+0000) Subject: Renamed test classes X-Git-Tag: release-1.3.2~743 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=32dbde9f18e17061033c875a318b1d5e7500822e;p=gwtquery.git Renamed test classes --- diff --git a/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryCoreTest.java b/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryCoreTest.java new file mode 100644 index 00000000..73eec120 --- /dev/null +++ b/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryCoreTest.java @@ -0,0 +1,592 @@ +/* + * Copyright 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.query.client; + +import static com.google.gwt.query.client.GQuery.$; +import static com.google.gwt.query.client.GQuery.$$; + +import com.google.gwt.dom.client.Element; +import com.google.gwt.junit.client.GWTTestCase; +import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.RootPanel; + +/** + * Test class for testing gwtquery-core api. + */ +public class GQueryCoreTest extends GWTTestCase { + + static Element e = null; + + static HTML testPanel = null; + + protected static void assertHtmlEquals(Object expected, Object actual) { + assertEquals(iExplorerFixHtml(expected), iExplorerFixHtml(actual)); + } + + protected static String iExplorerFixHtml(Object s) { + // IE shows all tags upper-case + // IE adds \r \n + // IE does not put quotes to some attributes + // Investigate: IE in method find puts the attribute $h="4" + // Investigate: IE in method filter adds the attrib added="null" + return s.toString().trim().toLowerCase(). + replaceAll("[\r\n]", ""). + replaceAll(" ([\\w]+)=[\"]([^\"]+)[\"]", " $1=$2"). + replaceAll("\\s+\\$h=\"[^\"]+\"", ""). + replaceAll(" added=[^ >]+", ""); + } + + public String getModuleName() { + return "com.google.gwt.query.Query"; + } + + public void gwtSetUp() { + if (e == null) { + testPanel = new HTML(); + RootPanel.get().add(testPanel); + e = testPanel.getElement(); + e.setId("core-tst"); + } else { + e.setInnerHTML(""); + } + } + + public void testAttributeMethods() { + + $(e).html("

Content

"); + GQuery gq = $("p", e); + + // attr() + gq.attr($$("attr1: 'a', attr2: 'b'")); + assertEquals("a", gq.attr("attr1")); + assertEquals("b", gq.attr("attr2")); + + gq.attr("attr3", new Function() { + public String f(Element e, int i) { + return e.getInnerText(); + } + }); + assertEquals("Content", gq.attr("attr3")); + + assertEquals("a1", gq.attr("class")); + gq.attr("class", "b1 b2"); + + // hasClass() + assertTrue(gq.hasClass("b1")); + assertTrue(gq.hasClass("b2")); + + // addClass() + gq.addClass("c1", "c2"); + assertTrue(gq.hasClass("b1")); + assertTrue(gq.hasClass("b2")); + assertTrue(gq.hasClass("c1")); + assertTrue(gq.hasClass("c2")); + + // removeClass() + gq.removeClass("c2", "c1"); + assertTrue(gq.hasClass("b1")); + assertTrue(gq.hasClass("b2")); + assertFalse(gq.hasClass("c1")); + assertFalse(gq.hasClass("c2")); + + // toggleClass() + gq.toggleClass("b2"); + assertTrue(gq.hasClass("b1")); + assertFalse(gq.hasClass("b2")); + gq.toggleClass("b2"); + assertTrue(gq.hasClass("b1")); + assertTrue(gq.hasClass("b2")); + gq.toggleClass("b2", true); + assertTrue(gq.hasClass("b2")); + gq.toggleClass("b2", false); + assertFalse(gq.hasClass("b2")); + + // css() + String content = "

Test Paragraph.

"; + $(e).html(content); + assertEquals("red", $("p", e).css("color")); + $("p", e).css("font-weight", "bold"); + assertEquals("bold", $("p", e).css("font-weight")); + + // css() properties + $(e).html("

Test Paragraph.

"); + $("p", e).css(Properties.create( + "color: 'red', 'font-weight': 'bold', background: 'blue'")); + assertEquals("red", $("p", e).css("color")); + assertEquals("bold", $("p", e).css("font-weight")); + assertEquals("blue", $("p", e).css("background-color")); + + // css() camelize and uppercase + $(e).html("

Test Paragraph.

"); + $("p", e).css(Properties.create("COLOR: 'red', 'FONT-WEIGHT': 'bold'")); + assertEquals("red", $("p", e).css("color")); + assertEquals("", $("p", e).css("background")); + } + + public void testEach() { + $(e).html("

Content 1

Content 2

Content 3

"); + $("p", e).each(new Function() { + public void f(Element e) { + $(e).text("."); + } + }); + assertHtmlEquals("

.

.

.

", $("p", e)); + $("p", e).each(new Function() { + public String f(Element e, int i) { + $(e).text("" + i); + return ""; + } + }); + assertHtmlEquals("

0

1

2

", $("p", e)); + } + + public void testEffectsPlugin() { + $(e).html( + "

Content 1

Content 2

Content 3

"); + + final GQuery sectA = $("#id1"); + final GQuery sectB = $("#id2"); + final GQuery sectC = $("#id3"); + + // hide() + sectA.hide(); + assertEquals("none", sectA.css("display")); + + // show() + sectB.show(); + assertEquals("", sectB.css("display")); + + // toggle() + assertEquals("", sectC.css("display")); + sectC.toggle(); + assertEquals("none", sectC.css("display")); + sectC.toggle(); + assertEquals("", sectC.css("display")); + + // fadeIn() & fadeOut() are tested with delayed assertions + sectA.fadeIn(2000); + sectB.fadeOut(2000); + + // Configure the max duration for this test + // If the test exceeds the timeout without calling finishTest() it will fail + delayTestFinish(2500); + + // Delayed assertions at different intervals + Timer timerShortTime = new Timer() { + public void run() { + double o = Double.valueOf(sectA.css("opacity")); + assertTrue("'sectA' opacity must be in the interval 0-0.5 but is: " + o, o > 0 && o < 0.5); + o = Double.valueOf(sectB.css("opacity")); + assertTrue("'sectB' opacity must be in the interval 0.5-1 but is: " + o, o > 0.5 && o < 1); + } + }; + Timer timerMidTime = new Timer() { + public void run() { + assertEquals("", sectA.css("display")); + assertEquals("", sectB.css("display")); + double o = Double.valueOf(sectA.css("opacity")); + assertTrue("'sectA' opacity must be in the interval 0.5-1 but is: " + o, o > 0.5 && o < 1); + o = Double.valueOf(sectB.css("opacity")); + assertTrue("'sectB' opacity must be in the interval 0-0.5 but is: " + o, o > 0 && o < 0.5); + } + }; + Timer timerLongTime = new Timer() { + public void run() { + assertEquals("", sectA.css("display")); + assertEquals("none", sectB.css("display")); + // Last delayed assertion has to stop the test to avoid a timeout failure + finishTest(); + } + }; + // schedule the delayed assertions + timerShortTime.schedule(200); + timerMidTime.schedule(1200); + timerLongTime.schedule(2200); + } + + public void testInnerMethods() { + String txt = "

I would like to say:

"; + + // Check that setHTML and getHTML work as GQuery html() + testPanel.setHTML(txt); + assertHtmlEquals(txt, testPanel.getHTML()); + assertHtmlEquals(txt, $(e).html()); + assertHtmlEquals(txt, $("#core-tst").html()); + $(e).html(""); + assertHtmlEquals("", $(e).html()); + $(e).html(txt); + assertHtmlEquals(txt, $(e).html()); + + // toString() + assertHtmlEquals(txt, $("p", e)); + + // remove() + $("p", e).remove(); + assertHtmlEquals("", $(e).html()); + + // text() + String expected = "I would like to say: I would like to say:"; + $(e).html(txt + txt); + assertHtmlEquals(expected, $("p", e).text()); + + // empty() + expected = "

"; + $("p", e).empty(); + assertHtmlEquals(expected, $(e).html()); + } + + public void testInputValueMethods() { + // imput text + $(e).html(""); + GQuery gq = $("input", e); + assertEquals("", gq.val()); + gq.val("some value"); + assertEquals("some value", gq.val()); + + // select + $(e).html( + ""); + gq = $("select", e); + assertEquals("v2", gq.val()); + gq.val("v1"); + assertEquals("v1", gq.val()); + + // select multiple + $(e).html( + ""); + gq = $("select", e); + assertEquals(0, gq.vals().length); + assertEquals("", gq.val()); + + $(e).html( + ""); + gq = $("select", e); + assertEquals(1, gq.vals().length); + assertEquals("v2", gq.val()); + gq.val("v1", "v3", "invalid"); + assertEquals(2, gq.vals().length); + assertEquals("v1", gq.vals()[0]); + assertEquals("v3", gq.vals()[1]); + // FIXME: fix in IE +// gq.val("v1"); +// assertEquals(1, gq.vals().length); +// assertEquals("v1", gq.val()); + + // input radio + $(e).html( + "12"); + gq = $("input", e); + assertEquals("v2", gq.val()); + gq.val("v1"); + assertEquals("v1", gq.val()); + gq.val("v2"); + assertEquals("v2", gq.val()); + + // input checkbox + $(e).html( + "12"); + gq = $("input", e); + assertEquals("", gq.val()); + gq.val("v1"); + assertEquals("v1", gq.val()); + } + + public void testModifyMethods() { + String pTxt = "

I would like to say:

"; + String bTxt = "Hello"; + + // append() + String expected = "

I would like to say: Hello

"; + $(e).html(pTxt); + $("p", e).append(bTxt); + assertHtmlEquals(expected, $(e).html()); + + $(e).html(pTxt); + $("p", e).append($(bTxt).get(0)); + assertHtmlEquals(expected, $(e).html()); + + // appendTo() + expected = "

I would like to say: Hello

"; + $(e).html(bTxt + pTxt); + $("b", e).appendTo($("p", e)); + assertHtmlEquals(expected, $(e).html()); + + // prepend() + expected = "

HelloI would like to say:

"; + $(e).html(pTxt); + $("p", e).prepend(bTxt); + assertHtmlEquals(expected, $(e).html()); + + // prependTo() + expected = "

HelloI would like to say:

"; + $(e).html(bTxt + pTxt); + $("b", e).prependTo($("p", e)); + assertHtmlEquals(expected, $(e).html()); + + // prependTo() + expected = "Hello

HelloI would like to say:

"; + $(e).html(bTxt + pTxt); + $("b", e).clone().prependTo($("p", e)); + assertHtmlEquals(expected, $(e).html()); + + // before() + expected = "Hello

I would like to say:

"; + $(e).html(pTxt); + $("p", e).before(bTxt); + assertHtmlEquals(expected, $(e).html()); + + // before() + expected = "Hello

I would like to say:

"; + $(e).html(pTxt + bTxt); + $("p", e).before($("b", e)); + assertHtmlEquals(expected, $(e).html()); + + // before() + expected = "Hello

I would like to say:

Hello"; + $(e).html(pTxt + bTxt); + $("p", e).before($("b", e).clone()); + assertHtmlEquals(expected, $(e).html()); + + // insertBefore() + expected = "Hello

I would like to say:

"; + $(e).html(pTxt + bTxt); + $("b", e).insertBefore($("p", e)); + assertHtmlEquals(expected, $(e).html()); + + // insertBefore() + expected = "Hello

I would like to say:

Hello"; + $(e).html(pTxt + bTxt); + $("b", e).clone().insertBefore($("p", e)); + assertHtmlEquals(expected, $(e).html()); + + // after() + expected = "

I would like to say:

Hello"; + $(e).html(pTxt); + $("p", e).after(bTxt); + assertHtmlEquals(expected, testPanel.getHTML()); + + // after() + expected = "

I would like to say:

Hello"; + $(e).html(bTxt + pTxt); + $("p", e).after($("b", e)); + assertHtmlEquals(expected, $(e).html()); + + // after() + expected = "Hello

I would like to say:

Hello"; + $(e).html(bTxt + pTxt); + $("p", e).after($("b", e).clone().get(0)); + assertHtmlEquals(expected, $(e).html()); + } + + public void testProperties() { + Properties p = $$("border:'1px solid black'"); + assertEquals(1, p.keys().length); + assertNotNull(p.get("border")); + + p = $$("({border:'1px solid black'})"); + assertEquals(1, p.keys().length); + assertNotNull(p.get("border")); + } + + + + public void testRelativeMethods() { + String content = "

Hello, how are you?

"; + String expected = "Hello"; + + // find() + $(e).html(content); + assertHtmlEquals(expected, $("p", e).find("span")); + + // filter() + content = "

First

Hello

How are you?

"; + $(e).html(content); + expected = "

Hello

"; + assertHtmlEquals(expected, $("p", e).filter(".selected")); + + // filter() + // Commented because GQuery doesn't support this syntax yet + // expected = "

Hello

"; + // assertHtmlEquals(expected, $("p", e).filter(".selected, :first").toString()); + + // not() + expected = "

First

How are you?

"; + assertEquals(2, $("p", e).not(".selected").size()); + assertHtmlEquals(expected, $("p", e).not(".selected")); + assertEquals(2, $("p", e).not($(".selected")).size()); + assertHtmlEquals(expected, $("p", e).not($(".selected"))); + assertEquals(2, $("p", e).not($(".selected").get(0)).size()); + assertHtmlEquals(expected, $("p", e).not($(".selected").get(0))); + + // add() + String added = "

Last

"; + expected = content + added; + assertEquals(4, $("p", e).add(added).size()); + assertHtmlEquals(expected, $("p", e).add(added)); + + // parent() + expected = content = "

Hello

Hello

"; + $(e).html(content); + assertHtmlEquals(expected, $("p", e).parent()); + + // parent() + content + = "

Hello

Hello Again

"; + expected = "

Hello Again

"; + $(e).html(content); + assertHtmlEquals(expected, $("p", e).parent(".selected")); + + // parents() + content = "

Hello

Hello Again
"; + $(e).html(content); + assertEquals(2, $("span", e).size()); + assertTrue(3 < $("span", e).parents().size()); + assertEquals(1, $("span", e).parents().filter("body").size()); + $("span", e).parents().filter("body").toString().trim().toLowerCase().contains(content.toLowerCase()); + + // is() + content = "
"; + $(e).html(content); + assertEquals(true, $("input[type=\"checkbox\"]", e).parent().is("form")); + + // is() + content = "

"; + $(e).html(content); + assertEquals(false, $("input[type='checkbox']", e).parent().is("form")); + + // next() + content = "

Hello

Hello Again

And Again
"; + String next1 = "

Hello Again

"; + String next2 = "
And Again
"; + $(e).html(content); + assertEquals(2, $("p", e).next().size()); + assertHtmlEquals(next1, $("p", e).next().get(0).getString()); + assertHtmlEquals(next2, $("p", e).next().get(1).getString()); + + // next() + content + = "

Hello

Hello Again

And Again
"; + expected = "

Hello Again

"; + $(e).html(content); + assertEquals(1, $("p", e).next(".selected").size()); + assertHtmlEquals(expected, $("p", e).next(".selected").get(0).getString()); + + // nextAll() + content = ""; + expected = "
  • i4
  • i5
  • "; + $(e).html(content); + assertEquals(2, $("li.third-item", e).nextAll().size()); + assertHtmlEquals(expected, $("li.third-item", e).nextAll()); + + // andSelf() + content = ""; + expected = "
  • i4
  • i5
  • i3
  • "; + $(e).html(content); + assertEquals(3, $("li.third-item", e).nextAll().andSelf().size()); + assertHtmlEquals(expected, $("li.third-item", e).nextAll().andSelf()); + + // prev() + content = "

    Hello

    Hello Again

    And Again

    "; + expected = "
    Hello Again
    "; + $(e).html(content); + assertEquals(1, $("p", e).prev().size()); + assertHtmlEquals(expected, $("p", e).prev().get(0).getString()); + + // prev() + content + = "
    Hello

    Hello Again

    And Again

    "; + expected = "

    Hello Again

    "; + $(e).html(content); + assertEquals(2, $("p", e).prev().size()); + assertEquals(1, $("p", e).prev(".selected").size()); + assertHtmlEquals(expected, $("p", e).prev(".selected").get(0).getString()); + + // siblings() + content = "

    Hello

    Hello Again

    And Again

    "; + next1 = "

    Hello

    "; + next2 = "

    And Again

    "; + $(e).html(content); + assertEquals(2, $("#mdiv", e).siblings().size()); + assertHtmlEquals(next1, $("#mdiv", e).siblings().get(0).getString()); + assertHtmlEquals(next2, $("#mdiv", e).siblings().get(1).getString()); + + // siblings() + content + = "
    Hello

    Hello Again

    And Again

    "; + expected = "

    Hello Again

    "; + $(e).html(content); + assertEquals(1, $("p", e).siblings(".selected").size()); + assertHtmlEquals(expected, $("p", e).siblings(".selected").get(0).getString()); + + // children() + content = "

    Hello

    Hello Again

    And Again

    "; + expected = "Hello Again"; + $(e).html(content); + assertHtmlEquals(expected, $("#mdiv", e).children()); + + // children() + content + = "
    Hello

    Hello Again

    And Again

    "; + expected = "

    Hello Again

    "; + $(e).html(content); + assertHtmlEquals(expected, $("#mdiv", e).children(".selected")); + + // contains() + content = "

    This is just a test.

    So is this

    "; + expected = "

    This is just a test.

    "; + $(e).html(content); + assertHtmlEquals(expected, $("p", e).contains("test")); + } + + public void testSliceMethods() { + String content = "

    This is just a test.

    So is this

    "; + $(e).html(content); + + String expected = "

    So is this

    "; + assertEquals(1, $("p", e).eq(1).size()); + assertHtmlEquals(expected, $("p", e).eq(1)); + + expected = "

    This is just a test.

    "; + assertEquals(1, $("p", e).lt(1).size()); + assertHtmlEquals(expected, $("p", e).lt(1)); + + expected = "

    So is this

    "; + assertEquals(1, $("p", e).gt(0).size()); + assertHtmlEquals(expected, $("p", e).gt(0)); + + assertEquals(2, $("p", e).slice(0, 2).size()); + assertEquals(2, $("p", e).slice(0, -1).size()); + assertEquals(0, $("p", e).slice(3, 2).size()); + } + + public void testWrapMethod() { + String content = "

    Test Paragraph.

    "; + String wrapper = "
    Content
    "; + + String expected = "
    Content

    Test Paragraph.

    "; + $(e).html(content); + + $("p", e).wrap(wrapper); + assertHtmlEquals(expected, $(e).html()); + + $(e).html(content + wrapper); + expected + = "

    Test Paragraph.

    Content
    "; + $("*", e).wrap(""); + assertHtmlEquals(expected, $(e).html()); + } +} diff --git a/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryEventsTest.java b/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryEventsTest.java new file mode 100644 index 00000000..85285a67 --- /dev/null +++ b/gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryEventsTest.java @@ -0,0 +1,193 @@ +/* + * Copyright 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.query.client; + +import static com.google.gwt.query.client.GQuery.$; +import static com.google.gwt.query.client.GQuery.lazy; + +import com.google.gwt.dom.client.Element; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.junit.DoNotRunWith; +import com.google.gwt.junit.Platform; +import com.google.gwt.junit.client.GWTTestCase; +import com.google.gwt.user.client.Event; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.RootPanel; + +/** + * Test class for testing events plugin. + */ +public class GQueryEventsTest extends GWTTestCase { + + static Element e = null; + + static HTML testPanel = null; + + public String getModuleName() { + return "com.google.gwt.query.Query"; + } + + public void gwtSetUp() { + if (e == null) { + testPanel = new HTML(); + RootPanel.get().add(testPanel); + e = testPanel.getElement(); + e.setId("evnt-tst"); + } else { + e.setInnerHTML(""); + } + } + + public void testEventsPlugin() { + $(e).html("

    Content

    "); + + // click + $("p", e).click(new Function() { + public void f(Element elem) { + $(elem).css("color", "red"); + } + }, new Function() { + public void f(Element elem) { + $(elem).css("background", "green"); + } + }); + $("p", e, Events.Events).trigger(Event.ONCLICK); + assertEquals("red", $("p", e).css("color")); + assertEquals("green", $("p", e).css("background-color")); + + // unbind + $("p", e).css("color", "white"); + $("p", e).unbind(Event.ONCLICK); + $("p", e).click(); + assertEquals("white", $("p", e).css("color")); + + // toggle + $("p", e).unbind(Event.ONCLICK); + $("p", e).toggle(new Function() { + public void f(Element elem) { + $(elem).css("color", "red"); + } + }, new Function() { + public void f(Element elem) { + $(elem).css("color", "blue"); + } + }); + $("p", e).click(); + assertEquals("red", $("p", e).css("color")); + $("p", e).click(); + assertEquals("blue", $("p", e).css("color")); + + // one + $("p", e).unbind(Event.ONCLICK); + $("p", e).one(Event.ONCLICK, null, new Function() { + public void f(Element elem) { + $(elem).css("color", "red"); + } + }); + $("p", e).click(); + assertEquals("red", $("p", e).css("color")); + $("p", e).css("color", "white"); + $("p", e).click(); + assertEquals("white", $("p", e).css("color")); + + // hover (mouseover, mouseout) + $("p", e).hover(new Function() { + public void f(Element elem) { + $(elem).css("background-color", "yellow"); + } + }, new Function() { + public void f(Element elem) { + $(elem).css("background-color", "white"); + } + }); + $("p", e).trigger(Event.ONMOUSEOVER); + assertEquals("yellow", $("p", e).css("background-color")); + $("p", e).trigger(Event.ONMOUSEOUT); + assertEquals("white", $("p", e).css("background-color")); + + // focus + $("p", e).focus(new Function() { + public void f(Element elem) { + $(elem).css("border", "1px dotted black"); + } + }); + $("p", e).focus(); + assertEquals("black", $("p", e).css("border-top-color")); + assertEquals("dotted", $("p", e).css("border-top-style")); + assertEquals("1px", $("p", e).css("border-top-width")); + + // blur + $("p", e).blur(new Function() { + public void f(Element elem) { + $(elem).css("border", ""); + } + }); + $("p", e).blur(); + assertEquals("", $("p", e).css("border")); + + // key events + $(e).html(""); + Function keyEventAction = new Function() { + public boolean f(Event evnt) { + GQuery gq = $(evnt); + gq.val(gq.val() + Character.toString((char) evnt.getKeyCode())); + return false; + } + }; + $("input", e).keypress(keyEventAction); + $("input", e).keydown(keyEventAction); + $("input", e).keyup(keyEventAction); + $("input", e).focus(); + $("input", e).keydown('a'); + $("input", e).keypress('b'); + $("input", e).keyup('c'); + assertEquals("abc", $("input", e).val()); + } + + /** + * TODO: DblClick doesn't work with HtmlUnit, investigate and report. + */ + @DoNotRunWith(Platform.HtmlUnit) + public void testEventsDblClick() { + $(e).html("

    Content

    "); + $("p", e).css("color", "white"); + $("p", e).dblclick(new Function() { + public void f(Element elem) { + $(elem).css("color", "yellow"); + } + }); + $("p", e).dblclick(); + assertEquals("yellow", $("p", e).css("color")); + } + + public void testWidgetEvents() { + final Button b = new Button("click-me"); + b.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + b.getElement().getStyle().setBackgroundColor("black"); + } + }); + RootPanel.get().add(b); + $("button").click(lazy().css("color", "red").done()); + + $("button").click(); + assertEquals("red", $("button").css("color")); + assertEquals("black", $("button").css("background-color")); + RootPanel.get().remove(b); + } +}