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 "oobe_mgr_test.h"
17
18 #include "errors.h"
19 #include "oobe_datashare_utils.h"
20 #include "ioobe_task.h"
21 #include "oobe_manager.h"
22 #include <thread>
23
24 using namespace std;
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace ResourceSchedule {
29 namespace {
30 const std::string KEYWORD = "basic_statement_agreed";
31 } // namespace
32
33 class OOBETaskImpl : public IOOBETask {
34 public:
OOBETaskImpl()35 OOBETaskImpl() {}
ExcutingTask()36 void ExcutingTask() override {}
37 };
38
SetUpTestCase()39 void OOBEMgrTest::SetUpTestCase() {}
40
TearDownTestCase()41 void OOBEMgrTest::TearDownTestCase() {}
42
SetUp()43 void OOBEMgrTest::SetUp() {}
44
TearDown()45 void OOBEMgrTest::TearDown() {}
46
47 /**
48 * @tc.name: oobe manager TestOOBEManager_001
49 * @tc.desc: test the interface RegisterObserver of OOBEManager
50 * @tc.type: FUNC
51 * @tc.require: issueI97493
52 * @tc.author:zhumingjie
53 */
54 HWTEST_F(OOBEMgrTest, TestOOBEManager_001, Function | MediumTest | Level0)
55 {
56 OOBEManager& oobeMgr = OOBEManager::GetInstance();
__anon1ad02dd50202() 57 OOBEManager::ResDataAbilityObserver::UpdateFunc updateFunc = [&]() {};
58 int32_t ret = oobeMgr.RegisterObserver(KEYWORD, updateFunc);
59 EXPECT_EQ(ret, ERR_OK);
60
61 int32_t ret1 = oobeMgr.UnregisterObserver();
62 EXPECT_EQ(ret1, ERR_OK);
63 }
64
65 /**
66 * @tc.name: oobe manager TestOOBEManager_002
67 * @tc.desc: test the interface RegisterObserver of OOBEManager
68 * @tc.type: FUNC
69 * @tc.require: issueI97493
70 * @tc.author:zhumingjie
71 */
72 HWTEST_F(OOBEMgrTest, TestOOBEManager_002, Function | MediumTest | Level0)
73 {
74 OOBEManager& oobeMgr = OOBEManager::GetInstance();
__anon1ad02dd50302() 75 OOBEManager::ResDataAbilityObserver::UpdateFunc updateFunc = [&]() {};
76 oobeMgr.observer_ = new OOBEManager::ResDataAbilityObserver();
77 int32_t ret = oobeMgr.RegisterObserver(KEYWORD, updateFunc);
78 EXPECT_EQ(ret, ERR_OK);
79
80 int32_t ret1 = oobeMgr.UnregisterObserver();
81 EXPECT_EQ(ret1, ERR_OK);
82 }
83
84 /**
85 * @tc.name: oobe manager TestOOBEManager_003
86 * @tc.desc: test the interface OnChange and SetUpdateFunc of ResDataShareAbilityObserver
87 * @tc.type: FUNC
88 * @tc.require: issueI97493
89 * @tc.author:zhumingjie
90 */
91 HWTEST_F(OOBEMgrTest, TestOOBEManager_003, Function | MediumTest | Level0)
92 {
93 sptr<OOBEManager::ResDataAbilityObserver> oobeObserver = new OOBEManager::ResDataAbilityObserver();
94 oobeObserver->OnChange();
95 SUCCEED();
96
__anon1ad02dd50402() 97 OOBEManager::ResDataAbilityObserver::UpdateFunc updateFunc = [&]() {};
98 oobeObserver->SetUpdateFunc(updateFunc);
99 EXPECT_NE(oobeObserver->update_, nullptr);
100
101 oobeObserver->update_();
102 SUCCEED();
103 }
104
105 /**
106 * @tc.name: oobe manager TestOOBEManager_004
107 * @tc.desc: test the interface Initialize of OOBEManager
108 * @tc.type: FUNC
109 * @tc.require: issueI97493
110 * @tc.author:zhumingjie
111 */
112 HWTEST_F(OOBEMgrTest, TestOOBEManager_004, Function | MediumTest | Level0)
113 {
114 OOBEManager& oobeMgr = OOBEManager::GetInstance();
115 oobeMgr.Initialize();
116 SUCCEED();
117 }
118
119 /**
120 * @tc.name: oobe manager TestOOBEManager_005
121 * @tc.desc: test the interface SubmitTask of OOBEManager
122 * @tc.type: FUNC
123 * @tc.require: issueI97493
124 * @tc.author:zhumingjie
125 */
126 HWTEST_F(OOBEMgrTest, TestOOBEManager_005, Function | MediumTest | Level0)
127 {
128 std::shared_ptr<IOOBETask> oobeTask = std::make_shared<OOBETaskImpl>();
129 OOBEManager& oobeMgr = OOBEManager::GetInstance();
130 oobeMgr.g_oobeValue = true;
131 oobeMgr.oobeTasks_.clear();
132 bool flag = oobeMgr.SubmitTask(oobeTask);
133 EXPECT_EQ(flag, true);
134
135 oobeMgr.g_oobeValue = false;
136 bool flag1 = oobeMgr.SubmitTask(oobeTask);
137 EXPECT_EQ(oobeMgr.oobeTasks_.size(), 1);
138
139 bool flag2 = oobeMgr.SubmitTask(nullptr);
140 EXPECT_EQ(flag2, false);
141 }
142
143 /**
144 * @tc.name: oobe manager TestOOBEManager_006
145 * @tc.desc: test the interface SubmitTask of OOBEManager
146 * @tc.type: FUNC
147 * @tc.require: issueI97493
148 * @tc.author:zhumingjie
149 */
150 HWTEST_F(OOBEMgrTest, TestOOBEManager_006, Function | MediumTest | Level0)
151 {
152 OOBEManager& oobeMgr = OOBEManager::GetInstance();
153 oobeMgr.StartListen();
154 SUCCEED();
155 }
156
157 /**
158 * @tc.name: oobe manager TestOOBEManager_007
159 * @tc.desc: test the interface SubmitTask of OOBEManager
160 * @tc.type: FUNC
161 * @tc.require: issueI97493
162 * @tc.author:zhumingjie
163 */
164 HWTEST_F(OOBEMgrTest, TestOOBEManager_007, Function | MediumTest | Level0)
165 {
166 OOBEManager& oobeMgr = OOBEManager::GetInstance();
167 bool flag = oobeMgr.GetOOBValue();
168 SUCCEED();
169 }
170
171 /**
172 * @tc.name: oobe manager TestOOBEManager_008
173 * @tc.desc: test the callBack of OOBEManager
174 * @tc.type: FUNC
175 * @tc.require: issueIA5MRN
176 * @tc.author:fengyang
177 */
178 HWTEST_F(OOBEMgrTest, TestOOBEManager_008, Function | MediumTest | Level0)
179 {
180 OOBEManager& oobeMgr = OOBEManager::GetInstance();
__anon1ad02dd50502() 181 oobeMgr.dataShareFunctions_.emplace_back([]() {
182 SUCCEED();
183 });
184 oobeMgr.OnReceiveDataShareReadyCallBack();
185 int64_t sleepTime = 4;
186 std::this_thread::sleep_for(std::chrono::seconds(sleepTime));
187 EXPECT_EQ(0, oobeMgr.dataShareFunctions_.size());
188 }
189 #undef private
190 #undef protected
191 } // namespace ResourceSchedule
192 } // namespace OHOS
193