| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| const {isLocalizationCall, espree, getLocalizationCase} = require('../localization_utils'); |
| const {assert} = require('chai'); |
| |
| const parseCode = code => espree.parse(code, {ecmaVersion: 11, sourceType: 'module', range: true, loc: true}); |
| |
| describe('isLocalizationCall', () => { |
| it('is true for a tagged template expression', () => { |
| const ast = parseCode('ls`foo`'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to Common.UIString', () => { |
| const ast = parseCode('Common.UIString(\'blahblah %s\', 2)'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to Common.UIString.UIString', () => { |
| const ast = parseCode('Common.UIString.UIString(\'blahblah %s, 2\')'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to UIString', () => { |
| const ast = parseCode('UIString(\'blahblah %s, 2\')'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to Platform.UIString.UIString', () => { |
| const ast = parseCode('Platform.UIString.UIString(\'blahblah %s, 2\')'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to UI.formatLocalized', () => { |
| const ast = parseCode('UI.formatLocalized(\'blahblah %s, 2\')'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| |
| it('is true for a call to UI.UIUtils.formatLocalized', () => { |
| const ast = parseCode('UI.UIUtils.formatLocalized(\'blahblah %s, 2\')'); |
| assert.isTrue(isLocalizationCall(ast.body[0].expression)); |
| }); |
| }); |
| |
| describe('getLocalizationCase', () => { |
| it('returns correctly for a tagged template', () => { |
| const ast = parseCode('ls`foo`'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'Tagged Template'); |
| }); |
| |
| it('returns correctly for Common.UIString', () => { |
| const ast = parseCode('Common.UIString(\'blah\', 2)'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'Common.UIString'); |
| }); |
| |
| it('returns Common.UIString for Common.UIString.UIString', () => { |
| const ast = parseCode('Common.UIString(\'blah\', 2)'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'Common.UIString'); |
| }); |
| |
| it('returns UI.formatLocalized for UI.formatLocalized', () => { |
| const ast = parseCode('UI.formatLocalized(\'blahblah %s, 2\')'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'UI.formatLocalized'); |
| }); |
| |
| it('returns Platform.UIString for Platform.UIString.UIString', () => { |
| const ast = parseCode('Platform.UIString.UIString(\'blahblah %s, 2\')'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'Platform.UIString'); |
| }); |
| |
| it('returns Platform.UIString for UIString', () => { |
| const ast = parseCode('UIString(\'blahblah %s, 2\')'); |
| assert.strictEqual(getLocalizationCase(ast.body[0].expression), 'Platform.UIString'); |
| }); |
| }); |