11/* globals document */
22
33import View from '../../../src/view/view' ;
4+ import Observer from '../../../src/view/observer/observer' ;
45import MutationObserver from '../../../src/view/observer/mutationobserver' ;
5- import count from '@ckeditor/ckeditor5-utils/src/count' ;
66import KeyObserver from '../../../src/view/observer/keyobserver' ;
77import FakeSelectionObserver from '../../../src/view/observer/fakeselectionobserver' ;
88import SelectionObserver from '../../../src/view/observer/selectionobserver' ;
99import FocusObserver from '../../../src/view/observer/focusobserver' ;
1010import CompositionObserver from '../../../src/view/observer/compositionobserver' ;
11- import createViewRoot from '../_utils/createroot' ;
12- import Observer from '../../../src/view/observer/observer' ;
13- import log from '@ckeditor/ckeditor5-utils/src/log' ;
14- import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils' ;
15- import global from '@ckeditor/ckeditor5-utils/src/dom/global' ;
1611import ViewRange from '../../../src/view/range' ;
17- import RootEditableElement from '../../../src/view/rooteditableelement' ;
1812import ViewElement from '../../../src/view/element' ;
1913import ViewPosition from '../../../src/view/position' ;
2014import { isBlockFiller , BR_FILLER } from '../../../src/view/filler' ;
21- import createElement from '@ckeditor/ckeditor5-utils/src/dom/createelement' ;
2215import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror' ;
16+ import log from '@ckeditor/ckeditor5-utils/src/log' ;
17+
18+ import count from '@ckeditor/ckeditor5-utils/src/count' ;
19+ import global from '@ckeditor/ckeditor5-utils/src/dom/global' ;
20+ import createViewRoot from '../_utils/createroot' ;
21+ import createElement from '@ckeditor/ckeditor5-utils/src/dom/createelement' ;
22+ import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils' ;
2323
2424describe ( 'view' , ( ) => {
2525 const DEFAULT_OBSERVERS_COUNT = 6 ;
@@ -45,6 +45,7 @@ describe( 'view', () => {
4545 this . enable = sinon . spy ( ) ;
4646 this . disable = sinon . spy ( ) ;
4747 this . observe = sinon . spy ( ) ;
48+ this . destroy = sinon . spy ( ) ;
4849 }
4950 } ;
5051
@@ -379,6 +380,20 @@ describe( 'view', () => {
379380
380381 sinon . assert . callOrder ( observerMock . disable , renderStub , observerMock . enable ) ;
381382 } ) ;
383+
384+ it ( 'should fire view.document.layoutChanged event on render' , ( ) => {
385+ const spy = sinon . spy ( ) ;
386+
387+ view . document . on ( 'layoutChanged' , spy ) ;
388+
389+ view . render ( ) ;
390+
391+ sinon . assert . calledOnce ( spy ) ;
392+
393+ view . render ( ) ;
394+
395+ sinon . assert . calledTwice ( spy ) ;
396+ } ) ;
382397 } ) ;
383398
384399 describe ( 'view and DOM integration' , ( ) => {
@@ -391,7 +406,7 @@ describe( 'view', () => {
391406 const view = new View ( ) ;
392407 const viewDocument = view . document ;
393408
394- createRoot ( 'div' , 'main' , viewDocument ) ;
409+ createViewRoot ( viewDocument , 'div' , 'main' ) ;
395410 view . attachDomRoot ( domDiv ) ;
396411 view . render ( ) ;
397412
@@ -407,7 +422,7 @@ describe( 'view', () => {
407422
408423 const view = new View ( ) ;
409424 const viewDocument = view . document ;
410- createRoot ( 'div' , 'main' , viewDocument ) ;
425+ createViewRoot ( viewDocument , 'div' , 'main' ) ;
411426 view . attachDomRoot ( domDiv ) ;
412427
413428 viewDocument . getRoot ( ) . _appendChild ( new ViewElement ( 'p' ) ) ;
@@ -424,7 +439,7 @@ describe( 'view', () => {
424439
425440 const view = new View ( ) ;
426441 const viewDocument = view . document ;
427- const viewRoot = createRoot ( 'div' , 'main' , viewDocument ) ;
442+ const viewRoot = createViewRoot ( viewDocument , 'div' , 'main' ) ;
428443
429444 view . attachDomRoot ( domRoot ) ;
430445
@@ -588,13 +603,13 @@ describe( 'view', () => {
588603 } ) ;
589604 } ) ;
590605
591- function createRoot ( name , rootName , viewDoc ) {
592- const viewRoot = new RootEditableElement ( name ) ;
606+ describe ( 'destroy()' , ( ) => {
607+ it ( 'should destroy all observers' , ( ) => {
608+ const observerMock = view . addObserver ( ObserverMock ) ;
593609
594- viewRoot . rootName = rootName ;
595- viewRoot . _document = viewDoc ;
596- viewDoc . roots . add ( viewRoot ) ;
610+ view . destroy ( ) ;
597611
598- return viewRoot ;
599- }
612+ sinon . assert . calledOnce ( observerMock . destroy ) ;
613+ } ) ;
614+ } ) ;
600615} ) ;
0 commit comments