diff options
author | Jerry Zhang <zhangjerry@google.com> | 2018-07-31 01:16:26 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-07-31 01:16:26 +0200 |
commit | 35281394091696e94e8eb77ca7190f9d92a062ec (patch) | |
tree | e90f35caed1adafb93032d344d316c523fb7ca77 /tests | |
parent | Merge "minadbd: avoid overrriding services_to_fd." (diff) | |
parent | Merge "recovery: Add ability to interrupt UI" (diff) | |
download | android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar.gz android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar.bz2 android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar.lz android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar.xz android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.tar.zst android_bootable_recovery-35281394091696e94e8eb77ca7190f9d92a062ec.zip |
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/screen_ui_test.cpp | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/unit/screen_ui_test.cpp b/tests/unit/screen_ui_test.cpp index 4c0a868f0..7d97a006b 100644 --- a/tests/unit/screen_ui_test.cpp +++ b/tests/unit/screen_ui_test.cpp @@ -264,6 +264,10 @@ int TestableScreenRecoveryUI::KeyHandler(int key, bool) const { } int TestableScreenRecoveryUI::WaitKey() { + if (IsKeyInterrupted()) { + return static_cast<int>(RecoveryUI::KeyError::INTERRUPTED); + } + CHECK_LT(key_buffer_index_, key_buffer_.size()); return static_cast<int>(key_buffer_[key_buffer_index_++]); } @@ -391,7 +395,8 @@ TEST_F(ScreenRecoveryUITest, ShowMenu_TimedOut) { ui_->SetKeyBuffer({ KeyCode::TIMEOUT, }); - ASSERT_EQ(static_cast<size_t>(-1), ui_->ShowMenu(HEADERS, ITEMS, 3, true, nullptr)); + ASSERT_EQ(static_cast<size_t>(RecoveryUI::KeyError::TIMED_OUT), + ui_->ShowMenu(HEADERS, ITEMS, 3, true, nullptr)); } TEST_F(ScreenRecoveryUITest, ShowMenu_TimedOut_TextWasEverVisible) { @@ -412,6 +417,38 @@ TEST_F(ScreenRecoveryUITest, ShowMenu_TimedOut_TextWasEverVisible) { std::placeholders::_1, std::placeholders::_2))); } +TEST_F(ScreenRecoveryUITest, ShowMenuWithInterrupt) { + RETURN_IF_NO_GRAPHICS; + + ASSERT_TRUE(ui_->Init(kTestLocale)); + ui_->SetKeyBuffer({ + KeyCode::UP, + KeyCode::DOWN, + KeyCode::UP, + KeyCode::DOWN, + KeyCode::ENTER, + }); + + ui_->InterruptKey(); + ASSERT_EQ(static_cast<size_t>(RecoveryUI::KeyError::INTERRUPTED), + ui_->ShowMenu(HEADERS, ITEMS, 3, true, + std::bind(&TestableScreenRecoveryUI::KeyHandler, ui_.get(), + std::placeholders::_1, std::placeholders::_2))); + + ui_->SetKeyBuffer({ + KeyCode::UP, + KeyCode::UP, + KeyCode::NO_OP, + KeyCode::NO_OP, + KeyCode::UP, + KeyCode::ENTER, + }); + ASSERT_EQ(static_cast<size_t>(RecoveryUI::KeyError::INTERRUPTED), + ui_->ShowMenu(HEADERS, ITEMS, 0, true, + std::bind(&TestableScreenRecoveryUI::KeyHandler, ui_.get(), + std::placeholders::_1, std::placeholders::_2))); +} + TEST_F(ScreenRecoveryUITest, LoadAnimation) { RETURN_IF_NO_GRAPHICS; |