https://www.mediawiki.org/wiki/Special:Code/MediaWiki/102048
Revision: 102048
Author: tparscal
Date: 2011-11-04 21:16:20 +0000 (Fri, 04 Nov 2011)
Log Message:
-----------
Moved es.DocumentModelBranchNode tests to their own file
Modified Paths:
--------------
trunk/extensions/VisualEditor/tests/es/es.DocumentModel.test.js
trunk/extensions/VisualEditor/tests/es/index.html
Added Paths:
-----------
trunk/extensions/VisualEditor/tests/es/es.DocumentModelBranchNode.test.js
Modified: trunk/extensions/VisualEditor/tests/es/es.DocumentModel.test.js
===================================================================
--- trunk/extensions/VisualEditor/tests/es/es.DocumentModel.test.js
2011-11-04 21:09:46 UTC (rev 102047)
+++ trunk/extensions/VisualEditor/tests/es/es.DocumentModel.test.js
2011-11-04 21:16:20 UTC (rev 102048)
@@ -718,131 +718,3 @@
'rollback keeps model tree up to date with removals'
);
} );
-
-test( 'es.DocumentDocumentModelNode child operations', 20, function() {
- // Example data (integers) is used for simplicity of testing
- var node1 = new es.DocumentModelBranchNode( '1' ),
- node2 = new es.DocumentModelBranchNode( '2' ),
- node3 = new es.DocumentModelBranchNode(
- '3',
- null,
- [new es.DocumentModelBranchNode( '3a' )]
- ),
- node4 = new es.DocumentModelBranchNode(
- '4',
- null,
- [new es.DocumentModelBranchNode( '4a' ), new
es.DocumentModelBranchNode( '4b' )]
- );
-
- // Event triggering is detected using a callback that increments a
counter
- var updates = 0;
- node1.on( 'update', function() {
- updates++;
- } );
- var attaches = 0;
- node2.on( 'afterAttach', function() {
- attaches++;
- } );
- node3.on( 'afterAttach', function() {
- attaches++;
- } );
- node4.on( 'afterAttach', function() {
- attaches++;
- } );
- var detaches = 0;
- node2.on( 'afterDetach', function() {
- detaches++;
- } );
- node3.on( 'afterDetach', function() {
- detaches++;
- } );
- node4.on( 'afterDetach', function() {
- detaches++;
- } );
- function strictArrayValueEqual( a, b, msg ) {
- if ( a.length !== b.length ) {
- ok( false, msg );
- return;
- }
- for ( var i = 0; i < a.length; i++ ) {
- if ( a[i] !== b[i] ) {
- ok( false, msg );
- return;
- }
- }
- ok( true, msg );
- }
-
- // Test 1
- node1.push( node2 );
- equal( updates, 1, 'push emits update events' );
- strictArrayValueEqual( node1.getChildren(), [node2], 'push appends a
node' );
-
- // Test 2
- equal( attaches, 1, 'push attaches added node' );
-
- // Test 3, 4
- node1.unshift( node3 );
- equal( updates, 2, 'unshift emits update events' );
- strictArrayValueEqual( node1.getChildren(), [node3, node2], 'unshift
prepends a node' );
-
- // Test 5
- equal( attaches, 2, 'unshift attaches added node' );
-
- // Test 6, 7
- node1.splice( 1, 0, node4 );
- equal( updates, 3, 'splice emits update events' );
- strictArrayValueEqual( node1.getChildren(), [node3, node4, node2],
'splice inserts nodes' );
-
- // Test 8
- equal( attaches, 3, 'splice attaches added nodes' );
-
- // Test 9
- node1.reverse();
- equal( updates, 4, 'reverse emits update events' );
-
- // Test 10, 11
- node1.sort( function( a, b ) {
- return a.getChildren().length < b.getChildren().length ? -1 : 1;
- } );
- equal( updates, 5, 'sort emits update events' );
- strictArrayValueEqual(
- node1.getChildren(),
- [node2, node3, node4],
- 'sort reorderes nodes correctly'
- );
-
- // Test 12, 13
- node1.pop();
- equal( updates, 6, 'pop emits update events' );
- strictArrayValueEqual(
- node1.getChildren(),
- [node2, node3],
- 'pop removes the last child node'
- );
-
- // Test 14
- equal( detaches, 1, 'pop detaches a node' );
-
- // Test 15, 16
- node1.shift();
- equal( updates, 7, 'es.ModelNode emits update events on shift' );
- strictArrayValueEqual(
- node1.getChildren(),
- [node3],
- 'es.ModelNode removes first Node on shift'
- );
-
- // Test 17
- equal( detaches, 2, 'shift detaches a node' );
-
- // Test 18
- strictEqual( node3.getParent(), node1, 'getParent returns the correct
reference' );
-
- // Test 19
- try {
- var view = node3.createView();
- } catch ( err ){
- ok( true, 'createView throws an exception when not overridden'
);
- }
-} );
Added: trunk/extensions/VisualEditor/tests/es/es.DocumentModelBranchNode.test.js
===================================================================
--- trunk/extensions/VisualEditor/tests/es/es.DocumentModelBranchNode.test.js
(rev 0)
+++ trunk/extensions/VisualEditor/tests/es/es.DocumentModelBranchNode.test.js
2011-11-04 21:16:20 UTC (rev 102048)
@@ -0,0 +1,129 @@
+module( 'es/bases' );
+
+test( 'es.DocumentModelBranchNode', 20, function() {
+ // Example data (integers) is used for simplicity of testing
+ var node1 = new es.DocumentModelBranchNode( '1' ),
+ node2 = new es.DocumentModelBranchNode( '2' ),
+ node3 = new es.DocumentModelBranchNode(
+ '3',
+ null,
+ [new es.DocumentModelBranchNode( '3a' )]
+ ),
+ node4 = new es.DocumentModelBranchNode(
+ '4',
+ null,
+ [new es.DocumentModelBranchNode( '4a' ), new
es.DocumentModelBranchNode( '4b' )]
+ );
+
+ // Event triggering is detected using a callback that increments a
counter
+ var updates = 0;
+ node1.on( 'update', function() {
+ updates++;
+ } );
+ var attaches = 0;
+ node2.on( 'afterAttach', function() {
+ attaches++;
+ } );
+ node3.on( 'afterAttach', function() {
+ attaches++;
+ } );
+ node4.on( 'afterAttach', function() {
+ attaches++;
+ } );
+ var detaches = 0;
+ node2.on( 'afterDetach', function() {
+ detaches++;
+ } );
+ node3.on( 'afterDetach', function() {
+ detaches++;
+ } );
+ node4.on( 'afterDetach', function() {
+ detaches++;
+ } );
+ function strictArrayValueEqual( a, b, msg ) {
+ if ( a.length !== b.length ) {
+ ok( false, msg );
+ return;
+ }
+ for ( var i = 0; i < a.length; i++ ) {
+ if ( a[i] !== b[i] ) {
+ ok( false, msg );
+ return;
+ }
+ }
+ ok( true, msg );
+ }
+
+ // Test 1
+ node1.push( node2 );
+ equal( updates, 1, 'push emits update events' );
+ strictArrayValueEqual( node1.getChildren(), [node2], 'push appends a
node' );
+
+ // Test 2
+ equal( attaches, 1, 'push attaches added node' );
+
+ // Test 3, 4
+ node1.unshift( node3 );
+ equal( updates, 2, 'unshift emits update events' );
+ strictArrayValueEqual( node1.getChildren(), [node3, node2], 'unshift
prepends a node' );
+
+ // Test 5
+ equal( attaches, 2, 'unshift attaches added node' );
+
+ // Test 6, 7
+ node1.splice( 1, 0, node4 );
+ equal( updates, 3, 'splice emits update events' );
+ strictArrayValueEqual( node1.getChildren(), [node3, node4, node2],
'splice inserts nodes' );
+
+ // Test 8
+ equal( attaches, 3, 'splice attaches added nodes' );
+
+ // Test 9
+ node1.reverse();
+ equal( updates, 4, 'reverse emits update events' );
+
+ // Test 10, 11
+ node1.sort( function( a, b ) {
+ return a.getChildren().length < b.getChildren().length ? -1 : 1;
+ } );
+ equal( updates, 5, 'sort emits update events' );
+ strictArrayValueEqual(
+ node1.getChildren(),
+ [node2, node3, node4],
+ 'sort reorderes nodes correctly'
+ );
+
+ // Test 12, 13
+ node1.pop();
+ equal( updates, 6, 'pop emits update events' );
+ strictArrayValueEqual(
+ node1.getChildren(),
+ [node2, node3],
+ 'pop removes the last child node'
+ );
+
+ // Test 14
+ equal( detaches, 1, 'pop detaches a node' );
+
+ // Test 15, 16
+ node1.shift();
+ equal( updates, 7, 'es.ModelNode emits update events on shift' );
+ strictArrayValueEqual(
+ node1.getChildren(),
+ [node3],
+ 'es.ModelNode removes first Node on shift'
+ );
+
+ // Test 17
+ equal( detaches, 2, 'shift detaches a node' );
+
+ // Test 18
+ strictEqual( node3.getParent(), node1, 'getParent returns the correct
reference' );
+
+ // Test 19
+ try {
+ var view = node3.createView();
+ } catch ( err ){
+ ok( true, 'createView throws an exception when not overridden'
);
+ }
+} );
Modified: trunk/extensions/VisualEditor/tests/es/index.html
===================================================================
--- trunk/extensions/VisualEditor/tests/es/index.html 2011-11-04 21:09:46 UTC
(rev 102047)
+++ trunk/extensions/VisualEditor/tests/es/index.html 2011-11-04 21:16:20 UTC
(rev 102048)
@@ -41,6 +41,7 @@
<script src="es.testData.js"></script>
<script src="es.test.js"></script>
<script src="es.DocumentNode.test.js"></script>
+ <script src="es.DocumentModelBranchNode.test.js"></script>
<script src="es.DocumentModel.test.js"></script>
</body>
</html>
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs