diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/test/spec')
-rw-r--r-- | sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/test/spec/specHelper.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/test/spec/specHelper.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/test/spec/specHelper.js new file mode 100644 index 000000000..55ba80d92 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/test/spec/specHelper.js @@ -0,0 +1,81 @@ +// find *Spec.js files in the src directory next to the corresponding source file + +var test = window.test = {}; + +test.cb = (function( jasmine ) { + var callbacks = []; + + return { + use: function() { + callbacks = []; + }, + createSpy: function( name, arg, data, context ) { + return jasmine.createSpy( name ).and.callFake( function() { + callbacks.push( { cb: arguments[ arg || 0 ], data: data, context: context } ); + }); + }, + execOne: function() { + var exec = callbacks.shift(); + exec.cb.apply( exec.context, exec.data ); + }, + execAll: function() { + while( callbacks.length ) { + this.execOne(); + } + } + }; +})( this.jasmine ); + + +test.clock = ( function() { + var id = 0, timers, saved; + var names = [ "setTimeout", "setInterval", "clearTimeout", "clearInterval" ]; + var byNext = function( a, b ) { return a.next - b.next; }; + var mocks = { + setTimeout: function( fn, t ) { + timers.push( { id: id, fn: fn, next: t, t: t, type: "t" } ); + return id++; + }, + clearTimeout: function( id ) { + timers = timers.filter( function( timer ) { return timer.id !== id; } ); + }, + setInterval: function( fn, t ) { + timers.push( { id: id, fn: fn, next: t, t: t, type: "i" } ); + return id++; + }, + clearInterval: function( id ) { + timers = timers.filter( function( timer ) { return timer.id !== id; } ); + } + }; + + return { + steal: function() { + timers = []; + saved = {}; + names.forEach( function( n ) { + saved[n] = window[n]; + window[n] = mocks[n]; + }); + }, + restore: function() { + names.forEach( function( n ) { + window[n] = saved[n]; + }); + timers = null; + saved = null; + }, + tick: function() { + if( timers.length ) { + timers.sort( byNext ); + var t0 = timers[0]; + if( t0.type === "t" ) { + timers.shift(); + } else { + t0.next += t0.t; + } + t0.fn(); + } + } + }; + +})(); |