diff --git a/src/network.ts b/src/network.ts index ba5dda08aa..d05d25b5d0 100644 --- a/src/network.ts +++ b/src/network.ts @@ -256,7 +256,7 @@ export class Response { } _requestFinished(error?: Error) { - this._finishedPromiseCallback.call(null, error); + this._finishedPromiseCallback.call(null, error || null); } url(): string { diff --git a/test/elementhandle.jest.js b/test/elementhandle.jest.js index 2e375b2247..57137195ee 100644 --- a/test/elementhandle.jest.js +++ b/test/elementhandle.jest.js @@ -456,7 +456,9 @@ describe('ElementHandle convenience API', function() { await page.goto(`${server.PREFIX}/dom.html`); const handle = await page.$('#outer'); expect(await handle.getAttribute('name')).toBe('value'); + expect(await handle.getAttribute('foo')).toBe(null); expect(await page.getAttribute('#outer', 'name')).toBe('value'); + expect(await page.getAttribute('#outer', 'foo')).toBe(null); }); it('innerHTML should work', async({page, server}) => { await page.goto(`${server.PREFIX}/dom.html`); diff --git a/test/emulation.jest.js b/test/emulation.jest.js index b719d94777..2ef514e9ee 100644 --- a/test/emulation.jest.js +++ b/test/emulation.jest.js @@ -78,6 +78,12 @@ describe('BrowserContext({viewport})', function() { expect(await page.evaluate(() => 'ontouchstart' in window)).toBe(true); await context.close(); }); + it('should report null viewportSize when given null viewport', async({browser, server}) => { + const context = await browser.newContext({ viewport: null }); + const page = await context.newPage(); + expect(page.viewportSize()).toBe(null); + await context.close(); + }); }); describe.skip(FFOX)('viewport.isMobile', () => { diff --git a/test/navigation.jest.js b/test/navigation.jest.js index 5201b83376..83b93ff30e 100644 --- a/test/navigation.jest.js +++ b/test/navigation.jest.js @@ -885,6 +885,8 @@ describe('Page.waitForLoadState', () => { describe('Page.goBack', function() { it('should work', async({page, server}) => { + expect(await page.goBack()).toBe(null); + await page.goto(server.EMPTY_PAGE); await page.goto(server.PREFIX + '/grid.html'); @@ -1051,6 +1053,12 @@ describe('Page.reload', function() { await page.reload(); expect(await page.evaluate(() => window._foo)).toBe(undefined); }); + it('should work with data url', async({page, server}) => { + await page.goto('data:text/html,hello'); + expect(await page.content()).toContain('hello'); + expect(await page.reload()).toBe(null); + expect(await page.content()).toContain('hello'); + }); }); describe('Click navigation', function() { diff --git a/test/network.jest.js b/test/network.jest.js index 9adc548c83..2daf68772d 100644 --- a/test/network.jest.js +++ b/test/network.jest.js @@ -345,13 +345,14 @@ describe('Network Events', function() { expect(await request.response()).toBeTruthy(); expect(request.frame() === page.mainFrame()).toBe(true); expect(request.frame().url()).toBe(server.EMPTY_PAGE); + expect(request.failure()).toBe(null); }); it('should fire events in proper order', async({page, server}) => { const events = []; page.on('request', request => events.push('request')); page.on('response', response => events.push('response')); const response = await page.goto(server.EMPTY_PAGE); - await response.finished(); + expect(await response.finished()).toBe(null); events.push('requestfinished') expect(events).toEqual(['request', 'response', 'requestfinished']); });