mediawiki-extensions-Visual.../modules/ve/test/dm/ve.dm.DocumentSynchronizer.test.js
Catrope 43f1612324 No longer copy data in ve.dm.Document constructor
The data array is now taken by reference, and the caller must perform
any copying required.

Changed tests to make a deep copy of shared data sets (mostly
ve.dm.example) before passing them to ve.dm.Document().

Change-Id: Iedc64f9fd9cd689640de9a19379cf5f3db94a2bb
2012-10-24 17:32:35 -07:00

33 lines
1.1 KiB
JavaScript

/**
* VisualEditor data model DocumentSynchronizer tests.
*
* @copyright 2011-2012 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
QUnit.module( 've.dm.DocumentSynchronizer' );
/* Tests */
QUnit.test( 'getDocument', 1, function ( assert ) {
var doc = new ve.dm.Document( ve.copyArray( ve.dm.example.data ) ),
ds = new ve.dm.DocumentSynchronizer( doc );
assert.strictEqual( ds.getDocument(), doc );
} );
QUnit.test( 'synchronize', 2, function ( assert ) {
var doc = new ve.dm.Document( ve.copyArray( ve.dm.example.data ) ),
ds = new ve.dm.DocumentSynchronizer( doc );
// Annotate "a" with bold formatting
doc.data[1] = ['a', { '{"type":"bold"}': { 'type': 'bold' } }];
ds.pushAnnotation( new ve.Range( 1, 2 ) );
doc.getDocumentNode().getChildren()[0].getChildren()[0].on( 'update', function () {
assert.ok( true, 'annotations trigger update events' );
} );
doc.getDocumentNode().getChildren()[0].getChildren()[0].on( 'annotation', function () {
assert.ok( true, 'annotations trigger annotation events' );
} );
ds.synchronize();
} );