/* * Copyright (c) 2020-2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "components/ui_label.h" #include "dock/focus_manager.h" #include #include #if ENABLE_FOCUS_MANAGER using namespace testing::ext; namespace OHOS { class FocusManagerTest : public testing::Test { public: static void SetUpTestCase(void); static void TearDownTestCase(void); static UIViewGroup* viewGroup_; static UILabel* label1_; static UILabel* label2_; }; UIViewGroup* FocusManagerTest::viewGroup_ = nullptr; UILabel* FocusManagerTest::label1_ = nullptr; UILabel* FocusManagerTest::label2_ = nullptr; void FocusManagerTest::SetUpTestCase(void) { if (viewGroup_ == nullptr) { viewGroup_ = new UIViewGroup(); viewGroup_->SetPosition(0, 0, 200, 200); // 200: width, 200: height } if (label1_ == nullptr) { label1_ = new UILabel(); label1_->SetFocusable(true); label1_->SetPosition(50, 50, 50, 50); // 50: x, 50: y, 50: width, 50: height } if (label2_ == nullptr) { label2_ = new UILabel(); label2_->SetFocusable(true); label2_->SetPosition(150, 150, 50, 50); // 150: x, 150: y, 50: width, 50: height } viewGroup_->Add(label1_); viewGroup_->Add(label2_); } void FocusManagerTest::TearDownTestCase(void) { if (viewGroup_ != nullptr) { viewGroup_->Remove(label1_); viewGroup_->Remove(label2_); delete viewGroup_; viewGroup_ = nullptr; } if (label1_ != nullptr) { delete label1_; label1_ = nullptr; } if (label2_ != nullptr) { delete label2_; label2_ = nullptr; } FocusManager::GetInstance()->ClearFocus(); } /** * @tc.name: GetFocusedView_001 * @tc.desc: Verify GetFocusedView function, equal. * @tc.type: FUNC * @tc.require: AR000EVI2R */ HWTEST_F(FocusManagerTest, GetFocusedView_001, TestSize.Level0) { UIView* focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, nullptr); } /** * @tc.name: RequestFocus_001 * @tc.desc: Verify RequestFocus function, equal. * @tc.type: FUNC * @tc.require: AR000EVI2R */ HWTEST_F(FocusManagerTest, RequestFocus_001, TestSize.Level0) { FocusManager::GetInstance()->RequestFocus(label1_); UIView* focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label1_); FocusManager::GetInstance()->RequestFocus(label2_); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label2_); } /** * @tc.name: ClearFocus_001 * @tc.desc: Verify ClearFocus function, equal. * @tc.type: FUNC * @tc.require: AR000EVI2R */ HWTEST_F(FocusManagerTest, ClearFocus_001, TestSize.Level0) { FocusManager::GetInstance()->RequestFocus(label1_); UIView* focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label1_); FocusManager::GetInstance()->ClearFocus(); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, nullptr); } /** * @tc.name: RequestFocusByDirection_001 * @tc.desc: Verify RequestFocusByDirection function, equal. * @tc.type: FUNC * @tc.require: AR000EVI2R */ HWTEST_F(FocusManagerTest, RequestFocusByDirection_001, TestSize.Level0) { FocusManager::GetInstance()->RequestFocus(label1_); UIView* focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label1_); FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_RIGHT); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label2_); FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_LEFT); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label1_); FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_DOWN); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label2_); FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP); focusedView = FocusManager::GetInstance()->GetFocusedView(); EXPECT_EQ(focusedView, label1_); } } // namespace OHOS #endif