From c19f9d4ba7a6cd810b8a12ba541dc39a5471ce8a Mon Sep 17 00:00:00 2001 From: pwx1285814 Date: Wed, 6 Dec 2023 13:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: pwx1285814 Change-Id: Id53aea6b614f23dee755c4ab575901af3b5b39e6 --- .../dscreenmgr/1.0/include/dscreen_test.h | 1 + .../1.0/include/screen_manager_adapter_test.h | 1 + .../dscreenmgr/1.0/src/dscreen_test.cpp | 37 ++++++++--------- .../1.0/src/screen_manager_adapter_test.cpp | 32 +++++++++++++++ .../include/screen_data_channel_impl_test.h | 1 + .../src/screen_data_channel_impl_test.cpp | 35 ++++++++-------- .../include/screen_source_trans_test.h | 1 + .../src/screen_source_trans_test.cpp | 40 +++++++++++++------ .../unittest/include/softbus_adapter_test.h | 1 + .../unittest/src/softbus_adapter_test.cpp | 26 +++++------- 10 files changed, 108 insertions(+), 67 deletions(-) diff --git a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/dscreen_test.h b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/dscreen_test.h index 22fd20c9..10a0a29b 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/dscreen_test.h +++ b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/dscreen_test.h @@ -32,6 +32,7 @@ public: void SetUp(); void TearDown(); std::shared_ptr dScreen_ = nullptr; + uint64_t tokenId_; }; } // namespace V1_0 } // namespace DistributedHardware diff --git a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/screen_manager_adapter_test.h b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/screen_manager_adapter_test.h index 1f6b5d5c..c7486195 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/screen_manager_adapter_test.h +++ b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/include/screen_manager_adapter_test.h @@ -29,6 +29,7 @@ public: static void TearDownTestCase(void); void SetUp(); void TearDown(); + uint64_t tokenId_; }; class MockScreenGroupListener : public Rosen::ScreenManager::IScreenGroupListener { 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 4e97a7b4..0401884a 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 @@ -17,7 +17,6 @@ #include "accesstoken_kit.h" #include "nativetoken_kit.h" #include "token_setproc.h" -#include "softbus_common.h" #define private public #include "dscreen_constants.h" @@ -59,12 +58,11 @@ void DScreenTestV1::SetUp(void) void DScreenTestV1::TearDown(void) {} -void NativeTokenGet(const char* perms[], int size) +void EnablePermissionAccess(const char* perms[], size_t permsNum, uint64_t &tokenId) { - uint64_t tokenId; NativeTokenInfoParams infoInstance = { .dcapsNum = 0, - .permsNum = size, + .permsNum = permsNum, .aclsNum = 0, .dcaps = nullptr, .perms = perms, @@ -78,18 +76,9 @@ void NativeTokenGet(const char* perms[], int size) OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); } -void EnablePermissionAccess() +void DisablePermissionAccess(const uint64_t &tokenId) { - const char* perms[] = { - "ohos.permission.DISTRIBUTED_DATASYNC", - "ohos.permission.CAPTURE_SCREEN", - }; - NativeTokenGet(perms, 2); // 2 is the size of an array composed of the required permissions. -} - -void DisablePermissionAccess() -{ - NativeTokenGet(nullptr, 0); // empty permission array. + OHOS::Security::AccessToken::AccessTokenKit::DeleteToken(tokenId); } /** @@ -358,7 +347,11 @@ HWTEST_F(DScreenTestV1, NegotiateCodecType_002, TestSize.Level1) */ HWTEST_F(DScreenTestV1, SetUp_001, TestSize.Level1) { - EnablePermissionAccess(); + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); dScreen_->sourceTrans_ = nullptr; dScreen_->videoParam_ = std::make_shared(); dScreen_->videoParam_->SetCodecType(VIDEO_CODEC_TYPE_VIDEO_H264); @@ -370,7 +363,7 @@ HWTEST_F(DScreenTestV1, SetUp_001, TestSize.Level1) dScreen_->version_ = "1.0"; int32_t ret = dScreen_->SetUp(); EXPECT_EQ(DH_SUCCESS, ret); - DisablePermissionAccess(); + DisablePermissionAccess(tokenId_); } /** @@ -381,7 +374,11 @@ HWTEST_F(DScreenTestV1, SetUp_001, TestSize.Level1) */ HWTEST_F(DScreenTestV1, SetUp_002, TestSize.Level1) { - EnablePermissionAccess(); + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); dScreen_->sourceTrans_ = std::make_shared(); dScreen_->videoParam_ = std::make_shared(); dScreen_->videoParam_->SetCodecType(VIDEO_CODEC_TYPE_VIDEO_H264); @@ -392,8 +389,8 @@ HWTEST_F(DScreenTestV1, SetUp_002, TestSize.Level1) dScreen_->videoParam_->SetScreenWidth(100); dScreen_->version_ = "1.0"; int32_t ret = dScreen_->SetUp(); - EXPECT_EQ(ERR_DH_SCREEN_ADAPTER_REGISTER_SOFTBUS_LISTENER_FAIL, ret); - DisablePermissionAccess(); + EXPECT_EQ(DH_SUCCESS, ret); + DisablePermissionAccess(tokenId_); } /** diff --git a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/screen_manager_adapter_test.cpp b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/screen_manager_adapter_test.cpp index 2545eb15..d36d7a96 100644 --- a/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/screen_manager_adapter_test.cpp +++ b/services/screenservice/test/unittest/sourceservice/dscreenmgr/1.0/src/screen_manager_adapter_test.cpp @@ -22,6 +22,9 @@ #include "dscreen_errcode.h" #include "dscreen_util.h" #include "video_param.h" +#include "accesstoken_kit.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" using namespace testing; using namespace testing::ext; @@ -36,6 +39,29 @@ void DScreenManagerAdapterTest::SetUp(void) {} void DScreenManagerAdapterTest::TearDown(void) {} +void EnablePermissionAccess(const char* perms[], size_t permsNum, uint64_t &tokenId) +{ + NativeTokenInfoParams infoInstance = { + .dcapsNum = 0, + .permsNum = permsNum, + .aclsNum = 0, + .dcaps = nullptr, + .perms = perms, + .acls = nullptr, + .aplStr = "system_basic", + }; + + infoInstance.processName = "DscreenMgrTest"; + tokenId = GetAccessTokenId(&infoInstance); + SetSelfTokenID(tokenId); + OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); +} + +void DisablePermissionAccess(const uint64_t &tokenId) +{ + OHOS::Security::AccessToken::AccessTokenKit::DeleteToken(tokenId); +} + /** * @tc.name: CreateVirtualScreen_001 * @tc.desc: Verify the CreateVirtualScreen function failed. @@ -220,12 +246,18 @@ HWTEST_F(DScreenManagerAdapterTest, GetMapRelation_001, TestSize.Level1) */ HWTEST_F(DScreenManagerAdapterTest, GetMapRelation_002, TestSize.Level1) { + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); std::string devId = "devId"; std::string dhId = "dhId"; ScreenMgrAdapter::GetInstance().screenIdMap_.clear(); std::shared_ptr videoParam = std::make_shared(); uint64_t screenId = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam); std::shared_ptr ret = ScreenMgrAdapter::GetInstance().GetMapRelation(screenId); + DisablePermissionAccess(tokenId_); EXPECT_NE(nullptr, ret); } } diff --git a/services/screentransport/test/unittest/screendatachannel/include/screen_data_channel_impl_test.h b/services/screentransport/test/unittest/screendatachannel/include/screen_data_channel_impl_test.h index c2bdc60f..894a4089 100644 --- a/services/screentransport/test/unittest/screendatachannel/include/screen_data_channel_impl_test.h +++ b/services/screentransport/test/unittest/screendatachannel/include/screen_data_channel_impl_test.h @@ -37,6 +37,7 @@ public: void SetUp(); void TearDown(); std::shared_ptr dataChannelImpl_ = nullptr; + uint64_t tokenId_; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/screentransport/test/unittest/screendatachannel/src/screen_data_channel_impl_test.cpp b/services/screentransport/test/unittest/screendatachannel/src/screen_data_channel_impl_test.cpp index c2e5c8c0..7152b3ba 100644 --- a/services/screentransport/test/unittest/screendatachannel/src/screen_data_channel_impl_test.cpp +++ b/services/screentransport/test/unittest/screendatachannel/src/screen_data_channel_impl_test.cpp @@ -21,7 +21,6 @@ #include "accesstoken_kit.h" #include "nativetoken_kit.h" #include "token_setproc.h" -#include "softbus_common.h" using namespace testing; using namespace testing::ext; @@ -43,12 +42,11 @@ void ScreenDataChannelImplTest::TearDown(void) dataChannelImpl_ = nullptr; } -void NativeTokenGet(const char* perms[], int size) +void EnablePermissionAccess(const char* perms[], size_t permsNum, uint64_t &tokenId) { - uint64_t tokenId; NativeTokenInfoParams infoInstance = { .dcapsNum = 0, - .permsNum = size, + .permsNum = permsNum, .aclsNum = 0, .dcaps = nullptr, .perms = perms, @@ -62,18 +60,9 @@ void NativeTokenGet(const char* perms[], int size) OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); } -void EnablePermissionAccess() +void DisablePermissionAccess(const uint64_t &tokenId) { - const char* perms[] = { - "ohos.permission.DISTRIBUTED_DATASYNC", - "ohos.permission.CAPTURE_SCREEN", - }; - NativeTokenGet(perms, 2); // 2 is the size of an array composed of the required permissions. -} - -void DisablePermissionAccess() -{ - NativeTokenGet(nullptr, 0); // empty permission array. + OHOS::Security::AccessToken::AccessTokenKit::DeleteToken(tokenId); } /** @@ -98,13 +87,17 @@ HWTEST_F(ScreenDataChannelImplTest, CreateSession_001, TestSize.Level1) */ HWTEST_F(ScreenDataChannelImplTest, CreateSession_002, TestSize.Level1) { - EnablePermissionAccess(); + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); std::shared_ptr listener = std::make_shared(); dataChannelImpl_->jpegSessionFlag_ = false; int32_t ret = dataChannelImpl_->CreateSession(listener); + DisablePermissionAccess(tokenId_); EXPECT_EQ(DH_SUCCESS, ret); - DisablePermissionAccess(); } /** @@ -186,9 +179,13 @@ HWTEST_F(ScreenDataChannelImplTest, SendDirtyData_002, TestSize.Level1) */ HWTEST_F(ScreenDataChannelImplTest, release_session_test_001, TestSize.Level1) { - EnablePermissionAccess(); + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); EXPECT_EQ(DH_SUCCESS, dataChannelImpl_->ReleaseSession()); - DisablePermissionAccess(); + DisablePermissionAccess(tokenId_); } /** diff --git a/services/screentransport/test/unittest/screensourcetrans/include/screen_source_trans_test.h b/services/screentransport/test/unittest/screensourcetrans/include/screen_source_trans_test.h index cae500ca..f0c29807 100644 --- a/services/screentransport/test/unittest/screensourcetrans/include/screen_source_trans_test.h +++ b/services/screentransport/test/unittest/screensourcetrans/include/screen_source_trans_test.h @@ -37,6 +37,7 @@ public: void TearDown(); std::shared_ptr trans = nullptr; + uint64_t tokenId_; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/screentransport/test/unittest/screensourcetrans/src/screen_source_trans_test.cpp b/services/screentransport/test/unittest/screensourcetrans/src/screen_source_trans_test.cpp index 685c20c8..b442d6b1 100644 --- a/services/screentransport/test/unittest/screensourcetrans/src/screen_source_trans_test.cpp +++ b/services/screentransport/test/unittest/screensourcetrans/src/screen_source_trans_test.cpp @@ -18,7 +18,6 @@ #include "accesstoken_kit.h" #include "nativetoken_kit.h" #include "token_setproc.h" -#include "softbus_common.h" using namespace testing::ext; @@ -30,28 +29,33 @@ void ScreenSourceTransTest::TearDownTestCase(void) {} void ScreenSourceTransTest::SetUp(void) { - uint64_t tokenId; - const char *perms[] = { - OHOS_PERMISSION_DISTRIBUTED_SOFTBUS_CENTER, - OHOS_PERMISSION_DISTRIBUTED_DATASYNC - }; + trans = std::make_shared(); +} + +void ScreenSourceTransTest::TearDown(void) {} + +void EnablePermissionAccess(const char* perms[], size_t permsNum, uint64_t &tokenId) +{ NativeTokenInfoParams infoInstance = { .dcapsNum = 0, - .permsNum = 2, + .permsNum = permsNum, .aclsNum = 0, - .dcaps = NULL, + .dcaps = nullptr, .perms = perms, - .acls = NULL, - .processName = "SourceTransTest", + .acls = nullptr, .aplStr = "system_basic", }; + + infoInstance.processName = "SourceTransTest"; tokenId = GetAccessTokenId(&infoInstance); SetSelfTokenID(tokenId); OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); - trans = std::make_shared(); } -void ScreenSourceTransTest::TearDown(void) {} +void DisablePermissionAccess(const uint64_t &tokenId) +{ + OHOS::Security::AccessToken::AccessTokenKit::DeleteToken(tokenId); +} /** * @tc.name: RegisterChannelListener_001 @@ -106,6 +110,11 @@ HWTEST_F(ScreenSourceTransTest, SetUp_001, TestSize.Level1) */ HWTEST_F(ScreenSourceTransTest, SetUp_002, TestSize.Level1) { + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); VideoParam localParam; localParam.SetCodecType(VIDEO_CODEC_TYPE_VIDEO_H264); localParam.SetVideoFormat(VIDEO_DATA_FORMAT_YUVI420); @@ -122,6 +131,7 @@ HWTEST_F(ScreenSourceTransTest, SetUp_002, TestSize.Level1) remoteParam.SetScreenWidth(100); int32_t actual = trans->SetUp(localParam, remoteParam, "peerDevId"); + DisablePermissionAccess(tokenId_); EXPECT_EQ(DH_SUCCESS, actual); } @@ -134,11 +144,17 @@ HWTEST_F(ScreenSourceTransTest, SetUp_002, TestSize.Level1) */ HWTEST_F(ScreenSourceTransTest, InitScreenTrans_001, TestSize.Level1) { + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); VideoParam localParam; VideoParam remoteParam; std::string peerDevId = "sinkDevId"; trans->screenChannel_ = std::make_shared(); int32_t actual = trans->InitScreenTrans(localParam, remoteParam, peerDevId); + DisablePermissionAccess(tokenId_); EXPECT_EQ(ERR_DH_SCREEN_CODEC_SURFACE_ERROR, actual); } diff --git a/services/softbusadapter/test/unittest/include/softbus_adapter_test.h b/services/softbusadapter/test/unittest/include/softbus_adapter_test.h index fb67ed50..febfa80d 100644 --- a/services/softbusadapter/test/unittest/include/softbus_adapter_test.h +++ b/services/softbusadapter/test/unittest/include/softbus_adapter_test.h @@ -40,6 +40,7 @@ public: void TearDown(); SoftbusAdapter softbusAdapter; + uint64_t tokenId_; }; class MockSoftbusListener : public ISoftbusListener { public: diff --git a/services/softbusadapter/test/unittest/src/softbus_adapter_test.cpp b/services/softbusadapter/test/unittest/src/softbus_adapter_test.cpp index f240f894..da3a0039 100644 --- a/services/softbusadapter/test/unittest/src/softbus_adapter_test.cpp +++ b/services/softbusadapter/test/unittest/src/softbus_adapter_test.cpp @@ -14,7 +14,6 @@ */ #include "softbus_adapter_test.h" - #include "accesstoken_kit.h" #include "nativetoken_kit.h" #include "token_setproc.h" @@ -31,12 +30,11 @@ void SoftbusAdapterTest::SetUp(void) {} void SoftbusAdapterTest::TearDown(void) {} -void NativeTokenGet(const char* perms[], int size) +void EnablePermissionAccess(const char* perms[], size_t permsNum, uint64_t &tokenId) { - uint64_t tokenId; NativeTokenInfoParams infoInstance = { .dcapsNum = 0, - .permsNum = size, + .permsNum = permsNum, .aclsNum = 0, .dcaps = nullptr, .perms = perms, @@ -50,19 +48,11 @@ void NativeTokenGet(const char* perms[], int size) OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); } -void EnablePermissionAccess() +void DisablePermissionAccess(const uint64_t &tokenId) { - const char* perms[] = { - "ohos.permission.DISTRIBUTED_DATASYNC", - "ohos.permission.CAPTURE_SCREEN", - }; - NativeTokenGet(perms, 2); // 2 is the size of an array composed of the required permissions. + OHOS::Security::AccessToken::AccessTokenKit::DeleteToken(tokenId); } -void DisablePermissionAccess() -{ - NativeTokenGet(nullptr, 0); // empty permission array. -} static int32_t ScreenOnSoftbusSessionOpened(int32_t sessionId, int32_t result) { return 0; @@ -87,7 +77,11 @@ static void ScreenOnQosEvent(int sessionId, int eventId, int tvCount, const QosT */ HWTEST_F(SoftbusAdapterTest, CreateSoftbusSessionServer_001, TestSize.Level1) { - EnablePermissionAccess(); + const char* perms[] = { + "ohos.permission.DISTRIBUTED_DATASYNC", + "ohos.permission.CAPTURE_SCREEN", + }; + EnablePermissionAccess(perms, sizeof(perms) / sizeof(perms[0]), tokenId_); softbusAdapter.sessListener_.OnSessionOpened = ScreenOnSoftbusSessionOpened; softbusAdapter.sessListener_.OnSessionClosed = ScreenOnSoftbusSessionClosed; softbusAdapter.sessListener_.OnBytesReceived = ScreenOnBytesReceived; @@ -120,7 +114,7 @@ HWTEST_F(SoftbusAdapterTest, CreateSoftbusSessionServer_001, TestSize.Level1) int32_t actual = softbusAdapter.CreateSoftbusSessionServer(pkgname, sessionName, peerDevId); EXPECT_EQ(DH_SUCCESS, actual); softbusAdapter.RemoveSoftbusSessionServer(pkgname, sessionName, peerDevId); - DisablePermissionAccess(); + DisablePermissionAccess(tokenId_); } /** -- Gitee