diff --git a/wm/test/unittest/BUILD.gn b/wm/test/unittest/BUILD.gn index 6a9fca35b8219c7ffe9f51e5b56b30f2745948e8..baaca23ff20361076854aa973984947877fe2b67 100644 --- a/wm/test/unittest/BUILD.gn +++ b/wm/test/unittest/BUILD.gn @@ -38,6 +38,7 @@ group("unittest") { ":wm_window_agent_test", ":wm_window_display_change_adapter_test", ":wm_window_effect_test", + ":wm_window_impl_listener_new_test", ":wm_window_impl_listener_test", ":wm_window_impl_test", ":wm_window_impl_test2", @@ -404,6 +405,16 @@ ohos_unittest("wm_window_impl_listener_test") { external_deps = test_external_deps } +ohos_unittest("wm_window_impl_listener_new_test") { + module_out_path = module_out_path + + sources = [ "window_impl_listener_new_test.cpp" ] + + deps = [ ":wm_unittest_common" ] + + external_deps = test_external_deps +} + if (!window_manager_use_sceneboard) { ohos_unittest("wm_window_proxy_test") { module_out_path = module_out_path diff --git a/wm/test/unittest/window_impl_listener_new_test.cpp b/wm/test/unittest/window_impl_listener_new_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3d7ea792e7728a1473a93dcae1412f565dd6670c --- /dev/null +++ b/wm/test/unittest/window_impl_listener_new_test.cpp @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2022 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 +#include "modifier_render_thread/rs_modifiers_draw_thread.h" +#include "window_impl.h" + +using namespace testing; +using namespace testing::ext; + +namespace OHOS { +namespace Rosen { +class WindowImplListenerNewTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + virtual void SetUp() override; + virtual void TearDown() override; + sptr window_; +}; + +void WindowImplListenerNewTest::SetUpTestCase() {} + +void WindowImplListenerNewTest::TearDownTestCase() +{ +#ifdef RS_ENABLE_VK + RSModifiersDrawThread::Destroy(); +#endif +} + +void WindowImplListenerNewTest::SetUp() +{ + sptr option = new WindowOption(); + option->SetWindowName("WindowTestListener"); + window_ = new WindowImpl(option); +} + +void WindowImplListenerNewTest::TearDown() +{ + window_ = nullptr; +} + +namespace { +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister001, TestSize.Level1) +{ + sptr windowLifeCycle = new IWindowLifeCycle(); + window_->RegisterLifeCycleListener(windowLifeCycle); + EXPECT_EQ(window_->lifecycleListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterLifeCycleListener(windowLifeCycle); + EXPECT_EQ(window_->lifecycleListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister002, TestSize.Level1) +{ + sptr windowChangeListener = new IWindowChangeListener(); + window_->RegisterWindowChangeListener(windowChangeListener); + EXPECT_EQ(window_->windowChangeListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterWindowChangeListener(windowChangeListener); + EXPECT_EQ(window_->windowChangeListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister003, TestSize.Level1) +{ + sptr avoidAreaChangedListener = new IAvoidAreaChangedListener(); + window_->RegisterAvoidAreaChangeListener(avoidAreaChangedListener); + EXPECT_EQ(window_->avoidAreaChangeListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterAvoidAreaChangeListener(avoidAreaChangedListener); + EXPECT_EQ(window_->avoidAreaChangeListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister004, TestSize.Level1) +{ + sptr windowDragListener = new IWindowDragListener(); + window_->RegisterDragListener(windowDragListener); + EXPECT_EQ(window_->windowDragListeners_.size(), 1); + window_->UnregisterDragListener(windowDragListener); + EXPECT_EQ(window_->windowDragListeners_.size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister005, TestSize.Level1) +{ + sptr displayMoveListener = new IDisplayMoveListener(); + window_->RegisterDisplayMoveListener(displayMoveListener); + EXPECT_EQ(window_->displayMoveListeners_.size(), 1); + window_->UnregisterDisplayMoveListener(displayMoveListener); + EXPECT_EQ(window_->displayMoveListeners_.size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister006, TestSize.Level1) +{ + sptr occupiedAreaChangeListener = new IOccupiedAreaChangeListener(); + window_->RegisterOccupiedAreaChangeListener(occupiedAreaChangeListener); + EXPECT_EQ(window_->occupiedAreaChangeListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterOccupiedAreaChangeListener(occupiedAreaChangeListener); + EXPECT_EQ(window_->occupiedAreaChangeListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister007, TestSize.Level1) +{ + sptr touchOutsideListener = new ITouchOutsideListener(); + window_->RegisterTouchOutsideListener(touchOutsideListener); + EXPECT_EQ(window_->touchOutsideListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterTouchOutsideListener(touchOutsideListener); + EXPECT_EQ(window_->touchOutsideListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister008, TestSize.Level1) +{ + sptr screenshotListener = new IScreenshotListener(); + window_->RegisterScreenshotListener(screenshotListener); + EXPECT_EQ(window_->screenshotListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterScreenshotListener(screenshotListener); + EXPECT_EQ(window_->screenshotListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister, TestSize.Level1) +{ + sptr dialogTargetTouchListener = new IDialogTargetTouchListener(); + window_->RegisterDialogTargetTouchListener(dialogTargetTouchListener); + EXPECT_EQ(window_->dialogTargetTouchListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterDialogTargetTouchListener(dialogTargetTouchListener); + EXPECT_EQ(window_->dialogTargetTouchListeners_[window_->GetWindowId()].size(), 0); +} + +/** + * @tc.name: InterfacesRegisterUnregister02 + * @tc.desc: test all interfaces listener + * @tc.type: FUNC + */ +HWTEST_F(WindowImplListenerNewTest, InterfacesRegisterUnregister02, TestSize.Level1) +{ + sptr screenshotAppEventListener = new IScreenshotAppEventListener(); + window_->RegisterScreenshotAppEventListener(screenshotAppEventListener); + EXPECT_EQ(window_->screenshotAppEventListeners_[window_->GetWindowId()].size(), 1); + window_->UnregisterScreenshotAppEventListener(screenshotAppEventListener); + EXPECT_EQ(window_->screenshotAppEventListeners_[window_->GetWindowId()].size(), 0); +} +} // namespace +} // namespace Rosen +} // namespace OHOS