8
0
Просмотр исходного кода

Tests: Added unit test for verifying that the same subsequent fake selections sets do not cause unnecessary DOM selection changes.

Marek Lewandowski 6 лет назад
Родитель
Сommit
e7f8a29608
1 измененных файлов с 14 добавлено и 0 удалено
  1. 14 0
      packages/ckeditor5-engine/tests/view/renderer.js

+ 14 - 0
packages/ckeditor5-engine/tests/view/renderer.js

@@ -1804,6 +1804,20 @@ describe( 'Renderer', () => {
 				assertDomSelectionContents( domSelection, container, /^fake selection label$/ );
 			} );
 
+			it( 'doesn\'t render the same selection multiple times', () => {
+				const createRangeSpy = sinon.spy( domRoot.ownerDocument, 'createRange' );
+
+				const label = 'subsequent fake selection calls';
+				selection._setTo( selection.getRanges(), { fake: true, label } );
+				renderer.render();
+				selection._setTo( selection.getRanges(), { fake: true, label } );
+				renderer.render();
+				selection._setTo( selection.getRanges(), { fake: true, label } );
+				renderer.render();
+
+				expect( createRangeSpy.callCount ).to.be.equal( 1 );
+			} );
+
 			it( 'should render   if no selection label is provided', () => {
 				selection._setTo( selection.getRanges(), { fake: true } );
 				renderer.render();