| (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())); |
| } |
| }) |