• 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 #include <string>
16 #include <sstream>
17 #include <vector>
18 #include <fstream>
19 #include <cstdio>
20 #include <unistd.h>
21 #include "gtest/gtest.h"
22 #define private public
23 #include "CommandParser.h"
24 using namespace std;
25 
26 namespace {
27     class CommandParserTest : public ::testing::Test {
28     public:
CommandParserTest()29         CommandParserTest() {}
~CommandParserTest()30         ~CommandParserTest() {}
31     protected:
32         // 在整个测试夹具类执行前执行一次初始化操作
SetUpTestCase()33         static void SetUpTestCase()
34         {
35             std::stringstream ss1(invalidParams);
36             std::string invalidParam;
37             // 使用空格分割字符串,并存入vector
38             char buffer[FILENAME_MAX];
39             if (getcwd(buffer, FILENAME_MAX) != nullptr) {
40                 currDir = std::string(buffer);
41                 currFile = currDir + "/mytestfilename";
42                 // 创建文件流对象并打开文件
43                 std::ofstream file(currFile);
44                 // 检查文件是否成功打开
45                 if (file.is_open()) {
46                     file.close();
47                 } else {
48                     printf("Error creating file!\n");
49                 }
50             } else {
51                 printf("error: getcwd failed\n");
52             }
53             while (std::getline(ss1, invalidParam, ' ')) {
54                 invalidParamVec.push_back(invalidParam);
55                 if (invalidParam == "=dir=") {
56                     invalidParam = currDir;
57                 } else if (invalidParam == "=file=") {
58                     invalidParam = currFile;
59                 } else if (invalidParam == "-h") {
60                     continue; // 不存在的参数存储
61                 }
62                 validParamVec.push_back(invalidParam);
63             }
64         }
65         // 在整个测试夹具类执行后执行一次清理操作
TearDownTestCase()66         static void TearDownTestCase()
67         {
68             if (std::remove(currFile.c_str()) != 0) {
69                 printf("Error deleting file!\n");
70             }
71         }
72 
73         static std::vector<std::string> invalidParamVec;
74         static std::vector<std::string> validParamVec;
75         static std::string invalidParams;
76         static std::string currDir;
77         static std::string currFile;
78     };
79     std::string CommandParserTest::currDir = "";
80     std::string CommandParserTest::currFile = "";
81     std::vector<std::string> CommandParserTest::invalidParamVec = {};
82     std::vector<std::string> CommandParserTest::validParamVec = {};
83     std::string CommandParserTest::invalidParams = "-refresh region "
84         "-projectID 138968279 "
85         "-ts trace_70259_commandPipe "
86         "-j =dir= "
87         "-s componentpreviewinstance_1712054594321_1 "
88         "-cpm true "
89         "-device phone "
90         "-shape rect "
91         "-sd 480 "
92         "-ljPath =file= "
93         "-or 1080 2340 "
94         "-cr 1080 2340 "
95         "-fr 1080 2504 "
96         "-f =file= "
97         "-n entry "
98         "-av ACE_2_0 "
99         "-url pages/BigImg_1M "
100         "-pages main_pages "
101         "-arp =dir= "
102         "-pm Stage "
103         "-hsp =dir= "
104         "-l zh_CN "
105         "-cm light "
106         "-o portrait "
107         "-lws 40003 "
108         "-card true "
109         "-p 8888 "
110         "-abn EntryAbility "
111         "-abp ets/entryability/EntryAbility.abc "
112         "-d "
113         "-sm static "
114         "-staticCard true "
115         "-foldable true "
116         "-foldStatus half_fold "
117         "-hs 100000 "
118         "-hf true "
119         "-h";
120 
TEST_F(CommandParserTest,IsSetTest)121     TEST_F(CommandParserTest, IsSetTest)
122     {
123         CommandParser::GetInstance().argsMap.clear();
124         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
125         EXPECT_TRUE(CommandParser::GetInstance().IsSet("arp"));
126         EXPECT_FALSE(CommandParser::GetInstance().IsSet("abc"));
127     }
128 
TEST_F(CommandParserTest,IsCommandValidTest2)129     TEST_F(CommandParserTest, IsCommandValidTest2)
130     {
131         CommandParser::GetInstance().argsMap.clear();
132         EXPECT_FALSE(CommandParser::GetInstance().ProcessCommand(invalidParamVec));
133         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
134     }
135 
TEST_F(CommandParserTest,IsCommandValidTest_VErr)136     TEST_F(CommandParserTest, IsCommandValidTest_VErr)
137     {
138         CommandParser::GetInstance().argsMap.clear();
139         invalidParamVec.push_back("-v");
140         EXPECT_FALSE(CommandParser::GetInstance().ProcessCommand(invalidParamVec));
141         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
142     }
143 
TEST_F(CommandParserTest,IsCommandValidTest_PErr)144     TEST_F(CommandParserTest, IsCommandValidTest_PErr)
145     {
146         CommandParser::GetInstance().argsMap.clear();
147         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-p");
148         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
149             *std::next(it) = "new_value";
150         }
151         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
152         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
153         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
154             *std::next(it) = "655350";
155         }
156         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
157         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
158         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
159             *std::next(it) = "8888";
160         }
161     }
162 
TEST_F(CommandParserTest,IsCommandValidTest_JErr)163     TEST_F(CommandParserTest, IsCommandValidTest_JErr)
164     {
165         CommandParser::GetInstance().argsMap.clear();
166         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-j");
167         if (it != validParamVec.end()) {
168             *it = "-jjjjj";
169         }
170         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
171         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
172         if (it != validParamVec.end()) {
173             *it = "-j";
174         }
175     }
176 
TEST_F(CommandParserTest,IsCommandValidTest_NErr)177     TEST_F(CommandParserTest, IsCommandValidTest_NErr)
178     {
179         CommandParser::GetInstance().argsMap.clear();
180         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-n");
181         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
182             *std::next(it) = "~!@#$%^&";
183         }
184         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
185         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
186         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
187             std::string str(257, 'a');
188             *std::next(it) = str;
189         }
190         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
191         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
192         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
193             *std::next(it) = "entry";
194         }
195     }
196 
TEST_F(CommandParserTest,IsCommandValidTest_CrOrErr)197     TEST_F(CommandParserTest, IsCommandValidTest_CrOrErr)
198     {
199         CommandParser::GetInstance().argsMap.clear();
200         // no -cr param
201         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cr");
202         if (it != validParamVec.end()) {
203             *it = "~!@#$%^&";
204         }
205         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
206         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
207         if (it != validParamVec.end()) {
208             *it = "-cr";
209         }
210         // -cr value invalid
211         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
212             *std::next(it) = "aaaa";
213         }
214         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
215         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
216         // params value invalid
217         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
218             *std::next(it) = "4000";
219         }
220         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
221         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
222         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
223             *std::next(it) = "1080";
224         }
225     }
226 
TEST_F(CommandParserTest,IsCommandValidTest_HsErr)227     TEST_F(CommandParserTest, IsCommandValidTest_HsErr)
228     {
229         CommandParser::GetInstance().argsMap.clear();
230         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hs");
231         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
232             *std::next(it) = "~!@#$%^&";
233         }
234         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
235         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
236         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
237             *std::next(it) = "524289";
238         }
239         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
240         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
241         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
242             *std::next(it) = "100000";
243         }
244     }
245 
TEST_F(CommandParserTest,IsCommandValidTest_HfErr)246     TEST_F(CommandParserTest, IsCommandValidTest_HfErr)
247     {
248         CommandParser::GetInstance().argsMap.clear();
249         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hf");
250         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
251             *std::next(it) = "~!@#$%^&";
252         }
253         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
254         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
255         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
256             *std::next(it) = "true";
257         }
258     }
259 
TEST_F(CommandParserTest,IsCommandValidTest_ShapeErr)260     TEST_F(CommandParserTest, IsCommandValidTest_ShapeErr)
261     {
262         CommandParser::GetInstance().argsMap.clear();
263         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-shape");
264         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
265             *std::next(it) = "~!@#$%^&";
266         }
267         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
268         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
269         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
270             *std::next(it) = "rect";
271         }
272     }
273 
TEST_F(CommandParserTest,IsCommandValidTest_DeviceErr)274     TEST_F(CommandParserTest, IsCommandValidTest_DeviceErr)
275     {
276         CommandParser::GetInstance().argsMap.clear();
277         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
278         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
279             *std::next(it) = "~!@#$%^&";
280         }
281         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
282         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
283         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
284             *std::next(it) = "phone";
285         }
286     }
287 
TEST_F(CommandParserTest,IsCommandValidTest_UrlErr)288     TEST_F(CommandParserTest, IsCommandValidTest_UrlErr)
289     {
290         CommandParser::GetInstance().argsMap.clear();
291         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-url");
292         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
293             *std::next(it) = "";
294         }
295         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
296         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
297         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
298             *std::next(it) = "pages/BigImg_1M";
299         }
300     }
301 
TEST_F(CommandParserTest,IsCommandValidTest_FErr)302     TEST_F(CommandParserTest, IsCommandValidTest_FErr)
303     {
304         CommandParser::GetInstance().argsMap.clear();
305         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-f");
306         if (it != validParamVec.end()) {
307             *it = "ffff";
308         }
309         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
310         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
311         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
312             *it = "-f";
313             *std::next(it) = "pages/BigImg_1M";
314         }
315         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
316         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
317         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
318             *std::next(it) = currFile;
319         }
320     }
321 
TEST_F(CommandParserTest,IsCommandValidTest_ArpErr)322     TEST_F(CommandParserTest, IsCommandValidTest_ArpErr)
323     {
324         CommandParser::GetInstance().argsMap.clear();
325         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-arp");
326         if (it != validParamVec.end()) {
327             *it = "aaarp";
328         }
329         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
330         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
331         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
332             *it = "-arp";
333             *std::next(it) = "pages/BigImg_1M";
334         }
335         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
336         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
337         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
338             *std::next(it) = currDir;
339         }
340     }
341 
TEST_F(CommandParserTest,IsCommandValidTest_PmErr)342     TEST_F(CommandParserTest, IsCommandValidTest_PmErr)
343     {
344         CommandParser::GetInstance().argsMap.clear();
345         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-pm");
346         if (it != validParamVec.end()) {
347             *it = "aaapm";
348         }
349         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
350         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
351         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
352             *it = "-pm";
353             *std::next(it) = "aaa";
354         }
355         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
356         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
357         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
358             *std::next(it) = "Stage";
359         }
360     }
361 
TEST_F(CommandParserTest,IsCommandValidTest_PagesErr)362     TEST_F(CommandParserTest, IsCommandValidTest_PagesErr)
363     {
364         CommandParser::GetInstance().argsMap.clear();
365         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-pages");
366         if (it != validParamVec.end()) {
367             *it = "aaapages";
368         }
369         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
370         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
371         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
372             *it = "-pages";
373             *std::next(it) = "~!@#$%^";
374         }
375         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
376         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
377         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
378             *std::next(it) = "main_pages";
379         }
380     }
381 
TEST_F(CommandParserTest,IsCommandValidTest_RefreshErr)382     TEST_F(CommandParserTest, IsCommandValidTest_RefreshErr)
383     {
384         CommandParser::GetInstance().argsMap.clear();
385         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-refresh");
386         if (it != validParamVec.end()) {
387             *it = "aaarefresh";
388         }
389         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
390         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
391         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
392             *it = "-refresh";
393             *std::next(it) = "~!@#$%^";
394         }
395         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
396         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
397         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
398             *std::next(it) = "region";
399         }
400     }
401 
TEST_F(CommandParserTest,IsCommandValidTest_CardErr)402     TEST_F(CommandParserTest, IsCommandValidTest_CardErr)
403     {
404         CommandParser::GetInstance().argsMap.clear();
405         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-card");
406         if (it != validParamVec.end()) {
407             *it = "aaacard";
408         }
409         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
410         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
411         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
412             *it = "-card";
413             *std::next(it) = "~!@#$%^";
414         }
415         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
416         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
417         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
418             *std::next(it) = "true";
419         }
420     }
421 
TEST_F(CommandParserTest,IsCommandValidTest_ProjectIdErr)422     TEST_F(CommandParserTest, IsCommandValidTest_ProjectIdErr)
423     {
424         CommandParser::GetInstance().argsMap.clear();
425         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-projectID");
426         if (it != validParamVec.end()) {
427             *it = "aaaprojectID";
428         }
429         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
430         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
431         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
432             *it = "-projectID";
433             *std::next(it) = "~!@#$%^";
434         }
435         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
436         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
437         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
438             *std::next(it) = "138968279";
439         }
440     }
441 
TEST_F(CommandParserTest,IsCommandValidTest_CmErr)442     TEST_F(CommandParserTest, IsCommandValidTest_CmErr)
443     {
444         CommandParser::GetInstance().argsMap.clear();
445         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cm");
446         if (it != validParamVec.end()) {
447             *it = "aaacm";
448         }
449         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
450         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
451         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
452             *it = "-cm";
453             *std::next(it) = "~!@#$%^";
454         }
455         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
456         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
457         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
458             *std::next(it) = "light";
459         }
460     }
461 
TEST_F(CommandParserTest,IsCommandValidTest_AvErr)462     TEST_F(CommandParserTest, IsCommandValidTest_AvErr)
463     {
464         CommandParser::GetInstance().argsMap.clear();
465         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-av");
466         if (it != validParamVec.end()) {
467             *it = "aaaav";
468         }
469         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
470         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
471         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
472             *it = "-av";
473             *std::next(it) = "~!@#$%^";
474         }
475         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
476         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
477         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
478             *std::next(it) = "ACE_2_0";
479         }
480     }
481 
TEST_F(CommandParserTest,IsCommandValidTest_OErr)482     TEST_F(CommandParserTest, IsCommandValidTest_OErr)
483     {
484         CommandParser::GetInstance().argsMap.clear();
485         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-o");
486         if (it != validParamVec.end()) {
487             *it = "aaao";
488         }
489         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
490         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
491         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
492             *it = "-o";
493             *std::next(it) = "~!@#$%^";
494         }
495         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
496         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
497         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
498             *std::next(it) = "portrait";
499         }
500     }
501 
TEST_F(CommandParserTest,IsCommandValidTest_LwsErr)502     TEST_F(CommandParserTest, IsCommandValidTest_LwsErr)
503     {
504         CommandParser::GetInstance().argsMap.clear();
505         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-lws");
506         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
507             *std::next(it) = "~!@#$%^";
508         }
509         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
510         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
511         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
512             *std::next(it) = "65536";
513         }
514         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
515         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
516         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
517             *std::next(it) = "40003";
518         }
519     }
520 
TEST_F(CommandParserTest,IsCommandValidTest_SmErr)521     TEST_F(CommandParserTest, IsCommandValidTest_SmErr)
522     {
523         CommandParser::GetInstance().argsMap.clear();
524         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-sm");
525         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
526             *std::next(it) = "~!@#$%^";
527         }
528         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
529         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
530         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
531             *std::next(it) = "static";
532         }
533     }
534 
TEST_F(CommandParserTest,IsCommandValidTest_HspErr)535     TEST_F(CommandParserTest, IsCommandValidTest_HspErr)
536     {
537         CommandParser::GetInstance().argsMap.clear();
538         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hsp");
539         if (it != validParamVec.end()) {
540             *it = "aaahsp";
541         }
542         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
543         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
544         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
545             *it = "-hsp";
546             *std::next(it) = "~!@#$%^";
547         }
548         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
549         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
550         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
551             *std::next(it) = currDir;
552         }
553     }
554 
TEST_F(CommandParserTest,IsCommandValidTest_CpmErr)555     TEST_F(CommandParserTest, IsCommandValidTest_CpmErr)
556     {
557         CommandParser::GetInstance().argsMap.clear();
558         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cpm");
559         if (it != validParamVec.end()) {
560             *it = "aaacpm";
561         }
562         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
563         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
564         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
565             *it = "-cpm";
566             *std::next(it) = "~!@#$%^";
567         }
568         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
569         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
570         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
571             *std::next(it) = "true";
572         }
573     }
574 
TEST_F(CommandParserTest,IsCommandValidTest_AbpErr)575     TEST_F(CommandParserTest, IsCommandValidTest_AbpErr)
576     {
577         CommandParser::GetInstance().argsMap.clear();
578         // lite device
579         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
580         if (it != validParamVec.end()) {
581             *std::next(it) = "liteWearable";
582         }
583         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
584         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
585         if (it != validParamVec.end()) {
586             *std::next(it) = "phone";
587         }
588         // no -d
589         it = std::find(validParamVec.begin(), validParamVec.end(), "-d");
590         if (it != validParamVec.end()) {
591             *it = "aaad";
592         }
593         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
594         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
595         if (it != validParamVec.end()) {
596             *it = "-d";
597         }
598         // no -abp
599         CommandParser::GetInstance().argsMap.clear();
600         it = std::find(validParamVec.begin(), validParamVec.end(), "-abp");
601         if (it != validParamVec.end()) {
602             *it = "aaaabp";
603         }
604         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
605         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
606         // -abp value empty
607         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
608             *it = "-abp";
609             *std::next(it) = "";
610         }
611         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
612         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
613         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
614             *std::next(it) = "ets/entryability/EntryAbility.abc";
615         }
616     }
617 
TEST_F(CommandParserTest,IsCommandValidTest_AbnErr)618     TEST_F(CommandParserTest, IsCommandValidTest_AbnErr)
619     {
620         CommandParser::GetInstance().argsMap.clear();
621         // no -d
622         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-d");
623         if (it != validParamVec.end()) {
624             *it = "aaad";
625         }
626         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
627         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
628         if (it != validParamVec.end()) {
629             *it = "-d";
630         }
631         // lite device
632         it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
633         if (it != validParamVec.end()) {
634             *std::next(it) = "liteWearable";
635         }
636         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
637         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
638         if (it != validParamVec.end()) {
639             *std::next(it) = "phone";
640         }
641         // no -abn
642         CommandParser::GetInstance().argsMap.clear();
643         it = std::find(validParamVec.begin(), validParamVec.end(), "-abn");
644         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
645             *it = "aaaabn";
646         }
647         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
648         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
649         // -abn value empty
650         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
651             *it = "-abn";
652             *std::next(it) = "";
653         }
654         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
655         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
656         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
657             *std::next(it) = "EntryAbility";
658         }
659     }
660 
TEST_F(CommandParserTest,IsCommandValidTest_StaticCardErr)661     TEST_F(CommandParserTest, IsCommandValidTest_StaticCardErr)
662     {
663         CommandParser::GetInstance().argsMap.clear();
664         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-staticCard");
665         if (it != validParamVec.end()) {
666             *it = "aaastaticCard";
667         }
668         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
669         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
670         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
671             *it = "-staticCard";
672             *std::next(it) = "~!@#$%^";
673         }
674         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
675         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
676         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
677             *std::next(it) = "true";
678         }
679     }
680 
TEST_F(CommandParserTest,IsCommandValidTest_FoldableErr)681     TEST_F(CommandParserTest, IsCommandValidTest_FoldableErr)
682     {
683         CommandParser::GetInstance().argsMap.clear();
684         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
685         if (it != validParamVec.end()) {
686             *it = "aaafoldable";
687         }
688         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
689         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
690         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
691             *it = "-foldable";
692             *std::next(it) = "~!@#$%^";
693         }
694         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
695         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
696         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
697             *std::next(it) = "true";
698         }
699     }
700 
TEST_F(CommandParserTest,IsCommandValidTest_FoldStatusErr)701     TEST_F(CommandParserTest, IsCommandValidTest_FoldStatusErr)
702     {
703         CommandParser::GetInstance().argsMap.clear();
704         // no -foldable
705         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
706         if (it != validParamVec.end()) {
707             *it = "aaafoldable";
708         }
709         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
710         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
711         // param -foldable value is false
712         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
713             *it = "-foldable";
714             *std::next(it) = "false";
715         }
716         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
717         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
718         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
719             *std::next(it) = "true";
720         }
721         // param foldStatus value invalid
722         CommandParser::GetInstance().argsMap.clear();
723         it = std::find(validParamVec.begin(), validParamVec.end(), "-foldStatus");
724         if (it != validParamVec.end()) {
725             *it = "aaafoldStatus";
726         }
727         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
728         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
729         if (it != validParamVec.end()) {
730             *it = "-foldStatus";
731         }
732     }
733 
TEST_F(CommandParserTest,IsCommandValidTest_FrErr)734     TEST_F(CommandParserTest, IsCommandValidTest_FrErr)
735     {
736         CommandParser::GetInstance().argsMap.clear();
737         // no -foldable
738         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
739         if (it != validParamVec.end()) {
740             *it = "aaafoldable";
741         }
742         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
743         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
744         // param -foldable value is false
745         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
746             *it = "-foldable";
747             *std::next(it) = "false";
748         }
749         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
750         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
751         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
752             *std::next(it) = "true";
753         }
754         // no param -fr
755         CommandParser::GetInstance().argsMap.clear();
756         it = std::find(validParamVec.begin(), validParamVec.end(), "-fr");
757         if (it != validParamVec.end()) {
758             *it = "aaafr";
759         }
760         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
761         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
762         if (it != validParamVec.end()) {
763             *it = "-fr";
764         }
765         // param -fr value is invalid
766         it = std::find(validParamVec.begin(), validParamVec.end(), "-fr");
767         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
768             *std::next(it) = "aaaa";
769         }
770         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
771         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
772         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
773             *std::next(it) = "1080";
774         }
775     }
776 
TEST_F(CommandParserTest,IsCommandValidTest_LjPathErr)777     TEST_F(CommandParserTest, IsCommandValidTest_LjPathErr)
778     {
779         CommandParser::GetInstance().argsMap.clear();
780         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-ljPath");
781         if (it != validParamVec.end()) {
782             *it = "aaaljPath";
783         }
784         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
785         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
786         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
787             *it = "-ljPath";
788             *std::next(it) = "~!@#$%^";
789         }
790         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
791         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
792         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
793             *std::next(it) = currFile;
794         }
795     }
796 
TEST_F(CommandParserTest,IsCommandValidTest_LErr)797     TEST_F(CommandParserTest, IsCommandValidTest_LErr)
798     {
799         CommandParser::GetInstance().argsMap.clear();
800         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-l");
801         if (it != validParamVec.end()) {
802             *it = "aaal";
803         }
804         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
805         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
806         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
807             *it = "-l";
808             *std::next(it) = "~!@#$%^";
809         }
810         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
811         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
812         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
813             *std::next(it) = "zh_CN";
814         }
815     }
816 
TEST_F(CommandParserTest,IsCommandValidTest_TsErr)817     TEST_F(CommandParserTest, IsCommandValidTest_TsErr)
818     {
819         CommandParser::GetInstance().argsMap.clear();
820         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-ts");
821         if (it != validParamVec.end()) {
822             *it = "aaats";
823         }
824         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
825         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
826         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
827             *it = "-ts";
828             *std::next(it) = "~!@#$%^";
829         }
830         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
831         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
832         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
833             *std::next(it) = "trace_70259_commandPipe";
834         }
835     }
836 
TEST_F(CommandParserTest,IsCommandValidTest_SErr)837     TEST_F(CommandParserTest, IsCommandValidTest_SErr)
838     {
839         CommandParser::GetInstance().argsMap.clear();
840         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-s");
841         if (it != validParamVec.end()) {
842             *it = "aaas";
843         }
844         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
845         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
846         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
847             *it = "-s";
848             *std::next(it) = "~!@#$%^";
849         }
850         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
851         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
852         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
853             *std::next(it) = "componentpreviewinstance_1712054594321_1";
854         }
855     }
856 
TEST_F(CommandParserTest,IsCommandValidTest_SdErr)857     TEST_F(CommandParserTest, IsCommandValidTest_SdErr)
858     {
859         CommandParser::GetInstance().argsMap.clear();
860         auto it = std::find(validParamVec.begin(), validParamVec.end(), "-sd");
861         if (it != validParamVec.end()) {
862             *it = "aaasd";
863         }
864         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
865         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
866         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
867             *it = "-sd";
868             *std::next(it) = "~!@#$%^";
869         }
870         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
871         EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
872         if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
873             *std::next(it) = "480";
874         }
875     }
876 
877 
TEST_F(CommandParserTest,IsCommandValidTest1)878     TEST_F(CommandParserTest, IsCommandValidTest1)
879     {
880         CommandParser::GetInstance().argsMap.clear();
881         EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
882         EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
883     }
884 
TEST_F(CommandParserTest,ValueTest)885     TEST_F(CommandParserTest, ValueTest)
886     {
887         string str1 = "abcd";
888         string str2 = "rect";
889         string str3 = CommandParser::GetInstance().Value("shape");
890         EXPECT_EQ(str2, str3);
891         EXPECT_NE(str1, str3);
892     }
893 
TEST_F(CommandParserTest,ValuesTest)894     TEST_F(CommandParserTest, ValuesTest)
895     {
896         std::vector<std::string> vec1 = {"1111", "2222"};
897         std::vector<std::string> vec2 = {"1080", "2340"};
898         std::vector<std::string> vec3 = CommandParser::GetInstance().Values("or");
899         for (int i = 0; i < vec3.size(); i++) {
900             EXPECT_NE(vec1[i], vec3[i]);
901         }
902         for (int i = 0; i < vec3.size(); i++) {
903             EXPECT_EQ(vec2[i], vec3[i]);
904         }
905     }
906 
TEST_F(CommandParserTest,RegisterTest)907     TEST_F(CommandParserTest, RegisterTest)
908     {
909         std::string key = "-abcd";
910         uint32_t count = 1;
911         CommandParser::GetInstance().Register(key, count, "abcd");
912         uint32_t num = CommandParser::GetInstance().regsArgsCountMap[key];
913         string helpStr = CommandParser::GetInstance().regsHelpMap[key];
914         EXPECT_EQ(num, count);
915         EXPECT_EQ(helpStr, "abcd");
916     }
917 
TEST_F(CommandParserTest,IsResolutionValidTest)918     TEST_F(CommandParserTest, IsResolutionValidTest)
919     {
920         int32_t val1 = 0;
921         int32_t val2 = 1;
922         int32_t val3 = 1024;
923         int32_t val4 = 3840;
924         int32_t val5 = 3841;
925         EXPECT_FALSE(CommandParser::GetInstance().IsResolutionValid(val1));
926         EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val2));
927         EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val3));
928         EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val4));
929         EXPECT_FALSE(CommandParser::GetInstance().IsResolutionValid(val5));
930     }
931 
TEST_F(CommandParserTest,GetOrignalResolutionWidthTest)932     TEST_F(CommandParserTest, GetOrignalResolutionWidthTest)
933     {
934         int32_t val1 = 1080;
935         EXPECT_EQ(CommandParser::GetInstance().GetOrignalResolutionWidth(), val1);
936     }
937 
TEST_F(CommandParserTest,GetOrignalResolutionHeightTest)938     TEST_F(CommandParserTest, GetOrignalResolutionHeightTest)
939     {
940         int32_t val1 = 2340;
941         EXPECT_EQ(CommandParser::GetInstance().GetOrignalResolutionHeight(), val1);
942     }
943 
TEST_F(CommandParserTest,GetCompressionResolutionWidthTest)944     TEST_F(CommandParserTest, GetCompressionResolutionWidthTest)
945     {
946         int32_t val1 = 1080;
947         EXPECT_EQ(CommandParser::GetInstance().GetCompressionResolutionWidth(), val1);
948     }
949 
TEST_F(CommandParserTest,GetCompressionResolutionHeightTest)950     TEST_F(CommandParserTest, GetCompressionResolutionHeightTest)
951     {
952         int32_t val1 = 2340;
953         EXPECT_EQ(CommandParser::GetInstance().GetCompressionResolutionHeight(), val1);
954     }
955 
TEST_F(CommandParserTest,GetJsHeapSizeTest)956     TEST_F(CommandParserTest, GetJsHeapSizeTest)
957     {
958         int32_t val1 = 100000;
959         EXPECT_EQ(CommandParser::GetInstance().GetJsHeapSize(), val1);
960     }
961 
TEST_F(CommandParserTest,GetAppNameTest)962     TEST_F(CommandParserTest, GetAppNameTest)
963     {
964         std::string val1 = "entry";
965         EXPECT_EQ(CommandParser::GetInstance().GetAppName(), val1);
966     }
967 
TEST_F(CommandParserTest,IsSendJSHeapTest)968     TEST_F(CommandParserTest, IsSendJSHeapTest)
969     {
970         EXPECT_TRUE(CommandParser::GetInstance().IsSendJSHeap());
971     }
972 
TEST_F(CommandParserTest,GetDeviceTypeTest)973     TEST_F(CommandParserTest, GetDeviceTypeTest)
974     {
975         EXPECT_EQ(CommandParser::GetInstance().GetDeviceType(), "phone");
976     }
977 
TEST_F(CommandParserTest,IsRegionRefreshTest)978     TEST_F(CommandParserTest, IsRegionRefreshTest)
979     {
980         EXPECT_TRUE(CommandParser::GetInstance().IsRegionRefresh());
981     }
982 
TEST_F(CommandParserTest,IsCardDisplayTest)983     TEST_F(CommandParserTest, IsCardDisplayTest)
984     {
985         EXPECT_TRUE(CommandParser::GetInstance().IsCardDisplay());
986     }
987 
TEST_F(CommandParserTest,GetConfigPathTest)988     TEST_F(CommandParserTest, GetConfigPathTest)
989     {
990         EXPECT_EQ(CommandParser::GetInstance().GetConfigPath(), currFile);
991     }
992 
TEST_F(CommandParserTest,GetProjectIDTest)993     TEST_F(CommandParserTest, GetProjectIDTest)
994     {
995         std::string str = "138968279";
996         EXPECT_EQ(CommandParser::GetInstance().GetProjectID(), str);
997     }
998 
TEST_F(CommandParserTest,GetScreenModeTest)999     TEST_F(CommandParserTest, GetScreenModeTest)
1000     {
1001         std::string str = "static";
1002         EXPECT_EQ(CommandParser::GetInstance().GetScreenMode(), CommandParser::ScreenMode::STATIC);
1003     }
1004 
TEST_F(CommandParserTest,GetConfigChangesTest)1005     TEST_F(CommandParserTest, GetConfigChangesTest)
1006     {
1007         EXPECT_EQ(CommandParser::GetInstance().GetConfigChanges(), "");
1008     }
1009 
TEST_F(CommandParserTest,GetAppResourcePathTest)1010     TEST_F(CommandParserTest, GetAppResourcePathTest)
1011     {
1012         EXPECT_EQ(CommandParser::GetInstance().GetAppResourcePath(), currDir);
1013     }
1014 
TEST_F(CommandParserTest,GetScreenShapeTest)1015     TEST_F(CommandParserTest, GetScreenShapeTest)
1016     {
1017         std::string str = "rect";
1018         EXPECT_EQ(CommandParser::GetInstance().GetScreenShape(), str);
1019     }
1020 
TEST_F(CommandParserTest,GetProjectModelTest)1021     TEST_F(CommandParserTest, GetProjectModelTest)
1022     {
1023         std::string str = "Stage";
1024         EXPECT_EQ(CommandParser::GetInstance().GetProjectModel(), str);
1025     }
1026 
TEST_F(CommandParserTest,GetProjectModelEnumValueTest)1027     TEST_F(CommandParserTest, GetProjectModelEnumValueTest)
1028     {
1029         int value = 1;
1030         EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumValue(), value);
1031     }
1032 
TEST_F(CommandParserTest,GetProjectModelEnumNameTest)1033     TEST_F(CommandParserTest, GetProjectModelEnumNameTest)
1034     {
1035         int index = 0;
1036         EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
1037         index = 1;
1038         EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "Stage");
1039         index = -1;
1040         EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
1041         index = 2;
1042         EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
1043     }
1044 
TEST_F(CommandParserTest,GetPagesTest)1045     TEST_F(CommandParserTest, GetPagesTest)
1046     {
1047         std::string str = "main_pages";
1048         EXPECT_EQ(CommandParser::GetInstance().GetPages(), str);
1049     }
1050 
TEST_F(CommandParserTest,GetContainerSdkPathTest)1051     TEST_F(CommandParserTest, GetContainerSdkPathTest)
1052     {
1053         EXPECT_EQ(CommandParser::GetInstance().GetContainerSdkPath(), currDir);
1054     }
1055 
TEST_F(CommandParserTest,CheckParamInvalidityTest)1056     TEST_F(CommandParserTest, CheckParamInvalidityTest)
1057     {
1058         std::string param = "0";
1059         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1060         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1061         param = "110";
1062         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1063         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1064         param = "01";
1065         EXPECT_TRUE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1066         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1067         param = "ab01";
1068         EXPECT_TRUE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1069         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1070         param = "0.34";
1071         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1072         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1073         param = "10.34";
1074         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
1075         EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
1076     }
1077 
TEST_F(CommandParserTest,IsComponentModeTest)1078     TEST_F(CommandParserTest, IsComponentModeTest)
1079     {
1080         EXPECT_TRUE(CommandParser::GetInstance().IsComponentMode());
1081     }
1082 
TEST_F(CommandParserTest,GetAbilityPathTest)1083     TEST_F(CommandParserTest, GetAbilityPathTest)
1084     {
1085         std::string str = "ets/entryability/EntryAbility.abc";
1086         EXPECT_EQ(CommandParser::GetInstance().GetAbilityPath(), str);
1087     }
1088 
TEST_F(CommandParserTest,GetAbilityNameTest)1089     TEST_F(CommandParserTest, GetAbilityNameTest)
1090     {
1091         std::string str = "EntryAbility";
1092         EXPECT_EQ(CommandParser::GetInstance().GetAbilityName(), str);
1093     }
1094 
TEST_F(CommandParserTest,IsStaticCardTest)1095     TEST_F(CommandParserTest, IsStaticCardTest)
1096     {
1097         EXPECT_TRUE(CommandParser::GetInstance().IsStaticCard());
1098     }
1099 
TEST_F(CommandParserTest,IsMainArgLengthInvalidTest)1100     TEST_F(CommandParserTest, IsMainArgLengthInvalidTest)
1101     {
1102         std::string validStr = "1111111";
1103         EXPECT_FALSE(CommandParser::GetInstance().IsMainArgLengthInvalid(validStr.c_str()));
1104         int desiredLength = 1184;
1105         char initialChar = '1';
1106         std::string invalidStr(desiredLength, initialChar);
1107         EXPECT_TRUE(CommandParser::GetInstance().IsMainArgLengthInvalid(invalidStr.c_str()));
1108     }
1109 
TEST_F(CommandParserTest,IsFoldableTest)1110     TEST_F(CommandParserTest, IsFoldableTest)
1111     {
1112         EXPECT_TRUE(CommandParser::GetInstance().IsFoldable());
1113     }
1114 
TEST_F(CommandParserTest,GetFoldStatusTest)1115     TEST_F(CommandParserTest, GetFoldStatusTest)
1116     {
1117         std::string str = "half_fold";
1118         EXPECT_EQ(CommandParser::GetInstance().GetFoldStatus(), str);
1119     }
1120 
TEST_F(CommandParserTest,GetFoldResolutionWidthTest)1121     TEST_F(CommandParserTest, GetFoldResolutionWidthTest)
1122     {
1123         int32_t value = 1080;
1124         EXPECT_EQ(CommandParser::GetInstance().GetFoldResolutionWidth(), value);
1125     }
1126 
TEST_F(CommandParserTest,GetFoldResolutionHeightTest)1127     TEST_F(CommandParserTest, GetFoldResolutionHeightTest)
1128     {
1129         int32_t value = 2504;
1130         EXPECT_EQ(CommandParser::GetInstance().GetFoldResolutionHeight(), value);
1131     }
1132 
TEST_F(CommandParserTest,GetLoaderJsonPathTest)1133     TEST_F(CommandParserTest, GetLoaderJsonPathTest)
1134     {
1135         EXPECT_EQ(CommandParser::GetInstance().GetLoaderJsonPath(), currFile);
1136     }
1137 
TEST_F(CommandParserTest,GetCommandInfoTest)1138     TEST_F(CommandParserTest, GetCommandInfoTest)
1139     {
1140         CommandInfo info;
1141         CommandParser::GetInstance().GetCommandInfo(info);
1142         EXPECT_EQ(info.deviceType, "phone");
1143         EXPECT_TRUE(info.isComponentMode);
1144     }
1145 
TEST_F(CommandParserTest,GetFoldInfoTest)1146     TEST_F(CommandParserTest, GetFoldInfoTest)
1147     {
1148         FoldInfo info;
1149         CommandParser::GetInstance().GetFoldInfo(info);
1150         EXPECT_TRUE(info.foldable);
1151         EXPECT_EQ(info.foldStatus, "half_fold");
1152     }
1153 
TEST_F(CommandParserTest,ParseArgsTest)1154     TEST_F(CommandParserTest, ParseArgsTest)
1155     {
1156         int argc = 5;
1157         char* argv[5]; // 5 is array length
1158         // param value length is out of range
1159         int desiredLength = 1184;
1160         char initialChar = '1';
1161         std::string invalidStr(desiredLength, initialChar);
1162         argv[1] = "-p";
1163         argv[2] = const_cast<char*>(invalidStr.c_str());
1164         int ret = CommandParser::GetInstance().ParseArgs(argc, argv);
1165         EXPECT_EQ(ret, 11); // 11 is expect return value
1166         // param value invalid
1167         argv[2] = "999999999";
1168         ret = CommandParser::GetInstance().ParseArgs(argc, argv);
1169         EXPECT_EQ(ret, 11); // 11 is expect return value
1170         argv[2] = "9999";
1171         ret = CommandParser::GetInstance().ParseArgs(argc, argv);
1172         EXPECT_EQ(ret, -1); // -1 is expect return valu
1173         // invalid param
1174         argv[3] = "-v";
1175         ret = CommandParser::GetInstance().ParseArgs(argc, argv);
1176         EXPECT_EQ(ret, 0); // 0 is expect return value
1177     }
1178 }