Explorar el Código

Merge pull request #180 from ckeditor/t/179

Fixed unit tests and addded integrational tests.
Szymon Kupś hace 9 años
padre
commit
54b8665ba0

+ 0 - 15
tests/creator/manual/_utils/creator/inlinecreator.js

@@ -29,9 +29,6 @@ export default class InlineCreator extends StandardCreator {
 		this._createEditable();
 
 		createEditorUI( editor, BoxlessEditorUI, EditorUIView );
-
-		// Data controller mock.
-		this._mockDataController();
 	}
 
 	create() {
@@ -90,16 +87,4 @@ export default class InlineCreator extends StandardCreator {
 		this.editor.ui.add( 'body', toolbar1 );
 		this.editor.ui.add( 'body', toolbar2 );
 	}
-
-	_mockDataController() {
-		const editor = this.editor;
-
-		editor.data.get = ( rootName ) => {
-			return editor.editables.get( rootName ).domElement.innerHTML + `<p>getData( '${ rootName }' )</p>`;
-		};
-
-		this.editor.data.set = ( rootName, data ) => {
-			editor.editables.get( rootName ).domElement.innerHTML = data + `<p>setData( '${ rootName }' )</p>`;
-		};
-	}
 }

+ 0 - 15
tests/creator/manual/_utils/creator/legacycreator.js

@@ -32,9 +32,6 @@ export default class LegacyCreator extends StandardCreator {
 
 		// UI.
 		createEditorUI( editor, BoxedEditorUI, BoxedEditorUIView );
-
-		// Data controller mock.
-		this._mockDataController();
 	}
 
 	create() {
@@ -76,16 +73,4 @@ export default class LegacyCreator extends StandardCreator {
 
 		this.editor.ui.add( 'top', toolbar );
 	}
-
-	_mockDataController() {
-		const editor = this.editor;
-
-		editor.data.get = ( rootName ) => {
-			return editor.editables.get( rootName ).domElement.innerHTML + `<p>getData( '${ rootName }' )</p>`;
-		};
-
-		this.editor.data.set = ( rootName, data ) => {
-			editor.editables.get( rootName ).domElement.innerHTML = data + `<p>setData( '${ rootName }' )</p>`;
-		};
-	}
 }

+ 0 - 15
tests/creator/manual/_utils/creator/multicreator.js

@@ -31,9 +31,6 @@ export default class MultiCreator extends StandardCreator {
 
 		// UI.
 		createEditorUI( editor, BoxedEditorUI, BoxedEditorUIView );
-
-		// Data controller mock.
-		this._mockDataController();
 	}
 
 	create() {
@@ -91,16 +88,4 @@ export default class MultiCreator extends StandardCreator {
 
 		this.editor.ui.add( 'top', toolbar );
 	}
-
-	_mockDataController() {
-		const editor = this.editor;
-
-		editor.data.get = ( rootName ) => {
-			return editor.editables.get( rootName ).domElement.innerHTML + `<p>getData( '${ rootName }' )</p>`;
-		};
-
-		this.editor.data.set = ( rootName, data ) => {
-			editor.editables.get( rootName ).domElement.innerHTML = data + `<p>setData( '${ rootName }' )</p>`;
-		};
-	}
 }

+ 55 - 2
tests/editor/baseeditor.js

@@ -12,6 +12,9 @@ import Command from '/ckeditor5/command/command.js';
 import Locale from '/ckeditor5/utils/locale.js';
 import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
 import Document from '/ckeditor5/engine/model/document.js';
+import DataController from '/ckeditor5/engine/datacontroller.js';
+import HtmlDataProcessor from '/ckeditor5/engine/dataprocessor/htmldataprocessor.js';
+import { getData, setData } from '/tests/engine/_utils/model.js';
 
 describe( 'Editor', () => {
 	describe( 'locale', () => {
@@ -86,14 +89,14 @@ describe( 'Editor', () => {
 			editor.setData( 'foo' );
 
 			expect( editor.data.set.calledOnce ).to.be.true;
-			expect( editor.data.set.calledWithExactly( 'firstRoot', 'foo' ) ).to.be.true;
+			expect( editor.data.set.calledWithExactly( 'foo', 'firstRoot' ) ).to.be.true;
 		} );
 
 		it( 'should set data of the specified root', () => {
 			editor.setData( 'foo', 'someRoot' );
 
 			expect( editor.data.set.calledOnce ).to.be.true;
-			expect( editor.data.set.calledWithExactly( 'someRoot', 'foo' ) ).to.be.true;
+			expect( editor.data.set.calledWithExactly( 'foo', 'someRoot' ) ).to.be.true;
 		} );
 
 		it( 'should throw when no roots', () => {
@@ -118,6 +121,31 @@ describe( 'Editor', () => {
 				editor.setData( 'foo' );
 			} ).to.throw( CKEditorError, /^editor-no-datacontroller:/ );
 		} );
+
+		describe( 'integrational tests', () => {
+			beforeEach( () => {
+				editor.data = new DataController( editor.document, new HtmlDataProcessor() );
+
+				editor.document.schema.allow( { name: '$text', inside: '$root' } );
+			} );
+
+			it( 'should set data of the first root', () => {
+				editor.document.createRoot( 'firstRoot', 'div' );
+
+				editor.setData( 'foo' );
+
+				expect( getData( editor.document, { rootName: 'firstRoot', withoutSelection: true } ) ).to.equal( 'foo' );
+			} );
+
+			it( 'should set data of the specified root', () => {
+				editor.document.createRoot( 'firstRoot', 'div' );
+				editor.document.createRoot( 'secondRoot', 'div' );
+
+				editor.setData( 'foo', 'secondRoot' );
+
+				expect( getData( editor.document, { rootName: 'secondRoot', withoutSelection: true } ) ).to.equal( 'foo' );
+			} );
+		} );
 	} );
 
 	describe( 'getData', () => {
@@ -166,5 +194,30 @@ describe( 'Editor', () => {
 				editor.getData();
 			} ).to.throw( CKEditorError, /^editor-no-datacontroller:/ );
 		} );
+
+		describe( 'integrational tests', () => {
+			beforeEach( () => {
+				editor.data = new DataController( editor.document, new HtmlDataProcessor() );
+
+				editor.document.schema.allow( { name: '$text', inside: '$root' } );
+			} );
+
+			it( 'should set data of the first root', () => {
+				editor.document.createRoot( 'firstRoot', 'div' );
+
+				setData( editor.document, 'foo', { rootName: 'firstRoot' } );
+
+				expect( editor.getData() ).to.equal( 'foo' );
+			} );
+
+			it( 'should set data of the specified root', () => {
+				editor.document.createRoot( 'firstRoot', 'div' );
+				editor.document.createRoot( 'secondRoot', 'div' );
+
+				setData( editor.document, 'foo', { rootName: 'secondRoot' } );
+
+				expect( editor.getData( 'secondRoot' ) ).to.equal( 'foo' );
+			} );
+		} );
 	} );
 } );