• 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 "util.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace OHOS::Rosen {
24 class UtilTest : public testing::Test {
25 public:
26     static void SetUpTestCase();
27     static void TearDownTestCase();
28     void SetUp() override;
29     void TearDown() override;
30 };
31 
SetUpTestCase()32 void UtilTest::SetUpTestCase() {}
TearDownTestCase()33 void UtilTest::TearDownTestCase() {}
SetUp()34 void UtilTest::SetUp() {}
TearDown()35 void UtilTest::TearDown() {}
36 
37 /**
38  * @tc.name: UtilTest_001
39  * @tc.desc: Verify the ParseOldConfigFile
40  * @tc.type:FUNC
41  */
42 HWTEST_F(UtilTest, UtilTest_001, TestSize.Level1)
43 {
44     std::vector<BootAnimationConfig> configs;
45 
46     std::string jsonStr1 = "{}";
47     cJSON* jsonData1 = cJSON_Parse(jsonStr1.c_str());
48     OHOS::ParseOldConfigFile(jsonData1, configs);
49 
50     std::string jsonStr2 = "{\"cust.bootanimation.pics\":1,\"cust.bootanimation.sounds\":1,\
51     \"cust.bootanimation.video\":1,\"cust.bootanimation.video.extra\":1,\"cust.bootanimation.rotate.screenid\":1,\
52     \"cust.bootanimation.rotate.degree\":1}";
53     cJSON* jsonData2 = cJSON_Parse(jsonStr2.c_str());
54     OHOS::ParseOldConfigFile(jsonData2, configs);
55     EXPECT_EQ(configs.front().rotateDegree, 0);
56 
57     std::string jsonStr3 = "{\"cust.bootanimation.pics\":\"abc\",\"cust.bootanimation.sounds\":\"abc\",\
58     \"cust.bootanimation.video\":\"abc\",\"cust.bootanimation.video.extra\":\"abc\",\
59     \"cust.bootanimation.rotate.screenid\":\"0\", \"cust.bootanimation.rotate.degree\":\"270\"}";
60     cJSON* jsonData3 = cJSON_Parse(jsonStr3.c_str());
61     OHOS::ParseOldConfigFile(jsonData3, configs);
62     EXPECT_EQ(configs.back().rotateDegree, 270);
63 }
64 
65 /**
66  * @tc.name: UtilTest_002
67  * @tc.desc: Verify the ParseNewConfigFile
68  * @tc.type:FUNC
69  */
70 HWTEST_F(UtilTest, UtilTest_002, TestSize.Level1)
71 {
72     bool isMultiDisplay = false;
73     std::vector<BootAnimationConfig> configs;
74 
75     std::string jsonStr1 = "{}";
76     cJSON* jsonData1 = cJSON_Parse(jsonStr1.c_str());
77     OHOS::ParseNewConfigFile(jsonData1, isMultiDisplay, configs);
78 
79     std::string jsonStr2 = "{\"cust.bootanimation.multi_display\":1}";
80     cJSON* jsonData2 = cJSON_Parse(jsonStr2.c_str());
81     OHOS::ParseNewConfigFile(jsonData2, isMultiDisplay, configs);
82 
83     std::string jsonStr3 = "{\"cust.bootanimation.multi_display\":false}";
84     cJSON* jsonData3 = cJSON_Parse(jsonStr3.c_str());
85     OHOS::ParseNewConfigFile(jsonData3, isMultiDisplay, configs);
86     EXPECT_EQ(isMultiDisplay, false);
87 
88     std::string jsonStr4 = "{\"cust.bootanimation.multi_display\":true}";
89     cJSON* jsonData4 = cJSON_Parse(jsonStr4.c_str());
90     OHOS::ParseNewConfigFile(jsonData4, isMultiDisplay, configs);
91 
92     std::string jsonStr5 = "{\"screen_config\":[]}";
93     cJSON* jsonData5 = cJSON_Parse(jsonStr5.c_str());
94     OHOS::ParseNewConfigFile(jsonData5, isMultiDisplay, configs);
95 
96     std::string jsonStr6 = "{\"screen_config\":[{}]}";
97     cJSON* jsonData6 = cJSON_Parse(jsonStr6.c_str());
98     OHOS::ParseNewConfigFile(jsonData6, isMultiDisplay, configs);
99 
100     std::string jsonStr7 = "{\"screen_config\":[{\"cust.bootanimation.screen_id\":1,\
101     \"cust.bootanimation.pics\":1,\"cust.bootanimation.sounds\":1,\
102     \"cust.bootanimation.video_default\":1,\"cust.bootanimation.rotate_degree\":1,\
103     \"cust.bootanimation.video_extensions\":1}]}";
104     cJSON* jsonData7 = cJSON_Parse(jsonStr7.c_str());
105     OHOS::ParseNewConfigFile(jsonData7, isMultiDisplay, configs);
106 
107     std::string jsonStr8 = "{\"screen_config\":[{\"cust.bootanimation.screen_id\":\"0\",\
108     \"cust.bootanimation.pics\":\"abc\",\"cust.bootanimation.sounds\":\"abc\",\
109     \"cust.bootanimation.video_default\":\"abc\",\"cust.bootanimation.rotate_degree\":\"270\",\
110     \"cust.bootanimation.video_extensions\":[]}]}";
111     cJSON* jsonData8 = cJSON_Parse(jsonStr8.c_str());
112     OHOS::ParseNewConfigFile(jsonData8, isMultiDisplay, configs);
113     EXPECT_EQ(isMultiDisplay, true);
114 }
115 
116 /**
117  * @tc.name: UtilTest_003
118  * @tc.desc: Verify the ParseVideoExtraPath
119  * @tc.type:FUNC
120  */
121 HWTEST_F(UtilTest, UtilTest_003, TestSize.Level1)
122 {
123     BootAnimationConfig config;
124     std::string jsonStr1 = "{}";
125     cJSON* jsonData1 = cJSON_Parse(jsonStr1.c_str());
126     OHOS::ParseVideoExtraPath(jsonData1, config);
127 
128     std::string jsonStr2 = "[]";
129     cJSON* jsonData2 = cJSON_Parse(jsonStr2.c_str());
130     OHOS::ParseVideoExtraPath(jsonData2, config);
131 
132     std::string jsonStr3 = "{\"1\":\"abc\"}";
133     cJSON* jsonData3 = cJSON_Parse(jsonStr3.c_str());
134     OHOS::ParseVideoExtraPath(jsonData3, config);
135     EXPECT_EQ(config.videoExtPath.size(), 1);
136 }
137 
138 /**
139  * @tc.name: UtilTest_004
140  * @tc.desc: Verify the ParseBootDuration
141  * @tc.type:FUNC
142  */
143 HWTEST_F(UtilTest, UtilTest_004, TestSize.Level1)
144 {
145     BootAnimationConfig config;
146     int32_t duration;
147     std::string jsonStr1 = "{}";
148     cJSON* jsonData1 = cJSON_Parse(jsonStr1.c_str());
149     OHOS::ParseBootDuration(jsonData1, duration);
150 
151     std::string jsonStr2 = "{\"cust.bootanimation.duration\":10}";
152     cJSON* jsonData2 = cJSON_Parse(jsonStr2.c_str());
153     OHOS::ParseBootDuration(jsonData2, duration);
154 
155     std::string jsonStr3 = "{\"cust.bootanimation.duration\":\"10\"}";
156     cJSON* jsonData3 = cJSON_Parse(jsonStr3.c_str());
157     OHOS::ParseBootDuration(jsonData3, duration);
158     EXPECT_EQ(duration, 10);
159 }
160 
161 /**
162  * @tc.name: UtilTest_005
163  * @tc.desc: Verify the IsFileExisted
164  * @tc.type:FUNC
165  */
166 HWTEST_F(UtilTest, UtilTest_005, TestSize.Level1)
167 {
168     std::string filePath = "";
169     bool isFileExist = OHOS::IsFileExisted(filePath);
170     EXPECT_EQ(false, isFileExist);
171 
172     filePath = "/sys_prod/etc/bootanimation/bootanimation_custom_config.json1";
173     isFileExist = OHOS::IsFileExisted(filePath);
174     EXPECT_EQ(false, isFileExist);
175 }
176 
177 /**
178  * @tc.name: UtilTest_006
179  * @tc.desc: Verify the ParseBootConfig
180  * @tc.type:FUNC
181  */
182 HWTEST_F(UtilTest, UtilTest_006, TestSize.Level1)
183 {
184     std::string filePath = "";
185     std::vector<BootAnimationConfig> animationConfigs;
186     bool isMultiDisplay = false;
187     bool isCompatible = false;
188     int32_t duration = 60;
189     bool parseResult = OHOS::ParseBootConfig(filePath, duration, isCompatible, isMultiDisplay, animationConfigs);
190     EXPECT_EQ(false, parseResult);
191 
192     filePath = "/sys_prod/etc/bootanimation/bootanimation_custom_config.json1";
193     parseResult = OHOS::ParseBootConfig(filePath, duration, isCompatible, isMultiDisplay, animationConfigs);
194     EXPECT_EQ(false, parseResult);
195 
196     filePath = "/sys_prod/etc/bootanimation/bootanimation_custom_config.json";
197     parseResult = OHOS::ParseBootConfig(filePath, duration, isCompatible, isMultiDisplay, animationConfigs);
198     bool isFileExist = OHOS::IsFileExisted(filePath);
199     EXPECT_EQ(isFileExist ? true : false, parseResult);
200 }
201 
202 /**
203  * @tc.name: UtilTest_007
204  * @tc.desc: Verify the ReadFile
205  * @tc.type:FUNC
206  */
207 HWTEST_F(UtilTest, UtilTest_007, TestSize.Level1)
208 {
209     std::string filePath = "";
210     std::string content = OHOS::ReadFile(filePath);
211     EXPECT_EQ(0, content.length());
212 
213     filePath = "/sys_prod/etc/bootanimation/bootanimation_custom_config.json1";
214     content = OHOS::ReadFile(filePath);
215     EXPECT_EQ(0, content.length());
216 
217     filePath = "/sys_prod/etc/bootanimation/bootanimation_custom_config.json";
218     content = OHOS::ReadFile(filePath);
219     bool isFileExist = OHOS::IsFileExisted(filePath);
220     EXPECT_EQ(content.empty(), isFileExist ? false : true);
221 }
222 
223 /**
224  * @tc.name: UtilTest_008
225  * @tc.desc: Verify the GetHingeStatus
226  * @tc.type:FUNC
227  */
228 HWTEST_F(UtilTest, UtilTest_008, TestSize.Level1)
229 {
230     std::string HING_STATUS_INFO_PATH = "/sys/class/sensors/hinge_sensor/hinge_status_info";
231     std::string content = OHOS::GetHingeStatus();
232     if (OHOS::IsFileExisted(HING_STATUS_INFO_PATH)) {
233         EXPECT_NE(0, content.length());
234     } else {
235         EXPECT_EQ(0, content.length());
236     }
237 }
238 }
239