OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 var menuItems = [{ |
| 6 id: 'menu_a', |
| 7 label: 'MENU A', |
| 8 style: 'check', |
| 9 visible: true, |
| 10 checked: false, |
| 11 enabled: true |
| 12 }, { |
| 13 id: 'menu_b', |
| 14 label: 'MENU b', |
| 15 style: 'check', |
| 16 visible: true, |
| 17 checked: false, |
| 18 enabled: true |
| 19 }]; |
| 20 |
| 21 var menuItemsUpdate = [{ |
| 22 id: 'menu_a', |
| 23 label: 'MENU A', |
| 24 style: 'check', |
| 25 visible: true, |
| 26 checked: true, |
| 27 enabled: true |
| 28 }, { |
| 29 id: 'menu_b', |
| 30 label: 'MENU b', |
| 31 style: 'check', |
| 32 visible: false, |
| 33 checked: false, |
| 34 enabled: false |
| 35 }]; |
| 36 |
| 37 var menuItemsActivated = [{ |
| 38 id: 'menu_a', |
| 39 label: 'MENU A', |
| 40 style: 'check', |
| 41 visible: true, |
| 42 checked: true, |
| 43 enabled: true |
| 44 }, { |
| 45 id: 'menu_b', |
| 46 label: 'MENU b', |
| 47 style: 'check', |
| 48 visible: true, |
| 49 checked: true, |
| 50 enabled: true |
| 51 }]; |
| 52 |
| 53 var compareMenuItems = function(items1, items2) { |
| 54 chrome.test.assertEq(items1.length, items2.length); |
| 55 for (var i = 0; i < items1.length; i++) { |
| 56 chrome.test.assertEq(items1[i]['id'], items2[i]['id']); |
| 57 chrome.test.assertEq(items1[i]['label'], items2[i]['label']); |
| 58 chrome.test.assertEq(items1[i]['style'], items2[i]['style']); |
| 59 chrome.test.assertEq(items1[i]['visible'], items2[i]['visible']); |
| 60 chrome.test.assertEq(items1[i]['checked'], items2[i]['checked']); |
| 61 chrome.test.assertEq(items1[i]['enabled'], items2[i]['enabled']); |
| 62 } |
| 63 }; |
| 64 |
| 65 chrome.test.runTests([ |
| 66 function testActivateAndListChange() { |
| 67 var list_change_count = 0; |
| 68 chrome.input.ime.onActivate.addListener(function(engineID) { |
| 69 chrome.test.sendMessage('activated'); |
| 70 }); |
| 71 chrome.inputMethodPrivate.onImeMenuListChanged.addListener(function() { |
| 72 ++list_change_count; |
| 73 if (list_change_count == 2) { |
| 74 chrome.test.sendMessage('list_change'); |
| 75 chrome.test.succeed(); |
| 76 } |
| 77 }); |
| 78 }, |
| 79 function testSetAndUpdateMenuItems() { |
| 80 var onMenuItemChangeCount = 0; |
| 81 chrome.inputMethodPrivate.onImeMenuItemsChanged.addListener( |
| 82 function(engineID, items) { |
| 83 chrome.test.assertEq('test', engineID); |
| 84 if (onMenuItemChangeCount == 0) { |
| 85 compareMenuItems(menuItems, items); |
| 86 ++onMenuItemChangeCount; |
| 87 } |
| 88 else { |
| 89 compareMenuItems(menuItemsUpdate, items); |
| 90 chrome.test.sendMessage('get_menu_update'); |
| 91 chrome.test.succeed(); |
| 92 } |
| 93 } |
| 94 ); |
| 95 chrome.input.ime.setMenuItems({ |
| 96 engineID: 'test', |
| 97 items: menuItems |
| 98 }); |
| 99 chrome.input.ime.updateMenuItems({ |
| 100 engineID: 'test', |
| 101 items: menuItemsUpdate |
| 102 }); |
| 103 }, |
| 104 function testNotifyMenuItems() { |
| 105 var onMenuItemActivatedCount = 0; |
| 106 chrome.input.ime.onMenuItemActivated.addListener( |
| 107 function(engineID, name) { |
| 108 chrome.test.assertEq('test', engineID); |
| 109 if (onMenuItemActivatedCount == 0) { |
| 110 chrome.test.assertEq('menu_a', name); |
| 111 ++onMenuItemActivatedCount; |
| 112 } |
| 113 else { |
| 114 chrome.test.assertEq('menu_b', name); |
| 115 chrome.test.sendMessage('get_menu_activated'); |
| 116 chrome.test.succeed(); |
| 117 } |
| 118 } |
| 119 ); |
| 120 chrome.inputMethodPrivate.notifyImeMenuItemActivated('test', 'menu_a'); |
| 121 chrome.inputMethodPrivate.notifyImeMenuItemActivated('test', 'menu_b'); |
| 122 } |
| 123 ]); |
OLD | NEW |