@@ -159,7 +159,8 @@ new Test.Unit.Runner({
159
159
var span = $ ( "span" ) , observer = Prototype . emptyFunction , eventID ;
160
160
161
161
span . observe ( "test:somethingHappened" , observer ) ;
162
-
162
+ span . observe ( "test:somethingHappened" , function ( ) { } ) ;
163
+
163
164
function uidForElement ( elem ) {
164
165
return elem . uniqueID ? elem . uniqueID : elem . _prototypeUID ;
165
166
}
@@ -168,17 +169,35 @@ new Test.Unit.Runner({
168
169
169
170
this . assert ( registry , 'registry should exist' ) ;
170
171
this . assert ( Object . isArray ( registry [ 'test:somethingHappened' ] ) ) ;
171
- this . assertEqual ( 1 , registry [ 'test:somethingHappened' ] . length ) ;
172
+ this . assertEqual ( 2 , registry [ 'test:somethingHappened' ] . length ) ;
172
173
173
174
span . stopObserving ( "test:somethingHappened" , observer ) ;
174
175
175
176
registry = Event . cache [ uidForElement ( span ) ] ;
176
177
177
178
this . assert ( registry ) ;
178
179
this . assert ( Object . isArray ( registry [ 'test:somethingHappened' ] ) ) ;
179
- this . assertEqual ( 0 , registry [ 'test:somethingHappened' ] . length ) ;
180
+ this . assertEqual ( 1 , registry [ 'test:somethingHappened' ] . length ) ;
180
181
} ,
181
182
183
+ testLastStopObservingClearesCache : function ( ) {
184
+ var span = $ ( "span" ) , observer = Prototype . emptyFunction , eventID ;
185
+ delete Event . cache [ uidForElement ( span ) ] ;
186
+
187
+ span . observe ( "test:somethingHappened" , observer ) ;
188
+
189
+ function uidForElement ( elem ) {
190
+ return elem . uniqueID ? elem . uniqueID : elem . _prototypeUID ;
191
+ }
192
+
193
+ span . stopObserving ( "test:somethingHappened" , observer ) ;
194
+
195
+ var registry = Event . cache [ uidForElement ( span ) ] ;
196
+
197
+ this . assert ( ! registry ) ;
198
+ // console.info(registry)
199
+ } ,
200
+
182
201
testObserveAndStopObservingAreChainable : function ( ) {
183
202
var span = $ ( "span" ) , observer = Prototype . emptyFunction ;
184
203
0 commit comments