1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 11:22:43 +02:00
metamask-extension/test/e2e/tests/lockdown.spec.js
Peter Yinusa 0b4532ec1b
E2e test fixtures (#16061)
* remove state.json files

* move file

* Update Readme

* Create fixture builder

* load test fixture

* remove redundant method

* update snap tests

* update stats tests

* update extension tests

* update extension tests

* Update fixture data

* snap test dapp connection

* Update fixture data

* add onboarding fixture

* use onboarding fixture

* reuse import account vault

* remove unnecessary use of class

* use fixture builder in new tests

* switch to function

* update default fixture

* update default fixture

* update test

* update 1559 test fixttures

* update 1559 test fixtures

* update 1559 test fixtures

* dismiss 3box whats new

* remove redundant code

* move docs

* remove unused code

* token detection

* use default timeout

* remove redundant code

* Update fixture builder

hide `Protect your funds` dialog
remove browser environment
remove default network details
hide dismiss seed backup reminder
recursively merges fixture data

* add token to tokencontroller

* remove network details

* add missing identities to preference controller

* remove duplicate properties

* update bip-32 to use fixturebuilder

* alphabetise snap permissions

* update get snaps to use fixturebuilder

* Update test-snap-bip-32.spec.js

wait for window

* add popular network state

* update test

* lint
2022-10-28 09:42:12 +01:00

91 lines
2.4 KiB
JavaScript

const { strict: assert } = require('assert');
const { Browser } = require('selenium-webdriver');
const {
getGlobalProperties,
testIntrinsic,
} = require('../../helpers/protect-intrinsics-helpers');
const { convertToHexValue, withFixtures } = require('../helpers');
const { PAGES } = require('../webdriver/driver');
const FixtureBuilder = require('../fixture-builder');
const isFirefox = process.env.SELENIUM_BROWSER === Browser.FIREFOX;
/**
* This script iterates over all named intrinsics and tests that they are locked
* down per ses/lockdown.
*
* We set globalThis to window in Firefox because the test fails otherwise.
* We believe this is due to some Selenium-related shenanigans. In the browser,
* this behavior is not a problem.
*/
const lockdownTestScript = `
${isFirefox ? 'globalThis = window;' : ''}
const assert = {
equal: (value, comparison, message) => {
if (value !== comparison) {
throw new Error(message || 'not equal');
}
},
ok: (value, message) => {
if (!value) {
throw new Error(message || 'not ok');
}
},
};
${getGlobalProperties.toString()}
${testIntrinsic.toString()}
try {
getGlobalProperties().forEach((propertyName) => {
console.log('Testing intrinsic:', propertyName);
testIntrinsic(propertyName);
})
console.log('Lockdown test successful!');
return true;
} catch (error) {
console.log('Lockdown test failed.', error);
return false;
}
`;
describe('lockdown', function () {
const ganacheOptions = {
accounts: [
{
secretKey:
'0x7C9529A67102755B7E6102D6D950AC5D5863C98713805CEC576B945B15B71EAC',
balance: convertToHexValue(25000000000000000000),
},
],
};
it('the UI and background environments are locked down', async function () {
await withFixtures(
{
// The fixtures used here is arbitrary. Any fixture would do.
fixtures: new FixtureBuilder().build(),
ganacheOptions,
title: this.test.title,
},
async ({ driver }) => {
await driver.navigate(PAGES.HOME);
assert.equal(
await driver.executeScript(lockdownTestScript),
true,
'The UI environment should be locked down.',
);
await driver.navigate(PAGES.BACKGROUND);
assert.equal(
await driver.executeScript(lockdownTestScript),
true,
'The background environment should be locked down.',
);
},
);
});
});