From 17efdd4d7508b6eaaca6aa72d3bf0709da8ae7bf Mon Sep 17 00:00:00 2001 From: pwx1285814 Date: Mon, 18 Nov 2024 16:56:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85UT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: pwx1285814 --- .../1.0/src/screenregionmgr_test.cpp | 2 +- .../1.0/src/dscreen_manager_test.cpp | 215 ++++++++++++++++-- .../dscreenmgr/1.0/src/dscreen_test.cpp | 21 ++ .../dscreen_source_callback_stub_test.cpp | 8 +- 4 files changed, 223 insertions(+), 23 deletions(-) diff --git a/services/screenservice/test/unittest/sinkservice/screenregionmgr/1.0/src/screenregionmgr_test.cpp b/services/screenservice/test/unittest/sinkservice/screenregionmgr/1.0/src/screenregionmgr_test.cpp index a42c723f..8cb5837b 100644 --- a/services/screenservice/test/unittest/sinkservice/screenregionmgr/1.0/src/screenregionmgr_test.cpp +++ b/services/screenservice/test/unittest/sinkservice/screenregionmgr/1.0/src/screenregionmgr_test.cpp @@ -181,7 +181,7 @@ HWTEST_F(ScreenRegionManagerTestV1, HandleNotifySetUp_003, TestSize.Level1) const std::string eventContent = "{\"dhIds\"\"SCREEN#0\", \"mapRelations\":{\"displayIds\":0, \ \"displayRects\":{\"heights\":1280, \"startXs\":0, \"startYs\":0, \"widths\":720}, \"screenIds\":2, \ \"screenRects\":{\"heights\":1280, \"startXs\":0, \"startYs\":0, \"widths\":720}}, \"screenIds\":2, \ - \"videoParams\":{\"codecTypes\":2, \"colorFormats\":3, \"fpss\":30, \"screenHeights\":1280, \ + \"videoParam\":{\"codecTypes\":2, \"colorFormats\":3, \"fpss\":30, \"screenHeights\":1280, \ \"screenWidths\":720, \"videoHeights\":1280, \"videoWidths\":720}}"; ScreenRegionManager::GetInstance().HandleNotifySetUp(remoteDevId, eventContent); diff --git a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_manager_test.cpp b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_manager_test.cpp index 73a0961e..b0d72b39 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_manager_test.cpp +++ b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_manager_test.cpp @@ -25,9 +25,15 @@ void DScreenManagerTestV1::SetUpTestCase(void) {} void DScreenManagerTestV1::TearDownTestCase(void) {} -void DScreenManagerTestV1::SetUp() {} +void DScreenManagerTestV1::SetUp() +{ + DScreenManager::GetInstance().Init(); +} -void DScreenManagerTestV1::TearDown() {} +void DScreenManagerTestV1::TearDown() +{ + DScreenManager::GetInstance().UnInit(); +} /** * @tc.name: Init_001 @@ -146,19 +152,6 @@ HWTEST_F(DScreenManagerTestV1, OnUnregResult_001, TestSize.Level1) EXPECT_EQ(DH_SUCCESS, ret); } -/** - * @tc.name: GetScreenDumpInfo_001 - * @tc.desc: Verify the GetScreenDumpInfo function failed. - * @tc.type: FUNC - * @tc.require: Issue Number - */ -HWTEST_F(DScreenManagerTestV1, GetScreenDumpInfo_001, TestSize.Level1) -{ - std::string result; - DScreenManager::GetInstance().GetScreenDumpInfo(result); - EXPECT_EQ(false, result.empty()); -} - /** * @tc.name: EnableDistributedScreen_001 * @tc.desc: Verify the EnableDistributedScreen function failed. @@ -235,6 +228,63 @@ HWTEST_F(DScreenManagerTestV1, FindDScreenByScreenId_001, TestSize.Level1) EXPECT_EQ(nullptr, dScreen); } +/** + * @tc.name: FindDScreenByScreenId_002 + * @tc.desc: Verify the FindDScreenByScreenId function failed. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, FindDScreenByScreenId_002, TestSize.Level1) +{ + uint64_t dScreenId = 999; + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreen = nullptr; + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + std::shared_ptr screen = DScreenManager::GetInstance().FindDScreenByScreenId(dScreenId); + EXPECT_EQ(nullptr, screen); + DScreenManager::GetInstance().dScreens_.clear(); +} + +/** + * @tc.name: FindDScreenByScreenId_003 + * @tc.desc: Verify the FindDScreenByScreenId function failed. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, FindDScreenByScreenId_003, TestSize.Level1) +{ + uint64_t dScreenId = 999; + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreenCallback = std::make_shared(); + std::shared_ptr dScreen = std::make_shared("devId000", "dhId000", dScreenCallback); + dScreen->screenId_ = dScreenId; + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + std::shared_ptr screen = DScreenManager::GetInstance().FindDScreenByScreenId(dScreenId); + EXPECT_NE(nullptr, screen); + DScreenManager::GetInstance().dScreens_.clear(); +} + +/** + * @tc.name: GetScreenDumpInfo_001 + * @tc.desc: Verify the GetScreenDumpInfo function failed. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, GetScreenDumpInfo_001, TestSize.Level1) +{ + std::string result; + DScreenManager::GetInstance().GetScreenDumpInfo(result); + EXPECT_EQ(false, result.empty()); +} + /** * @tc.name: GetScreenDumpInfo_002 * @tc.desc: Verify the GetScreenDumpInfo function failed. @@ -243,9 +293,35 @@ HWTEST_F(DScreenManagerTestV1, FindDScreenByScreenId_001, TestSize.Level1) */ HWTEST_F(DScreenManagerTestV1, GetScreenDumpInfo_002, TestSize.Level1) { + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreen = nullptr; + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; std::string result; DScreenManager::GetInstance().GetScreenDumpInfo(result); EXPECT_EQ(false, result.empty()); + + std::shared_ptr dScreenCallback = std::make_shared(); + dScreen = std::make_shared("devId000", "dhId000", dScreenCallback); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + DScreenManager::GetInstance().GetScreenDumpInfo(result); + EXPECT_EQ(false, result.empty()); + + dScreen = std::make_shared("devId000", "dhId000", dScreenCallback); + std::shared_ptr videoParam = std::make_shared(); + videoParam->screenWidth_ = DSCREEN_MAX_SCREEN_DATA_WIDTH; + videoParam->screenHeight_ = DSCREEN_MAX_SCREEN_DATA_HEIGHT; + videoParam->videoWidth_ = DSCREEN_MAX_VIDEO_DATA_WIDTH; + videoParam->videoHeight_ = DSCREEN_MAX_VIDEO_DATA_HEIGHT; + videoParam->codecType_ = VIDEO_CODEC_TYPE_VIDEO_H264; + videoParam->videoFormat_ = VIDEO_DATA_FORMAT_YUVI420; + videoParam->fps_ = 30.0; + dScreen->SetVideoParam(videoParam); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + DScreenManager::GetInstance().GetScreenDumpInfo(result); + EXPECT_EQ(false, result.empty()); } /** @@ -297,6 +373,10 @@ HWTEST_F(DScreenManagerTestV1, PublishMessage_001, TestSize.Level1) std::shared_ptr dScreen = std::make_shared("devId000", "dhId000", dScreenCallback); DScreenManager::GetInstance().PublishMessage(DHTopic::TOPIC_START_DSCREEN, dScreen); + std::shared_ptr videoParam = std::make_shared(); + dScreen->SetVideoParam(videoParam); + DScreenManager::GetInstance().PublishMessage(DHTopic::TOPIC_START_DSCREEN, dScreen); + DScreenManager::GetInstance().PublishMessage(DHTopic::TOPIC_STOP_DSCREEN, dScreen); DScreenManager::GetInstance().PublishMessage(DHTopic::TOPIC_MIN, dScreen); @@ -317,8 +397,23 @@ HWTEST_F(DScreenManagerTestV1, NotifyRemoteSinkSetUp_001, TestSize.Level1) std::shared_ptr dScreen = std::make_shared("devId000", "dhId000", dScreenCallback); DScreenManager::GetInstance().NotifyRemoteSinkSetUp(dScreen); - int32_t ret = DScreenManager::GetInstance().Init(); - EXPECT_EQ(DH_SUCCESS, ret); + std::shared_ptr videoParam = std::make_shared(); + videoParam->screenWidth_ = DSCREEN_MAX_SCREEN_DATA_WIDTH; + videoParam->screenHeight_ = DSCREEN_MAX_SCREEN_DATA_HEIGHT; + videoParam->videoWidth_ = DSCREEN_MAX_VIDEO_DATA_WIDTH; + videoParam->videoHeight_ = DSCREEN_MAX_VIDEO_DATA_HEIGHT; + videoParam->codecType_ = VIDEO_CODEC_TYPE_VIDEO_H264; + videoParam->videoFormat_ = VIDEO_DATA_FORMAT_YUVI420; + videoParam->fps_ = 30.0; + dScreen->SetVideoParam(videoParam); + DScreenManager::GetInstance().NotifyRemoteSinkSetUp(dScreen); + + std::shared_ptr mapRelation = std::make_shared(); + uint64_t dScreenId = 999; + dScreen->screenId_ = dScreenId; + DScreenManager::GetInstance().mapRelations_[dScreenId] = mapRelation; + DScreenManager::GetInstance().NotifyRemoteSinkSetUp(dScreen); + EXPECT_TRUE(DScreenManager::GetInstance().localDevId_.empty()); } /** @@ -352,17 +447,97 @@ HWTEST_F(DScreenManagerTestV1, HandleNotifySetUpResult_001, TestSize.Level1) /** * @tc.name: DisableDistributedScreen_001 - * @tc.desc: Verify the DisableDistributedScreen function failed. + * @tc.desc: Verify the DisableDistributedScreen function when dScreens_ is empty. * @tc.type: FUNC * @tc.require: Issue Number */ HWTEST_F(DScreenManagerTestV1, DisableDistributedScreen_001, TestSize.Level1) { - int32_t ret = DScreenManager::GetInstance().DisableDistributedScreen("devId111", "dhId111", "reqId111"); + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + int32_t ret = DScreenManager::GetInstance().DisableDistributedScreen(devId, dhId, reqId); EXPECT_EQ(DH_SUCCESS, ret); - ret = DScreenManager::GetInstance().UnInit(); + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreen = nullptr; + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + ret = DScreenManager::GetInstance().DisableDistributedScreen(devId, dhId, reqId); + EXPECT_EQ(ERR_DH_SCREEN_SA_DISABLE_FAILED, ret); + DScreenManager::GetInstance().dScreens_.clear(); +} + +/** + * @tc.name: DisableDistributedScreen_002 + * @tc.desc: Verify the DisableDistributedScreen function when DScreen state is DISABLED. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, DisableDistributedScreen_002, TestSize.Level1) +{ + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + uint64_t dScreenId = 1000; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreenCallback = std::make_shared(); + std::shared_ptr dScreen = std::make_shared(devId, dhId, dScreenCallback); + dScreen->screenId_ = dScreenId; + dScreen->SetState(DScreenState::DISABLED); + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + int32_t ret = DScreenManager::GetInstance().DisableDistributedScreen(devId, dhId, reqId); + EXPECT_EQ(ERR_DH_SCREEN_SA_DISABLE_FAILED, ret); + DScreenManager::GetInstance().dScreens_.clear(); +} + +/** + * @tc.name: DisableDistributedScreen_003 + * @tc.desc: Verify the DisableDistributedScreen function when DScreen state is ENABLED. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, DisableDistributedScreen_003, TestSize.Level1) +{ + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + uint64_t dScreenId = 1000; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreenCallback = nullptr; + std::shared_ptr dScreen = std::make_shared(devId, dhId, dScreenCallback); + dScreen->screenId_ = dScreenId; + dScreen->SetState(DScreenState::ENABLED); + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + int32_t ret = DScreenManager::GetInstance().DisableDistributedScreen(devId, dhId, reqId); + EXPECT_EQ(DH_SUCCESS, ret); + DScreenManager::GetInstance().dScreens_.clear(); +} + +/** + * @tc.name: DisableDistributedScreen_004 + * @tc.desc: Verify the DisableDistributedScreen function when DScreen state is CONNECTING. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenManagerTestV1, DisableDistributedScreen_004, TestSize.Level1) +{ + std::string devId = "devId000"; + std::string dhId = "dhId000"; + std::string reqId = "reqId000"; + uint64_t dScreenId = 1000; + std::string dScreenIdx = devId + SEPERATOR + dhId; + std::shared_ptr dScreenCallback = nullptr; + std::shared_ptr dScreen = std::make_shared(devId, dhId, dScreenCallback); + dScreen->screenId_ = dScreenId; + dScreen->SetState(DScreenState::CONNECTING); + DScreenManager::GetInstance().dScreens_.clear(); + DScreenManager::GetInstance().dScreens_[dScreenIdx] = dScreen; + int32_t ret = DScreenManager::GetInstance().DisableDistributedScreen(devId, dhId, reqId); EXPECT_EQ(DH_SUCCESS, ret); + DScreenManager::GetInstance().dScreens_.clear(); } } // namespace V1_0 } // namespace DistributedHardware diff --git a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_test.cpp b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_test.cpp index 5a259a54..8b8921fa 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_test.cpp +++ b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/dscreen_test.cpp @@ -317,6 +317,14 @@ HWTEST_F(DScreenTestV1, CheckJsonData_003, TestSize.Level1) int32_t ret = dScreen_->CheckJsonData(attrJson); EXPECT_EQ(DH_SUCCESS, ret); + + attrJson[KEY_SCREEN_HEIGHT] = DSCREEN_MAX_SCREEN_DATA_HEIGHT + 1; + ret = dScreen_->CheckJsonData(attrJson); + EXPECT_EQ(ERR_DH_SCREEN_SA_ENABLE_JSON_ERROR, ret); + + attrJson[KEY_SCREEN_WIDTH] = DSCREEN_MAX_SCREEN_DATA_WIDTH + 1; + ret = dScreen_->CheckJsonData(attrJson); + EXPECT_EQ(ERR_DH_SCREEN_SA_ENABLE_JSON_ERROR, ret); } /** @@ -346,6 +354,19 @@ HWTEST_F(DScreenTestV1, NegotiateCodecType_002, TestSize.Level1) EXPECT_EQ(ERR_DH_SCREEN_SA_DSCREEN_NEGOTIATE_CODEC_FAIL, ret); } +/** + * @tc.name: NegotiateCodecType_003 + * @tc.desc: Verify the NegotiateCodecType function failed. + * @tc.type: FUNC + * @tc.require: Issue Number + */ +HWTEST_F(DScreenTestV1, NegotiateCodecType_003, TestSize.Level1) +{ + std::string remoteCodecInfoStr = "[\"test\"]"; + int32_t ret = dScreen_->NegotiateCodecType(remoteCodecInfoStr); + EXPECT_EQ(ERR_DH_SCREEN_SA_DSCREEN_NEGOTIATE_CODEC_FAIL, ret); +} + /** * @tc.name: SetUp_001 * @tc.desc: Verify the SetUp function failed. diff --git a/services/screenservice/test/unittest/sourceservice/dscreenservice/src/callback/dscreen_source_callback_stub_test.cpp b/services/screenservice/test/unittest/sourceservice/dscreenservice/src/callback/dscreen_source_callback_stub_test.cpp index d67792e9..17080292 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenservice/src/callback/dscreen_source_callback_stub_test.cpp +++ b/services/screenservice/test/unittest/sourceservice/dscreenservice/src/callback/dscreen_source_callback_stub_test.cpp @@ -13,9 +13,9 @@ * limitations under the License. */ -#include "dscreen_source_callback_stub_test.h" - #include +#include "dscreen_source_callback_stub_test.h" +#include "dscreen_constants.h" using namespace testing; using namespace testing::ext; @@ -136,6 +136,10 @@ HWTEST_F(DScreenSourceCallbackStubTest, OnNotifyUnregResult_001, TestSize.Level1 ret = sourceCbkProxy.OnNotifyUnregResult("devId000", "dhId000", "reqId000", 0, "data000"); EXPECT_EQ(DH_SUCCESS, ret); + + std::string exceedParamMaxSizeStr(PARAM_MAX_SIZE + 1, 'a'); + ret = sourceCbkProxy.OnNotifyUnregResult("devId000", "dhId000", "reqId000", 0, exceedParamMaxSizeStr); + EXPECT_NE(DH_SUCCESS, ret); } } // namespace DistributedHardware } // namespace OHOS -- Gitee