Revision: 9913
Author: rj...@google.com
Date: Tue Mar 29 12:31:22 2011
Log: Add tests of nesting semantics for ResettableEventBus
Review at http://gwt-code-reviews.appspot.com/1395802
Review by: jlaba...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=9913
Modified:
/trunk/user/test/com/google/gwt/event/shared/ResettableEventBusTest.java
=======================================
---
/trunk/user/test/com/google/gwt/event/shared/ResettableEventBusTest.java
Fri Sep 10 17:56:09 2010
+++
/trunk/user/test/com/google/gwt/event/shared/ResettableEventBusTest.java
Tue Mar 29 12:31:22 2011
@@ -58,4 +58,62 @@
});
assertNotFired(mouse1, mouse2, mouse3);
}
-}
+
+ public void testNestedResetInnerFirst() {
+ CountingEventBus wrapped = new CountingEventBus();
+ ResettableEventBus wideScope = new ResettableEventBus(wrapped);
+ ResettableEventBus narrowScope = new ResettableEventBus(wideScope);
+
+ Type<MouseDownHandler> type = MouseDownEvent.getType();
+
+ wideScope.addHandler(type, mouse1);
+ narrowScope.addHandler(type, mouse2);
+
+ wrapped.fireEvent(new MouseDownEvent() {
+ });
+ assertFired(mouse1, mouse2);
+
+ reset();
+
+ /*
+ * When I remove handlers from the narrow resettable, it should have
no effect
+ * on handlers registered with the wider instance.
+ */
+
+ narrowScope.removeHandlers();
+
+ wrapped.fireEvent(new MouseDownEvent() {
+ });
+ assertFired(mouse1);
+ assertNotFired(mouse2);
+ }
+
+ public void testNestedResetOuterFirst() {
+ CountingEventBus wrapped = new CountingEventBus();
+ ResettableEventBus wideScope = new ResettableEventBus(wrapped);
+ ResettableEventBus narrowScope = new ResettableEventBus(wideScope);
+
+ Type<MouseDownHandler> type = MouseDownEvent.getType();
+
+ wideScope.addHandler(type, mouse1);
+ narrowScope.addHandler(type, mouse2);
+
+ wrapped.fireEvent(new MouseDownEvent() {
+ });
+ assertFired(mouse1, mouse2);
+
+ reset();
+
+ /*
+ * When I remove handlers from the first resettable, handlers
registered
+ * by the narrower scoped one that wraps it should also be severed.
+ */
+
+ wideScope.removeHandlers();
+
+ wrapped.fireEvent(new MouseDownEvent() {
+ });
+ assertNotFired(mouse1);
+ assertNotFired(mouse2);
+ }
+}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors