Bug 1607562 - [remote] Update puppeteer unit tests and expectation data. r=remote-protocol-reviewers,maja_zf

Differential Revision: https://phabricator.services.mozilla.com/D68638

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Henrik Skupin 2020-03-31 12:10:00 +00:00
parent 3148bbdb17
commit df420b9588
7 changed files with 65 additions and 67 deletions

View File

@ -289,7 +289,7 @@
"PASS"
],
"Firefox Browser Page Page.emulate should support clicking": [
"PASS"
"PASS", "FAIL"
],
"Firefox Browser Page Page.emulateMedia should be an alias for Page.emulateMediaType": [
"PASS"
@ -397,10 +397,10 @@
"PASS"
],
"Firefox Browser Page Page.evaluate should return undefined for non-serializable objects": [
"SKIP"
"FAIL"
],
"Firefox Browser Page Page.evaluate should fail for circular object": [
"SKIP"
"FAIL"
],
"Firefox Browser Page Page.evaluate should be able to throw a tricky error": [
"PASS"
@ -427,7 +427,7 @@
"FAIL"
],
"Firefox Browser Page Page.evaluate should throw a nice error after a navigation": [
"SKIP"
"FAIL"
],
"Firefox Browser Page Page.evaluate should not throw an error when evaluation does a navigation": [
"PASS"
@ -613,7 +613,7 @@
"PASS"
],
"Firefox Browser Page Keyboard should press the metaKey": [
"FAIL"
"PASS"
],
"Firefox Browser Page Keyboard should move with the arrow keys": [
"PASS"
@ -628,7 +628,7 @@
"FAIL"
],
"Firefox Browser Page Keyboard should report shiftKey": [
"PASS"
"PASS", "FAIL"
],
"Firefox Browser Page Keyboard should report multiple modifiers": [
"PASS"
@ -661,7 +661,7 @@
"FAIL"
],
"Firefox Browser Page Keyboard should press the meta key": [
"FAIL"
"PASS"
],
"Firefox Browser Page Mouse should click the document": [
"PASS"
@ -829,7 +829,7 @@
"FAIL"
],
"Firefox Browser Page Frame.goto should return matching responses": [
"FAIL"
"SKIP"
],
"Firefox Browser Page Frame.waitForNavigation should work": [
"FAIL"
@ -844,7 +844,7 @@
"PASS"
],
"Firefox Browser Page Page.Events.Request should fire for iframes": [
"FAIL"
"PASS"
],
"Firefox Browser Page Page.Events.Request should fire for fetches": [
"PASS"
@ -1243,7 +1243,7 @@
"PASS"
],
"Firefox Browser Page Page.setUserAgent should work for subframes": [
"FAIL"
"PASS"
],
"Firefox Browser Page Page.setUserAgent should emulate device user-agent": [
"PASS"
@ -1258,13 +1258,13 @@
"PASS"
],
"Firefox Browser Page Page.setContent should respect timeout": [
"PASS"
"PASS", "FAIL"
],
"Firefox Browser Page Page.setContent should respect default navigation timeout": [
"PASS"
"PASS", "FAIL"
],
"Firefox Browser Page Page.setContent should await resources to load": [
"PASS"
"PASS", "FAIL"
],
"Firefox Browser Page Page.setContent should work fast enough": [
"PASS"
@ -1600,10 +1600,10 @@
"FAIL"
],
"Firefox Browser Page Page.waitFor should wait for selector": [
"FAIL"
"PASS"
],
"Firefox Browser Page Page.waitFor should wait for an xpath": [
"SKIP"
"PASS"
],
"Firefox Browser Page Page.waitFor should not allow you to select an element with single slash xpath": [
"PASS"
@ -1672,64 +1672,64 @@
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should immediately resolve promise if node exists": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should work with removed MutationObserver": [
"FAIL"
],
"Firefox Browser Page Frame.waitForSelector should resolve promise when node is added": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should work when node is added through innerHTML": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector Page.waitForSelector is shortcut for main frame": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should run in specified frame": [
"FAIL"
"PASS", "FAIL"
],
"Firefox Browser Page Frame.waitForSelector should throw when frame is detached": [
"FAIL"
"PASS", "FAIL"
],
"Firefox Browser Page Frame.waitForSelector should survive cross-process navigation": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should wait for visible": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should wait for visible recursively": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector hidden should wait for visibility: hidden": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector hidden should wait for display: none": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector hidden should wait for removal": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should return null if waiting to hide non-existing element": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should respect timeout": [
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should have an error message specifically for awaiting an element to be hidden": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should respond to node attribute mutation": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should return the element handle": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForSelector should have correct stack trace for timeout": [
"PASS"
],
"Firefox Browser Page Frame.waitForXPath should support some fancy xpath": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForXPath should respect timeout": [
"PASS"
@ -1741,16 +1741,16 @@
"FAIL"
],
"Firefox Browser Page Frame.waitForXPath hidden should wait for display: none": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForXPath should return the element handle": [
"SKIP"
"PASS"
],
"Firefox Browser Page Frame.waitForXPath should allow you to select a text node": [
"FAIL"
"PASS"
],
"Firefox Browser Page Frame.waitForXPath should allow you to select an element with single slash": [
"FAIL"
"PASS"
],
"Firefox Browser Page Workers Page.workers": [
"SKIP"
@ -1786,7 +1786,7 @@
"FAIL"
],
"Firefox Browser BrowserContext should wait for a target": [
"TIMEOUT"
"SKIP"
],
"Firefox Browser BrowserContext should timeout waiting for a non-existent target": [
"PASS"

View File

@ -78,7 +78,7 @@ module.exports.addTests = function({testRunner, expect, puppeteer}) {
]);
await context.close();
});
it('should wait for a target', async function({browser, server}) {
it_fails_ffox('should wait for a target', async function({browser, server}) {
const context = await browser.createIncognitoBrowserContext();
let resolved = false;
const targetPromise = context.waitForTarget(target => target.url() === server.EMPTY_PAGE);

View File

@ -90,6 +90,7 @@ module.exports.addTests = function({testRunner, expect, puppeteer}) {
it('should support clicking', async({page, server}) => {
await page.emulate(iPhone);
await page.goto(server.PREFIX + '/input/button.html');
const button = await page.$('button');
await page.evaluate(button => button.style.marginTop = '200px', button);
await button.click();

View File

@ -161,10 +161,10 @@ module.exports.addTests = function({testRunner, expect}) {
it('should properly serialize null fields', async({page}) => {
expect(await page.evaluate(() => ({a: undefined}))).toEqual({});
});
it_fails_ffox('should return undefined for non-serializable objects', async({page, server}) => {
it('should return undefined for non-serializable objects', async({page, server}) => {
expect(await page.evaluate(() => window)).toBe(undefined);
});
it_fails_ffox('should fail for circular object', async({page, server}) => {
it('should fail for circular object', async({page, server}) => {
const result = await page.evaluate(() => {
const a = {};
const b = {a};
@ -224,7 +224,7 @@ module.exports.addTests = function({testRunner, expect}) {
});
expect(result).toBe(true);
});
it_fails_ffox('should throw a nice error after a navigation', async({page, server}) => {
it('should throw a nice error after a navigation', async({page, server}) => {
const executionContext = await page.mainFrame().executionContext();
await Promise.all([

View File

@ -38,7 +38,7 @@ module.exports.addTests = function({testRunner, expect, FFOX}) {
window.keyPromise = new Promise(resolve => document.addEventListener('keydown', event => resolve(event.key)));
});
await page.keyboard.press('Meta');
expect(await page.evaluate('keyPromise')).toBe(FFOX && os.platform() !== 'darwin' ? 'OS' : 'Meta');
expect(await page.evaluate('keyPromise')).toBe('Meta');
});
it('should move with the arrow keys', async({page, server}) => {
await page.goto(server.PREFIX + '/input/textarea.html');
@ -234,21 +234,18 @@ module.exports.addTests = function({testRunner, expect, FFOX}) {
});
await page.keyboard.press('Meta');
const [key, code, metaKey] = await page.evaluate('result');
if (FFOX && os.platform() !== 'darwin')
expect(key).toBe('OS');
else
expect(key).toBe('Meta');
expect(key).toBe('Meta');
if (FFOX)
expect(code).toBe('OSLeft');
if (FFOX) {
if (os.platform() !== 'darwin')
expect(code).toBe('AltLeft');
else
expect(code).toBe('OSLeft');
}
else
expect(code).toBe('MetaLeft');
if (FFOX && os.platform() !== 'darwin')
expect(metaKey).toBe(false);
else
expect(metaKey).toBe(true);
expect(metaKey).toBe(true);
});
});
};

View File

@ -503,7 +503,7 @@ module.exports.addTests = function({testRunner, expect, puppeteer, CHROME}) {
const error = await navigationPromise;
expect(error.message).toBe('Navigating frame was detached');
});
it('should return matching responses', async({page, server}) => {
it_fails_ffox('should return matching responses', async({page, server}) => {
// Disable cache: otherwise, chromium will cache similar requests.
await page.setCacheEnabled(false);
await page.goto(server.EMPTY_PAGE);

View File

@ -31,7 +31,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
await waitFor;
expect(found).toBe(true);
});
it_fails_ffox('should wait for an xpath', async({page, server}) => {
it('should wait for an xpath', async({page, server}) => {
let found = false;
const waitFor = page.waitFor('//div').then(() => found = true);
await page.goto(server.EMPTY_PAGE);
@ -243,7 +243,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
await watchdog;
});
it('Page.waitForSelector is shortcut for main frame', async({page, server}) => {
it_fails_ffox('Page.waitForSelector is shortcut for main frame', async({page, server}) => {
await page.goto(server.EMPTY_PAGE);
await utils.attachFrame(page, 'frame1', server.EMPTY_PAGE);
const otherFrame = page.frames()[1];
@ -287,7 +287,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
await waitForSelector;
expect(boxFound).toBe(true);
});
it_fails_ffox('should wait for visible', async({page, server}) => {
it('should wait for visible', async({page, server}) => {
let divFound = false;
const waitForSelector = page.waitForSelector('div', {visible: true}).then(() => divFound = true);
await page.setContent(`<div style='display: none; visibility: hidden;'>1</div>`);
@ -298,7 +298,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForSelector).toBe(true);
expect(divFound).toBe(true);
});
it_fails_ffox('should wait for visible recursively', async({page, server}) => {
it('should wait for visible recursively', async({page, server}) => {
let divVisible = false;
const waitForSelector = page.waitForSelector('div#inner', {visible: true}).then(() => divVisible = true);
await page.setContent(`<div style='display: none; visibility: hidden;'><div id="inner">hi</div></div>`);
@ -309,7 +309,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForSelector).toBe(true);
expect(divVisible).toBe(true);
});
it_fails_ffox('hidden should wait for visibility: hidden', async({page, server}) => {
it('hidden should wait for visibility: hidden', async({page, server}) => {
let divHidden = false;
await page.setContent(`<div style='display: block;'></div>`);
const waitForSelector = page.waitForSelector('div', {hidden: true}).then(() => divHidden = true);
@ -319,7 +319,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForSelector).toBe(true);
expect(divHidden).toBe(true);
});
it_fails_ffox('hidden should wait for display: none', async({page, server}) => {
it('hidden should wait for display: none', async({page, server}) => {
let divHidden = false;
await page.setContent(`<div style='display: block;'></div>`);
const waitForSelector = page.waitForSelector('div', {hidden: true}).then(() => divHidden = true);
@ -329,7 +329,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForSelector).toBe(true);
expect(divHidden).toBe(true);
});
it_fails_ffox('hidden should wait for removal', async({page, server}) => {
it('hidden should wait for removal', async({page, server}) => {
await page.setContent(`<div></div>`);
let divRemoved = false;
const waitForSelector = page.waitForSelector('div', {hidden: true}).then(() => divRemoved = true);
@ -339,7 +339,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForSelector).toBe(true);
expect(divRemoved).toBe(true);
});
it_fails_ffox('should return null if waiting to hide non-existing element', async({page, server}) => {
it('should return null if waiting to hide non-existing element', async({page, server}) => {
const handle = await page.waitForSelector('non-existing', { hidden: true });
expect(handle).toBe(null);
});
@ -350,7 +350,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(error.message).toContain('waiting for selector "div" failed: timeout');
expect(error).toBeInstanceOf(puppeteer.errors.TimeoutError);
});
it_fails_ffox('should have an error message specifically for awaiting an element to be hidden', async({page, server}) => {
it('should have an error message specifically for awaiting an element to be hidden', async({page, server}) => {
await page.setContent(`<div></div>`);
let error = null;
await page.waitForSelector('div', {hidden: true, timeout: 10}).catch(e => error = e);
@ -358,7 +358,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(error.message).toContain('waiting for selector "div" to be hidden failed: timeout');
});
it_fails_ffox('should respond to node attribute mutation', async({page, server}) => {
it('should respond to node attribute mutation', async({page, server}) => {
let divFound = false;
const waitForSelector = page.waitForSelector('.zombo').then(() => divFound = true);
await page.setContent(`<div class='notZombo'></div>`);
@ -366,7 +366,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
await page.evaluate(() => document.querySelector('div').className = 'zombo');
expect(await waitForSelector).toBe(true);
});
it_fails_ffox('should return the element handle', async({page, server}) => {
it('should return the element handle', async({page, server}) => {
const waitForSelector = page.waitForSelector('.zombo');
await page.setContent(`<div class='zombo'>anything</div>`);
expect(await page.evaluate(x => x.textContent, await waitForSelector)).toBe('anything');
@ -414,7 +414,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(waitError).toBeTruthy();
expect(waitError.message).toContain('waitForFunction failed: frame got detached.');
});
it_fails_ffox('hidden should wait for display: none', async({page, server}) => {
it('hidden should wait for display: none', async({page, server}) => {
let divHidden = false;
await page.setContent(`<div style='display: block;'></div>`);
const waitForXPath = page.waitForXPath('//div', {hidden: true}).then(() => divHidden = true);
@ -424,7 +424,7 @@ module.exports.addTests = function({testRunner, expect, product, puppeteer}) {
expect(await waitForXPath).toBe(true);
expect(divHidden).toBe(true);
});
it_fails_ffox('should return the element handle', async({page, server}) => {
it('should return the element handle', async({page, server}) => {
const waitForXPath = page.waitForXPath('//*[@class="zombo"]');
await page.setContent(`<div class='zombo'>anything</div>`);
expect(await page.evaluate(x => x.textContent, await waitForXPath)).toBe('anything');