Chromium Code Reviews| Index: chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc |
| diff --git a/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc b/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc |
| index cfa17124cc433fb44724aad142cc54f0791f266d..ae2300c492b816cb94b3ed13535d8ccdb98ba29a 100644 |
| --- a/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc |
| +++ b/chrome/browser/extensions/api/braille_display_private/braille_display_private_apitest.cc |
| @@ -42,6 +42,9 @@ namespace { |
| const char kTestUserName[] = "owner@invalid.domain"; |
| +// Used to make ReadKeys return an error. |
| +brlapi_keyCode_t kErrorKeyCode = BRLAPI_KEY_MAX; |
| + |
| } // namespace |
| // Data maintained by the mock BrlapiConnection. This data lives throughout |
| @@ -114,9 +117,9 @@ class MockBrlapiConnection : public BrlapiConnection { |
| virtual int ReadKey(brlapi_keyCode_t* key_code) OVERRIDE { |
| if (!data_->pending_keys.empty()) { |
| - int queued_key_code = data_->pending_keys.front(); |
| + brlapi_keyCode_t queued_key_code = data_->pending_keys.front(); |
| data_->pending_keys.pop_front(); |
| - if (queued_key_code < 0) { |
| + if (queued_key_code == kErrorKeyCode) { |
| data_->error.brlerrno = BRLAPI_ERROR_EOF; |
| return -1; // Signal error. |
| } |
| @@ -194,6 +197,8 @@ IN_PROC_BROWSER_TEST_F(BrailleDisplayPrivateApiTest, WriteDots) { |
| IN_PROC_BROWSER_TEST_F(BrailleDisplayPrivateApiTest, KeyEvents) { |
| connection_data_.display_size = 11; |
| + |
| + // Braille navigation commands. |
| connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_CMD | |
| BRLAPI_KEY_CMD_LNUP); |
| connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_CMD | |
| @@ -208,17 +213,54 @@ IN_PROC_BROWSER_TEST_F(BrailleDisplayPrivateApiTest, KeyEvents) { |
| BRLAPI_KEY_CMD_BOT); |
| connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_CMD | |
| BRLAPI_KEY_CMD_ROUTE | 5); |
| - // Space (0) and all combinations of dots. |
| + |
| + // Braille display standard keyboard emulation. |
| + |
| + // An ascii character. |
| + connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_SYM | 'A'); |
| + // A non-ascii 'latin1' character. Small letter a with ring above. |
| + connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_SYM | 0xE5); |
| + // A non-latin1 Unicode character. LATIN SMALL LETTER A WITH MACRON. |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_SYM_UNICODE | 0x100); |
| + // A Unicode character outside the BMP. CAT FACE WITH TEARS OF JOY. |
| + // With anticipation for the first emoji-enabled braille display. |
|
David Tseng
2014/05/27 21:29:31
:)
|
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_SYM_UNICODE | 0x1F639); |
| + // Invalid Unicode character. |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_SYM_UNICODE | 0x110000); |
| + |
| + // Non-alphanumeric function keys. |
| + |
| + // Backspace. |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_SYM_BACKSPACE); |
| + // Shift+Tab. |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_FLG_SHIFT | BRLAPI_KEY_SYM_TAB); |
| + // Alt+F3. (0-based). |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_FLG_META | |
| + (BRLAPI_KEY_SYM_FUNCTION + 2)); |
| + |
| + // ctrl+dot1+dot2. |
| + connection_data_.pending_keys.push_back( |
| + BRLAPI_KEY_TYPE_CMD | BRLAPI_KEY_FLG_CONTROL | BRLAPI_KEY_CMD_PASSDOTS | |
| + BRLAPI_DOT1 | BRLAPI_DOT2); |
| + |
| + // Braille dot keys, all combinations including space (0). |
| for (int i = 0; i < 256; ++i) { |
| connection_data_.pending_keys.push_back(BRLAPI_KEY_TYPE_CMD | |
| BRLAPI_KEY_CMD_PASSDOTS | i); |
| } |
| + |
| ASSERT_TRUE(RunComponentExtensionTest("braille_display_private/key_events")); |
| } |
| IN_PROC_BROWSER_TEST_F(BrailleDisplayPrivateApiTest, DisplayStateChanges) { |
| connection_data_.display_size = 11; |
| - connection_data_.pending_keys.push_back(-1); |
| + connection_data_.pending_keys.push_back(kErrorKeyCode); |
| connection_data_.reappear_on_disconnect = true; |
| ASSERT_TRUE(RunComponentExtensionTest( |
| "braille_display_private/display_state_changes")); |