Piotr Jasiun пре 10 година
родитељ
комит
8cc473ba67

+ 25 - 0
packages/ckeditor5-engine/tests/treeview/manual/init.html

@@ -0,0 +1,25 @@
+<div contenteditable="true" id="editor">
+	<p>Old</p>
+	<p>Content</p>
+</div>
+<script>
+	'use strict';
+
+	bender.amd.manualRequire( [
+		'core/treeview/treeview',
+		'core/treeview/observer/mutationobserver',
+		'core/treeview/element',
+		'core/treeview/text'
+	], function( TreeView, MutationObserver, Element, Text ) {
+		const treeView = new TreeView( document.getElementById( 'editor' ) );
+
+		treeView.viewRoot.insertChildren( 0, [
+			new Element( 'p', [], [ new Text( 'New' ) ] ),
+			new Element( 'p', [], [ new Text( 'Content' ) ] )
+			] );
+
+		treeView.render();
+
+		console.log( treeView );
+	} );
+</script>

+ 13 - 0
packages/ckeditor5-engine/tests/treeview/manual/init.md

@@ -0,0 +1,13 @@
+@bender-ui: collapsed
+@bender-tags: treeview
+
+## Init ##
+
+TreeView should be initialised and displayed in console.
+
+The content shoud be:
+
+```
+New
+Content
+```

+ 2 - 25
packages/ckeditor5-engine/tests/treeview/manual/mutationobserver.html

@@ -1,11 +1,4 @@
-<div contenteditable="true" id="editor">
-	<p>Foo</p>
-	<p>Bar</p>
-</div>
-<div contenteditable="true" id="editor">
-	<p>Foo</p>
-	<p>Bar</p>
-</div>
+<div contenteditable="true" id="editor"></div>
 <script>
 	'use strict';
 
@@ -18,11 +11,7 @@
 		const treeView = new TreeView( document.getElementById( 'editor' ) );
 		const mutationObserver = new MutationObserver();
 
-		mutationObserver.on( 'mutations', ( evt, mutations ) => {
-			console.log( mutations );
-		} );
-
-		mutationObserver.on( 'mutations', handleTyping );
+		mutationObserver.on( 'mutations', ( evt, mutations ) => console.log( mutations ) );
 		
 		treeView.addObserver( mutationObserver );
 
@@ -32,17 +21,5 @@
 			] );
 
 		treeView.render();
-
-		console.log( treeView );
 	} );
-
-	function handleTyping( evt, mutations ) {
-		const mutation = mutations[ 0 ];
-
-		if( mutations.length > 1 || mutation.type !== 'text' ) {
-			return;
-		}
-
-		mutation.node.setText( mutation.newText );
-	}
 </script>

+ 19 - 1
packages/ckeditor5-engine/tests/treeview/manual/mutationobserver.md

@@ -1,4 +1,22 @@
 @bender-ui: collapsed
 @bender-tags: treeview
 
-## Mutation Observer ##
+Try to:
+ - type,
+ - break paragraph,
+ - delete break,
+ - bold,
+ - move text/paragraph,
+ - insert/delete paragraph.
+
+## Mutation Preventing ##
+
+Document should not change, all changes should be prevented before rendering. Selection may change.
+
+## Mutation Observer ##
+
+Check the console for the mutation events. There should be:
+ - no duplications,
+ - only TreeView objects,
+ - only mutation on TreeView children,
+ - text mutation only if parents child list do not change.

+ 33 - 0
packages/ckeditor5-engine/tests/treeview/manual/typing.html

@@ -0,0 +1,33 @@
+<div contenteditable="true" id="editor"></div>
+<script>
+	'use strict';
+
+	bender.amd.manualRequire( [
+		'core/treeview/treeview',
+		'core/treeview/observer/mutationobserver',
+		'core/treeview/element',
+		'core/treeview/text'
+	], function( TreeView, MutationObserver, Element, Text ) {
+		const treeView = new TreeView( document.getElementById( 'editor' ) );
+		const mutationObserver = new MutationObserver();
+
+		mutationObserver.on( 'mutations', ( evt, mutations ) => console.log( mutations ) );
+		mutationObserver.on( 'mutations', handleTyping );
+		
+		treeView.addObserver( mutationObserver );
+
+		treeView.viewRoot.insertChildren( 0, [ new Element( 'p', [], [ new Text( 'foo' ) ] ) ] );
+
+		treeView.render();
+	} );
+
+	function handleTyping( evt, mutations ) {
+		const mutation = mutations[ 0 ];
+
+		if( mutations.length > 1 || mutation.type !== 'text' ) {
+			return;
+		}
+
+		mutation.node.setText( mutation.newText );
+	}
+</script>

+ 8 - 0
packages/ckeditor5-engine/tests/treeview/manual/typing.md

@@ -0,0 +1,8 @@
+@bender-ui: collapsed
+@bender-tags: treeview
+
+## Typing ##
+
+ - It should be possible to type (change the content of the text node).
+ - All other operations should be permitted, it should not be possible to remove whole node.
+ - Composition should work fine, not be broken.