Przeglądaj źródła

Added manual test for focusing view.Document.

Szymon Kupś 9 lat temu
rodzic
commit
aeaa78a13f

+ 6 - 0
packages/ckeditor5-engine/tests/view/manual/focus.html

@@ -0,0 +1,6 @@
+<div contenteditable="true" id="editable1">
+</div>
+<div contenteditable="true" id="editable2">
+</div>
+<button id="button1">Focus first editable</button>
+<button id="button2">Focus second editable</button>

+ 43 - 0
packages/ckeditor5-engine/tests/view/manual/focus.js

@@ -0,0 +1,43 @@
+/**
+ * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+'use strict';
+
+import Document from '/ckeditor5/engine/view/document.js';
+import MutationObserver from '/ckeditor5/engine/view/observer/mutationobserver.js';
+import SelectionObserver from '/ckeditor5/engine/view/observer/selectionobserver.js';
+import FocusObserver from '/ckeditor5/engine/view/observer/focusobserver.js';
+import { parse } from '/tests/engine/_utils/view.js';
+
+const viewDocument = new Document();
+
+const domEditable1 = document.getElementById( 'editable1' );
+const domEditable2 = document.getElementById( 'editable2' );
+
+const editable1 = viewDocument.createRoot( domEditable1, 'editable1' );
+const editable2 = viewDocument.createRoot( domEditable2, 'editable2' );
+
+viewDocument.on( 'selectionChange', ( evt, data ) => {
+	viewDocument.selection.setTo( data.newSelection );
+} );
+
+viewDocument.addObserver( MutationObserver );
+viewDocument.addObserver( SelectionObserver );
+viewDocument.addObserver( FocusObserver );
+
+const { selection: selection1 } = parse( '<p>Foo {bar} baz.</p>', { rootElement: editable1 } );
+const { selection: selection2 } = parse( '<p>{Foo} bar baz.</p>', { rootElement: editable2 } );
+
+document.getElementById( 'button1' ).addEventListener( 'click', () => {
+	viewDocument.selection.setTo( selection1 );
+	viewDocument.focus();
+} );
+
+document.getElementById( 'button2' ).addEventListener( 'click', () => {
+	viewDocument.selection.setTo( selection2 );
+	viewDocument.focus();
+} );
+
+viewDocument.render();

+ 7 - 0
packages/ckeditor5-engine/tests/view/manual/focus.md

@@ -0,0 +1,7 @@
+@bender-ui: collapsed
+@bender-tags: view
+
+* Click `Focus first editable` button.
+* First editable should be focused and selection around `bar` should be visible.
+* Click `Focus second editable` button.
+* Second editable should be focused and selection around `Foo` should be visible.