%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/tests/ |
Current File : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/tests/ve.Scheduler.test.js |
/*! * VisualEditor Scheduler tests. * * @copyright 2011-2016 VisualEditor Team and others; see http://ve.mit-license.org */ QUnit.module( 've.Scheduler' ); /* Stubs */ ve.TestScheduler = function VeTestScheduler() { // Parent constructor ve.TestScheduler.super.apply( this, arguments ); this.nowCounter = 0; }; OO.inheritClass( ve.TestScheduler, ve.Scheduler ); ve.TestScheduler.static.maxDelay = 5; ve.TestScheduler.prototype.now = function () { return this.nowCounter++; }; /* Tests */ QUnit.test( 'Call with no real async', function ( assert ) { var scheduler = new ve.TestScheduler(), begun = assert.async(), done = assert.async(); assert.expect( 2 ); scheduler.schedule( function () { assert.ok( true, 'initial action was called' ); begun(); }, function () { return true; } ).done( function () { assert.ok( true, 'promise was resolved' ); done(); } ); } ); QUnit.test( 'Call with delay', function ( assert ) { var scheduler = new ve.TestScheduler(), begun = assert.async(), done = assert.async(), delayed = false; assert.expect( 3 ); scheduler.schedule( function () { assert.ok( true, 'initial action was called' ); setTimeout( function () { delayed = true; assert.ok( true, 'setTimeout delay occurred' ); } ); begun(); }, function () { return delayed; } ).done( function () { assert.ok( true, 'promise was resolved' ); done(); } ); } ); QUnit.test( 'Test that throws an exception', function ( assert ) { var scheduler = new ve.TestScheduler(), begun = assert.async(), done = assert.async(); assert.expect( 2 ); scheduler.schedule( function () { assert.ok( true, 'initial action was called' ); begun(); }, function () { throw new Error(); } ).done( function () { assert.ok( false, 'promise was wrongly resolved as successful' ); } ).fail( function () { assert.ok( true, 'promise was rejected' ); done(); } ); } ); QUnit.test( 'Test that never succeeds', function ( assert ) { var scheduler = new ve.TestScheduler(), begun = assert.async(), done = assert.async(); assert.expect( 2 ); scheduler.schedule( function () { assert.ok( true, 'initial action was called' ); begun(); }, function () { return false; } ).done( function () { assert.ok( false, 'promise was wrongly resolved as successful' ); } ).fail( function () { assert.ok( true, 'promise was rejected' ); done(); } ); } );