test: start adding capability smoke tests (#784)

This commit is contained in:
Pavel Feldman 2020-01-31 08:57:47 -08:00 committed by GitHub
parent 5cb19c6265
commit 2bf88fd178
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,9 @@
<script>
async function loadTable() {
const tbl = new WebAssembly.Table({ initial: 2, element: 'anyfunc' });
const response = await fetch('table2.wasm');
const body = await response.arrayBuffer();
await WebAssembly.instantiate(body, { js: { tbl: tbl } });
return `${tbl.get(0)()}, ${tbl.get(1)()}`;
}
</script>

Binary file not shown.

31
test/capabilities.spec.js Normal file
View File

@ -0,0 +1,31 @@
/**
* Copyright Microsoft Corporation. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const utils = require('./utils');
const { waitEvent } = utils;
module.exports.describe = function({testRunner, expect}) {
const {describe, xdescribe, fdescribe} = testRunner;
const {it, fit, xit, dit} = testRunner;
const {beforeAll, beforeEach, afterAll, afterEach} = testRunner;
describe('Capabilities', function() {
it('Web Assembly should work', async function({page, server}) {
await page.goto(server.PREFIX + '/wasm/table2.html');
expect(await page.evaluate(() => loadTable())).toBe('42, 83');
});
});
};

View File

@ -171,6 +171,7 @@ module.exports.describe = ({testRunner, product, playwrightPath}) => {
testRunner.loadTests(require('./interception.spec.js'), testOptions);
testRunner.loadTests(require('./geolocation.spec.js'), testOptions);
testRunner.loadTests(require('./workers.spec.js'), testOptions);
testRunner.loadTests(require('./capabilities.spec.js'), testOptions);
if (CHROMIUM) {
testRunner.loadTests(require('./chromium/chromium.spec.js'), testOptions);