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 #define LOG_TAG "SystemDefinedAppitemTest"
16
17 #include <unistd.h>
18 #include <gtest/gtest.h>
19 #include <string>
20
21 #include "logger.h"
22 #include "system_defined_appitem.h"
23 #include "udmf_capi_common.h"
24
25 using namespace testing::ext;
26 using namespace OHOS::UDMF;
27 using namespace OHOS;
28 namespace OHOS::Test {
29 using namespace std;
30
31 class SystemDefinedAppitemTest : public testing::Test {
32 public:
33 static void SetUpTestCase();
34 static void TearDownTestCase();
35 void SetUp() override;
36 void TearDown() override;
37 };
38
SetUpTestCase()39 void SystemDefinedAppitemTest::SetUpTestCase()
40 {
41 }
42
TearDownTestCase()43 void SystemDefinedAppitemTest::TearDownTestCase()
44 {
45 }
46
SetUp()47 void SystemDefinedAppitemTest::SetUp()
48 {
49 }
50
TearDown()51 void SystemDefinedAppitemTest::TearDown()
52 {
53 }
54
55 /**
56 * @tc.name: SetItems001
57 * @tc.desc: Normal testcase of SetItems
58 * @tc.type: FUNC
59 */
60 HWTEST_F(SystemDefinedAppitemTest, SetItems001, TestSize.Level1)
61 {
62 LOG_INFO(UDMF_TEST, "SetItems001 begin.");
63 SystemDefinedAppItem systemDefinedAppItem;
64 UDDetails details;
65 details.insert({ "string", "" });
66 systemDefinedAppItem.SetItems(details);
67 systemDefinedAppItem.InitObject();
68 auto object = std::get<std::shared_ptr<Object>>(systemDefinedAppItem.value_);
69 EXPECT_EQ(std::get<std::string>(object->value_[UNIFORM_DATA_TYPE]), "openharmony.app-item");
70 LOG_INFO(UDMF_TEST, "SetItems001 end.");
71 }
72
73 /**
74 * @tc.name: SetItems002
75 * @tc.desc: Normal testcase of SetItems
76 * @tc.type: FUNC
77 */
78 HWTEST_F(SystemDefinedAppitemTest, SetItems002, TestSize.Level1)
79 {
80 LOG_INFO(UDMF_TEST, "SetItems002 begin.");
81 UDDetails details;
82 details.insert({ APP_ID, "SetItems002" });
83 SystemDefinedAppItem systemDefinedAppItem;
84 systemDefinedAppItem.SetItems(details);
85 EXPECT_EQ(systemDefinedAppItem.appId_, "SetItems002");
86 LOG_INFO(UDMF_TEST, "SetItems002 end.");
87 }
88
89 /**
90 * @tc.name: SetItems003
91 * @tc.desc: Normal testcase of SetItems
92 * @tc.type: FUNC
93 */
94 HWTEST_F(SystemDefinedAppitemTest, SetItems003, TestSize.Level1)
95 {
96 LOG_INFO(UDMF_TEST, "SetItems003 begin.");
97 UDDetails details;
98 details.insert({ APP_NAME, "SetItems003" });
99 SystemDefinedAppItem systemDefinedAppItem;
100 systemDefinedAppItem.SetItems(details);
101 EXPECT_EQ(systemDefinedAppItem.appName_, "SetItems003");
102 LOG_INFO(UDMF_TEST, "SetItems003 end.");
103 }
104
105 /**
106 * @tc.name: SetItems004
107 * @tc.desc: Normal testcase of SetItems
108 * @tc.type: FUNC
109 */
110 HWTEST_F(SystemDefinedAppitemTest, SetItems004, TestSize.Level1)
111 {
112 LOG_INFO(UDMF_TEST, "SetItems004 begin.");
113 UDDetails details;
114 details.insert({ APP_ICON_ID, "SetItems004" });
115 SystemDefinedAppItem systemDefinedAppItem;
116 systemDefinedAppItem.SetItems(details);
117 EXPECT_EQ(systemDefinedAppItem.appIconId_, "SetItems004");
118 LOG_INFO(UDMF_TEST, "SetItems004 end.");
119 }
120
121 /**
122 * @tc.name: SetItems005
123 * @tc.desc: Normal testcase of SetItems
124 * @tc.type: FUNC
125 */
126 HWTEST_F(SystemDefinedAppitemTest, SetItems005, TestSize.Level1)
127 {
128 LOG_INFO(UDMF_TEST, "SetItems005 begin.");
129 UDDetails details;
130 details.insert({APP_LABEL_ID, "SetItems005" });
131 SystemDefinedAppItem systemDefinedAppItem;
132 systemDefinedAppItem.SetItems(details);
133 EXPECT_EQ(systemDefinedAppItem.appLabelId_, "SetItems005");
134 LOG_INFO(UDMF_TEST, "SetItems005 end.");
135 }
136
137 /**
138 * @tc.name: SetItems006
139 * @tc.desc: Normal testcase of SetItems
140 * @tc.type: FUNC
141 */
142 HWTEST_F(SystemDefinedAppitemTest, SetItems006, TestSize.Level1)
143 {
144 LOG_INFO(UDMF_TEST, "SetItems006 begin.");
145 UDDetails details;
146 details.insert({ BUNDLE_NAME, "SetItems006" });
147 SystemDefinedAppItem systemDefinedAppItem;
148 systemDefinedAppItem.SetItems(details);
149 EXPECT_EQ(systemDefinedAppItem.bundleName_, "SetItems006");
150 LOG_INFO(UDMF_TEST, "SetItems006 end.");
151 }
152
153 /**
154 * @tc.name: SetItems007
155 * @tc.desc: Normal testcase of SetItems
156 * @tc.type: FUNC
157 */
158 HWTEST_F(SystemDefinedAppitemTest, SetItems007, TestSize.Level1)
159 {
160 LOG_INFO(UDMF_TEST, "SetItems007 begin.");
161 UDDetails details;
162 details.insert({ ABILITY_NAME, "SetItems007" });
163 SystemDefinedAppItem systemDefinedAppItem;
164 systemDefinedAppItem.SetItems(details);
165 EXPECT_EQ(systemDefinedAppItem.abilityName_, "SetItems007");
166 LOG_INFO(UDMF_TEST, "SetItems007 end.");
167 }
168
169 /**
170 * @tc.name: GetItems001
171 * @tc.desc: Normal testcase of GetItems
172 * @tc.type: FUNC
173 */
174 HWTEST_F(SystemDefinedAppitemTest, GetItems001, TestSize.Level1)
175 {
176 LOG_INFO(UDMF_TEST, "GetItems001 begin.");
177 SystemDefinedAppItem valueType;
178 valueType.appId_ = "appId";
179 valueType.appName_ = "appName_";
180 valueType.appIconId_ = "appIconId";
181 valueType.appLabelId_ = "appLabelId";
182 valueType.bundleName_ = "bundleName";
183 valueType.abilityName_ = "abilityName";
184 UDDetails items = valueType.GetItems();
185 EXPECT_EQ(std::get<std::string>(items[APP_ID]), valueType.appId_);
186 EXPECT_EQ(std::get<std::string>(items[APP_NAME]), valueType.appName_);
187 EXPECT_EQ(std::get<std::string>(items[APP_ICON_ID]), valueType.appIconId_);
188 EXPECT_EQ(std::get<std::string>(items[APP_LABEL_ID]), valueType.appLabelId_);
189 EXPECT_EQ(std::get<std::string>(items[BUNDLE_NAME]), valueType.bundleName_);
190 EXPECT_EQ(std::get<std::string>(items[ABILITY_NAME]), valueType.abilityName_);
191 LOG_INFO(UDMF_TEST, "GetItems001 end.");
192 }
193
194 /**
195 * @tc.name: GetValue001
196 * @tc.desc: Normal testcase of GetValue
197 * @tc.type: FUNC
198 */
199 HWTEST_F(SystemDefinedAppitemTest, GetValue001, TestSize.Level1)
200 {
201 LOG_INFO(UDMF_TEST, "GetValue001 begin.");
202 SystemDefinedAppItem valueType;
203 valueType.value_ = std::monostate{};
204 valueType.appId_ = "appId";
205 valueType.appName_ = "appName_";
206 valueType.appIconId_ = "appIconId";
207 valueType.appLabelId_ = "appLabelId";
208 valueType.bundleName_ = "bundleName";
209 valueType.abilityName_ = "abilityName";
210 valueType.InitObject();
211 auto object = std::get<std::shared_ptr<Object>>(valueType.value_);
212 auto details = std::get<std::shared_ptr<Object>>(object->value_[DETAILS]);
213 EXPECT_EQ(std::get<std::string>(object->value_[UNIFORM_DATA_TYPE]), "openharmony.app-item");
214 EXPECT_EQ(std::get<std::string>(object->value_[APP_ID]), valueType.appId_);
215 EXPECT_EQ(std::get<std::string>(object->value_[APP_NAME]), valueType.appName_);
216 EXPECT_EQ(std::get<std::string>(object->value_[APP_ICON_ID]), valueType.appIconId_);
217 EXPECT_EQ(std::get<std::string>(object->value_[APP_LABEL_ID]), valueType.appLabelId_);
218 EXPECT_EQ(std::get<std::string>(object->value_[BUNDLE_NAME]), valueType.bundleName_);
219 EXPECT_EQ(std::get<std::string>(object->value_[ABILITY_NAME]), valueType.abilityName_);
220 EXPECT_EQ(details->value_.size(), 0);
221 LOG_INFO(UDMF_TEST, "GetValue001 end.");
222 }
223 } // OHOS::Test