blob: 8ff37e0570c6e08fe9de6960e2c38a5866f8c1c2 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank('Tests emulation of the default locale.');
const defaultLocale = await session.evaluate(() => Intl.NumberFormat().resolvedOptions().locale);
await dp.Emulation.setLocaleOverride({locale: 'ru_RU'});
testRunner.log('\nSet locale to ru-RU');
await printLocaleSpecificData();
await page.navigate('http://127.0.0.1:8000/inspector-protocol/resources/empty.html');
testRunner.log('\nChecking locale after navigation');
await printLocaleSpecificData();
await page.navigate('http://localhost:8000/inspector-protocol/resources/empty.html');
testRunner.log('\nChecking locale after cross-origin navigation');
await printLocaleSpecificData();
await dp.Emulation.setLocaleOverride({locale: 'zh_CN'});
testRunner.log('\nSet locale to zh-CN');
await printLocaleSpecificData();
const sencondSession = await page.createSession();
const secondOverride = await sencondSession.protocol.Emulation.setLocaleOverride({locale: 'en_GB'});
testRunner.log('\nTried to set override from another session, got error:');
testRunner.log(secondOverride.error.message);
await sencondSession.disconnect();
await dp.Emulation.setLocaleOverride();
testRunner.log('\nReset locale to default');
const currentLocale = await session.evaluate(() => Intl.NumberFormat().resolvedOptions().locale)
testRunner.log('Default locale matches previous value: ' + (defaultLocale === currentLocale));
const result = await dp.Emulation.setLocaleOverride({locale: '___'});
testRunner.log('\nTried setting bogus locale:');
testRunner.log(result.error.message);
testRunner.completeTest();
async function printLocaleSpecificData() {
testRunner.log('Detected locale: ' + await session.evaluate(() => Intl.NumberFormat().resolvedOptions().locale));
testRunner.log('Date locale string: ' + await session.evaluate(() => new Date('4/2/2020 20:02').toLocaleString()));
// TODO(https://crrev.com/c/v8/v8/+/2049899): uncomment next line after V8 is updated
// testRunner.log('Number locale string: ' + await session.evaluate(() => Number(10000.2).toLocaleString()));
}
})