8
0
Quellcode durchsuchen

Cleared collection with observed elements on observer destroy.

Oskar Wróbel vor 7 Jahren
Ursprung
Commit
9af3a5574a

+ 1 - 0
packages/ckeditor5-image/src/image/imageloadobserver.js

@@ -91,6 +91,7 @@ export default class ImageLoadObserver extends DomEventObserver {
 	 */
 	destroy() {
 		this._domEmitter.stopListening();
+		this._observedElements.clear();
 		super.destroy();
 	}
 }

+ 14 - 0
packages/ckeditor5-image/tests/image/imageloadobserver.js

@@ -109,4 +109,18 @@ describe( 'ClickObserver', () => {
 		sinon.assert.calledOnce( layoutChangedSpy );
 		sinon.assert.calledOnce( imageLoadedSpy );
 	} );
+
+	it( 'should stop observing images on destroy', () => {
+		const spy = sinon.spy();
+
+		viewDocument.on( 'imageLoaded', spy );
+
+		setData( view, '<img src="foo.png" />' );
+
+		observer.destroy();
+
+		domRoot.querySelector( 'img' ).dispatchEvent( new Event( 'load' ) );
+
+		sinon.assert.notCalled( spy );
+	} );
 } );