1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #include "istorage_manager.h"
19 #include "storage_manager_proxy.h"
20 #include "system_ability_definition.h"
21 #define private public
22 #include "uri_permission_manager_stub_impl.h"
23 #undef private
24
25 using namespace testing;
26 using namespace testing::ext;
27
28 namespace OHOS {
29 namespace AAFwk {
30 class UriPermissionTest : public testing::Test {
31 public:
32 static void SetUpTestCase();
33 static void TearDownTestCase();
34 void SetUp() override;
35 void TearDown() override;
36 };
37
SetUpTestCase()38 void UriPermissionTest::SetUpTestCase() {}
39
TearDownTestCase()40 void UriPermissionTest::TearDownTestCase() {}
41
SetUp()42 void UriPermissionTest::SetUp() {}
43
TearDown()44 void UriPermissionTest::TearDown() {}
45
46 /*
47 * Feature: URIPermissionManagerService
48 * Function: GrantUriPermission
49 * SubFunction: NA
50 * FunctionPoints: URIPermissionManagerService GrantUriPermission
51 */
52 HWTEST_F(UriPermissionTest, Upms_GrantUriPermission_001, TestSize.Level1)
53 {
54 auto upms = std::make_shared<UriPermissionManagerStubImpl>();
55 EXPECT_NE(upms, nullptr);
56 auto uriStr = "file://com.example.test/data/storage/el2/base/haps/entry/files/test_A.txt";
57 Uri uri(uriStr);
58 unsigned int flag = 1;
59 std::string targetBundleName = "name2";
60 int autoremove = 1;
61 upms->GrantUriPermission(uri, flag, targetBundleName, autoremove);
62 }
63
64 /*
65 * Feature: URIPermissionManagerService
66 * Function: ConnectManager
67 * SubFunction: NA
68 * FunctionPoints: URIPermissionManagerService ConnectManager
69 */
70 HWTEST_F(UriPermissionTest, Upms_ConnectManager_001, TestSize.Level1)
71 {
72 auto upms = std::make_unique<UriPermissionManagerStubImpl>();
73 ASSERT_NE(upms, nullptr);
74 sptr<StorageManager::IStorageManager> storageManager = nullptr;
75 upms->ConnectManager(storageManager, STORAGE_MANAGER_MANAGER_ID);
76 ASSERT_NE(storageManager, nullptr);
77 }
78
79 /*
80 * Feature: URIPermissionManagerService
81 * Function: RevokeUriPermission
82 * SubFunction: NA
83 * FunctionPoints: URIPermissionManagerService RevokeUriPermission
84 */
85 HWTEST_F(UriPermissionTest, Upms_RevokeUriPermission_001, TestSize.Level1)
86 {
87 auto upms = std::make_shared<UriPermissionManagerStubImpl>();
88 EXPECT_NE(upms, nullptr);
89 unsigned int tmpFlag = 1;
90 uint32_t fromTokenId = 2;
91 uint32_t targetTokenId = 3;
92 int autoremove = 1;
93 GrantInfo info = { tmpFlag, fromTokenId, targetTokenId, autoremove };
94 std::list<GrantInfo> infoList = { info };
95 auto uriStr = "file://com.example.test/data/storage/el2/base/haps/entry/files/test_A.txt";
96 upms->uriMap_.emplace(uriStr, infoList);
97 upms->RevokeUriPermission(targetTokenId);
98 }
99
100 /*
101 * Feature: URIPermissionManagerService
102 * Function: OnRemoteDied
103 * SubFunction: NA
104 * FunctionPoints: URIPermissionManagerService OnRemoteDied
105 */
106 HWTEST_F(UriPermissionTest, Upms_OnRemoteDied_001, TestSize.Level1)
107 {
__anone3c7fc780102(const wptr<IRemoteObject>& remote) 108 const auto& onClearProxyCallback = [](const wptr<IRemoteObject>& remote) {};
109 sptr<UriPermissionManagerStubImpl::ProxyDeathRecipient> object =
110 new UriPermissionManagerStubImpl::ProxyDeathRecipient(onClearProxyCallback);
111 EXPECT_NE(object, nullptr);
112 object->OnRemoteDied(nullptr);
113 }
114
115 /*
116 * Feature: URIPermissionManagerService
117 * Function: OnRemoteDied
118 * SubFunction: NA
119 * FunctionPoints: URIPermissionManagerService OnRemoteDied
120 */
121 HWTEST_F(UriPermissionTest, Upms_OnRemoteDied_002, TestSize.Level1)
122 {
123 sptr<UriPermissionManagerStubImpl::ProxyDeathRecipient> object =
124 new UriPermissionManagerStubImpl::ProxyDeathRecipient(nullptr);
125 EXPECT_NE(object, nullptr);
126 object->OnRemoteDied(nullptr);
127 }
128 } // namespace AAFwk
129 } // namespace OHOS
130