module( 've.dm.Surface' ); ve.dm.SurfaceStub = function() { // Inheritance this.dm = new ve.dm.Document ( [{ 'type': 'paragraph' }, 'hi', { 'type': '/paragraph' }] ); ve.dm.Surface.call( this, this.dm ); }; // Inheritance ve.extendClass( ve.dm.SurfaceStub, ve.dm.Surface ); // Tests test( 'getDocument', 1, function() { var surface = new ve.dm.SurfaceStub(); strictEqual( surface.getDocument(), surface.documentModel ); } ); test( 'getSelection', 1, function() { var surface = new ve.dm.SurfaceStub(); strictEqual( surface.getSelection(), surface.selection ); } ); test( 'setSelection', 1, function() { var surface = new ve.dm.SurfaceStub(); surface.on( 'select', function() { ok( true, 'select was emitted' ); } ); surface.setSelection( new ve.Range( 1, 1 ) ); } ); test( 'transact', 1, function() { var surface = new ve.dm.SurfaceStub(); var tx = new ve.dm.Transaction(); surface.on( 'transact', function() { ok( true, 'transact was emitted' ); } ); surface.transact( tx ); } );