17c804472Sopenharmony_ci/*
27c804472Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47c804472Sopenharmony_ci * you may not use this file except in compliance with the License.
57c804472Sopenharmony_ci * You may obtain a copy of the License at
67c804472Sopenharmony_ci *
77c804472Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87c804472Sopenharmony_ci *
97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c804472Sopenharmony_ci * See the License for the specific language governing permissions and
137c804472Sopenharmony_ci * limitations under the License.
147c804472Sopenharmony_ci */
157c804472Sopenharmony_ci#include <string>
167c804472Sopenharmony_ci#include <sstream>
177c804472Sopenharmony_ci#include <vector>
187c804472Sopenharmony_ci#include <fstream>
197c804472Sopenharmony_ci#include <cstdio>
207c804472Sopenharmony_ci#include <unistd.h>
217c804472Sopenharmony_ci#include "gtest/gtest.h"
227c804472Sopenharmony_ci#define private public
237c804472Sopenharmony_ci#include "CommandParser.h"
247c804472Sopenharmony_ci
257c804472Sopenharmony_cinamespace {
267c804472Sopenharmony_ci    class CommandParserTest : public ::testing::Test {
277c804472Sopenharmony_ci    public:
287c804472Sopenharmony_ci        CommandParserTest() {}
297c804472Sopenharmony_ci        ~CommandParserTest() {}
307c804472Sopenharmony_ci    protected:
317c804472Sopenharmony_ci        // 在整个测试夹具类执行前执行一次初始化操作
327c804472Sopenharmony_ci        static void SetUpTestCase()
337c804472Sopenharmony_ci        {
347c804472Sopenharmony_ci            std::stringstream ss1(invalidParams);
357c804472Sopenharmony_ci            std::string invalidParam;
367c804472Sopenharmony_ci            // 使用空格分割字符串,并存入vector
377c804472Sopenharmony_ci            char buffer[FILENAME_MAX];
387c804472Sopenharmony_ci            if (getcwd(buffer, FILENAME_MAX) != nullptr) {
397c804472Sopenharmony_ci                currDir = std::string(buffer);
407c804472Sopenharmony_ci                currFile = currDir + "/mytestfilename";
417c804472Sopenharmony_ci                // 创建文件流对象并打开文件
427c804472Sopenharmony_ci                std::ofstream file(currFile);
437c804472Sopenharmony_ci                // 检查文件是否成功打开
447c804472Sopenharmony_ci                if (file.is_open()) {
457c804472Sopenharmony_ci                    file.close();
467c804472Sopenharmony_ci                } else {
477c804472Sopenharmony_ci                    printf("Error creating file!\n");
487c804472Sopenharmony_ci                }
497c804472Sopenharmony_ci            } else {
507c804472Sopenharmony_ci                printf("error: getcwd failed\n");
517c804472Sopenharmony_ci            }
527c804472Sopenharmony_ci            while (std::getline(ss1, invalidParam, ' ')) {
537c804472Sopenharmony_ci                invalidParamVec.push_back(invalidParam);
547c804472Sopenharmony_ci                if (invalidParam == "=dir=") {
557c804472Sopenharmony_ci                    invalidParam = currDir;
567c804472Sopenharmony_ci                } else if (invalidParam == "=file=") {
577c804472Sopenharmony_ci                    invalidParam = currFile;
587c804472Sopenharmony_ci                } else if (invalidParam == "-h") {
597c804472Sopenharmony_ci                    continue; // 不存在的参数存储
607c804472Sopenharmony_ci                }
617c804472Sopenharmony_ci                validParamVec.push_back(invalidParam);
627c804472Sopenharmony_ci            }
637c804472Sopenharmony_ci        }
647c804472Sopenharmony_ci        // 在整个测试夹具类执行后执行一次清理操作
657c804472Sopenharmony_ci        static void TearDownTestCase()
667c804472Sopenharmony_ci        {
677c804472Sopenharmony_ci            if (std::remove(currFile.c_str()) != 0) {
687c804472Sopenharmony_ci                printf("Error deleting file!\n");
697c804472Sopenharmony_ci            }
707c804472Sopenharmony_ci        }
717c804472Sopenharmony_ci
727c804472Sopenharmony_ci        static std::vector<std::string> invalidParamVec;
737c804472Sopenharmony_ci        static std::vector<std::string> validParamVec;
747c804472Sopenharmony_ci        static std::string invalidParams;
757c804472Sopenharmony_ci        static std::string currDir;
767c804472Sopenharmony_ci        static std::string currFile;
777c804472Sopenharmony_ci    };
787c804472Sopenharmony_ci    std::string CommandParserTest::currDir = "";
797c804472Sopenharmony_ci    std::string CommandParserTest::currFile = "";
807c804472Sopenharmony_ci    std::vector<std::string> CommandParserTest::invalidParamVec = {};
817c804472Sopenharmony_ci    std::vector<std::string> CommandParserTest::validParamVec = {};
827c804472Sopenharmony_ci    std::string CommandParserTest::invalidParams = "-refresh region "
837c804472Sopenharmony_ci        "-projectID 138968279 "
847c804472Sopenharmony_ci        "-ts trace_70259_commandPipe "
857c804472Sopenharmony_ci        "-j =dir= "
867c804472Sopenharmony_ci        "-s componentpreviewinstance_1712054594321_1 "
877c804472Sopenharmony_ci        "-cpm true "
887c804472Sopenharmony_ci        "-device phone "
897c804472Sopenharmony_ci        "-shape rect "
907c804472Sopenharmony_ci        "-sd 480 "
917c804472Sopenharmony_ci        "-ljPath =file= "
927c804472Sopenharmony_ci        "-or 1080 2340 "
937c804472Sopenharmony_ci        "-cr 1080 2340 "
947c804472Sopenharmony_ci        "-fr 1080 2504 "
957c804472Sopenharmony_ci        "-f =file= "
967c804472Sopenharmony_ci        "-n entry "
977c804472Sopenharmony_ci        "-av ACE_2_0 "
987c804472Sopenharmony_ci        "-url pages/BigImg_1M "
997c804472Sopenharmony_ci        "-pages main_pages "
1007c804472Sopenharmony_ci        "-arp =dir= "
1017c804472Sopenharmony_ci        "-pm Stage "
1027c804472Sopenharmony_ci        "-hsp =dir= "
1037c804472Sopenharmony_ci        "-l zh_CN "
1047c804472Sopenharmony_ci        "-cm light "
1057c804472Sopenharmony_ci        "-o portrait "
1067c804472Sopenharmony_ci        "-lws 40003 "
1077c804472Sopenharmony_ci        "-card true "
1087c804472Sopenharmony_ci        "-p 8888 "
1097c804472Sopenharmony_ci        "-abn EntryAbility "
1107c804472Sopenharmony_ci        "-abp ets/entryability/EntryAbility.abc "
1117c804472Sopenharmony_ci        "-d "
1127c804472Sopenharmony_ci        "-sm static "
1137c804472Sopenharmony_ci        "-staticCard true "
1147c804472Sopenharmony_ci        "-foldable true "
1157c804472Sopenharmony_ci        "-foldStatus half_fold "
1167c804472Sopenharmony_ci        "-hs 100000 "
1177c804472Sopenharmony_ci        "-hf true "
1187c804472Sopenharmony_ci        "-h";
1197c804472Sopenharmony_ci
1207c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsSetTest)
1217c804472Sopenharmony_ci    {
1227c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1237c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1247c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsSet("arp"));
1257c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsSet("abc"));
1267c804472Sopenharmony_ci    }
1277c804472Sopenharmony_ci
1287c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest2)
1297c804472Sopenharmony_ci    {
1307c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1317c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().ProcessCommand(invalidParamVec));
1327c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1337c804472Sopenharmony_ci    }
1347c804472Sopenharmony_ci
1357c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_VErr)
1367c804472Sopenharmony_ci    {
1377c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1387c804472Sopenharmony_ci        invalidParamVec.push_back("-v");
1397c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().ProcessCommand(invalidParamVec));
1407c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1417c804472Sopenharmony_ci    }
1427c804472Sopenharmony_ci
1437c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_PErr)
1447c804472Sopenharmony_ci    {
1457c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1467c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-p");
1477c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1487c804472Sopenharmony_ci            *std::next(it) = "new_value";
1497c804472Sopenharmony_ci        }
1507c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1517c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1527c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1537c804472Sopenharmony_ci            *std::next(it) = "655350";
1547c804472Sopenharmony_ci        }
1557c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1567c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1577c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1587c804472Sopenharmony_ci            *std::next(it) = "8888";
1597c804472Sopenharmony_ci        }
1607c804472Sopenharmony_ci    }
1617c804472Sopenharmony_ci
1627c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_JErr)
1637c804472Sopenharmony_ci    {
1647c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1657c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-j");
1667c804472Sopenharmony_ci        if (it != validParamVec.end()) {
1677c804472Sopenharmony_ci            *it = "-jjjjj";
1687c804472Sopenharmony_ci        }
1697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1707c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1717c804472Sopenharmony_ci        if (it != validParamVec.end()) {
1727c804472Sopenharmony_ci            *it = "-j";
1737c804472Sopenharmony_ci        }
1747c804472Sopenharmony_ci    }
1757c804472Sopenharmony_ci
1767c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_NErr)
1777c804472Sopenharmony_ci    {
1787c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1797c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-n");
1807c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1817c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^&";
1827c804472Sopenharmony_ci        }
1837c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1847c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1857c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1867c804472Sopenharmony_ci            std::string str(257, 'a');
1877c804472Sopenharmony_ci            *std::next(it) = str;
1887c804472Sopenharmony_ci        }
1897c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
1907c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
1917c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
1927c804472Sopenharmony_ci            *std::next(it) = "entry";
1937c804472Sopenharmony_ci        }
1947c804472Sopenharmony_ci    }
1957c804472Sopenharmony_ci
1967c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_CrOrErr)
1977c804472Sopenharmony_ci    {
1987c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
1997c804472Sopenharmony_ci        // no -cr param
2007c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cr");
2017c804472Sopenharmony_ci        if (it != validParamVec.end()) {
2027c804472Sopenharmony_ci            *it = "~!@#$%^&";
2037c804472Sopenharmony_ci        }
2047c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2057c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2067c804472Sopenharmony_ci        if (it != validParamVec.end()) {
2077c804472Sopenharmony_ci            *it = "-cr";
2087c804472Sopenharmony_ci        }
2097c804472Sopenharmony_ci        // -cr value invalid
2107c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2117c804472Sopenharmony_ci            *std::next(it) = "aaaa";
2127c804472Sopenharmony_ci        }
2137c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2147c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2157c804472Sopenharmony_ci        // params value invalid
2167c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2177c804472Sopenharmony_ci            *std::next(it) = "4000";
2187c804472Sopenharmony_ci        }
2197c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2207c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2217c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2227c804472Sopenharmony_ci            *std::next(it) = "1080";
2237c804472Sopenharmony_ci        }
2247c804472Sopenharmony_ci    }
2257c804472Sopenharmony_ci
2267c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_HsErr)
2277c804472Sopenharmony_ci    {
2287c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
2297c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hs");
2307c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2317c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^&";
2327c804472Sopenharmony_ci        }
2337c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2347c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2357c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2367c804472Sopenharmony_ci            *std::next(it) = "524289";
2377c804472Sopenharmony_ci        }
2387c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2397c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2407c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2417c804472Sopenharmony_ci            *std::next(it) = "100000";
2427c804472Sopenharmony_ci        }
2437c804472Sopenharmony_ci    }
2447c804472Sopenharmony_ci
2457c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_HfErr)
2467c804472Sopenharmony_ci    {
2477c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
2487c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hf");
2497c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2507c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^&";
2517c804472Sopenharmony_ci        }
2527c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2537c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2547c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2557c804472Sopenharmony_ci            *std::next(it) = "true";
2567c804472Sopenharmony_ci        }
2577c804472Sopenharmony_ci    }
2587c804472Sopenharmony_ci
2597c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_ShapeErr)
2607c804472Sopenharmony_ci    {
2617c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
2627c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-shape");
2637c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2647c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^&";
2657c804472Sopenharmony_ci        }
2667c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2677c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2687c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2697c804472Sopenharmony_ci            *std::next(it) = "rect";
2707c804472Sopenharmony_ci        }
2717c804472Sopenharmony_ci    }
2727c804472Sopenharmony_ci
2737c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_DeviceErr)
2747c804472Sopenharmony_ci    {
2757c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
2767c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
2777c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2787c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^&";
2797c804472Sopenharmony_ci        }
2807c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2817c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2827c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2837c804472Sopenharmony_ci            *std::next(it) = "phone";
2847c804472Sopenharmony_ci        }
2857c804472Sopenharmony_ci    }
2867c804472Sopenharmony_ci
2877c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_UrlErr)
2887c804472Sopenharmony_ci    {
2897c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
2907c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-url");
2917c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2927c804472Sopenharmony_ci            *std::next(it) = "";
2937c804472Sopenharmony_ci        }
2947c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
2957c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
2967c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
2977c804472Sopenharmony_ci            *std::next(it) = "pages/BigImg_1M";
2987c804472Sopenharmony_ci        }
2997c804472Sopenharmony_ci    }
3007c804472Sopenharmony_ci
3017c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_FErr)
3027c804472Sopenharmony_ci    {
3037c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
3047c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-f");
3057c804472Sopenharmony_ci        if (it != validParamVec.end()) {
3067c804472Sopenharmony_ci            *it = "ffff";
3077c804472Sopenharmony_ci        }
3087c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3097c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
3107c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3117c804472Sopenharmony_ci            *it = "-f";
3127c804472Sopenharmony_ci            *std::next(it) = "pages/BigImg_1M";
3137c804472Sopenharmony_ci        }
3147c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3157c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
3167c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3177c804472Sopenharmony_ci            *std::next(it) = currFile;
3187c804472Sopenharmony_ci        }
3197c804472Sopenharmony_ci    }
3207c804472Sopenharmony_ci
3217c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_ArpErr)
3227c804472Sopenharmony_ci    {
3237c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
3247c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-arp");
3257c804472Sopenharmony_ci        if (it != validParamVec.end()) {
3267c804472Sopenharmony_ci            *it = "aaarp";
3277c804472Sopenharmony_ci        }
3287c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3297c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
3307c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3317c804472Sopenharmony_ci            *it = "-arp";
3327c804472Sopenharmony_ci            *std::next(it) = "pages/BigImg_1M";
3337c804472Sopenharmony_ci        }
3347c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3357c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
3367c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3377c804472Sopenharmony_ci            *std::next(it) = currDir;
3387c804472Sopenharmony_ci        }
3397c804472Sopenharmony_ci    }
3407c804472Sopenharmony_ci
3417c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_PmErr)
3427c804472Sopenharmony_ci    {
3437c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
3447c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-pm");
3457c804472Sopenharmony_ci        if (it != validParamVec.end()) {
3467c804472Sopenharmony_ci            *it = "aaapm";
3477c804472Sopenharmony_ci        }
3487c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3497c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
3507c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3517c804472Sopenharmony_ci            *it = "-pm";
3527c804472Sopenharmony_ci            *std::next(it) = "aaa";
3537c804472Sopenharmony_ci        }
3547c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3557c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
3567c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3577c804472Sopenharmony_ci            *std::next(it) = "Stage";
3587c804472Sopenharmony_ci        }
3597c804472Sopenharmony_ci    }
3607c804472Sopenharmony_ci
3617c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_PagesErr)
3627c804472Sopenharmony_ci    {
3637c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
3647c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-pages");
3657c804472Sopenharmony_ci        if (it != validParamVec.end()) {
3667c804472Sopenharmony_ci            *it = "aaapages";
3677c804472Sopenharmony_ci        }
3687c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
3707c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3717c804472Sopenharmony_ci            *it = "-pages";
3727c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
3737c804472Sopenharmony_ci        }
3747c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3757c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
3767c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3777c804472Sopenharmony_ci            *std::next(it) = "main_pages";
3787c804472Sopenharmony_ci        }
3797c804472Sopenharmony_ci    }
3807c804472Sopenharmony_ci
3817c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_RefreshErr)
3827c804472Sopenharmony_ci    {
3837c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
3847c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-refresh");
3857c804472Sopenharmony_ci        if (it != validParamVec.end()) {
3867c804472Sopenharmony_ci            *it = "aaarefresh";
3877c804472Sopenharmony_ci        }
3887c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3897c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
3907c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3917c804472Sopenharmony_ci            *it = "-refresh";
3927c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
3937c804472Sopenharmony_ci        }
3947c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
3957c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
3967c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
3977c804472Sopenharmony_ci            *std::next(it) = "region";
3987c804472Sopenharmony_ci        }
3997c804472Sopenharmony_ci    }
4007c804472Sopenharmony_ci
4017c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_CardErr)
4027c804472Sopenharmony_ci    {
4037c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
4047c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-card");
4057c804472Sopenharmony_ci        if (it != validParamVec.end()) {
4067c804472Sopenharmony_ci            *it = "aaacard";
4077c804472Sopenharmony_ci        }
4087c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4097c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
4107c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4117c804472Sopenharmony_ci            *it = "-card";
4127c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
4137c804472Sopenharmony_ci        }
4147c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4157c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
4167c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4177c804472Sopenharmony_ci            *std::next(it) = "true";
4187c804472Sopenharmony_ci        }
4197c804472Sopenharmony_ci    }
4207c804472Sopenharmony_ci
4217c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_ProjectIdErr)
4227c804472Sopenharmony_ci    {
4237c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
4247c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-projectID");
4257c804472Sopenharmony_ci        if (it != validParamVec.end()) {
4267c804472Sopenharmony_ci            *it = "aaaprojectID";
4277c804472Sopenharmony_ci        }
4287c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4297c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
4307c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4317c804472Sopenharmony_ci            *it = "-projectID";
4327c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
4337c804472Sopenharmony_ci        }
4347c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4357c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
4367c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4377c804472Sopenharmony_ci            *std::next(it) = "138968279";
4387c804472Sopenharmony_ci        }
4397c804472Sopenharmony_ci    }
4407c804472Sopenharmony_ci
4417c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_CmErr)
4427c804472Sopenharmony_ci    {
4437c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
4447c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cm");
4457c804472Sopenharmony_ci        if (it != validParamVec.end()) {
4467c804472Sopenharmony_ci            *it = "aaacm";
4477c804472Sopenharmony_ci        }
4487c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4497c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
4507c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4517c804472Sopenharmony_ci            *it = "-cm";
4527c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
4537c804472Sopenharmony_ci        }
4547c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4557c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
4567c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4577c804472Sopenharmony_ci            *std::next(it) = "light";
4587c804472Sopenharmony_ci        }
4597c804472Sopenharmony_ci    }
4607c804472Sopenharmony_ci
4617c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_AvErr)
4627c804472Sopenharmony_ci    {
4637c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
4647c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-av");
4657c804472Sopenharmony_ci        if (it != validParamVec.end()) {
4667c804472Sopenharmony_ci            *it = "aaaav";
4677c804472Sopenharmony_ci        }
4687c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
4707c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4717c804472Sopenharmony_ci            *it = "-av";
4727c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
4737c804472Sopenharmony_ci        }
4747c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4757c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
4767c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4777c804472Sopenharmony_ci            *std::next(it) = "ACE_2_0";
4787c804472Sopenharmony_ci        }
4797c804472Sopenharmony_ci    }
4807c804472Sopenharmony_ci
4817c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_OErr)
4827c804472Sopenharmony_ci    {
4837c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
4847c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-o");
4857c804472Sopenharmony_ci        if (it != validParamVec.end()) {
4867c804472Sopenharmony_ci            *it = "aaao";
4877c804472Sopenharmony_ci        }
4887c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4897c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
4907c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4917c804472Sopenharmony_ci            *it = "-o";
4927c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
4937c804472Sopenharmony_ci        }
4947c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
4957c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
4967c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
4977c804472Sopenharmony_ci            *std::next(it) = "portrait";
4987c804472Sopenharmony_ci        }
4997c804472Sopenharmony_ci    }
5007c804472Sopenharmony_ci
5017c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_LwsErr)
5027c804472Sopenharmony_ci    {
5037c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5047c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-lws");
5057c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5067c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
5077c804472Sopenharmony_ci        }
5087c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5097c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
5107c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5117c804472Sopenharmony_ci            *std::next(it) = "65536";
5127c804472Sopenharmony_ci        }
5137c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5147c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
5157c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5167c804472Sopenharmony_ci            *std::next(it) = "40003";
5177c804472Sopenharmony_ci        }
5187c804472Sopenharmony_ci    }
5197c804472Sopenharmony_ci
5207c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_SmErr)
5217c804472Sopenharmony_ci    {
5227c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5237c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-sm");
5247c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5257c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
5267c804472Sopenharmony_ci        }
5277c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5287c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
5297c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5307c804472Sopenharmony_ci            *std::next(it) = "static";
5317c804472Sopenharmony_ci        }
5327c804472Sopenharmony_ci    }
5337c804472Sopenharmony_ci
5347c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_HspErr)
5357c804472Sopenharmony_ci    {
5367c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5377c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-hsp");
5387c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5397c804472Sopenharmony_ci            *it = "aaahsp";
5407c804472Sopenharmony_ci        }
5417c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5427c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
5437c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5447c804472Sopenharmony_ci            *it = "-hsp";
5457c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
5467c804472Sopenharmony_ci        }
5477c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5487c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
5497c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5507c804472Sopenharmony_ci            *std::next(it) = currDir;
5517c804472Sopenharmony_ci        }
5527c804472Sopenharmony_ci    }
5537c804472Sopenharmony_ci
5547c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_CpmErr)
5557c804472Sopenharmony_ci    {
5567c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5577c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-cpm");
5587c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5597c804472Sopenharmony_ci            *it = "aaacpm";
5607c804472Sopenharmony_ci        }
5617c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5627c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
5637c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5647c804472Sopenharmony_ci            *it = "-cpm";
5657c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
5667c804472Sopenharmony_ci        }
5677c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5687c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
5697c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
5707c804472Sopenharmony_ci            *std::next(it) = "true";
5717c804472Sopenharmony_ci        }
5727c804472Sopenharmony_ci    }
5737c804472Sopenharmony_ci
5747c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_AbpErr)
5757c804472Sopenharmony_ci    {
5767c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5777c804472Sopenharmony_ci        // lite device
5787c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
5797c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5807c804472Sopenharmony_ci            *std::next(it) = "liteWearable";
5817c804472Sopenharmony_ci        }
5827c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5837c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
5847c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5857c804472Sopenharmony_ci            *std::next(it) = "phone";
5867c804472Sopenharmony_ci        }
5877c804472Sopenharmony_ci        // no -d
5887c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-d");
5897c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5907c804472Sopenharmony_ci            *it = "aaad";
5917c804472Sopenharmony_ci        }
5927c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
5937c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
5947c804472Sopenharmony_ci        if (it != validParamVec.end()) {
5957c804472Sopenharmony_ci            *it = "-d";
5967c804472Sopenharmony_ci        }
5977c804472Sopenharmony_ci        // no -abp
5987c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
5997c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-abp");
6007c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6017c804472Sopenharmony_ci            *it = "aaaabp";
6027c804472Sopenharmony_ci        }
6037c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6047c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
6057c804472Sopenharmony_ci        // -abp value empty
6067c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6077c804472Sopenharmony_ci            *it = "-abp";
6087c804472Sopenharmony_ci            *std::next(it) = "";
6097c804472Sopenharmony_ci        }
6107c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6117c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
6127c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6137c804472Sopenharmony_ci            *std::next(it) = "ets/entryability/EntryAbility.abc";
6147c804472Sopenharmony_ci        }
6157c804472Sopenharmony_ci    }
6167c804472Sopenharmony_ci
6177c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_AbnErr)
6187c804472Sopenharmony_ci    {
6197c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
6207c804472Sopenharmony_ci        // no -d
6217c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-d");
6227c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6237c804472Sopenharmony_ci            *it = "aaad";
6247c804472Sopenharmony_ci        }
6257c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6267c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
6277c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6287c804472Sopenharmony_ci            *it = "-d";
6297c804472Sopenharmony_ci        }
6307c804472Sopenharmony_ci        // lite device
6317c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-device");
6327c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6337c804472Sopenharmony_ci            *std::next(it) = "liteWearable";
6347c804472Sopenharmony_ci        }
6357c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6367c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
6377c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6387c804472Sopenharmony_ci            *std::next(it) = "phone";
6397c804472Sopenharmony_ci        }
6407c804472Sopenharmony_ci        // no -abn
6417c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
6427c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-abn");
6437c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6447c804472Sopenharmony_ci            *it = "aaaabn";
6457c804472Sopenharmony_ci        }
6467c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6477c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
6487c804472Sopenharmony_ci        // -abn value empty
6497c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6507c804472Sopenharmony_ci            *it = "-abn";
6517c804472Sopenharmony_ci            *std::next(it) = "";
6527c804472Sopenharmony_ci        }
6537c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6547c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
6557c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6567c804472Sopenharmony_ci            *std::next(it) = "EntryAbility";
6577c804472Sopenharmony_ci        }
6587c804472Sopenharmony_ci    }
6597c804472Sopenharmony_ci
6607c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_StaticCardErr)
6617c804472Sopenharmony_ci    {
6627c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
6637c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-staticCard");
6647c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6657c804472Sopenharmony_ci            *it = "aaastaticCard";
6667c804472Sopenharmony_ci        }
6677c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6687c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
6697c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6707c804472Sopenharmony_ci            *it = "-staticCard";
6717c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
6727c804472Sopenharmony_ci        }
6737c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6747c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
6757c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6767c804472Sopenharmony_ci            *std::next(it) = "true";
6777c804472Sopenharmony_ci        }
6787c804472Sopenharmony_ci    }
6797c804472Sopenharmony_ci
6807c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_FoldableErr)
6817c804472Sopenharmony_ci    {
6827c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
6837c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
6847c804472Sopenharmony_ci        if (it != validParamVec.end()) {
6857c804472Sopenharmony_ci            *it = "aaafoldable";
6867c804472Sopenharmony_ci        }
6877c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6887c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
6897c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6907c804472Sopenharmony_ci            *it = "-foldable";
6917c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
6927c804472Sopenharmony_ci        }
6937c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
6947c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
6957c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
6967c804472Sopenharmony_ci            *std::next(it) = "true";
6977c804472Sopenharmony_ci        }
6987c804472Sopenharmony_ci    }
6997c804472Sopenharmony_ci
7007c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_FoldStatusErr)
7017c804472Sopenharmony_ci    {
7027c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7037c804472Sopenharmony_ci        // no -foldable
7047c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
7057c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7067c804472Sopenharmony_ci            *it = "aaafoldable";
7077c804472Sopenharmony_ci        }
7087c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7097c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
7107c804472Sopenharmony_ci        // param -foldable value is false
7117c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7127c804472Sopenharmony_ci            *it = "-foldable";
7137c804472Sopenharmony_ci            *std::next(it) = "false";
7147c804472Sopenharmony_ci        }
7157c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7167c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
7177c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7187c804472Sopenharmony_ci            *std::next(it) = "true";
7197c804472Sopenharmony_ci        }
7207c804472Sopenharmony_ci        // param foldStatus value invalid
7217c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7227c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-foldStatus");
7237c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7247c804472Sopenharmony_ci            *it = "aaafoldStatus";
7257c804472Sopenharmony_ci        }
7267c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7277c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
7287c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7297c804472Sopenharmony_ci            *it = "-foldStatus";
7307c804472Sopenharmony_ci        }
7317c804472Sopenharmony_ci    }
7327c804472Sopenharmony_ci
7337c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_FrErr)
7347c804472Sopenharmony_ci    {
7357c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7367c804472Sopenharmony_ci        // no -foldable
7377c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-foldable");
7387c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7397c804472Sopenharmony_ci            *it = "aaafoldable";
7407c804472Sopenharmony_ci        }
7417c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7427c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
7437c804472Sopenharmony_ci        // param -foldable value is false
7447c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7457c804472Sopenharmony_ci            *it = "-foldable";
7467c804472Sopenharmony_ci            *std::next(it) = "false";
7477c804472Sopenharmony_ci        }
7487c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7497c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
7507c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7517c804472Sopenharmony_ci            *std::next(it) = "true";
7527c804472Sopenharmony_ci        }
7537c804472Sopenharmony_ci        // no param -fr
7547c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7557c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-fr");
7567c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7577c804472Sopenharmony_ci            *it = "aaafr";
7587c804472Sopenharmony_ci        }
7597c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7607c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
7617c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7627c804472Sopenharmony_ci            *it = "-fr";
7637c804472Sopenharmony_ci        }
7647c804472Sopenharmony_ci        // param -fr value is invalid
7657c804472Sopenharmony_ci        it = std::find(validParamVec.begin(), validParamVec.end(), "-fr");
7667c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7677c804472Sopenharmony_ci            *std::next(it) = "aaaa";
7687c804472Sopenharmony_ci        }
7697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7707c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
7717c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7727c804472Sopenharmony_ci            *std::next(it) = "1080";
7737c804472Sopenharmony_ci        }
7747c804472Sopenharmony_ci    }
7757c804472Sopenharmony_ci
7767c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_LjPathErr)
7777c804472Sopenharmony_ci    {
7787c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7797c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-ljPath");
7807c804472Sopenharmony_ci        if (it != validParamVec.end()) {
7817c804472Sopenharmony_ci            *it = "aaaljPath";
7827c804472Sopenharmony_ci        }
7837c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7847c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
7857c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7867c804472Sopenharmony_ci            *it = "-ljPath";
7877c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
7887c804472Sopenharmony_ci        }
7897c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
7907c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
7917c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
7927c804472Sopenharmony_ci            *std::next(it) = currFile;
7937c804472Sopenharmony_ci        }
7947c804472Sopenharmony_ci    }
7957c804472Sopenharmony_ci
7967c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_LErr)
7977c804472Sopenharmony_ci    {
7987c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
7997c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-l");
8007c804472Sopenharmony_ci        if (it != validParamVec.end()) {
8017c804472Sopenharmony_ci            *it = "aaal";
8027c804472Sopenharmony_ci        }
8037c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8047c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
8057c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8067c804472Sopenharmony_ci            *it = "-l";
8077c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
8087c804472Sopenharmony_ci        }
8097c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8107c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
8117c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8127c804472Sopenharmony_ci            *std::next(it) = "zh_CN";
8137c804472Sopenharmony_ci        }
8147c804472Sopenharmony_ci    }
8157c804472Sopenharmony_ci
8167c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_TsErr)
8177c804472Sopenharmony_ci    {
8187c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
8197c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-ts");
8207c804472Sopenharmony_ci        if (it != validParamVec.end()) {
8217c804472Sopenharmony_ci            *it = "aaats";
8227c804472Sopenharmony_ci        }
8237c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8247c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
8257c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8267c804472Sopenharmony_ci            *it = "-ts";
8277c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
8287c804472Sopenharmony_ci        }
8297c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8307c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
8317c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8327c804472Sopenharmony_ci            *std::next(it) = "trace_70259_commandPipe";
8337c804472Sopenharmony_ci        }
8347c804472Sopenharmony_ci    }
8357c804472Sopenharmony_ci
8367c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_SErr)
8377c804472Sopenharmony_ci    {
8387c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
8397c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-s");
8407c804472Sopenharmony_ci        if (it != validParamVec.end()) {
8417c804472Sopenharmony_ci            *it = "aaas";
8427c804472Sopenharmony_ci        }
8437c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8447c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
8457c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8467c804472Sopenharmony_ci            *it = "-s";
8477c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
8487c804472Sopenharmony_ci        }
8497c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8507c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
8517c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8527c804472Sopenharmony_ci            *std::next(it) = "componentpreviewinstance_1712054594321_1";
8537c804472Sopenharmony_ci        }
8547c804472Sopenharmony_ci    }
8557c804472Sopenharmony_ci
8567c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest_SdErr)
8577c804472Sopenharmony_ci    {
8587c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
8597c804472Sopenharmony_ci        auto it = std::find(validParamVec.begin(), validParamVec.end(), "-sd");
8607c804472Sopenharmony_ci        if (it != validParamVec.end()) {
8617c804472Sopenharmony_ci            *it = "aaasd";
8627c804472Sopenharmony_ci        }
8637c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8647c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
8657c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8667c804472Sopenharmony_ci            *it = "-sd";
8677c804472Sopenharmony_ci            *std::next(it) = "~!@#$%^";
8687c804472Sopenharmony_ci        }
8697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8707c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsCommandValid());
8717c804472Sopenharmony_ci        if (it != validParamVec.end() && std::next(it) != validParamVec.end()) {
8727c804472Sopenharmony_ci            *std::next(it) = "480";
8737c804472Sopenharmony_ci        }
8747c804472Sopenharmony_ci    }
8757c804472Sopenharmony_ci
8767c804472Sopenharmony_ci
8777c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCommandValidTest1)
8787c804472Sopenharmony_ci    {
8797c804472Sopenharmony_ci        CommandParser::GetInstance().argsMap.clear();
8807c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().ProcessCommand(validParamVec));
8817c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCommandValid());
8827c804472Sopenharmony_ci    }
8837c804472Sopenharmony_ci
8847c804472Sopenharmony_ci    TEST_F(CommandParserTest, ValueTest)
8857c804472Sopenharmony_ci    {
8867c804472Sopenharmony_ci        std::string str1 = "abcd";
8877c804472Sopenharmony_ci        std::string str2 = "rect";
8887c804472Sopenharmony_ci        std::string str3 = CommandParser::GetInstance().Value("shape");
8897c804472Sopenharmony_ci        EXPECT_EQ(str2, str3);
8907c804472Sopenharmony_ci        EXPECT_NE(str1, str3);
8917c804472Sopenharmony_ci    }
8927c804472Sopenharmony_ci
8937c804472Sopenharmony_ci    TEST_F(CommandParserTest, ValuesTest)
8947c804472Sopenharmony_ci    {
8957c804472Sopenharmony_ci        std::vector<std::string> vec1 = {"1111", "2222"};
8967c804472Sopenharmony_ci        std::vector<std::string> vec2 = {"1080", "2340"};
8977c804472Sopenharmony_ci        std::vector<std::string> vec3 = CommandParser::GetInstance().Values("or");
8987c804472Sopenharmony_ci        for (int i = 0; i < vec3.size(); i++) {
8997c804472Sopenharmony_ci            EXPECT_NE(vec1[i], vec3[i]);
9007c804472Sopenharmony_ci        }
9017c804472Sopenharmony_ci        for (int i = 0; i < vec3.size(); i++) {
9027c804472Sopenharmony_ci            EXPECT_EQ(vec2[i], vec3[i]);
9037c804472Sopenharmony_ci        }
9047c804472Sopenharmony_ci    }
9057c804472Sopenharmony_ci
9067c804472Sopenharmony_ci    TEST_F(CommandParserTest, RegisterTest)
9077c804472Sopenharmony_ci    {
9087c804472Sopenharmony_ci        std::string key = "-abcd";
9097c804472Sopenharmony_ci        uint32_t count = 1;
9107c804472Sopenharmony_ci        CommandParser::GetInstance().Register(key, count, "abcd");
9117c804472Sopenharmony_ci        uint32_t num = CommandParser::GetInstance().regsArgsCountMap[key];
9127c804472Sopenharmony_ci        std::string helpStr = CommandParser::GetInstance().regsHelpMap[key];
9137c804472Sopenharmony_ci        EXPECT_EQ(num, count);
9147c804472Sopenharmony_ci        EXPECT_EQ(helpStr, "abcd");
9157c804472Sopenharmony_ci    }
9167c804472Sopenharmony_ci
9177c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsResolutionValidTest)
9187c804472Sopenharmony_ci    {
9197c804472Sopenharmony_ci        int32_t val1 = 0;
9207c804472Sopenharmony_ci        int32_t val2 = 1;
9217c804472Sopenharmony_ci        int32_t val3 = 1024;
9227c804472Sopenharmony_ci        int32_t val4 = 3840;
9237c804472Sopenharmony_ci        int32_t val5 = 3841;
9247c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsResolutionValid(val1));
9257c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val2));
9267c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val3));
9277c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsResolutionValid(val4));
9287c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsResolutionValid(val5));
9297c804472Sopenharmony_ci    }
9307c804472Sopenharmony_ci
9317c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetOrignalResolutionWidthTest)
9327c804472Sopenharmony_ci    {
9337c804472Sopenharmony_ci        int32_t val1 = 1080;
9347c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetOrignalResolutionWidth(), val1);
9357c804472Sopenharmony_ci    }
9367c804472Sopenharmony_ci
9377c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetOrignalResolutionHeightTest)
9387c804472Sopenharmony_ci    {
9397c804472Sopenharmony_ci        int32_t val1 = 2340;
9407c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetOrignalResolutionHeight(), val1);
9417c804472Sopenharmony_ci    }
9427c804472Sopenharmony_ci
9437c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetCompressionResolutionWidthTest)
9447c804472Sopenharmony_ci    {
9457c804472Sopenharmony_ci        int32_t val1 = 1080;
9467c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetCompressionResolutionWidth(), val1);
9477c804472Sopenharmony_ci    }
9487c804472Sopenharmony_ci
9497c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetCompressionResolutionHeightTest)
9507c804472Sopenharmony_ci    {
9517c804472Sopenharmony_ci        int32_t val1 = 2340;
9527c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetCompressionResolutionHeight(), val1);
9537c804472Sopenharmony_ci    }
9547c804472Sopenharmony_ci
9557c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetJsHeapSizeTest)
9567c804472Sopenharmony_ci    {
9577c804472Sopenharmony_ci        int32_t val1 = 100000;
9587c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetJsHeapSize(), val1);
9597c804472Sopenharmony_ci    }
9607c804472Sopenharmony_ci
9617c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetAppNameTest)
9627c804472Sopenharmony_ci    {
9637c804472Sopenharmony_ci        std::string val1 = "entry";
9647c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetAppName(), val1);
9657c804472Sopenharmony_ci    }
9667c804472Sopenharmony_ci
9677c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsSendJSHeapTest)
9687c804472Sopenharmony_ci    {
9697c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsSendJSHeap());
9707c804472Sopenharmony_ci    }
9717c804472Sopenharmony_ci
9727c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetDeviceTypeTest)
9737c804472Sopenharmony_ci    {
9747c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetDeviceType(), "phone");
9757c804472Sopenharmony_ci    }
9767c804472Sopenharmony_ci
9777c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsRegionRefreshTest)
9787c804472Sopenharmony_ci    {
9797c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsRegionRefresh());
9807c804472Sopenharmony_ci    }
9817c804472Sopenharmony_ci
9827c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsCardDisplayTest)
9837c804472Sopenharmony_ci    {
9847c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsCardDisplay());
9857c804472Sopenharmony_ci    }
9867c804472Sopenharmony_ci
9877c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetConfigPathTest)
9887c804472Sopenharmony_ci    {
9897c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetConfigPath(), currFile);
9907c804472Sopenharmony_ci    }
9917c804472Sopenharmony_ci
9927c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetProjectIDTest)
9937c804472Sopenharmony_ci    {
9947c804472Sopenharmony_ci        std::string str = "138968279";
9957c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectID(), str);
9967c804472Sopenharmony_ci    }
9977c804472Sopenharmony_ci
9987c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetScreenModeTest)
9997c804472Sopenharmony_ci    {
10007c804472Sopenharmony_ci        std::string str = "static";
10017c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetScreenMode(), CommandParser::ScreenMode::STATIC);
10027c804472Sopenharmony_ci    }
10037c804472Sopenharmony_ci
10047c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetConfigChangesTest)
10057c804472Sopenharmony_ci    {
10067c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetConfigChanges(), "");
10077c804472Sopenharmony_ci    }
10087c804472Sopenharmony_ci
10097c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetAppResourcePathTest)
10107c804472Sopenharmony_ci    {
10117c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetAppResourcePath(), currDir);
10127c804472Sopenharmony_ci    }
10137c804472Sopenharmony_ci
10147c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetScreenShapeTest)
10157c804472Sopenharmony_ci    {
10167c804472Sopenharmony_ci        std::string str = "rect";
10177c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetScreenShape(), str);
10187c804472Sopenharmony_ci    }
10197c804472Sopenharmony_ci
10207c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetProjectModelTest)
10217c804472Sopenharmony_ci    {
10227c804472Sopenharmony_ci        std::string str = "Stage";
10237c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModel(), str);
10247c804472Sopenharmony_ci    }
10257c804472Sopenharmony_ci
10267c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetProjectModelEnumValueTest)
10277c804472Sopenharmony_ci    {
10287c804472Sopenharmony_ci        int value = 1;
10297c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumValue(), value);
10307c804472Sopenharmony_ci    }
10317c804472Sopenharmony_ci
10327c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetProjectModelEnumNameTest)
10337c804472Sopenharmony_ci    {
10347c804472Sopenharmony_ci        int index = 0;
10357c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
10367c804472Sopenharmony_ci        index = 1;
10377c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "Stage");
10387c804472Sopenharmony_ci        index = -1;
10397c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
10407c804472Sopenharmony_ci        index = 2;
10417c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetProjectModelEnumName(index), "FA");
10427c804472Sopenharmony_ci    }
10437c804472Sopenharmony_ci
10447c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetPagesTest)
10457c804472Sopenharmony_ci    {
10467c804472Sopenharmony_ci        std::string str = "main_pages";
10477c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetPages(), str);
10487c804472Sopenharmony_ci    }
10497c804472Sopenharmony_ci
10507c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetContainerSdkPathTest)
10517c804472Sopenharmony_ci    {
10527c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetContainerSdkPath(), currDir);
10537c804472Sopenharmony_ci    }
10547c804472Sopenharmony_ci
10557c804472Sopenharmony_ci    TEST_F(CommandParserTest, CheckParamInvalidityTest)
10567c804472Sopenharmony_ci    {
10577c804472Sopenharmony_ci        std::string param = "0";
10587c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10597c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10607c804472Sopenharmony_ci        param = "110";
10617c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10627c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10637c804472Sopenharmony_ci        param = "01";
10647c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10657c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10667c804472Sopenharmony_ci        param = "ab01";
10677c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10687c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10697c804472Sopenharmony_ci        param = "0.34";
10707c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10717c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10727c804472Sopenharmony_ci        param = "10.34";
10737c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, true));
10747c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().CheckParamInvalidity(param, false));
10757c804472Sopenharmony_ci    }
10767c804472Sopenharmony_ci
10777c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsComponentModeTest)
10787c804472Sopenharmony_ci    {
10797c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsComponentMode());
10807c804472Sopenharmony_ci    }
10817c804472Sopenharmony_ci
10827c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetAbilityPathTest)
10837c804472Sopenharmony_ci    {
10847c804472Sopenharmony_ci        std::string str = "ets/entryability/EntryAbility.abc";
10857c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetAbilityPath(), str);
10867c804472Sopenharmony_ci    }
10877c804472Sopenharmony_ci
10887c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetAbilityNameTest)
10897c804472Sopenharmony_ci    {
10907c804472Sopenharmony_ci        std::string str = "EntryAbility";
10917c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetAbilityName(), str);
10927c804472Sopenharmony_ci    }
10937c804472Sopenharmony_ci
10947c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsStaticCardTest)
10957c804472Sopenharmony_ci    {
10967c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsStaticCard());
10977c804472Sopenharmony_ci    }
10987c804472Sopenharmony_ci
10997c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsMainArgLengthInvalidTest)
11007c804472Sopenharmony_ci    {
11017c804472Sopenharmony_ci        std::string validStr = "1111111";
11027c804472Sopenharmony_ci        EXPECT_FALSE(CommandParser::GetInstance().IsMainArgLengthInvalid(validStr.c_str()));
11037c804472Sopenharmony_ci        int desiredLength = 1184;
11047c804472Sopenharmony_ci        char initialChar = '1';
11057c804472Sopenharmony_ci        std::string invalidStr(desiredLength, initialChar);
11067c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsMainArgLengthInvalid(invalidStr.c_str()));
11077c804472Sopenharmony_ci    }
11087c804472Sopenharmony_ci
11097c804472Sopenharmony_ci    TEST_F(CommandParserTest, IsFoldableTest)
11107c804472Sopenharmony_ci    {
11117c804472Sopenharmony_ci        EXPECT_TRUE(CommandParser::GetInstance().IsFoldable());
11127c804472Sopenharmony_ci    }
11137c804472Sopenharmony_ci
11147c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetFoldStatusTest)
11157c804472Sopenharmony_ci    {
11167c804472Sopenharmony_ci        std::string str = "half_fold";
11177c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetFoldStatus(), str);
11187c804472Sopenharmony_ci    }
11197c804472Sopenharmony_ci
11207c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetFoldResolutionWidthTest)
11217c804472Sopenharmony_ci    {
11227c804472Sopenharmony_ci        int32_t value = 1080;
11237c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetFoldResolutionWidth(), value);
11247c804472Sopenharmony_ci    }
11257c804472Sopenharmony_ci
11267c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetFoldResolutionHeightTest)
11277c804472Sopenharmony_ci    {
11287c804472Sopenharmony_ci        int32_t value = 2504;
11297c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetFoldResolutionHeight(), value);
11307c804472Sopenharmony_ci    }
11317c804472Sopenharmony_ci
11327c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetLoaderJsonPathTest)
11337c804472Sopenharmony_ci    {
11347c804472Sopenharmony_ci        EXPECT_EQ(CommandParser::GetInstance().GetLoaderJsonPath(), currFile);
11357c804472Sopenharmony_ci    }
11367c804472Sopenharmony_ci
11377c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetCommandInfoTest)
11387c804472Sopenharmony_ci    {
11397c804472Sopenharmony_ci        CommandInfo info;
11407c804472Sopenharmony_ci        CommandParser::GetInstance().GetCommandInfo(info);
11417c804472Sopenharmony_ci        EXPECT_EQ(info.deviceType, "phone");
11427c804472Sopenharmony_ci        EXPECT_TRUE(info.isComponentMode);
11437c804472Sopenharmony_ci    }
11447c804472Sopenharmony_ci
11457c804472Sopenharmony_ci    TEST_F(CommandParserTest, GetFoldInfoTest)
11467c804472Sopenharmony_ci    {
11477c804472Sopenharmony_ci        FoldInfo info;
11487c804472Sopenharmony_ci        CommandParser::GetInstance().GetFoldInfo(info);
11497c804472Sopenharmony_ci        EXPECT_TRUE(info.foldable);
11507c804472Sopenharmony_ci        EXPECT_EQ(info.foldStatus, "half_fold");
11517c804472Sopenharmony_ci    }
11527c804472Sopenharmony_ci
11537c804472Sopenharmony_ci    TEST_F(CommandParserTest, ParseArgsTest)
11547c804472Sopenharmony_ci    {
11557c804472Sopenharmony_ci        int argc = 5;
11567c804472Sopenharmony_ci        char* argv[5]; // 5 is array length
11577c804472Sopenharmony_ci        // param value length is out of range
11587c804472Sopenharmony_ci        int desiredLength = 1184;
11597c804472Sopenharmony_ci        char initialChar = '1';
11607c804472Sopenharmony_ci        std::string invalidStr(desiredLength, initialChar);
11617c804472Sopenharmony_ci        argv[1] = "-p";
11627c804472Sopenharmony_ci        argv[2] = const_cast<char*>(invalidStr.c_str());
11637c804472Sopenharmony_ci        int ret = CommandParser::GetInstance().ParseArgs(argc, argv);
11647c804472Sopenharmony_ci        EXPECT_EQ(ret, 11); // 11 is expect return value
11657c804472Sopenharmony_ci        // param value invalid
11667c804472Sopenharmony_ci        argv[2] = "999999999";
11677c804472Sopenharmony_ci        ret = CommandParser::GetInstance().ParseArgs(argc, argv);
11687c804472Sopenharmony_ci        EXPECT_EQ(ret, 11); // 11 is expect return value
11697c804472Sopenharmony_ci        argv[2] = "9999";
11707c804472Sopenharmony_ci        ret = CommandParser::GetInstance().ParseArgs(argc, argv);
11717c804472Sopenharmony_ci        EXPECT_EQ(ret, -1); // -1 is expect return valu
11727c804472Sopenharmony_ci        // invalid param
11737c804472Sopenharmony_ci        argv[3] = "-v";
11747c804472Sopenharmony_ci        ret = CommandParser::GetInstance().ParseArgs(argc, argv);
11757c804472Sopenharmony_ci        EXPECT_EQ(ret, 0); // 0 is expect return value
11767c804472Sopenharmony_ci    }
11777c804472Sopenharmony_ci}