Add test for regular expression passed from different context

This commit is contained in:
Arvin Sevilla 2020-02-19 09:11:27 +08:00
parent 5c37b8cf0b
commit 5f38221338

View file

@ -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);
})
})
};
/**