• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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