From 5f3822133812582966c409c01590b8b06a1e3ded Mon Sep 17 00:00:00 2001 From: Arvin Sevilla Date: Wed, 19 Feb 2020 09:11:27 +0800 Subject: [PATCH] Add test for regular expression passed from different context --- test/interception.spec.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/interception.spec.js b/test/interception.spec.js index 8e3e86b9cd..6f4de76feb 100644 --- a/test/interception.spec.js +++ b/test/interception.spec.js @@ -19,6 +19,7 @@ const fs = require('fs'); const path = require('path'); const { helper } = require('../lib/helper'); const utils = require('./utils'); +const vm = require('vm') /** * @type {PageTestSuite} @@ -614,6 +615,28 @@ module.exports.describe = function({testRunner, expect, defaultBrowserOptions, p expect(helper.globToRegex('**/*.{png,jpg,jpeg}').test('https://localhost:8080/c.css')).toBeFalsy(); }); }); + + describe('regexp', function () { + it ('should work with regular expression passed from a different context', async({page, server}) => { + const ctx = vm.createContext() + const regexp = vm.runInContext('new RegExp("empty\\.html")', ctx) + + await page.route(regexp, request => { + expect(request.url()).toContain('empty.html'); + expect(request.headers()['user-agent']).toBeTruthy(); + expect(request.method()).toBe('GET'); + expect(request.postData()).toBe(undefined); + expect(request.isNavigationRequest()).toBe(true); + expect(request.resourceType()).toBe('document'); + expect(request.frame() === page.mainFrame()).toBe(true); + expect(request.frame().url()).toBe('about:blank'); + request.continue(); + }); + + const response = await page.goto(server.EMPTY_PAGE); + expect(response.ok()).toBe(true); + }) + }) }; /**