• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 "appstate_observer.h"
17 
18 #include <cstring>
19 #include <fcntl.h>
20 #include <gmock/gmock.h>
21 #include <gtest/gtest.h>
22 #include <unistd.h>
23 
24 #include "assistant.h"
25 #include "application_state_observer_stub.h"
26 #include "dfs_error.h"
27 #include "io_message_listener.h"
28 #include "singleton_mock.h"
29 #include "utils_log.h"
30 
31 namespace OHOS::FileManagement::CloudDisk::Test {
32 using namespace testing;
33 using namespace testing::ext;
34 using namespace std;
35 
36 class AppStateObserverTest : public testing::Test {
37 public:
38     static void SetUpTestCase(void);
39     static void TearDownTestCase(void);
40     void SetUp();
41     void TearDown();
42     static inline shared_ptr<AppStateObserverManager> appStateObserverManager_ = nullptr;
43     static inline shared_ptr<AppStateObserver> appStateObserver_ = nullptr;
44     static inline shared_ptr<AssistantMock> insMock = nullptr;
45 };
46 
SetUpTestCase(void)47 void AppStateObserverTest::SetUpTestCase(void)
48 {
49     GTEST_LOG_(INFO) << "SetUpTestCase";
50     appStateObserverManager_ = make_shared<AppStateObserverManager>();
51     appStateObserver_ = make_shared<AppStateObserver>();
52     insMock = make_shared<AssistantMock>();
53     Assistant::ins = insMock;
54 }
55 
TearDownTestCase(void)56 void AppStateObserverTest::TearDownTestCase(void)
57 {
58     GTEST_LOG_(INFO) << "TearDownTestCase";
59     appStateObserverManager_ = nullptr;
60     appStateObserver_ = nullptr;
61     Assistant::ins = nullptr;
62     insMock = nullptr;
63 }
64 
SetUp(void)65 void AppStateObserverTest::SetUp(void)
66 {
67     GTEST_LOG_(INFO) << "SetUp";
68 }
69 
TearDown(void)70 void AppStateObserverTest::TearDown(void)
71 {
72     GTEST_LOG_(INFO) << "TearDown";
73 }
74 
75 /**
76  * @tc.name: OnForegroundApplicationChangedTest001
77  * @tc.desc: Read IO data
78  * @tc.type: FUNC
79  * @tc.require: issuesI92WQP
80  */
81 HWTEST_F(AppStateObserverTest, OnForegroundApplicationChangedTest001, TestSize.Level1)
82 {
83     GTEST_LOG_(INFO) << "OnForegroundApplicationChangedTest001 Start";
84     try {
85         auto appStateData_= make_shared<AppExecFwk::AppStateData>();
86         appStateData_->bundleName = "com.ohos.sceneboard";
87         appStateObserver_->OnForegroundApplicationChanged(*appStateData_);
88         EXPECT_TRUE(true);
89     } catch (...) {
90         EXPECT_TRUE(false);
91         GTEST_LOG_(INFO) << "OnForegroundApplicationChangedTest001 ERROR";
92     }
93     GTEST_LOG_(INFO) << "OnForegroundApplicationChangedTest001 End";
94 }
95 
96 /**
97  * @tc.name: GetInstanceTest001
98  * @tc.desc: Read IO data
99  * @tc.type: FUNC
100  * @tc.require: issuesI92WQP
101  */
102 HWTEST_F(AppStateObserverTest, GetInstanceTest001, TestSize.Level1)
103 {
104     GTEST_LOG_(INFO) << "GetInstanceTest001 Start";
105     try {
106         shared_ptr<AppStateObserverManager> appStateObserverManager1_ = make_shared<AppStateObserverManager>();
107         EXPECT_TRUE(true);
108     } catch (...) {
109         EXPECT_TRUE(false);
110         GTEST_LOG_(INFO) << "GetInstanceTest001 ERROR";
111     }
112     GTEST_LOG_(INFO) << "GetInstanceTest001 End";
113 }
114 
115 /**
116  * @tc.name: SubscribeAppStateTest001
117  * @tc.desc: Read IO data
118  * @tc.type: FUNC
119  * @tc.require: issuesI92WQP
120  */
121 HWTEST_F(AppStateObserverTest, SubscribeAppStateTest001, TestSize.Level1)
122 {
123     GTEST_LOG_(INFO) << "SubscribeAppStateTest001 Start";
124     try {
125         vector<string> bundleNameList = {"com.example"};
126         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ = nullptr;
127         appStateObserverManager_->SubscribeAppState(bundleNameList);
128         EXPECT_FALSE(false);
129     } catch (...) {
130         EXPECT_FALSE(true);
131         GTEST_LOG_(INFO) << "SubscribeAppStateTest001 ERROR";
132     }
133     GTEST_LOG_(INFO) << "SubscribeAppStateTest001 End";
134 }
135 
136 /**
137  * @tc.name: SubscribeAppStateTest002
138  * @tc.desc: Read IO data
139  * @tc.type: FUNC
140  * @tc.require: issuesI92WQP
141  */
142 HWTEST_F(AppStateObserverTest, SubscribeAppStateTest002, TestSize.Level1)
143 {
144     GTEST_LOG_(INFO) << "SubscribeAppStateTest002 Start";
145     try {
146         vector<string> bundleNameList = {"com.example"};
147         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ =
148             make_shared<OHOS::AppExecFwk::AppMgrClient>();
149         sptr<OHOS::AppExecFwk::ApplicationStateObserverStub> appStateObserver1_ =
150             sptr<AppStateObserver>(new (std::nothrow) AppStateObserver());
151         appStateObserverManager_->appStateObserver_ = appStateObserver1_;
152         appStateObserverManager_->SubscribeAppState(bundleNameList);
153         EXPECT_FALSE(false);
154     } catch (...) {
155         EXPECT_FALSE(true);
156         GTEST_LOG_(INFO) << "SubscribeAppStateTest002 ERROR";
157     }
158     GTEST_LOG_(INFO) << "SubscribeAppStateTest002 End";
159 }
160 
161 /**
162  * @tc.name: SubscribeAppStateTest003
163  * @tc.desc: Read IO data
164  * @tc.type: FUNC
165  * @tc.require: issuesI92WQP
166  */
167 HWTEST_F(AppStateObserverTest, SubscribeAppStateTest003, TestSize.Level1)
168 {
169     GTEST_LOG_(INFO) << "SubscribeAppStateTest003 Start";
170     try {
171         vector<string> bundleNameList = {"com.example"};
172         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ =
173             make_shared<OHOS::AppExecFwk::AppMgrClient>();
174         appStateObserverManager_->appStateObserver_ = nullptr;
175         appStateObserverManager_->SubscribeAppState(bundleNameList);
176         EXPECT_TRUE(true);
177     } catch (...) {
178         EXPECT_TRUE(false);
179         GTEST_LOG_(INFO) << "SubscribeAppStateTest003 ERROR";
180     }
181     GTEST_LOG_(INFO) << "SubscribeAppStateTest003 End";
182 }
183 
184 /**
185  * @tc.name: SubscribeAppStateTest004
186  * @tc.desc: Read IO data
187  * @tc.type: FUNC
188  * @tc.require: issuesI92WQP
189  */
190 HWTEST_F(AppStateObserverTest, SubscribeAppStateTest004, TestSize.Level1)
191 {
192     GTEST_LOG_(INFO) << "SubscribeAppStateTest004 Start";
193     try {
194         vector<string> bundleNameList = {""};
195         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ =
196             make_shared<OHOS::AppExecFwk::AppMgrClient>();
197         appStateObserverManager_->appStateObserver_ = nullptr;
198         appStateObserverManager_->SubscribeAppState(bundleNameList);
199         EXPECT_TRUE(true);
200     } catch (...) {
201         EXPECT_TRUE(false);
202         GTEST_LOG_(INFO) << "SubscribeAppStateTest004 ERROR";
203     }
204     GTEST_LOG_(INFO) << "SubscribeAppStateTest004 End";
205 }
206 
207 /**
208  * @tc.name: UnSubscribeAppStateTest001
209  * @tc.desc: Read IO data
210  * @tc.type: FUNC
211  * @tc.require: issuesI92WQP
212  */
213 HWTEST_F(AppStateObserverTest, UnSubscribeAppStateTest001, TestSize.Level1)
214 {
215     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest001 Start";
216     try {
217         appStateObserverManager_->appStateObserver_ = nullptr;
218         appStateObserverManager_->UnSubscribeAppState();
219         EXPECT_FALSE(false);
220     } catch (...) {
221         EXPECT_FALSE(true);
222         GTEST_LOG_(INFO) << "UnSubscribeAppStateTest001 ERROR";
223     }
224     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest001 End";
225 }
226 
227 /**
228  * @tc.name: UnSubscribeAppStateTest002
229  * @tc.desc: Read IO data
230  * @tc.type: FUNC
231  * @tc.require: issuesI92WQP
232  */
233 HWTEST_F(AppStateObserverTest, UnSubscribeAppStateTest002, TestSize.Level1)
234 {
235     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest002 Start";
236     try {
237         sptr<OHOS::AppExecFwk::ApplicationStateObserverStub> appStateObserver1_ =
238             sptr<AppStateObserver>(new (std::nothrow) AppStateObserver());
239         appStateObserverManager_->appStateObserver_ = appStateObserver1_;
240         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ = nullptr;
241         appStateObserverManager_->UnSubscribeAppState();
242         EXPECT_FALSE(false);
243     } catch (...) {
244         EXPECT_FALSE(true);
245         GTEST_LOG_(INFO) << "UnSubscribeAppStateTest002 ERROR";
246     }
247     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest002 End";
248 }
249 
250 /**
251  * @tc.name: UnSubscribeAppStateTest003
252  * @tc.desc: Read IO data
253  * @tc.type: FUNC
254  * @tc.require: issuesI92WQP
255  */
256 HWTEST_F(AppStateObserverTest, UnSubscribeAppStateTest003, TestSize.Level1)
257 {
258     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest003 Start";
259     try {
260         sptr<OHOS::AppExecFwk::ApplicationStateObserverStub> appStateObserver1_ =
261             sptr<AppStateObserver>(new (std::nothrow) AppStateObserver());
262         appStateObserverManager_->appStateObserver_ = appStateObserver1_;
263         OHOS::DelayedSingleton<OHOS::AppExecFwk::AppMgrClient>::instance_ =
264             make_shared<OHOS::AppExecFwk::AppMgrClient>();
265         appStateObserverManager_->UnSubscribeAppState();
266         EXPECT_TRUE(true);
267     } catch (...) {
268         EXPECT_TRUE(false);
269         GTEST_LOG_(INFO) << "UnSubscribeAppStateTest003 ERROR";
270     }
271     GTEST_LOG_(INFO) << "UnSubscribeAppStateTest003 End";
272 }
273 } // namespace OHOS::FileManagement::CloudDisk::Test