| Index: chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js
|
| diff --git a/chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js b/chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..11c898de27ceb5884188ce1065be40c8104fb6f7
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js
|
| @@ -0,0 +1,123 @@
|
| +// Copyright 2016 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.
|
| +
|
| +var menuItems = [{
|
| + id: 'menu_a',
|
| + label: 'MENU A',
|
| + style: 'check',
|
| + visible: true,
|
| + checked: false,
|
| + enabled: true
|
| + }, {
|
| + id: 'menu_b',
|
| + label: 'MENU b',
|
| + style: 'check',
|
| + visible: true,
|
| + checked: false,
|
| + enabled: true
|
| +}];
|
| +
|
| +var menuItemsUpdate = [{
|
| + id: 'menu_a',
|
| + label: 'MENU A',
|
| + style: 'check',
|
| + visible: true,
|
| + checked: true,
|
| + enabled: true
|
| + }, {
|
| + id: 'menu_b',
|
| + label: 'MENU b',
|
| + style: 'check',
|
| + visible: false,
|
| + checked: false,
|
| + enabled: false
|
| +}];
|
| +
|
| +var menuItemsActivated = [{
|
| + id: 'menu_a',
|
| + label: 'MENU A',
|
| + style: 'check',
|
| + visible: true,
|
| + checked: true,
|
| + enabled: true
|
| + }, {
|
| + id: 'menu_b',
|
| + label: 'MENU b',
|
| + style: 'check',
|
| + visible: true,
|
| + checked: true,
|
| + enabled: true
|
| +}];
|
| +
|
| +var compareMenuItems = function(items1, items2) {
|
| + chrome.test.assertEq(items1.length, items2.length);
|
| + for (var i = 0; i < items1.length; i++) {
|
| + chrome.test.assertEq(items1[i]['id'], items2[i]['id']);
|
| + chrome.test.assertEq(items1[i]['label'], items2[i]['label']);
|
| + chrome.test.assertEq(items1[i]['style'], items2[i]['style']);
|
| + chrome.test.assertEq(items1[i]['visible'], items2[i]['visible']);
|
| + chrome.test.assertEq(items1[i]['checked'], items2[i]['checked']);
|
| + chrome.test.assertEq(items1[i]['enabled'], items2[i]['enabled']);
|
| + }
|
| +};
|
| +
|
| +chrome.test.runTests([
|
| + function testActivateAndListChange() {
|
| + var list_change_count = 0;
|
| + chrome.input.ime.onActivate.addListener(function(engineID) {
|
| + chrome.test.sendMessage('activated');
|
| + });
|
| + chrome.inputMethodPrivate.onImeMenuListChanged.addListener(function() {
|
| + ++list_change_count;
|
| + if (list_change_count == 2) {
|
| + chrome.test.sendMessage('list_change');
|
| + chrome.test.succeed();
|
| + }
|
| + });
|
| + },
|
| + function testSetAndUpdateMenuItems() {
|
| + var onMenuItemChangeCount = 0;
|
| + chrome.inputMethodPrivate.onImeMenuItemsChanged.addListener(
|
| + function(engineID, items) {
|
| + chrome.test.assertEq('test', engineID);
|
| + if (onMenuItemChangeCount == 0) {
|
| + compareMenuItems(menuItems, items);
|
| + ++onMenuItemChangeCount;
|
| + }
|
| + else {
|
| + compareMenuItems(menuItemsUpdate, items);
|
| + chrome.test.sendMessage('get_menu_update');
|
| + chrome.test.succeed();
|
| + }
|
| + }
|
| + );
|
| + chrome.input.ime.setMenuItems({
|
| + engineID: 'test',
|
| + items: menuItems
|
| + });
|
| + chrome.input.ime.updateMenuItems({
|
| + engineID: 'test',
|
| + items: menuItemsUpdate
|
| + });
|
| + },
|
| + function testNotifyMenuItems() {
|
| + var onMenuItemActivatedCount = 0;
|
| + chrome.input.ime.onMenuItemActivated.addListener(
|
| + function(engineID, name) {
|
| + chrome.test.assertEq('test', engineID);
|
| + if (onMenuItemActivatedCount == 0) {
|
| + chrome.test.assertEq('menu_a', name);
|
| + ++onMenuItemActivatedCount;
|
| + }
|
| + else {
|
| + chrome.test.assertEq('menu_b', name);
|
| + chrome.test.sendMessage('get_menu_activated');
|
| + chrome.test.succeed();
|
| + }
|
| + }
|
| + );
|
| + chrome.inputMethodPrivate.notifyImeMenuItemActivated('test', 'menu_a');
|
| + chrome.inputMethodPrivate.notifyImeMenuItemActivated('test', 'menu_b');
|
| + }
|
| +]);
|
|
|