Files
jasmine/spec/html/SpyRegistryHtmlSpec.js
2018-01-22 14:21:52 -08:00

40 lines
1.0 KiB
JavaScript

describe('Spy Registry browser-specific behavior', function() {
function createSpy(name, originalFn) {
return jasmineUnderTest.Spy(name, originalFn);
}
it('can spy on and unspy window.onerror', function() {
requireWriteableOnerror();
var spies = [],
spyRegistry = new jasmineUnderTest.SpyRegistry({
currentSpies: function() { return spies; },
createSpy: createSpy,
global: window
}),
originalHandler = window.onerror;
try {
spyRegistry.spyOn(window, 'onerror');
spyRegistry.clearSpies();
expect(window.onerror).toBe(originalHandler);
} finally {
window.onerror = originalHandler;
}
});
function requireWriteableOnerror() {
var descriptor;
try {
descriptor = Object.getOwnPropertyDescriptor(window, 'onerror');
} catch(e) {
// IE 8 doesn't support `definePropery` on non-DOM nodes
}
if (descriptor && !(descriptor.writable || descriptor.set)) {
pending('Browser declares window.onerror to be readonly');
}
}
});