]> source.dussan.org Git - gwtquery.git/commitdiff
Merge branch 'master' of github.com:gwtquery/gwtquery into jd_fix_event_1
authorjdramaix <julien.dramaix@gmail.com>
Thu, 5 Dec 2013 23:26:55 +0000 (00:26 +0100)
committerjdramaix <julien.dramaix@gmail.com>
Thu, 5 Dec 2013 23:26:55 +0000 (00:26 +0100)
Conflicts:
gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryEventsTestGwt.java

1  2 
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/events/EventsListener.java
gwtquery-core/src/test/java/com/google/gwt/query/client/GQueryEventsTestGwt.java

index 61e05ac97da29b1102c9386e7b5871a40d8b6542,e3ada526e78fb418afc45ba81a5ba75fe3987310..b781d1d9bda7eceb1b045071f195d003994e7ef9
@@@ -1596,90 -1596,11 +1596,98 @@@ public class GQueryEventsTestGwt extend
      assertEquals(1, handler.invokationCounter);
    }
  
+   public void testIssue226() {
+     $(e).html("<div id='target'>");
+     GQuery target = $("#target", e);
+     // this should not throw a NPE
+     target.undelegate("li", "click");
+   }
++
 +  // issue 25 : https://github.com/gwtquery/gwtquery/issues/25
 +  public void testDelegateAfterUndelegateWithoutParameter() {
 +    $(e).html(
 +        "<div class='mainDiv'><div class='subDiv'>Content 0<span>blop</span></div></div><div class='mainDiv'><div class='subDiv'>Content 0<span>blop</span></div></div>");
 +
 +    CounterFunction clickFunction = new CounterFunction();
 +    CounterFunction mouseOverFunction = new CounterFunction();
 +
 +    $(".mainDiv", e).delegate(".subDiv", "click", clickFunction);
 +
 +    $(".mainDiv", e).delegate(".subDiv", Event.ONMOUSEOVER, mouseOverFunction);
 +
 +    for (Element mainDiv : $(".mainDiv", e).elements()) {
 +      for (int i = 0; i < 3; i++) {
 +        String html = "<div class='subDiv'>Content " + i + "<span>blop</span></div>";
 +        $(mainDiv).append(html);
 +      }
 +    }
 +
 +    assertEquals(8, $(".subDiv", e).length());
 +
 +    $("span", e).click().trigger(Event.ONMOUSEOVER);
 +
 +    assertEquals(8, clickFunction.invokationCounter);
 +    assertEquals(8, mouseOverFunction.invokationCounter);
 +
 +    clickFunction.invokationCounter = 0;
 +    mouseOverFunction.invokationCounter = 0;
 +
 +    $(".mainDiv", e).undelegate();
 +
 +    $("span", e).click().trigger(Event.ONMOUSEOVER);
 +    assertEquals(0, clickFunction.invokationCounter);
 +    assertEquals(0, mouseOverFunction.invokationCounter);
 +
 +    //reattach the event
 +
 +    $(".mainDiv", e).delegate(".subDiv", "click", clickFunction);
 +    $(".mainDiv", e).delegate(".subDiv", Event.ONMOUSEOVER, mouseOverFunction);
 +
 +    $("span", e).click().trigger(Event.ONMOUSEOVER);
 +
 +    assertEquals(8, clickFunction.invokationCounter);
 +    assertEquals(8, mouseOverFunction.invokationCounter);
 +
 +  }
 +
 +  public void testDelegateAfterUndelegateWithSelectorWithDifferentEvent() {
 +    $(e).html(
 +        "<div class='mainDiv'><div class='subDiv'>Content 0<span>blop</span></div></div><div class='mainDiv'><div class='subDiv'>Content 0<span>blop</span></div></div>");
 +
 +    CounterFunction clickFunction = new CounterFunction();
 +    CounterFunction mouseOverFunction = new CounterFunction();
 +    CounterFunction customEventFunction = new CounterFunction();
 +
 +    $(".mainDiv", e).delegate(".subDiv", "click", clickFunction)
 +        .delegate(".subDiv", Event.ONMOUSEOVER, mouseOverFunction)
 +        .delegate(".subDiv", "custom", customEventFunction);
 +
 +    for (Element mainDiv : $(".mainDiv", e).elements()) {
 +      for (int i = 0; i < 3; i++) {
 +        String html = "<div class='subDiv'>Content " + i + "<span>blop</span></div>";
 +        $(mainDiv).append(html);
 +      }
 +    }
 +
 +    assertEquals(8, $(".subDiv", e).length());
 +
 +    $("span", e).click().trigger(Event.ONMOUSEOVER).trigger("custom");
 +
 +    assertEquals(8, clickFunction.invokationCounter);
 +    assertEquals(8, mouseOverFunction.invokationCounter);
 +    assertEquals(8, customEventFunction.invokationCounter);
 +
 +    $(".mainDiv", e).undelegate(".subDiv");
 +
 +    clickFunction.invokationCounter = 0;
 +    mouseOverFunction.invokationCounter = 0;
 +    customEventFunction.invokationCounter = 0;
 +
 +    $("span", e).click().trigger(Event.ONMOUSEOVER).trigger("custom");
 +
 +    assertEquals(0, clickFunction.invokationCounter);
 +    assertEquals(0, mouseOverFunction.invokationCounter);
 +    assertEquals(0, customEventFunction.invokationCounter);
 +  }
  }