| 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.
|
| + 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"));
|
|
|