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