1a69a01cdSopenharmony_ci/*
2a69a01cdSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License.
5a69a01cdSopenharmony_ci * You may obtain a copy of the License at
6a69a01cdSopenharmony_ci *
7a69a01cdSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8a69a01cdSopenharmony_ci *
9a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and
13a69a01cdSopenharmony_ci * limitations under the License.
14a69a01cdSopenharmony_ci */
15a69a01cdSopenharmony_ci
16a69a01cdSopenharmony_ci#ifndef TEST_WUKONG_SPECAIL_TEST_OBJECT_H
17a69a01cdSopenharmony_ci#define TEST_WUKONG_SPECAIL_TEST_OBJECT_H
18a69a01cdSopenharmony_ci
19a69a01cdSopenharmony_ci#include <cstdio>
20a69a01cdSopenharmony_ci#include <sstream>
21a69a01cdSopenharmony_ci#include <string>
22a69a01cdSopenharmony_ci#include <vector>
23a69a01cdSopenharmony_ci
24a69a01cdSopenharmony_ci#include "securec.h"
25a69a01cdSopenharmony_ci
26a69a01cdSopenharmony_cinamespace OHOS {
27a69a01cdSopenharmony_cinamespace WuKong {
28a69a01cdSopenharmony_ciclass SpcialTestObject {
29a69a01cdSopenharmony_cipublic:
30a69a01cdSopenharmony_ci    SpcialTestObject()
31a69a01cdSopenharmony_ci    {
32a69a01cdSopenharmony_ci    }
33a69a01cdSopenharmony_ci    virtual ~SpcialTestObject()
34a69a01cdSopenharmony_ci    {
35a69a01cdSopenharmony_ci    }
36a69a01cdSopenharmony_ci    // convert coordinates to string
37a69a01cdSopenharmony_ci    virtual std::string toString()
38a69a01cdSopenharmony_ci    {
39a69a01cdSopenharmony_ci        return std::to_string(objectType_);
40a69a01cdSopenharmony_ci    }
41a69a01cdSopenharmony_ci    int objectType_ = -1;
42a69a01cdSopenharmony_ci    bool isAllFinished_ = false;
43a69a01cdSopenharmony_ci};
44a69a01cdSopenharmony_ciclass SwapParam : public SpcialTestObject {
45a69a01cdSopenharmony_cipublic:
46a69a01cdSopenharmony_ci    SwapParam()
47a69a01cdSopenharmony_ci    {
48a69a01cdSopenharmony_ci    }
49a69a01cdSopenharmony_ci    virtual ~SwapParam()
50a69a01cdSopenharmony_ci    {
51a69a01cdSopenharmony_ci    }
52a69a01cdSopenharmony_ci
53a69a01cdSopenharmony_ci    virtual std::string toString()
54a69a01cdSopenharmony_ci    {
55a69a01cdSopenharmony_ci        char buffer[50];
56a69a01cdSopenharmony_ci        int result = -1;
57a69a01cdSopenharmony_ci        if (isBack_) {
58a69a01cdSopenharmony_ci            result = sprintf_s(buffer, sizeof(buffer), "Swap: (%d, %d) -> (%d, %d)", endX_, endY_, startX_, startY_);
59a69a01cdSopenharmony_ci        } else {
60a69a01cdSopenharmony_ci            result = sprintf_s(buffer, sizeof(buffer), "Swap: (%d, %d) -> (%d, %d)", startX_, startY_, endX_, endY_);
61a69a01cdSopenharmony_ci        }
62a69a01cdSopenharmony_ci        if (result < 0) {
63a69a01cdSopenharmony_ci            return SpcialTestObject::toString();
64a69a01cdSopenharmony_ci        }
65a69a01cdSopenharmony_ci        return std::string(buffer);
66a69a01cdSopenharmony_ci    }
67a69a01cdSopenharmony_ci    int startX_ = -1;
68a69a01cdSopenharmony_ci    int startY_ = -1;
69a69a01cdSopenharmony_ci    int endX_ = -1;
70a69a01cdSopenharmony_ci    int endY_ = -1;
71a69a01cdSopenharmony_ci    bool isGoBack_ = false;
72a69a01cdSopenharmony_ci    bool isBack_ = false;
73a69a01cdSopenharmony_ci};
74a69a01cdSopenharmony_ciclass TouchParam : public SpcialTestObject {
75a69a01cdSopenharmony_cipublic:
76a69a01cdSopenharmony_ci    TouchParam()
77a69a01cdSopenharmony_ci    {
78a69a01cdSopenharmony_ci    }
79a69a01cdSopenharmony_ci    virtual ~TouchParam()
80a69a01cdSopenharmony_ci    {
81a69a01cdSopenharmony_ci    }
82a69a01cdSopenharmony_ci    virtual std::string toString()
83a69a01cdSopenharmony_ci    {
84a69a01cdSopenharmony_ci        char buffer[50];
85a69a01cdSopenharmony_ci        int result = sprintf_s(buffer, sizeof(buffer), "Point: (%d, %d)", x_, y_);
86a69a01cdSopenharmony_ci        if (result < 0) {
87a69a01cdSopenharmony_ci            return SpcialTestObject::toString();
88a69a01cdSopenharmony_ci        }
89a69a01cdSopenharmony_ci        return std::string(buffer);
90a69a01cdSopenharmony_ci    }
91a69a01cdSopenharmony_ci    int x_ = -1;
92a69a01cdSopenharmony_ci    int y_ = -1;
93a69a01cdSopenharmony_ci};
94a69a01cdSopenharmony_ciclass AppSwitchParam : public SpcialTestObject {
95a69a01cdSopenharmony_cipublic:
96a69a01cdSopenharmony_ci    AppSwitchParam()
97a69a01cdSopenharmony_ci    {
98a69a01cdSopenharmony_ci    }
99a69a01cdSopenharmony_ci    virtual ~AppSwitchParam()
100a69a01cdSopenharmony_ci    {
101a69a01cdSopenharmony_ci    }
102a69a01cdSopenharmony_ci    virtual std::string toString()
103a69a01cdSopenharmony_ci    {
104a69a01cdSopenharmony_ci        char buffer[50];
105a69a01cdSopenharmony_ci        int result = sprintf_s(buffer, sizeof(buffer), "Bundlename: (%s)", bundlename_.c_str());
106a69a01cdSopenharmony_ci        if (result < 0) {
107a69a01cdSopenharmony_ci            return SpcialTestObject::toString();
108a69a01cdSopenharmony_ci        }
109a69a01cdSopenharmony_ci        return std::string(buffer);
110a69a01cdSopenharmony_ci    }
111a69a01cdSopenharmony_ci    std::string bundlename_ = " ";
112a69a01cdSopenharmony_ci};
113a69a01cdSopenharmony_ciclass ComponentParam : public SpcialTestObject {
114a69a01cdSopenharmony_cipublic:
115a69a01cdSopenharmony_ci    ComponentParam()
116a69a01cdSopenharmony_ci    {
117a69a01cdSopenharmony_ci        bundleName_.clear();
118a69a01cdSopenharmony_ci        bundleRunning_.clear();
119a69a01cdSopenharmony_ci        bundleFinish_.clear();
120a69a01cdSopenharmony_ci    }
121a69a01cdSopenharmony_ci    virtual ~ComponentParam()
122a69a01cdSopenharmony_ci    {
123a69a01cdSopenharmony_ci    }
124a69a01cdSopenharmony_ci    virtual std::string toString()
125a69a01cdSopenharmony_ci    {
126a69a01cdSopenharmony_ci        std::stringstream ss;
127a69a01cdSopenharmony_ci        ss << "Bundle : ";
128a69a01cdSopenharmony_ci        for (uint32_t index = 0; index < bundleName_.size(); index++) {
129a69a01cdSopenharmony_ci            ss << "[" << bundleName_[index] << ":" << bundleRunning_[index] << ":" << bundleFinish_[index] << "]";
130a69a01cdSopenharmony_ci        }
131a69a01cdSopenharmony_ci        ss << "AllFinished: " << isAllFinished_;
132a69a01cdSopenharmony_ci        return ss.str();
133a69a01cdSopenharmony_ci    }
134a69a01cdSopenharmony_ci
135a69a01cdSopenharmony_ci    void PushBundleName(const std::string& name)
136a69a01cdSopenharmony_ci    {
137a69a01cdSopenharmony_ci        bundleName_.push_back(name);
138a69a01cdSopenharmony_ci        bundleRunning_.push_back(false);
139a69a01cdSopenharmony_ci        bundleFinish_.push_back(false);
140a69a01cdSopenharmony_ci        pageBack_.push_back(0);
141a69a01cdSopenharmony_ci        lanuchCount_.push_back(0);
142a69a01cdSopenharmony_ci    }
143a69a01cdSopenharmony_ci    std::vector<std::string> bundleName_;
144a69a01cdSopenharmony_ci    std::vector<bool> bundleRunning_;
145a69a01cdSopenharmony_ci    std::vector<bool> bundleFinish_;
146a69a01cdSopenharmony_ci    std::vector<uint32_t> pageBack_;
147a69a01cdSopenharmony_ci    std::vector<uint32_t> lanuchCount_;
148a69a01cdSopenharmony_ci};
149a69a01cdSopenharmony_ciclass RecordParam : public SpcialTestObject {
150a69a01cdSopenharmony_cipublic:
151a69a01cdSopenharmony_ci    RecordParam()
152a69a01cdSopenharmony_ci    {
153a69a01cdSopenharmony_ci    }
154a69a01cdSopenharmony_ci    virtual ~RecordParam()
155a69a01cdSopenharmony_ci    {
156a69a01cdSopenharmony_ci    }
157a69a01cdSopenharmony_ci    std::string recordName_;
158a69a01cdSopenharmony_ci    bool recordStatus_ = false;
159a69a01cdSopenharmony_ci};
160a69a01cdSopenharmony_ci}  // namespace WuKong
161a69a01cdSopenharmony_ci}  // namespace OHOS
162a69a01cdSopenharmony_ci#endif
163