From d3a2d5c03692d26d29ac838b93f52fb223aee0d8 Mon Sep 17 00:00:00 2001 From: qinlong0101 Date: Sat, 2 Apr 2022 16:54:16 +0800 Subject: [PATCH 1/2] add screenclienttest Signed-off-by: qinlong0101 --- bundle.json | 3 +- services/screenclient/test/unittest/BUILD.gn | 70 ++++++ .../unittest/include/screen_client_test.h | 37 +++ .../screen_client_window_adapter_test.h | 41 ++++ .../test/unittest/src/screen_client_test.cpp | 226 ++++++++++++++++++ .../src/screen_client_window_adapter_test.cpp | 182 ++++++++++++++ 6 files changed, 558 insertions(+), 1 deletion(-) create mode 100644 services/screenclient/test/unittest/BUILD.gn create mode 100644 services/screenclient/test/unittest/include/screen_client_test.h create mode 100644 services/screenclient/test/unittest/include/screen_client_window_adapter_test.h create mode 100644 services/screenclient/test/unittest/src/screen_client_test.cpp create mode 100644 services/screenclient/test/unittest/src/screen_client_window_adapter_test.cpp diff --git a/bundle.json b/bundle.json index 1c71c17f..c1b7faa0 100644 --- a/bundle.json +++ b/bundle.json @@ -79,7 +79,8 @@ "test":[ "//foundation/distributedhardware/distributedscreen/services/screentransport/test/unittest:screen_transport_test", "//foundation/distributedhardware/distributedscreen/services/softbusadapter/test/unittest:SoftBusAdapterTest", - "//foundation/distributedhardware/distributedscreen/services/common/test/unittest:service_common_test" + "//foundation/distributedhardware/distributedscreen/services/common/test/unittest:service_common_test", + "//foundation/distributedhardware/distributedscreen/services/screenclient/test/unittest:screen_client_test" ] } } diff --git a/services/screenclient/test/unittest/BUILD.gn b/services/screenclient/test/unittest/BUILD.gn new file mode 100644 index 00000000..3ec32f8f --- /dev/null +++ b/services/screenclient/test/unittest/BUILD.gn @@ -0,0 +1,70 @@ +# 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. + +import("//build/test.gni") +import( + "//foundation/distributedhardware/distributedscreen/distributedscreen.gni") + +module_out_path = "distributed_screen/screen_client_test" + +config("module_private_config") { + visibility = [ ":*" ] + + include_dirs = [ + "${windowmanager_path}/interfaces/innerkits/wm", + "${graphicstandard_path}/interfaces/innerkits/surface", + "${graphicstandard_path}/rosen/modules/render_service_client/core/ui", + "${fwk_common_path}/utils/include", + "${fwk_utils_path}/include/log", + ] + + include_dirs += [ + "include", + "${common_path}/include", + "${services_path}/screenclient/include", + "${services_path}/screenclient/test/unittest/include", + ] +} + +## UnitTest screen_client_test +ohos_unittest("ScreenClientTest") { + module_out_path = module_out_path + + sources = [ + "${services_path}/screenclient/test/unittest/src/screen_client_test.cpp", + "${services_path}/screenclient/test/unittest/src/screen_client_window_adapter_test.cpp", + ] + + configs = [ ":module_private_config" ] + + deps = [ + "${fwk_utils_path}:distributedhardwareutils", + "${graphicstandard_path}/frameworks/surface:surface", + "${graphicstandard_path}/rosen/modules/render_service_client:librender_service_client", + "${windowmanager_path}/wm:libwm", + "//foundation/distributedhardware/distributedscreen/services/screenclient:distributed_screen_client", + "//foundation/multimodalinput/input:mmi_uinject", + "//third_party/googletest:gmock", + "//third_party/googletest:gtest_main", + ] + + external_deps = [ + "hiviewdfx_hilog_native:libhilog", + "multimodalinput_base:libmmi-client", + ] +} + +group("screen_client_test") { + testonly = true + deps = [ ":ScreenClientTest" ] +} diff --git a/services/screenclient/test/unittest/include/screen_client_test.h b/services/screenclient/test/unittest/include/screen_client_test.h new file mode 100644 index 00000000..465c22db --- /dev/null +++ b/services/screenclient/test/unittest/include/screen_client_test.h @@ -0,0 +1,37 @@ +/* + * 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. + */ + +#ifndef OHOS_SCREEN_CLIENT_TEST_H +#define OHOS_SCREEN_CLIENT_TEST_H + +#include + +#include "dscreen_errcode.h" +#include "dscreen_log.h" +#include "screen_client.h" +#include "screen_client_window_adapter.h" + +namespace OHOS { +namespace DistributedHardware { +class ScreenClientTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); +}; +} // namespace DistributedHardware +} // namespace OHOS +#endif \ No newline at end of file diff --git a/services/screenclient/test/unittest/include/screen_client_window_adapter_test.h b/services/screenclient/test/unittest/include/screen_client_window_adapter_test.h new file mode 100644 index 00000000..68467e77 --- /dev/null +++ b/services/screenclient/test/unittest/include/screen_client_window_adapter_test.h @@ -0,0 +1,41 @@ +/* + * 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. + */ + +#ifndef OHOS_SCREEN_CLIENT_WINDOW_ADAPTER_TEST_H +#define OHOS_SCREEN_CLIENT_WINDOW_ADAPTER_TEST_H + +#include + +#include "rs_surface_node.h" +#include "window_option.h" +#include "wm_common.h" + +#include "dscreen_constants.h" +#include "dscreen_errcode.h" +#include "dscreen_log.h" +#include "screen_client_window_adapter.h" + +namespace OHOS { +namespace DistributedHardware { +class ScreenClientWindowAdapterTest : public testing::Test { +public: + static void SetUpTestCase(void); + static void TearDownTestCase(void); + void SetUp(); + void TearDown(); +}; +} // namespace DistributedHardware +} // namespace OHOS +#endif \ No newline at end of file diff --git a/services/screenclient/test/unittest/src/screen_client_test.cpp b/services/screenclient/test/unittest/src/screen_client_test.cpp new file mode 100644 index 00000000..ad7d3dd2 --- /dev/null +++ b/services/screenclient/test/unittest/src/screen_client_test.cpp @@ -0,0 +1,226 @@ +/* + * 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. + */ + +#define private public +#include "screen_client_test.h" +#undef private + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +void ScreenClientTest::SetUpTestCase(void) {} + +void ScreenClientTest::TearDownTestCase(void) {} + +void ScreenClientTest::SetUp() {} + +void ScreenClientTest::TearDown() {} + +/** + * @tc.name: ShowWindow_001 + * @tc.desc: Verify the ShowWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, ShowWindow_001, TestSize.Level1) +{ + int32_t windowId = INVALID_WINDOW_ID; + int32_t actual = ScreenClient::GetInstance().ShowWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_SHOW_WINDOW_ERROR, actual); +} + +/** + * @tc.name: ShowWindow_002 + * @tc.desc: Verify the ShowWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, ShowWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty); + int32_t actual = ScreenClient::GetInstance().ShowWindow(windowId); + EXPECT_EQ(DH_SUCCESS, actual); + ScreenClient::GetInstance().RemoveWindow(windowId); +} + +/** + * @tc.name: AddWindow_001 + * @tc.desc: Verify the AddWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, AddWindow_001, TestSize.Level1) +{ + std::shared_ptr windowProperty = nullptr; + int32_t actual = ScreenClient::GetInstance().AddWindow(windowProperty); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_ADD_WINDOW_ERROR, actual); +} + +/** + * @tc.name: AddWindow_002 + * @tc.desc: Verify the AddWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, AddWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().windowId_ + 1; + int32_t actual = ScreenClient::GetInstance().AddWindow(windowProperty); + EXPECT_EQ(windowId, actual); + ScreenClient::GetInstance().RemoveWindow(actual); +} + +/** + * @tc.name: MoveWindow_001 + * @tc.desc: Verify the MoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, MoveWindow_001, TestSize.Level1) +{ + int32_t windowId = INVALID_WINDOW_ID; + int32_t startX = 0; + int32_t startY = 0; + int32_t actual = ScreenClient::GetInstance().MoveWindow(windowId, startX, startY); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_MOVE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: MoveWindow_002 + * @tc.desc: Verify the MoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, MoveWindow_002, TestSize.Level1) +{ + int32_t startX = 0; + int32_t startY = 0; + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty); + int32_t actual = ScreenClient::GetInstance().MoveWindow(windowId, startX, startY); + EXPECT_EQ(DH_SUCCESS, actual); + ScreenClient::GetInstance().RemoveWindow(windowId); +} + +/** + * @tc.name: RemoveWindow_001 + * @tc.desc: Verify the RemoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, RemoveWindow_001, TestSize.Level1) +{ + int32_t windowId = INVALID_WINDOW_ID; + int32_t actual = ScreenClient::GetInstance().RemoveWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: RemoveWindow_002 + * @tc.desc: Verify the RemoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, RemoveWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty); + int32_t actual = ScreenClient::GetInstance().RemoveWindow(windowId); + EXPECT_EQ(DH_SUCCESS, actual); +} + +/** + * @tc.name: GetSurface_001 + * @tc.desc: Verify the GetSurface function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, GetSurface_001, TestSize.Level1) +{ + int32_t windowId = INVALID_WINDOW_ID; + sptr actualSurface = ScreenClient::GetInstance().GetSurface(windowId); + EXPECT_EQ(nullptr, actualSurface); +} + +/** + * @tc.name: GetSurface_002 + * @tc.desc: Verify the GetSurface function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, GetSurface_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty); + sptr actualSurface = ScreenClient::GetInstance().GetSurface(windowId); + EXPECT_NE(nullptr, actualSurface); +} + +/** + * @tc.name: HideWindow_001 + * @tc.desc: Verify the HideWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, HideWindow_002, TestSize.Level1) +{ + int32_t windowId = INVALID_WINDOW_ID; + int32_t actual = ScreenClient::GetInstance().HideWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_HIDE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: HideWindow_002 + * @tc.desc: Verify the HideWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientTest, HideWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + windowProperty->startX = 0; + windowProperty->startY = 0; + windowProperty->width = 1; + windowProperty->height = 1; + int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty); + int32_t actual = ScreenClient::GetInstance().HideWindow(windowId); + EXPECT_NE(DH_SUCCESS, actual); + ScreenClient::GetInstance().RemoveWindow(windowId); +} +} // namespace DistributedHardware +} // namespace OHOS \ No newline at end of file diff --git a/services/screenclient/test/unittest/src/screen_client_window_adapter_test.cpp b/services/screenclient/test/unittest/src/screen_client_window_adapter_test.cpp new file mode 100644 index 00000000..cf6dc2f2 --- /dev/null +++ b/services/screenclient/test/unittest/src/screen_client_window_adapter_test.cpp @@ -0,0 +1,182 @@ +/* + * 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. + */ + +#define private public +#include "screen_client_window_adapter_test.h" +#undef private + +using namespace testing::ext; + +namespace OHOS { +namespace DistributedHardware { +void ScreenClientWindowAdapterTest::SetUpTestCase(void) {} + +void ScreenClientWindowAdapterTest::TearDownTestCase(void) {} + +void ScreenClientWindowAdapterTest::SetUp() {} + +void ScreenClientWindowAdapterTest::TearDown() {} + +/** + * @tc.name: CreateWindow_001 + * @tc.desc: Verify the CreateWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, CreateWindow_001, TestSize.Level1) +{ + std::shared_ptr windowProperty = nullptr; + int32_t windowId = 0; + sptr actualSurface = ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + EXPECT_EQ(nullptr, actualSurface); +} + +/** + * @tc.name: CreateWindow_002 + * @tc.desc: Verify the CreateWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, CreateWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + int32_t windowId = 0; + sptr surface = nullptr; + sptr actualSurface = ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + EXPECT_NE(surface, actualSurface); + ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); +} + +/** + * @tc.name: ShowWindow_001 + * @tc.desc: Verify the ShowWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, ShowWindow_001, TestSize.Level1) +{ + int32_t windowId = 0; + int32_t actual = ScreenClientWindowAdapter::GetInstance().ShowWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_SHOW_WINDOW_ERROR, actual); +} + +/** + * @tc.name: ShowWindow_002 + * @tc.desc: Verify the ShowWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, ShowWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + int32_t windowId = 0; + ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + int32_t actual = ScreenClientWindowAdapter::GetInstance().ShowWindow(windowId); + EXPECT_EQ(DH_SUCCESS, actual); + ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); +} + +/** + * @tc.name: MoveWindow_001 + * @tc.desc: Verify the MoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, MoveWindow_001, TestSize.Level1) +{ + int32_t windowId = 0; + int32_t startX = 0; + int32_t startY = 0; + int32_t actual = ScreenClientWindowAdapter::GetInstance().MoveWindow(windowId, startX, startY); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_MOVE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: MoveWindow_002 + * @tc.desc: Verify the MoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, MoveWindow_002, TestSize.Level1) +{ + int32_t windowId = 0; + int32_t startX = 0; + int32_t startY = 0; + std::shared_ptr windowProperty = std::make_shared(); + int32_t windowId = 0; + ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + int32_t actual = ScreenClientWindowAdapter::GetInstance().MoveWindow(windowId, startX, startY); + EXPECT_EQ(DH_SUCCESS, actual); + ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); +} + +/** + * @tc.name: RemoveWindow_001 + * @tc.desc: Verify the RemoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, RemoveWindow_001, TestSize.Level1) +{ + int32_t windowId = 0; + int32_t actual = ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: RemoveWindow_002 + * @tc.desc: Verify the RemoveWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, RemoveWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + int32_t windowId = 0; + ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + int32_t actual = ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); + EXPECT_EQ(DH_SUCCESS, actual); +} + +/** + * @tc.name: HideWindow_001 + * @tc.desc: Verify the HideWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, HideWindow_001, TestSize.Level1) +{ + int32_t windowId = 0; + int32_t actual = ScreenClientWindowAdapter::GetInstance().HideWindow(windowId); + EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_HIDE_WINDOW_ERROR, actual); +} + +/** + * @tc.name: HideWindow_002 + * @tc.desc: Verify the HideWindow function. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(ScreenClientWindowAdapterTest, HideWindow_002, TestSize.Level1) +{ + std::shared_ptr windowProperty = std::make_shared(); + int32_t windowId = 0; + ScreenClientWindowAdapter::GetInstance().CreateWindow(windowProperty, windowId); + int32_t actual = ScreenClientWindowAdapter::GetInstance().HideWindow(windowId); + EXPECT_EQ(DH_SUCCESS, actual); + ScreenClientWindowAdapter::GetInstance().RemoveWindow(windowId); +} +} // namespace DistributedHardware +} // namespace OHOS \ No newline at end of file -- Gitee From bec2bb2df576cfb040266f57ec8ded28a91b0032 Mon Sep 17 00:00:00 2001 From: qinlong0101 Date: Wed, 6 Apr 2022 10:48:52 +0800 Subject: [PATCH 2/2] add screenclient test Signed-off-by: qinlong0101 --- services/screenclient/test/unittest/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/screenclient/test/unittest/BUILD.gn b/services/screenclient/test/unittest/BUILD.gn index 3ec32f8f..1036f955 100644 --- a/services/screenclient/test/unittest/BUILD.gn +++ b/services/screenclient/test/unittest/BUILD.gn @@ -60,7 +60,7 @@ ohos_unittest("ScreenClientTest") { external_deps = [ "hiviewdfx_hilog_native:libhilog", - "multimodalinput_base:libmmi-client", + "input:libmmi-client", ] } -- Gitee