summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJerry Zhang <zhangjerry@google.com>2018-07-31 01:16:26 +0200
committerandroid-build-merger <android-build-merger@google.com>2018-07-31 01:16:26 +0200
commit35281394091696e94e8eb77ca7190f9d92a062ec (patch)
treee90f35caed1adafb93032d344d316c523fb7ca77 /tests
parentMerge "minadbd: avoid overrriding services_to_fd." (diff)
parentMerge "recovery: Add ability to interrupt UI" (diff)
downloadandroid_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.cpp39
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;