1 /*
2 * Copyright (c) 2024 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 "access_token.h"
19 #include "accesstoken_kit.h"
20 #include "app_manager_access_client.h"
21 #include "app_state_data.h"
22 #define private public
23 #include "audio_manager_adapter.h"
24 #undef private
25 #include "token_setproc.h"
26
27 using namespace testing::ext;
28
29 namespace OHOS {
30 namespace Security {
31 namespace AccessToken {
32 class SensitiveManagerCoverageTest : public testing::Test {
33 public:
34 static void SetUpTestCase();
35 static void TearDownTestCase();
36 void SetUp();
37 void TearDown();
38 };
SetUpTestCase()39 void SensitiveManagerCoverageTest::SetUpTestCase()
40 {
41 }
42
TearDownTestCase()43 void SensitiveManagerCoverageTest::TearDownTestCase()
44 {
45 }
46
SetUp()47 void SensitiveManagerCoverageTest::SetUp()
48 {
49 }
50
TearDown()51 void SensitiveManagerCoverageTest::TearDown()
52 {
53 }
54
55 class SensitiveManagerCoverageTestCb1 : public ApplicationStateObserverStub {
56 public:
57 SensitiveManagerCoverageTestCb1() = default;
58 virtual ~SensitiveManagerCoverageTestCb1() = default;
59
OnAppStateChanged(const AppStateData & appStateData)60 void OnAppStateChanged(const AppStateData &appStateData)
61 {
62 GTEST_LOG_(INFO) << "OnAppStateChanged, state is "
63 << appStateData.state;
64 }
65 };
66
67 /**
68 * @tc.name: OnRemoteRequest001
69 * @tc.desc: ApplicationStateObserverStub::OnRemoteRequest function test
70 * @tc.type: FUNC
71 * @tc.require:
72 */
73 HWTEST_F(SensitiveManagerCoverageTest, OnRemoteRequest001, TestSize.Level4)
74 {
75 AppStateData appData;
76 SensitiveManagerCoverageTestCb1 callback;
77
78 OHOS::MessageParcel data;
79 OHOS::MessageParcel reply;
80 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
81
82 ASSERT_EQ(true, data.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
83 ASSERT_EQ(true, data.WriteParcelable(&appData));
84 uint32_t code = -1;
85 ASSERT_NE(0, callback.OnRemoteRequest(code, data, reply, option)); // code default
86 }
87
88 /**
89 * @tc.name: OnRemoteRequest002
90 * @tc.desc: ApplicationStateObserverStub::OnRemoteRequest function test
91 * @tc.type: FUNC
92 * @tc.require:
93 */
94 HWTEST_F(SensitiveManagerCoverageTest, OnRemoteRequest002, TestSize.Level4)
95 {
96 AppStateData appData;
97 SensitiveManagerCoverageTestCb1 callback;
98
99 OHOS::MessageParcel data;
100 OHOS::MessageParcel reply;
101 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
102
103 appData.state = static_cast<int32_t>(ApplicationState::APP_STATE_FOREGROUND);
104 ASSERT_EQ(true, data.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
105 ASSERT_EQ(true, data.WriteParcelable(&appData));
106 // code not default + state = 3
107 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
108 IApplicationStateObserver::Message::TRANSACT_ON_APP_STATE_CHANGED), data, reply, option));
109
110 OHOS::MessageParcel data2;
111 OHOS::MessageParcel reply2;
112 ASSERT_EQ(true, data2.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
113 ASSERT_EQ(true, data2.WriteParcelable(&appData));
114 // code not default + state = 3
115 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
116 IApplicationStateObserver::Message::TRANSACT_ON_PROCESS_STATE_CHANGED), data2, reply2, option));
117
118 OHOS::MessageParcel data3;
119 OHOS::MessageParcel reply3;
120 ASSERT_EQ(true, data3.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
121 ASSERT_EQ(true, data3.WriteParcelable(&appData));
122 // code not default + state = 3
123 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
124 IApplicationStateObserver::Message::TRANSACT_ON_PROCESS_DIED), data3, reply3, option));
125
126 OHOS::MessageParcel data4;
127 OHOS::MessageParcel reply4;
128 ASSERT_EQ(true, data4.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
129 ASSERT_EQ(true, data4.WriteParcelable(&appData));
130 // code not default + state = 3
131 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
132 IApplicationStateObserver::Message::TRANSACT_ON_APP_STOPPED), data4, reply4, option));
133
134 OHOS::MessageParcel data5;
135 OHOS::MessageParcel reply5;
136 ASSERT_EQ(true, data5.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
137 ASSERT_EQ(true, data5.WriteParcelable(&appData));
138 // code not default + state = 3
139 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
140 IApplicationStateObserver::Message::TRANSACT_ON_APP_CACHE_STATE_CHANGED), data5, reply5, option));
141 }
142
143 /**
144 * @tc.name: OnRemoteRequest003
145 * @tc.desc: ApplicationStateObserverStub::OnRemoteRequest function test
146 * @tc.type: FUNC
147 * @tc.require:
148 */
149 HWTEST_F(SensitiveManagerCoverageTest, OnRemoteRequest003, TestSize.Level4)
150 {
151 AppStateData appData;
152 SensitiveManagerCoverageTestCb1 callback;
153
154 OHOS::MessageParcel data;
155 OHOS::MessageParcel reply;
156 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
157
158 appData.state = static_cast<int32_t>(ApplicationState::APP_STATE_BACKGROUND);
159 ASSERT_EQ(true, data.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
160 ASSERT_EQ(true, data.WriteParcelable(&appData));
161 // code not default + state = 5
162 ASSERT_EQ(0, callback.OnRemoteRequest(static_cast<uint32_t>(
163 IApplicationStateObserver::Message::TRANSACT_ON_APP_STATE_CHANGED), data, reply, option));
164 }
165
166 /**
167 * @tc.name: OnRemoteRequest004
168 * @tc.desc: ApplicationStateObserverStub::OnRemoteRequest function test
169 * @tc.type: FUNC
170 * @tc.require:
171 */
172 HWTEST_F(SensitiveManagerCoverageTest, OnRemoteRequest004, TestSize.Level4)
173 {
174 SensitiveManagerCoverageTestCb1 callback;
175
176 OHOS::MessageParcel reply;
177 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
178
179 OHOS::MessageParcel data1;
180 ASSERT_EQ(true, data1.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
181 callback.OnRemoteRequest(static_cast<uint32_t>(
182 IApplicationStateObserver::Message::TRANSACT_ON_APP_STATE_CHANGED), data1, reply, option);
183
184 OHOS::MessageParcel data2;
185 ASSERT_EQ(true, data2.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
186 callback.OnRemoteRequest(static_cast<uint32_t>(
187 IApplicationStateObserver::Message::TRANSACT_ON_PROCESS_STATE_CHANGED), data2, reply, option);
188
189 OHOS::MessageParcel data3;
190 ASSERT_EQ(true, data3.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
191 callback.OnRemoteRequest(static_cast<uint32_t>(
192 IApplicationStateObserver::Message::TRANSACT_ON_PROCESS_DIED), data3, reply, option);
193
194 OHOS::MessageParcel data4;
195 ASSERT_EQ(true, data4.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
196 callback.OnRemoteRequest(static_cast<uint32_t>(
197 IApplicationStateObserver::Message::TRANSACT_ON_APP_STOPPED), data4, reply, option);
198
199 OHOS::MessageParcel data5;
200 ASSERT_EQ(true, data5.WriteInterfaceToken(IApplicationStateObserver::GetDescriptor()));
201 callback.OnRemoteRequest(static_cast<uint32_t>(
202 IApplicationStateObserver::Message::TRANSACT_ON_APP_CACHE_STATE_CHANGED), data5, reply, option);
203 }
204 } // namespace AccessToken
205 } // namespace Security
206 } // namespace OHOS
207