mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test(websockets): add web sockets tests (#1758)
This commit is contained in:
parent
277c7d872f
commit
97c4054b7a
@ -21,4 +21,16 @@ describe('Capabilities', function() {
|
||||
await page.goto(server.PREFIX + '/wasm/table2.html');
|
||||
expect(await page.evaluate(() => loadTable())).toBe('42, 83');
|
||||
});
|
||||
|
||||
it('WebSocket should work', async({page, server}) => {
|
||||
const value = await page.evaluate((port) => {
|
||||
let cb;
|
||||
const result = new Promise(f => cb = f);
|
||||
const ws = new WebSocket('ws://localhost:' + port + '/ws');
|
||||
ws.addEventListener('message', data => { ws.close(); cb(data.data); });
|
||||
ws.addEventListener('error', error => cb('Error'));
|
||||
return result;
|
||||
}, server.PORT);
|
||||
expect(value).toBe('incoming');
|
||||
});
|
||||
});
|
||||
|
@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const {FFOX, CHROMIUM, WEBKIT} = require('./utils').testOptions(browserType);
|
||||
const {FFOX, CHROMIUM, WEBKIT, MAC} = require('./utils').testOptions(browserType);
|
||||
|
||||
describe('ignoreHTTPSErrors', function() {
|
||||
it('should work', async({browser, httpsServer}) => {
|
||||
@ -60,4 +60,32 @@ describe('ignoreHTTPSErrors', function() {
|
||||
expect(await page.frames()[1].evaluate('2 + 3')).toBe(5);
|
||||
await context.close();
|
||||
});
|
||||
it.fail(WEBKIT && MAC)('should work with WebSocket', async({browser, httpsServer}) => {
|
||||
const context = await browser.newContext({ ignoreHTTPSErrors: true });
|
||||
const page = await context.newPage();
|
||||
const value = await page.evaluate(endpoint => {
|
||||
let cb;
|
||||
const result = new Promise(f => cb = f);
|
||||
const ws = new WebSocket(endpoint);
|
||||
ws.addEventListener('message', data => { ws.close(); cb(data.data); });
|
||||
ws.addEventListener('error', error => cb('Error'));
|
||||
return result;
|
||||
}, httpsServer.PREFIX.replace(/https/, 'wss') + '/ws');
|
||||
expect(value).toBe('incoming');
|
||||
await context.close();
|
||||
});
|
||||
it('should fail with WebSocket if not ignored', async({browser, httpsServer}) => {
|
||||
const context = await browser.newContext();
|
||||
const page = await context.newPage();
|
||||
const value = await page.evaluate(endpoint => {
|
||||
let cb;
|
||||
const result = new Promise(f => cb = f);
|
||||
const ws = new WebSocket(endpoint);
|
||||
ws.addEventListener('message', data => { ws.close(); cb(data.data); });
|
||||
ws.addEventListener('error', error => cb('Error'));
|
||||
return result;
|
||||
}, httpsServer.PREFIX.replace(/https/, 'wss') + '/ws');
|
||||
expect(value).toBe('Error');
|
||||
await context.close();
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user