From af0bd15d88854dd8afcf258daea95eb0e91d1e45 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Thu, 14 Jun 2018 16:48:14 -0700 Subject: [PATCH] test: split out ignoreHTTPSErrors tests (#2745) We'll get more of these soon. --- test/ignorehttpserrors.spec.js | 63 ++++++++++++++++++++++++++++++++++ test/puppeteer.spec.js | 40 +-------------------- test/test.js | 1 + 3 files changed, 65 insertions(+), 39 deletions(-) create mode 100644 test/ignorehttpserrors.spec.js diff --git a/test/ignorehttpserrors.spec.js b/test/ignorehttpserrors.spec.js new file mode 100644 index 00000000000..ed55356d400 --- /dev/null +++ b/test/ignorehttpserrors.spec.js @@ -0,0 +1,63 @@ +/** + * Copyright 2018 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports.addTests = function({testRunner, expect, PROJECT_ROOT, defaultBrowserOptions}) { + const {describe, xdescribe, fdescribe} = testRunner; + const {it, fit, xit} = testRunner; + const {beforeAll, beforeEach, afterAll, afterEach} = testRunner; + const puppeteer = require(PROJECT_ROOT); + describe('ignoreHTTPSErrors', function() { + beforeAll(async state => { + const options = Object.assign({ignoreHTTPSErrors: true}, defaultBrowserOptions); + state.browser = await puppeteer.launch(options); + }); + afterAll(async state => { + await state.browser.close(); + delete state.browser; + }); + beforeEach(async state => { + state.page = await state.browser.newPage(); + }); + afterEach(async state => { + await state.page.close(); + delete state.page; + }); + it('should work', async({page, httpsServer}) => { + let error = null; + const response = await page.goto(httpsServer.EMPTY_PAGE).catch(e => error = e); + expect(error).toBe(null); + expect(response.ok()).toBe(true); + expect(response.securityDetails()).toBeTruthy(); + expect(response.securityDetails().protocol()).toBe('TLS 1.2'); + }); + it('Network redirects should report SecurityDetails', async({page, httpsServer}) => { + httpsServer.setRedirect('/plzredirect', '/empty.html'); + const responses = []; + page.on('response', response => responses.push(response)); + await page.goto(httpsServer.PREFIX + '/plzredirect'); + expect(responses.length).toBe(2); + expect(responses[0].status()).toBe(302); + const securityDetails = responses[0].securityDetails(); + expect(securityDetails.protocol()).toBe('TLS 1.2'); + }); + it('should work with mixed content', async({page, server, httpsServer}) => { + httpsServer.setRoute('/mixedcontent.html', (req, res) => { + res.end(``); + }); + await page.goto(httpsServer.PREFIX + '/mixedcontent.html', {waitUntil: 'load'}); + }); + }); +}; diff --git a/test/puppeteer.spec.js b/test/puppeteer.spec.js index d81f35ad5bf..468c309509f 100644 --- a/test/puppeteer.spec.js +++ b/test/puppeteer.spec.js @@ -70,46 +70,8 @@ module.exports.addTests = function({testRunner, expect, PROJECT_ROOT, defaultBro await browser.close(); }); }); + describe('Puppeteer.launch', function() { - it('should support ignoreHTTPSErrors option', async({httpsServer}) => { - const options = Object.assign({ignoreHTTPSErrors: true}, defaultBrowserOptions); - const browser = await puppeteer.launch(options); - const page = await browser.newPage(); - let error = null; - const response = await page.goto(httpsServer.EMPTY_PAGE).catch(e => error = e); - expect(error).toBe(null); - expect(response.ok()).toBe(true); - expect(response.securityDetails()).toBeTruthy(); - expect(response.securityDetails().protocol()).toBe('TLS 1.2'); - await page.close(); - await browser.close(); - }); - it('Network redirects should report SecurityDetails', async({httpsServer}) => { - const options = Object.assign({ignoreHTTPSErrors: true}, defaultBrowserOptions); - const browser = await puppeteer.launch(options); - const page = await browser.newPage(); - httpsServer.setRedirect('/plzredirect', '/empty.html'); - const responses = []; - page.on('response', response => responses.push(response)); - await page.goto(httpsServer.PREFIX + '/plzredirect'); - expect(responses.length).toBe(2); - expect(responses[0].status()).toBe(302); - const securityDetails = responses[0].securityDetails(); - expect(securityDetails.protocol()).toBe('TLS 1.2'); - await page.close(); - await browser.close(); - }); - it('should work with mixed content', async({server, httpsServer}) => { - httpsServer.setRoute('/mixedcontent.html', (req, res) => { - res.end(``); - }); - const options = Object.assign({ignoreHTTPSErrors: true}, defaultBrowserOptions); - const browser = await puppeteer.launch(options); - const page = await browser.newPage(); - await page.goto(httpsServer.PREFIX + '/mixedcontent.html', {waitUntil: 'load'}); - await page.close(); - await browser.close(); - }); it('should reject all promises when browser is closed', async() => { const browser = await puppeteer.launch(defaultBrowserOptions); const page = await browser.newPage(); diff --git a/test/test.js b/test/test.js index 91c505c13cd..0dd017672aa 100644 --- a/test/test.js +++ b/test/test.js @@ -149,6 +149,7 @@ describe('Page', function() { }); // Top-level tests that launch Browser themselves. +require('./ignorehttpserrors.spec.js').addTests({testRunner, expect, PROJECT_ROOT, defaultBrowserOptions}); require('./puppeteer.spec.js').addTests({testRunner, expect, PROJECT_ROOT, defaultBrowserOptions}); require('./headful.spec.js').addTests({testRunner, expect, PROJECT_ROOT, defaultBrowserOptions});