Index: chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs |
diff --git a/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs b/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs |
index 92eabdc253697c3be0c92e2d9f5bf3f040c5d3dc..aaf58a7819fc170b31ba69f90ad9e25819e21eba 100644 |
--- a/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs |
+++ b/chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs |
@@ -91,6 +91,13 @@ BrailleImeUnitTest.prototype = { |
chrome.input.ime = chrome.input.ime || {}; |
chrome.runtime = chrome.runtime || {}; |
localStorage = {}; |
+ this.lastSentKeyRequestId_ = 0; |
+ this.lastHandledKeyRequestId_ = undefined; |
+ this.lastHandledKeyResult_ = undefined; |
+ chrome.input.ime.keyEventHandled = function(requestId, result) { |
+ this.lastHandledKeyRequestId_ = Number(requestId); |
+ this.lastHandledKeyResult_ = result; |
+ }.bind(this); |
this.createIme(); |
}, |
@@ -122,20 +129,25 @@ BrailleImeUnitTest.prototype = { |
this.port.messages.length = 0; |
}, |
- sendKeyDown: function(code, extra) { |
- var event = {code: code, type: 'keydown'}; |
+ sendKeyEvent_: function(type, code, extra) { |
+ var event = {type: type, |
+ code: code, |
+ requestId: (++this.lastSentKeyRequestId_) + ''}; |
for (var key in extra) { |
event[key] = extra[key]; |
} |
- return this.onKeyEvent.dispatch(ENGINE_ID, event); |
+ this.onKeyEvent.dispatch(ENGINE_ID, event); |
+ if (this.lastSentKeyRequestId_ === this.lastHandledKeyRequestId_) { |
+ return this.lastHandledKeyResult_; |
+ } |
+ }, |
+ |
+ sendKeyDown: function(code, extra) { |
+ return this.sendKeyEvent_('keydown', code, extra); |
}, |
sendKeyUp: function(code, extra) { |
- var event = {code: code, type: 'keyup'}; |
- for (var key in extra) { |
- event[key] = extra[key]; |
- } |
- return this.onKeyEvent.dispatch(ENGINE_ID, event); |
+ return this.sendKeyEvent_('keyup', code, extra); |
}, |
}; |
@@ -201,6 +213,26 @@ TEST_F('BrailleImeUnitTest', 'KeysWhenStandardKeysEnabled', function() { |
{type: 'brailleDots', dots: 0}])); |
}); |
+TEST_F('BrailleImeUnitTest', 'TestBackspaceKey', function() { |
+ this.activateIme(); |
+ // Enable standard keyboard feature. |
+ assertFalse(this.menuItems[0].checked); |
+ this.onMenuItemActivated.dispatch(ENGINE_ID, this.menuItems[0].id); |
+ assertTrue(this.menuItems[0].checked); |
+ |
+ expectEquals(undefined, this.sendKeyDown('Backspace')); |
+ console.log(JSON.stringify(this.port.messages)); |
David Tseng
2014/06/19 21:30:16
nit: remove
|
+ assertThat(this.port.messages, |
+ eqJSON([{type: 'backspace', |
+ requestId: this.lastSentKeyRequestId_ + ''}])); |
+ this.port.onMessage.dispatch( |
+ {type: 'keyEventHandled', |
+ requestId: this.lastSentKeyRequestId_ + '', |
+ result: true}); |
+ expectEquals(this.lastSentKeyRequestId_, this.lastHandledKeyRequestId_); |
+ expectTrue(this.lastHandledKeyResult_); |
+}); |
+ |
TEST_F('BrailleImeUnitTest', 'UseStandardKeyboardSettingPreserved', function() { |
this.activateIme(); |
assertFalse(this.menuItems[0].checked); |