• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef TEST_WUKONG_SPECIAL_TEST_H
17 #define TEST_WUKONG_SPECIAL_TEST_H
18 
19 #include <string>
20 
21 #include "input_factory.h"
22 #include "special_test_object.h"
23 #include "test_flow.h"
24 
25 namespace OHOS {
26 namespace WuKong {
27 class SpecialTestFlow : public TestFlow {
28 public:
29     SpecialTestFlow(WuKongShellCommand &shellcommand);
30     virtual ~SpecialTestFlow();
31 
32     /**
33      * @brief set the params of special test to special object
34      * @return Return ERR_OK on success, others on failure.
35      */
36     virtual ErrCode EnvInit() override;
37 
38     /**
39      * @brief run the test
40      * @return Return ERR_OK on success, others on failure.
41      */
42     virtual ErrCode RunStep() override;
43 
44 private:
45     virtual const struct option *GetOptionArguments(std::string &shortOpts) override;
46     virtual ErrCode HandleUnknownOption(const char optopt) override;
47     virtual ErrCode HandleNormalOption(const int option) override;
48     ErrCode CheckArgumentOptionOfc();
49     ErrCode CheckArgumentOptionOfT();
50     /**
51      * @brief check if the '-c' and 'T' is exist at the same time
52      * @param option command letter.
53      * @return Return ERR_OK on success, others on failure.
54      */
55     ErrCode CheckArgument(const int option);
56 
57     /**
58      * @brief set running param
59      * @param option the param of test
60      */
61     ErrCode SetRunningParam(const int option);
62 
63     /**
64      * @brief set set running indicator
65      * @param option the param of test
66      */
67     ErrCode SetRunningIndicator(const int option);
68 
69     /**
70      * @brief registered timer to monitor test time
71      */
72     void RegisterTimer();
73 
74     /**
75      * @brief the callback function of the timer
76      */
77     void TestTimeout();
78 
79     /**
80      * @brief set the type of input accord to arguments
81      * @return the type of input,refer to [InputType] .
82      */
83     InputType DistrbuteInputType();
84 
85     /**
86      * @brief check if the touch params or swap params is valid
87      * @param argumentlist the list of touch params or swap params
88      * @return return ERR_OK is valid, others is invalid.
89      */
90     ErrCode CheckPosition(std::vector<std::string> argumentlist);
91 
92     /**
93      * @brief launcher app of component event
94      * @return return ERR_OK is valid, others is invalid.
95      */
96     ErrCode LauncherApp();
97 
98     /**
99      * @brief protect the right ability
100      * @return return ERR_OK is valid, others is invalid.
101      */
102     ErrCode ProtectRightAbility();
103 
104     uint32_t timerId_ = 0;
105     int countArgs_ = 10;
106 
107     // the interval time of test
108     int intervalArgs_ = 1500;
109 
110     // the total count of test
111     int totalCount_ = 10;
112 
113     // the total time of test
114     float totalTime_ = 10.0;
115 
116     std::string specialRecordName_;
117 
118     // the list of touch params
119     std::vector<std::string> touchParam_;
120 
121     // the list of the start point of swap
122     std::vector<std::string> swapStartPoint_;
123 
124     // the bundle of component event
125     std::vector<std::string> bundleName_;
126 
127     // the list of the end point of swap
128     std::vector<std::string> swapEndPoint_;
129     std::shared_ptr<Utils::Timer> timer_ = nullptr;
130     std::shared_ptr<SpcialTestObject> specialTestObject_ = nullptr;
131 };
132 }  // namespace WuKong
133 }  // namespace OHOS
134 #endif  // TEST_WUKONG_SPECIAL_TEST_H
135