71
.github/workflows/tests_secondary.yml
vendored
@ -381,6 +381,77 @@ jobs:
|
|||||||
name: edge-stable-win-test-results
|
name: edge-stable-win-test-results
|
||||||
path: test-results
|
path: test-results
|
||||||
|
|
||||||
|
edge_beta_mac:
|
||||||
|
name: "Edge Beta (Mac)"
|
||||||
|
runs-on: macos-10.15
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- run: npm ci
|
||||||
|
env:
|
||||||
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||||
|
- run: npm run build
|
||||||
|
- run: node lib/cli/cli install msedge-beta
|
||||||
|
- run: npm run ctest
|
||||||
|
env:
|
||||||
|
PWTEST_CHANNEL: msedge-beta
|
||||||
|
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json
|
||||||
|
if: always()
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: msedge-beta-mac-test-results
|
||||||
|
path: test-results
|
||||||
|
|
||||||
|
edge_beta_win:
|
||||||
|
name: "Edge Beta (Win)"
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- run: npm ci
|
||||||
|
env:
|
||||||
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||||
|
- run: npm run build
|
||||||
|
- run: node lib/cli/cli install msedge-beta
|
||||||
|
- run: npm run ctest
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
PWTEST_CHANNEL: msedge-beta
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: edge-beta-win-test-results
|
||||||
|
path: test-results
|
||||||
|
|
||||||
|
edge_beta_linux:
|
||||||
|
name: "Edge Beta (Linux)"
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- run: npm ci
|
||||||
|
env:
|
||||||
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||||
|
- run: npm run build
|
||||||
|
- run: node lib/cli/cli install msedge-beta
|
||||||
|
- run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest
|
||||||
|
env:
|
||||||
|
PWTEST_CHANNEL: msedge-beta
|
||||||
|
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json
|
||||||
|
if: always()
|
||||||
|
- uses: actions/upload-artifact@v1
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: edge-beta-linux-test-results
|
||||||
|
path: test-results
|
||||||
|
|
||||||
chrome_beta_linux:
|
chrome_beta_linux:
|
||||||
name: "Chrome Beta (Linux)"
|
name: "Chrome Beta (Linux)"
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
@ -2,15 +2,22 @@
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
is_user_root () { [ "${EUID:-$(id -u)}" -eq 0 ]; }
|
||||||
|
if is_user_root; then
|
||||||
|
maybesudo=""
|
||||||
|
else
|
||||||
|
maybesudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
# 1. make sure to remove old beta if any.
|
# 1. make sure to remove old beta if any.
|
||||||
if dpkg --get-selections | grep -q "^google-chrome-beta[[:space:]]*install$" >/dev/null; then
|
if dpkg --get-selections | grep -q "^google-chrome-beta[[:space:]]*install$" >/dev/null; then
|
||||||
sudo apt-get remove -y google-chrome-beta
|
$maybesudo apt-get remove -y google-chrome-beta
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. download chrome beta from dl.google.com and install it.
|
# 2. download chrome beta from dl.google.com and install it.
|
||||||
cd /tmp
|
cd /tmp
|
||||||
wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb
|
wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb
|
||||||
sudo apt-get install -y ./google-chrome-beta_current_amd64.deb
|
$maybesudo apt-get install -y ./google-chrome-beta_current_amd64.deb
|
||||||
rm -rf ./google-chrome-beta_current_amd64.deb
|
rm -rf ./google-chrome-beta_current_amd64.deb
|
||||||
cd -
|
cd -
|
||||||
google-chrome-beta --version
|
google-chrome-beta --version
|
||||||
|
@ -2,16 +2,24 @@
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
is_user_root () { [ "${EUID:-$(id -u)}" -eq 0 ]; }
|
||||||
|
if is_user_root; then
|
||||||
|
maybesudo=""
|
||||||
|
else
|
||||||
|
maybesudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# 1. make sure to remove old stable if any.
|
# 1. make sure to remove old stable if any.
|
||||||
if dpkg --get-selections | grep -q "^google-chrome[[:space:]]*install$" >/dev/null; then
|
if dpkg --get-selections | grep -q "^google-chrome[[:space:]]*install$" >/dev/null; then
|
||||||
sudo apt-get remove -y google-chrome
|
$maybesudo apt-get remove -y google-chrome
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# 2. download chrome stable from dl.google.com and install it.
|
# 2. download chrome stable from dl.google.com and install it.
|
||||||
cd /tmp
|
cd /tmp
|
||||||
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
||||||
sudo apt-get install -y ./google-chrome-stable_current_amd64.deb
|
$maybesudo apt-get install -y ./google-chrome-stable_current_amd64.deb
|
||||||
rm -rf ./google-chrome-stable_current_amd64.deb
|
rm -rf ./google-chrome-stable_current_amd64.deb
|
||||||
cd -
|
cd -
|
||||||
google-chrome --version
|
google-chrome --version
|
||||||
|
23
bin/reinstall_msedge_beta_linux.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
is_user_root () { [ "${EUID:-$(id -u)}" -eq 0 ]; }
|
||||||
|
if is_user_root; then
|
||||||
|
maybesudo=""
|
||||||
|
else
|
||||||
|
maybesudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if dpkg --get-selections | grep -q "^microsoft-edge-beta[[:space:]]*install$" >/dev/null; then
|
||||||
|
$maybesudo apt-get remove -y microsoft-edge-beta
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/microsoft.gpg
|
||||||
|
$maybesudo install -o root -g root -m 644 /tmp/microsoft.gpg /etc/apt/trusted.gpg.d/
|
||||||
|
$maybesudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list'
|
||||||
|
rm /tmp/microsoft.gpg
|
||||||
|
$maybesudo apt-get update && $maybesudo apt-get install -y microsoft-edge-beta
|
||||||
|
|
||||||
|
microsoft-edge-beta --version
|
11
bin/reinstall_msedge_beta_mac.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
curl -o ./msedge_beta.pkg -k "$1"
|
||||||
|
# Note: there's no way to uninstall previously installed MSEdge.
|
||||||
|
# However, running PKG again seems to update installation.
|
||||||
|
sudo installer -pkg /tmp/msedge_beta.pkg -target /
|
||||||
|
rm -rf /tmp/msedge_beta.pkg
|
||||||
|
/Applications/Microsoft\ Edge\ Beta.app/Contents/MacOS/Microsoft\ Edge\ Beta --version
|
21
bin/reinstall_msedge_beta_win.ps1
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
$url = $args[0]
|
||||||
|
|
||||||
|
Write-Host "Downloading Microsoft Edge Beta"
|
||||||
|
$wc = New-Object net.webclient
|
||||||
|
$msiInstaller = "$env:temp\microsoft-edge-beta.msi"
|
||||||
|
$wc.Downloadfile($url, $msiInstaller)
|
||||||
|
|
||||||
|
Write-Host "Installing Microsoft Edge Beta"
|
||||||
|
$arguments = "/i `"$msiInstaller`" /quiet"
|
||||||
|
Start-Process msiexec.exe -ArgumentList $arguments -Wait
|
||||||
|
Remove-Item $msiInstaller
|
||||||
|
|
||||||
|
$suffix = "\\Microsoft\\Edge\\Application\\msedge.exe"
|
||||||
|
if (Test-Path "${env:ProgramFiles(x86)}$suffix") {
|
||||||
|
(Get-Item "${env:ProgramFiles(x86)}$suffix").VersionInfo
|
||||||
|
} elseif (Test-Path "${env:ProgramFiles}$suffix") {
|
||||||
|
(Get-Item "${env:ProgramFiles}$suffix").VersionInfo
|
||||||
|
} else {
|
||||||
|
write-host "ERROR: failed to install Microsoft Edge"
|
||||||
|
exit 1
|
||||||
|
}
|
@ -37,15 +37,17 @@ import * as utils from '../utils/utils';
|
|||||||
const SCRIPTS_DIRECTORY = path.join(__dirname, '..', '..', 'bin');
|
const SCRIPTS_DIRECTORY = path.join(__dirname, '..', '..', 'bin');
|
||||||
|
|
||||||
|
|
||||||
type BrowserChannel = 'chrome-beta'|'chrome'|'msedge';
|
type BrowserChannel = 'chrome-beta'|'chrome'|'msedge'|'msedge-beta';
|
||||||
const allBrowserChannels: Set<BrowserChannel> = new Set(['chrome-beta', 'chrome', 'msedge']);
|
const allBrowserChannels: Set<BrowserChannel> = new Set(['chrome-beta', 'chrome', 'msedge', 'msedge-beta']);
|
||||||
const suggestedBrowsersToInstall = ['chromium', 'webkit', 'firefox', ...allBrowserChannels].map(name => `'${name}'`).join(', ');
|
const suggestedBrowsersToInstall = ['chromium', 'webkit', 'firefox', ...allBrowserChannels].map(name => `'${name}'`).join(', ');
|
||||||
|
|
||||||
const packageJSON = require('../../package.json');
|
const packageJSON = require('../../package.json');
|
||||||
|
|
||||||
const ChannelName = {
|
const ChannelName = {
|
||||||
'chrome-beta': 'Google Chrome Beta',
|
'chrome-beta': 'Google Chrome Beta',
|
||||||
'chrome': 'Google Chrome',
|
'chrome': 'Google Chrome',
|
||||||
'msedge': 'Microsoft Edge',
|
'msedge': 'Microsoft Edge',
|
||||||
|
'msedge-beta': 'Microsoft Edge Beta',
|
||||||
};
|
};
|
||||||
|
|
||||||
const InstallationScriptName = {
|
const InstallationScriptName = {
|
||||||
@ -63,6 +65,11 @@ const InstallationScriptName = {
|
|||||||
'darwin': 'reinstall_msedge_stable_mac.sh',
|
'darwin': 'reinstall_msedge_stable_mac.sh',
|
||||||
'win32': 'reinstall_msedge_stable_win.ps1',
|
'win32': 'reinstall_msedge_stable_win.ps1',
|
||||||
},
|
},
|
||||||
|
'msedge-beta': {
|
||||||
|
'darwin': 'reinstall_msedge_beta_mac.sh',
|
||||||
|
'linux': 'reinstall_msedge_beta_linux.sh',
|
||||||
|
'win32': 'reinstall_msedge_beta_win.ps1',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
program
|
program
|
||||||
@ -129,7 +136,7 @@ program
|
|||||||
console.log(`Invalid installation targets: ${faultyArguments.map(name => `'${name}'`).join(', ')}. Expecting one of: ${suggestedBrowsersToInstall}`);
|
console.log(`Invalid installation targets: ${faultyArguments.map(name => `'${name}'`).join(', ')}. Expecting one of: ${suggestedBrowsersToInstall}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
if (browserNames.has('chromium') || browserChannels.has('chrome-beta') || browserChannels.has('chrome') || browserChannels.has('msedge'))
|
if (browserNames.has('chromium') || browserChannels.has('chrome-beta') || browserChannels.has('chrome') || browserChannels.has('msedge') || browserChannels.has('msedge-beta'))
|
||||||
browserNames.add('ffmpeg');
|
browserNames.add('ffmpeg');
|
||||||
if (browserNames.size)
|
if (browserNames.size)
|
||||||
await installBrowsers([...browserNames]);
|
await installBrowsers([...browserNames]);
|
||||||
@ -156,21 +163,20 @@ async function installBrowserChannel(channel: BrowserChannel) {
|
|||||||
throw new Error(`Cannot install ${ChannelName[channel]} on ${platform}`);
|
throw new Error(`Cannot install ${ChannelName[channel]} on ${platform}`);
|
||||||
|
|
||||||
const scriptArgs = [];
|
const scriptArgs = [];
|
||||||
if (channel === 'msedge') {
|
if ((channel === 'msedge' || channel === 'msedge-beta') && platform !== 'linux') {
|
||||||
const products = JSON.parse(await utils.fetchData('https://edgeupdates.microsoft.com/api/products'));
|
const products = JSON.parse(await utils.fetchData('https://edgeupdates.microsoft.com/api/products'));
|
||||||
const stable = products.find((product: any) => product.Product === 'Stable');
|
const productName = channel === 'msedge' ? 'Stable' : 'Beta';
|
||||||
if (platform === 'win32') {
|
const product = products.find((product: any) => product.Product === productName);
|
||||||
const arch = os.arch() === 'x64' ? 'x64' : 'x86';
|
const searchConfig = ({
|
||||||
const release = stable.Releases.find((release: any) => release.Platform === 'Windows' && release.Architecture === arch);
|
darwin: {platform: 'MacOS', arch: 'universal', artifact: 'pkg'},
|
||||||
const artifact = release.Artifacts.find((artifact: any) => artifact.ArtifactName === 'msi');
|
win32: {platform: 'Windows', arch: os.arch() === 'x64' ? 'x64' : 'x86', artifact: 'msi'},
|
||||||
|
} as any)[platform];
|
||||||
|
const release = searchConfig ? product.Releases.find((release: any) => release.Platform === searchConfig.platform && release.Architecture === searchConfig.arch) : null;
|
||||||
|
const artifact = release ? release.Artifacts.find((artifact: any) => artifact.ArtifactName === searchConfig.artifact) : null;
|
||||||
|
if (artifact)
|
||||||
scriptArgs.push(artifact.Location /* url */);
|
scriptArgs.push(artifact.Location /* url */);
|
||||||
} else if (platform === 'darwin') {
|
else
|
||||||
const release = stable.Releases.find((release: any) => release.Platform === 'MacOS' && release.Architecture === 'universal');
|
|
||||||
const artifact = release.Artifacts.find((artifact: any) => artifact.ArtifactName === 'pkg');
|
|
||||||
scriptArgs.push(artifact.Location /* url */);
|
|
||||||
} else {
|
|
||||||
throw new Error(`Cannot install ${ChannelName[channel]} on ${platform}`);
|
throw new Error(`Cannot install ${ChannelName[channel]} on ${platform}`);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const shell = scriptName.endsWith('.ps1') ? 'powershell.exe' : 'bash';
|
const shell = scriptName.endsWith('.ps1') ? 'powershell.exe' : 'bash';
|
||||||
|
@ -36,6 +36,7 @@ function linux(channel: string): string[] | undefined {
|
|||||||
case 'chrome-beta': return ['/opt/google/chrome-beta/chrome'];
|
case 'chrome-beta': return ['/opt/google/chrome-beta/chrome'];
|
||||||
case 'chrome-dev': return ['/opt/google/chrome-unstable/chrome'];
|
case 'chrome-dev': return ['/opt/google/chrome-unstable/chrome'];
|
||||||
case 'msedge-dev': return ['/opt/microsoft/msedge-dev/msedge'];
|
case 'msedge-dev': return ['/opt/microsoft/msedge-dev/msedge'];
|
||||||
|
case 'msedge-beta': return ['/opt/microsoft/msedge-beta/msedge'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,29 +147,3 @@ it('Page.bringToFront should work', async ({browserType, browserOptions}) => {
|
|||||||
await browser.close();
|
await browser.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('focused input should produce the same screenshot', async ({browserType, browserOptions, browserName, platform, channel}, testInfo) => {
|
|
||||||
it.fail(channel === 'msedge' && platform === 'darwin', 'focus ring is black on MSEdge');
|
|
||||||
it.fail(browserName === 'firefox' && platform === 'darwin', 'headless has thinner outline');
|
|
||||||
it.fail(browserName === 'firefox' && platform === 'linux', 'headless has no outline');
|
|
||||||
it.skip(browserName === 'webkit' && platform === 'linux', 'gtk vs wpe');
|
|
||||||
it.skip(!!process.env.CRPATH);
|
|
||||||
|
|
||||||
testInfo.snapshotSuffix = platform;
|
|
||||||
|
|
||||||
const headful = await browserType.launch({...browserOptions, headless: false });
|
|
||||||
const headfulPage = await headful.newPage();
|
|
||||||
await headfulPage.setContent('<input>');
|
|
||||||
await headfulPage.focus('input');
|
|
||||||
const headfulScreenshot = await headfulPage.screenshot();
|
|
||||||
await headful.close();
|
|
||||||
|
|
||||||
const headless = await browserType.launch({...browserOptions, headless: true });
|
|
||||||
const headlessPage = await headless.newPage();
|
|
||||||
await headlessPage.setContent('<input>');
|
|
||||||
await headlessPage.focus('input');
|
|
||||||
const headlessScreenshot = await headlessPage.screenshot();
|
|
||||||
await headless.close();
|
|
||||||
|
|
||||||
expect(headfulScreenshot).toMatchSnapshot('focused-input.png');
|
|
||||||
expect(headlessScreenshot).toMatchSnapshot('focused-input.png');
|
|
||||||
});
|
|
||||||
|
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.6 KiB |