Fix tests for new stack clearing in IE
This commit is contained in:
@@ -1324,13 +1324,16 @@ getJasmineRequireObj().clearStack = function(j$) {
|
|||||||
if (global && global.process && j$.isFunction_(global.process.nextTick)) {
|
if (global && global.process && j$.isFunction_(global.process.nextTick)) {
|
||||||
return global.process.nextTick;
|
return global.process.nextTick;
|
||||||
} else if (j$.isFunction_(global.setImmediate)) {
|
} else if (j$.isFunction_(global.setImmediate)) {
|
||||||
return global.setImmediate;
|
var realSetImmediate = global.setImmediate;
|
||||||
|
return function(fn) {
|
||||||
|
realSetImmediate(fn);
|
||||||
|
};
|
||||||
} else if (!j$.util.isUndefined(global.MessageChannel)) {
|
} else if (!j$.util.isUndefined(global.MessageChannel)) {
|
||||||
return messageChannelImpl(global);
|
return messageChannelImpl(global);
|
||||||
} else if (j$.isFunction_(global.setTimeout)) {
|
} else {
|
||||||
var realSetTimeout = global.setTimeout;
|
var realSetTimeout = global.setTimeout;
|
||||||
return function clearStack(fn) {
|
return function clearStack(fn) {
|
||||||
realSetTimeout(fn, 0);
|
Function.prototype.apply.apply(realSetTimeout, [global, [fn, 0]]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,6 @@
|
|||||||
describe("ClearStack", function() {
|
describe("ClearStack", function() {
|
||||||
it("works in an integrationy way", function(done) {
|
it("works in an integrationy way", function(done) {
|
||||||
var global = {
|
var clearStack = jasmineUnderTest.getClearStack(jasmineUnderTest.getGlobal());
|
||||||
setTimeout: typeof setTimeout === 'undefined' ? undefined : setTimeout,
|
|
||||||
setImmediate: typeof setImmediate === 'undefined' ? undefined : setImmediate,
|
|
||||||
MessageChannel: typeof MessageChannel === 'undefined' ? undefined : MessageChannel,
|
|
||||||
process: typeof process === 'undefined' ? undefined : process
|
|
||||||
},
|
|
||||||
clearStack = jasmineUnderTest.getClearStack(global);
|
|
||||||
|
|
||||||
clearStack(function() {
|
clearStack(function() {
|
||||||
done();
|
done();
|
||||||
|
|||||||
@@ -940,8 +940,8 @@ describe("Env integration", function() {
|
|||||||
env.addReporter(reporter);
|
env.addReporter(reporter);
|
||||||
jasmineUnderTest.DEFAULT_TIMEOUT_INTERVAL = 1290;
|
jasmineUnderTest.DEFAULT_TIMEOUT_INTERVAL = 1290;
|
||||||
|
|
||||||
env.beforeAll(function(done) {
|
env.beforeAll(function(innerDone) {
|
||||||
jasmine.clock().tick(1290);
|
jasmine.clock().tick(1291);
|
||||||
});
|
});
|
||||||
|
|
||||||
env.it("spec that will be failed", function() {
|
env.it("spec that will be failed", function() {
|
||||||
@@ -981,6 +981,7 @@ describe("Env integration", function() {
|
|||||||
clock.tick(6);
|
clock.tick(6);
|
||||||
expect(true).toEqual(true);
|
expect(true).toEqual(true);
|
||||||
innerDone();
|
innerDone();
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
env.execute();
|
env.execute();
|
||||||
@@ -1007,10 +1008,12 @@ describe("Env integration", function() {
|
|||||||
env.afterAll(function(innerDone) {
|
env.afterAll(function(innerDone) {
|
||||||
jasmine.clock().tick(3001);
|
jasmine.clock().tick(3001);
|
||||||
innerDone();
|
innerDone();
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
env.execute();
|
env.execute();
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should wait a custom interval before reporting async functions that fail to call done', function(done) {
|
it('should wait a custom interval before reporting async functions that fail to call done', function(done) {
|
||||||
@@ -1132,6 +1135,7 @@ describe("Env integration", function() {
|
|||||||
innerDone();
|
innerDone();
|
||||||
}, 1);
|
}, 1);
|
||||||
jasmine.clock().tick(1);
|
jasmine.clock().tick(1);
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
env.it('specifies a message', function(innerDone) {
|
env.it('specifies a message', function(innerDone) {
|
||||||
@@ -1140,6 +1144,7 @@ describe("Env integration", function() {
|
|||||||
innerDone();
|
innerDone();
|
||||||
}, 1);
|
}, 1);
|
||||||
jasmine.clock().tick(1);
|
jasmine.clock().tick(1);
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
env.it('fails via the done callback', function(innerDone) {
|
env.it('fails via the done callback', function(innerDone) {
|
||||||
@@ -1147,6 +1152,7 @@ describe("Env integration", function() {
|
|||||||
innerDone.fail('done failed');
|
innerDone.fail('done failed');
|
||||||
}, 1);
|
}, 1);
|
||||||
jasmine.clock().tick(1);
|
jasmine.clock().tick(1);
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
env.it('has a message from an Error', function(innerDone) {
|
env.it('has a message from an Error', function(innerDone) {
|
||||||
@@ -1155,6 +1161,7 @@ describe("Env integration", function() {
|
|||||||
innerDone();
|
innerDone();
|
||||||
}, 1);
|
}, 1);
|
||||||
jasmine.clock().tick(1);
|
jasmine.clock().tick(1);
|
||||||
|
jasmine.clock().tick(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,16 @@ getJasmineRequireObj().clearStack = function(j$) {
|
|||||||
if (global && global.process && j$.isFunction_(global.process.nextTick)) {
|
if (global && global.process && j$.isFunction_(global.process.nextTick)) {
|
||||||
return global.process.nextTick;
|
return global.process.nextTick;
|
||||||
} else if (j$.isFunction_(global.setImmediate)) {
|
} else if (j$.isFunction_(global.setImmediate)) {
|
||||||
return global.setImmediate;
|
var realSetImmediate = global.setImmediate;
|
||||||
|
return function(fn) {
|
||||||
|
realSetImmediate(fn);
|
||||||
|
};
|
||||||
} else if (!j$.util.isUndefined(global.MessageChannel)) {
|
} else if (!j$.util.isUndefined(global.MessageChannel)) {
|
||||||
return messageChannelImpl(global);
|
return messageChannelImpl(global);
|
||||||
} else if (j$.isFunction_(global.setTimeout)) {
|
} else {
|
||||||
var realSetTimeout = global.setTimeout;
|
var realSetTimeout = global.setTimeout;
|
||||||
return function clearStack(fn) {
|
return function clearStack(fn) {
|
||||||
realSetTimeout(fn, 0);
|
Function.prototype.apply.apply(realSetTimeout, [global, [fn, 0]]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user