1e509ee18Sopenharmony_ci/*
2e509ee18Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3e509ee18Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e509ee18Sopenharmony_ci * you may not use this file except in compliance with the License.
5e509ee18Sopenharmony_ci * You may obtain a copy of the License at
6e509ee18Sopenharmony_ci *
7e509ee18Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e509ee18Sopenharmony_ci *
9e509ee18Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e509ee18Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e509ee18Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e509ee18Sopenharmony_ci * See the License for the specific language governing permissions and
13e509ee18Sopenharmony_ci * limitations under the License.
14e509ee18Sopenharmony_ci */
15e509ee18Sopenharmony_ci
16e509ee18Sopenharmony_ci#include "tooling/base/pt_types.h"
17e509ee18Sopenharmony_ci#include "tooling/base/pt_params.h"
18e509ee18Sopenharmony_ci#include "dispatcher.h"
19e509ee18Sopenharmony_ci
20e509ee18Sopenharmony_ci#include "ecmascript/js_array.h"
21e509ee18Sopenharmony_ci#include "ecmascript/js_object-inl.h"
22e509ee18Sopenharmony_ci#include "ecmascript/js_tagged_value-inl.h"
23e509ee18Sopenharmony_ci#include "ecmascript/object_factory.h"
24e509ee18Sopenharmony_ci#include "ecmascript/tests/test_helper.h"
25e509ee18Sopenharmony_ci
26e509ee18Sopenharmony_ciusing namespace panda::ecmascript;
27e509ee18Sopenharmony_ciusing namespace panda::ecmascript::tooling;
28e509ee18Sopenharmony_ci
29e509ee18Sopenharmony_cinamespace panda::test {
30e509ee18Sopenharmony_ci// Duplicate name of panda::ecmascript::PropertyDescriptor in js_object-inl.h
31e509ee18Sopenharmony_ciusing panda::ecmascript::tooling::PropertyDescriptor;
32e509ee18Sopenharmony_ci
33e509ee18Sopenharmony_ciusing ObjectType = RemoteObject::TypeName;
34e509ee18Sopenharmony_ciusing ObjectSubType = RemoteObject::SubTypeName;
35e509ee18Sopenharmony_ciusing ObjectClassName = RemoteObject::ClassName;
36e509ee18Sopenharmony_ci
37e509ee18Sopenharmony_ciclass DebuggerParamsTest : public testing::Test {
38e509ee18Sopenharmony_cipublic:
39e509ee18Sopenharmony_ci    static void SetUpTestCase()
40e509ee18Sopenharmony_ci    {
41e509ee18Sopenharmony_ci        GTEST_LOG_(INFO) << "SetUpTestCase";
42e509ee18Sopenharmony_ci        Logger::InitializeStdLogging(Logger::Level::FATAL, LoggerComponentMaskAll);
43e509ee18Sopenharmony_ci    }
44e509ee18Sopenharmony_ci
45e509ee18Sopenharmony_ci    static void TearDownTestCase()
46e509ee18Sopenharmony_ci    {
47e509ee18Sopenharmony_ci        Logger::InitializeStdLogging(Logger::Level::ERROR, LoggerComponentMaskAll);
48e509ee18Sopenharmony_ci        GTEST_LOG_(INFO) << "TearDownCase";
49e509ee18Sopenharmony_ci    }
50e509ee18Sopenharmony_ci
51e509ee18Sopenharmony_ci    void SetUp() override
52e509ee18Sopenharmony_ci    {
53e509ee18Sopenharmony_ci        TestHelper::CreateEcmaVMWithScope(ecmaVm, thread, scope);
54e509ee18Sopenharmony_ci        // Main logic is JSON parser, so not need trigger GC to decrease execute time
55e509ee18Sopenharmony_ci        ecmaVm->SetEnableForceGC(false);
56e509ee18Sopenharmony_ci    }
57e509ee18Sopenharmony_ci
58e509ee18Sopenharmony_ci    void TearDown() override
59e509ee18Sopenharmony_ci    {
60e509ee18Sopenharmony_ci        TestHelper::DestroyEcmaVMWithScope(ecmaVm, scope);
61e509ee18Sopenharmony_ci    }
62e509ee18Sopenharmony_ci
63e509ee18Sopenharmony_ciprotected:
64e509ee18Sopenharmony_ci    EcmaVM *ecmaVm {nullptr};
65e509ee18Sopenharmony_ci    EcmaHandleScope *scope {nullptr};
66e509ee18Sopenharmony_ci    JSThread *thread {nullptr};
67e509ee18Sopenharmony_ci};
68e509ee18Sopenharmony_ci
69e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, ContinueToLocationParamsCreateTest)
70e509ee18Sopenharmony_ci{
71e509ee18Sopenharmony_ci    std::string msg;
72e509ee18Sopenharmony_ci    std::unique_ptr<ContinueToLocationParams> objectData;
73e509ee18Sopenharmony_ci
74e509ee18Sopenharmony_ci    // abnormal params of null msg
75e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
76e509ee18Sopenharmony_ci    objectData = ContinueToLocationParams::Create(DispatchRequest(msg).GetParams());
77e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
78e509ee18Sopenharmony_ci
79e509ee18Sopenharmony_ci    // abnormal params of unexist key params
80e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
81e509ee18Sopenharmony_ci    objectData = ContinueToLocationParams::Create(DispatchRequest(msg).GetParams());
82e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
83e509ee18Sopenharmony_ci
84e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
85e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
86e509ee18Sopenharmony_ci    objectData = ContinueToLocationParams::Create(DispatchRequest(msg).GetParams());
87e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
88e509ee18Sopenharmony_ci
89e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"location":10,
90e509ee18Sopenharmony_ci        "targetCallFrames":"testTargetCallFrames"}})";
91e509ee18Sopenharmony_ci    objectData = ContinueToLocationParams::Create(DispatchRequest(msg).GetParams());
92e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
93e509ee18Sopenharmony_ci
94e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"location":{"scriptId":"2", "lineNumber":3,
95e509ee18Sopenharmony_ci        "columnNumber":20}, "targetCallFrames":"testTargetCallFrames"}})";
96e509ee18Sopenharmony_ci    objectData = ContinueToLocationParams::Create(DispatchRequest(msg).GetParams());
97e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
98e509ee18Sopenharmony_ci    Location *location = objectData->GetLocation();
99e509ee18Sopenharmony_ci    EXPECT_EQ(location->GetScriptId(), 2);
100e509ee18Sopenharmony_ci    EXPECT_EQ(location->GetLine(), 3);
101e509ee18Sopenharmony_ci    EXPECT_EQ(location->GetColumn(), 20);
102e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetTargetCallFrames(), "testTargetCallFrames");
103e509ee18Sopenharmony_ci}
104e509ee18Sopenharmony_ci
105e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetBreakpointsActiveParamsCreateTest)
106e509ee18Sopenharmony_ci{
107e509ee18Sopenharmony_ci    std::string msg;
108e509ee18Sopenharmony_ci    std::unique_ptr<SetBreakpointsActiveParams> objectData;
109e509ee18Sopenharmony_ci
110e509ee18Sopenharmony_ci    // abnormal params of null msg
111e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
112e509ee18Sopenharmony_ci    objectData = SetBreakpointsActiveParams::Create(DispatchRequest(msg).GetParams());
113e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
114e509ee18Sopenharmony_ci
115e509ee18Sopenharmony_ci    // abnormal params of unexist key params
116e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
117e509ee18Sopenharmony_ci    objectData = SetBreakpointsActiveParams::Create(DispatchRequest(msg).GetParams());
118e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
119e509ee18Sopenharmony_ci
120e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
121e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
122e509ee18Sopenharmony_ci    objectData = SetBreakpointsActiveParams::Create(DispatchRequest(msg).GetParams());
123e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
124e509ee18Sopenharmony_ci
125e509ee18Sopenharmony_ci
126e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"active":true}})";
127e509ee18Sopenharmony_ci    objectData = SetBreakpointsActiveParams::Create(DispatchRequest(msg).GetParams());
128e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
129e509ee18Sopenharmony_ci    EXPECT_TRUE(objectData->GetBreakpointsState());
130e509ee18Sopenharmony_ci}
131e509ee18Sopenharmony_ci
132e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetSkipAllPausesParamsCreateTest)
133e509ee18Sopenharmony_ci{
134e509ee18Sopenharmony_ci    std::string msg;
135e509ee18Sopenharmony_ci    std::unique_ptr<SetSkipAllPausesParams> objectData;
136e509ee18Sopenharmony_ci
137e509ee18Sopenharmony_ci    // abnormal params of null msg
138e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
139e509ee18Sopenharmony_ci    objectData = SetSkipAllPausesParams::Create(DispatchRequest(msg).GetParams());
140e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
141e509ee18Sopenharmony_ci
142e509ee18Sopenharmony_ci    // abnormal params of unexist key params
143e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
144e509ee18Sopenharmony_ci    objectData = SetSkipAllPausesParams::Create(DispatchRequest(msg).GetParams());
145e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
146e509ee18Sopenharmony_ci
147e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
148e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
149e509ee18Sopenharmony_ci    objectData = SetSkipAllPausesParams::Create(DispatchRequest(msg).GetParams());
150e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
151e509ee18Sopenharmony_ci
152e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"skip":true}})";
153e509ee18Sopenharmony_ci    objectData = SetSkipAllPausesParams::Create(DispatchRequest(msg).GetParams());
154e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
155e509ee18Sopenharmony_ci    EXPECT_TRUE(objectData->GetSkipAllPausesState());
156e509ee18Sopenharmony_ci}
157e509ee18Sopenharmony_ci
158e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetMixedDebugParamsCreateTest)
159e509ee18Sopenharmony_ci{
160e509ee18Sopenharmony_ci    std::string msg;
161e509ee18Sopenharmony_ci    std::unique_ptr<SetMixedDebugParams> objectData;
162e509ee18Sopenharmony_ci
163e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"enabled":"test", "mixedStackEnabled":true}})";
164e509ee18Sopenharmony_ci    objectData = SetMixedDebugParams::Create(DispatchRequest(msg).GetParams());
165e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
166e509ee18Sopenharmony_ci
167e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"enabled":true, "mixedStackEnabled":true}})";
168e509ee18Sopenharmony_ci    objectData = SetMixedDebugParams::Create(DispatchRequest(msg).GetParams());
169e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
170e509ee18Sopenharmony_ci    EXPECT_TRUE(objectData->GetEnabled());
171e509ee18Sopenharmony_ci    EXPECT_TRUE(objectData->GetMixedStackEnabled());
172e509ee18Sopenharmony_ci}
173e509ee18Sopenharmony_ci
174e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetPossibleAndSetBreakpointParamsCreateTest)
175e509ee18Sopenharmony_ci{
176e509ee18Sopenharmony_ci    std::string msg;
177e509ee18Sopenharmony_ci    std::unique_ptr<GetPossibleAndSetBreakpointParams> objectData;
178e509ee18Sopenharmony_ci
179e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"locations":10}})";
180e509ee18Sopenharmony_ci    objectData = GetPossibleAndSetBreakpointParams::Create(DispatchRequest(msg).GetParams());
181e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
182e509ee18Sopenharmony_ci
183e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"locations":[{"lineNumber":3,
184e509ee18Sopenharmony_ci        "columnNumber":20, "url":"Index.ets"}]}})";
185e509ee18Sopenharmony_ci    objectData = GetPossibleAndSetBreakpointParams::Create(DispatchRequest(msg).GetParams());
186e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
187e509ee18Sopenharmony_ci    auto breakpointsList = objectData->GetBreakpointsList();
188e509ee18Sopenharmony_ci    EXPECT_EQ((*breakpointsList).size(), 1);
189e509ee18Sopenharmony_ci    EXPECT_EQ((*breakpointsList)[0]->GetLineNumber(), 3);
190e509ee18Sopenharmony_ci    EXPECT_EQ((*breakpointsList)[0]->GetColumnNumber(), 20);
191e509ee18Sopenharmony_ci    EXPECT_EQ((*breakpointsList)[0]->GetUrl(), "Index.ets");
192e509ee18Sopenharmony_ci}
193e509ee18Sopenharmony_ci
194e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, DropFrameParamsCreateTest)
195e509ee18Sopenharmony_ci{
196e509ee18Sopenharmony_ci    std::string msg;
197e509ee18Sopenharmony_ci    std::unique_ptr<DropFrameParams> objectData;
198e509ee18Sopenharmony_ci
199e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"droppedDepth":true}})";
200e509ee18Sopenharmony_ci    objectData = DropFrameParams::Create(DispatchRequest(msg).GetParams());
201e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
202e509ee18Sopenharmony_ci
203e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"droppedDepth":3}})";
204e509ee18Sopenharmony_ci    objectData = DropFrameParams::Create(DispatchRequest(msg).GetParams());
205e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
206e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetDroppedDepth(), 3);
207e509ee18Sopenharmony_ci}
208e509ee18Sopenharmony_ci
209e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, EnableParamsCreateTest)
210e509ee18Sopenharmony_ci{
211e509ee18Sopenharmony_ci    std::string msg;
212e509ee18Sopenharmony_ci    std::unique_ptr<EnableParams> enableParams;
213e509ee18Sopenharmony_ci
214e509ee18Sopenharmony_ci    // abnormal
215e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
216e509ee18Sopenharmony_ci    enableParams = EnableParams::Create(DispatchRequest(msg).GetParams());
217e509ee18Sopenharmony_ci    ASSERT_NE(enableParams, nullptr);
218e509ee18Sopenharmony_ci    EXPECT_FALSE(enableParams->HasMaxScriptsCacheSize());
219e509ee18Sopenharmony_ci
220e509ee18Sopenharmony_ci    // normal
221e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"maxScriptsCacheSize":100}})";
222e509ee18Sopenharmony_ci    enableParams = EnableParams::Create(DispatchRequest(msg).GetParams());
223e509ee18Sopenharmony_ci    ASSERT_NE(enableParams, nullptr);
224e509ee18Sopenharmony_ci    EXPECT_EQ(enableParams->GetMaxScriptsCacheSize(), 100);
225e509ee18Sopenharmony_ci}
226e509ee18Sopenharmony_ci
227e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StartSamplingParamsCreateTest)
228e509ee18Sopenharmony_ci{
229e509ee18Sopenharmony_ci    std::string msg;
230e509ee18Sopenharmony_ci    std::unique_ptr<StartSamplingParams> startSamplingData;
231e509ee18Sopenharmony_ci
232e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
233e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
234e509ee18Sopenharmony_ci    startSamplingData = StartSamplingParams::Create(DispatchRequest(msg).GetParams());
235e509ee18Sopenharmony_ci    ASSERT_NE(startSamplingData, nullptr);
236e509ee18Sopenharmony_ci    EXPECT_EQ(startSamplingData->GetSamplingInterval(), 32768);
237e509ee18Sopenharmony_ci
238e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
239e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
240e509ee18Sopenharmony_ci    startSamplingData = StartSamplingParams::Create(DispatchRequest(msg).GetParams());
241e509ee18Sopenharmony_ci    ASSERT_NE(startSamplingData, nullptr);
242e509ee18Sopenharmony_ci    EXPECT_EQ(startSamplingData->GetSamplingInterval(), 32768);
243e509ee18Sopenharmony_ci
244e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["samplingInterval":true]
245e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"samplingInterval":true}})";
246e509ee18Sopenharmony_ci    startSamplingData = StartSamplingParams::Create(DispatchRequest(msg).GetParams());
247e509ee18Sopenharmony_ci    EXPECT_EQ(startSamplingData, nullptr);
248e509ee18Sopenharmony_ci
249e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["samplingInterval":true]
250e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"samplingInterval":"Test"}})";
251e509ee18Sopenharmony_ci    startSamplingData = StartSamplingParams::Create(DispatchRequest(msg).GetParams());
252e509ee18Sopenharmony_ci    EXPECT_EQ(startSamplingData, nullptr);
253e509ee18Sopenharmony_ci
254e509ee18Sopenharmony_ci    // abnormal params of params.sub-key = [ "size"=100,"nodeId"=1,"ordinal"=10]
255e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"samplingInterval":1000}})";
256e509ee18Sopenharmony_ci    startSamplingData = StartSamplingParams::Create(DispatchRequest(msg).GetParams());
257e509ee18Sopenharmony_ci    ASSERT_NE(startSamplingData, nullptr);
258e509ee18Sopenharmony_ci    EXPECT_EQ(startSamplingData->GetSamplingInterval(), 1000);
259e509ee18Sopenharmony_ci}
260e509ee18Sopenharmony_ci
261e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StartTrackingHeapObjectsParamsCreateTest)
262e509ee18Sopenharmony_ci{
263e509ee18Sopenharmony_ci    std::string msg;
264e509ee18Sopenharmony_ci    std::unique_ptr<StartTrackingHeapObjectsParams> objectData;
265e509ee18Sopenharmony_ci
266e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
267e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
268e509ee18Sopenharmony_ci    objectData = StartTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
269e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
270e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetTrackAllocations());
271e509ee18Sopenharmony_ci
272e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
273e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
274e509ee18Sopenharmony_ci    objectData = StartTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
275e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
276e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetTrackAllocations());
277e509ee18Sopenharmony_ci
278e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["trackAllocations":10]
279e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"trackAllocations":10}})";
280e509ee18Sopenharmony_ci    objectData = StartTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
281e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
282e509ee18Sopenharmony_ci
283e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["trackAllocations":"Test"]
284e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"trackAllocations":"Test"}})";
285e509ee18Sopenharmony_ci    objectData = StartTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
286e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
287e509ee18Sopenharmony_ci
288e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["trackAllocations":true]
289e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"trackAllocations":true}})";
290e509ee18Sopenharmony_ci    objectData = StartTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
291e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
292e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetTrackAllocations());
293e509ee18Sopenharmony_ci}
294e509ee18Sopenharmony_ci
295e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StopTrackingHeapObjectsParamsCreateTest)
296e509ee18Sopenharmony_ci{
297e509ee18Sopenharmony_ci    std::string msg;
298e509ee18Sopenharmony_ci    std::unique_ptr<StopTrackingHeapObjectsParams> objectData;
299e509ee18Sopenharmony_ci
300e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
301e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
302e509ee18Sopenharmony_ci    objectData = StopTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
303e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
304e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetReportProgress());
305e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetTreatGlobalObjectsAsRoots());
306e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetCaptureNumericValue());
307e509ee18Sopenharmony_ci
308e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
309e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
310e509ee18Sopenharmony_ci    objectData = StopTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
311e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
312e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetReportProgress());
313e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetTreatGlobalObjectsAsRoots());
314e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->GetCaptureNumericValue());
315e509ee18Sopenharmony_ci
316e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
317e509ee18Sopenharmony_ci            "reportProgress":10,
318e509ee18Sopenharmony_ci            "treatGlobalObjectsAsRoots":10,
319e509ee18Sopenharmony_ci            "captureNumericValue":10}})";
320e509ee18Sopenharmony_ci    objectData = StopTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
321e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
322e509ee18Sopenharmony_ci
323e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
324e509ee18Sopenharmony_ci            "reportProgress":"Test",
325e509ee18Sopenharmony_ci            "treatGlobalObjectsAsRoots":"Test",
326e509ee18Sopenharmony_ci            "captureNumericValue":"Test"}})";
327e509ee18Sopenharmony_ci    objectData = StopTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
328e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
329e509ee18Sopenharmony_ci
330e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
331e509ee18Sopenharmony_ci            "reportProgress":true,
332e509ee18Sopenharmony_ci            "treatGlobalObjectsAsRoots":true,
333e509ee18Sopenharmony_ci            "captureNumericValue":true}})";
334e509ee18Sopenharmony_ci    objectData = StopTrackingHeapObjectsParams::Create(DispatchRequest(msg).GetParams());
335e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
336e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetReportProgress());
337e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetTreatGlobalObjectsAsRoots());
338e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetCaptureNumericValue());
339e509ee18Sopenharmony_ci}
340e509ee18Sopenharmony_ci
341e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, AddInspectedHeapObjectParamsCreateTest)
342e509ee18Sopenharmony_ci{
343e509ee18Sopenharmony_ci    std::string msg;
344e509ee18Sopenharmony_ci    std::unique_ptr<AddInspectedHeapObjectParams> objectData;
345e509ee18Sopenharmony_ci
346e509ee18Sopenharmony_ci    //  abnormal params of null msg
347e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
348e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
349e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
350e509ee18Sopenharmony_ci
351e509ee18Sopenharmony_ci    // abnormal params of unexist key params
352e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
353e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
354e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
355e509ee18Sopenharmony_ci
356e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
357e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
358e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
359e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
360e509ee18Sopenharmony_ci
361e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
362e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
363e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
364e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
365e509ee18Sopenharmony_ci
366e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["heapObjectId":10]
367e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"heapObjectId":10}})";
368e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
369e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
370e509ee18Sopenharmony_ci
371e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["heapObjectId":true]
372e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"heapObjectId":true}})";
373e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
374e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
375e509ee18Sopenharmony_ci
376e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["heapObjectId":“10”]
377e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"heapObjectId":"10"}})";
378e509ee18Sopenharmony_ci    objectData = AddInspectedHeapObjectParams::Create(DispatchRequest(msg).GetParams());
379e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
380e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetHeapObjectId(), 10);
381e509ee18Sopenharmony_ci}
382e509ee18Sopenharmony_ci
383e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetHeapObjectIdParamsCreateTest)
384e509ee18Sopenharmony_ci{
385e509ee18Sopenharmony_ci    std::string msg;
386e509ee18Sopenharmony_ci    std::unique_ptr<GetHeapObjectIdParams> objectData;
387e509ee18Sopenharmony_ci
388e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":10]
389e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":10}})";
390e509ee18Sopenharmony_ci    objectData = GetHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
391e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
392e509ee18Sopenharmony_ci
393e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":true]
394e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":true}})";
395e509ee18Sopenharmony_ci    objectData = GetHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
396e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
397e509ee18Sopenharmony_ci
398e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":“10”]
399e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":"10"}})";
400e509ee18Sopenharmony_ci    objectData = GetHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
401e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
402e509ee18Sopenharmony_ci    EXPECT_EQ((int)objectData->GetObjectId(), 10);
403e509ee18Sopenharmony_ci}
404e509ee18Sopenharmony_ci
405e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetObjectByHeapObjectIdParamsCreateTest)
406e509ee18Sopenharmony_ci{
407e509ee18Sopenharmony_ci    std::string msg;
408e509ee18Sopenharmony_ci    std::unique_ptr<GetObjectByHeapObjectIdParams> objectData;
409e509ee18Sopenharmony_ci
410e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":10]
411e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":10}})";
412e509ee18Sopenharmony_ci    objectData = GetObjectByHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
413e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
414e509ee18Sopenharmony_ci
415e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":true]
416e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":"10", "objectGroup":10}})";
417e509ee18Sopenharmony_ci    objectData = GetObjectByHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
418e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
419e509ee18Sopenharmony_ci
420e509ee18Sopenharmony_ci    // abnormal params of params.sub-key=["objectId":“10”]
421e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":"10"}})";
422e509ee18Sopenharmony_ci    objectData = GetObjectByHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
423e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
424e509ee18Sopenharmony_ci    EXPECT_EQ((int)objectData->GetObjectId(), 10);
425e509ee18Sopenharmony_ci    ASSERT_FALSE(objectData->HasObjectGroup());
426e509ee18Sopenharmony_ci
427e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":"10", "objectGroup":"groupname"}})";
428e509ee18Sopenharmony_ci    objectData = GetObjectByHeapObjectIdParams::Create(DispatchRequest(msg).GetParams());
429e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
430e509ee18Sopenharmony_ci    EXPECT_EQ((int)objectData->GetObjectId(), 10);
431e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetObjectGroup(), "groupname");
432e509ee18Sopenharmony_ci}
433e509ee18Sopenharmony_ci
434e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StartPreciseCoverageParamCreateTest)
435e509ee18Sopenharmony_ci{
436e509ee18Sopenharmony_ci    std::string msg;
437e509ee18Sopenharmony_ci    std::unique_ptr<StartPreciseCoverageParams> objectData;
438e509ee18Sopenharmony_ci
439e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
440e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
441e509ee18Sopenharmony_ci    objectData = StartPreciseCoverageParams::Create(DispatchRequest(msg).GetParams());
442e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
443e509ee18Sopenharmony_ci
444e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
445e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
446e509ee18Sopenharmony_ci    objectData = StartPreciseCoverageParams::Create(DispatchRequest(msg).GetParams());
447e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
448e509ee18Sopenharmony_ci
449e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
450e509ee18Sopenharmony_ci            "callCount":8,
451e509ee18Sopenharmony_ci            "detailed":8,
452e509ee18Sopenharmony_ci            "allowTriggeredUpdates":8}})";
453e509ee18Sopenharmony_ci    objectData = StartPreciseCoverageParams::Create(DispatchRequest(msg).GetParams());
454e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
455e509ee18Sopenharmony_ci
456e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
457e509ee18Sopenharmony_ci            "callCount":"Test",
458e509ee18Sopenharmony_ci            "detailed":"Test",
459e509ee18Sopenharmony_ci            "allowTriggeredUpdates":"Test"}})";
460e509ee18Sopenharmony_ci    objectData = StartPreciseCoverageParams::Create(DispatchRequest(msg).GetParams());
461e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
462e509ee18Sopenharmony_ci
463e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
464e509ee18Sopenharmony_ci            "callCount":true,
465e509ee18Sopenharmony_ci            "detailed":true,
466e509ee18Sopenharmony_ci            "allowTriggeredUpdates":true}})";
467e509ee18Sopenharmony_ci    objectData = StartPreciseCoverageParams::Create(DispatchRequest(msg).GetParams());
468e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
469e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetCallCount());
470e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetDetailed());
471e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetAllowTriggeredUpdates());
472e509ee18Sopenharmony_ci}
473e509ee18Sopenharmony_ci
474e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetSamplingIntervalParamsCreateTest)
475e509ee18Sopenharmony_ci{
476e509ee18Sopenharmony_ci    std::string msg;
477e509ee18Sopenharmony_ci    std::unique_ptr<SetSamplingIntervalParams> objectData;
478e509ee18Sopenharmony_ci
479e509ee18Sopenharmony_ci    //  abnormal params of null msg
480e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
481e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
482e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
483e509ee18Sopenharmony_ci
484e509ee18Sopenharmony_ci    // abnormal params of unexist key params
485e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
486e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
487e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
488e509ee18Sopenharmony_ci
489e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
490e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
491e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
492e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
493e509ee18Sopenharmony_ci
494e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
495e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
496e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
497e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
498e509ee18Sopenharmony_ci
499e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{
500e509ee18Sopenharmony_ci            "interval":"500"}})";
501e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
502e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
503e509ee18Sopenharmony_ci
504e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"interval":500}})";
505e509ee18Sopenharmony_ci    objectData = SetSamplingIntervalParams::Create(DispatchRequest(msg).GetParams());
506e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
507e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetInterval(), 500);
508e509ee18Sopenharmony_ci}
509e509ee18Sopenharmony_ci
510e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, RecordClockSyncMarkerParamsCreateTest)
511e509ee18Sopenharmony_ci{
512e509ee18Sopenharmony_ci    std::string msg;
513e509ee18Sopenharmony_ci    std::unique_ptr<RecordClockSyncMarkerParams> objectData;
514e509ee18Sopenharmony_ci
515e509ee18Sopenharmony_ci    //  abnormal params of null msg
516e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
517e509ee18Sopenharmony_ci    objectData = RecordClockSyncMarkerParams::Create(DispatchRequest(msg).GetParams());
518e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
519e509ee18Sopenharmony_ci
520e509ee18Sopenharmony_ci    // abnormal params of unexist key params
521e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
522e509ee18Sopenharmony_ci    objectData = RecordClockSyncMarkerParams::Create(DispatchRequest(msg).GetParams());
523e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
524e509ee18Sopenharmony_ci
525e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
526e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
527e509ee18Sopenharmony_ci    objectData = RecordClockSyncMarkerParams::Create(DispatchRequest(msg).GetParams());
528e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
529e509ee18Sopenharmony_ci
530e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
531e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
532e509ee18Sopenharmony_ci    objectData = RecordClockSyncMarkerParams::Create(DispatchRequest(msg).GetParams());
533e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
534e509ee18Sopenharmony_ci
535e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"syncId":"101"}})";
536e509ee18Sopenharmony_ci    objectData = RecordClockSyncMarkerParams::Create(DispatchRequest(msg).GetParams());
537e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
538e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetSyncId(), "101");
539e509ee18Sopenharmony_ci}
540e509ee18Sopenharmony_ci
541e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, RequestMemoryDumpParamsCreateTest)
542e509ee18Sopenharmony_ci{
543e509ee18Sopenharmony_ci    std::string msg;
544e509ee18Sopenharmony_ci    std::unique_ptr<RequestMemoryDumpParams> objectData;
545e509ee18Sopenharmony_ci
546e509ee18Sopenharmony_ci    //  abnormal params of null msg
547e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
548e509ee18Sopenharmony_ci    objectData = RequestMemoryDumpParams::Create(DispatchRequest(msg).GetParams());
549e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
550e509ee18Sopenharmony_ci
551e509ee18Sopenharmony_ci    // abnormal params of unexist key params
552e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
553e509ee18Sopenharmony_ci    objectData = RequestMemoryDumpParams::Create(DispatchRequest(msg).GetParams());
554e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
555e509ee18Sopenharmony_ci
556e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
557e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
558e509ee18Sopenharmony_ci    objectData = RequestMemoryDumpParams::Create(DispatchRequest(msg).GetParams());
559e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
560e509ee18Sopenharmony_ci
561e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
562e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
563e509ee18Sopenharmony_ci    objectData = RequestMemoryDumpParams::Create(DispatchRequest(msg).GetParams());
564e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
565e509ee18Sopenharmony_ci
566e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"deterministic":true,
567e509ee18Sopenharmony_ci            "levelOfDetail":"background"}})";
568e509ee18Sopenharmony_ci    objectData = RequestMemoryDumpParams::Create(DispatchRequest(msg).GetParams());
569e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
570e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetDeterministic());
571e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetLevelOfDetail(), "background");
572e509ee18Sopenharmony_ci}
573e509ee18Sopenharmony_ci
574e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StartParamsCreateTest)
575e509ee18Sopenharmony_ci{
576e509ee18Sopenharmony_ci    std::string msg;
577e509ee18Sopenharmony_ci    std::unique_ptr<StartParams> objectData;
578e509ee18Sopenharmony_ci
579e509ee18Sopenharmony_ci    //  abnormal params of null msg
580e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
581e509ee18Sopenharmony_ci    objectData = StartParams::Create(DispatchRequest(msg).GetParams());
582e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
583e509ee18Sopenharmony_ci
584e509ee18Sopenharmony_ci    // abnormal params of unexist key params
585e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
586e509ee18Sopenharmony_ci    objectData = StartParams::Create(DispatchRequest(msg).GetParams());
587e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
588e509ee18Sopenharmony_ci
589e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
590e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
591e509ee18Sopenharmony_ci    objectData = StartParams::Create(DispatchRequest(msg).GetParams());
592e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
593e509ee18Sopenharmony_ci
594e509ee18Sopenharmony_ci    // abnormal params of unknown params.sub-key
595e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"unknownKey":100}})";
596e509ee18Sopenharmony_ci    objectData = StartParams::Create(DispatchRequest(msg).GetParams());
597e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
598e509ee18Sopenharmony_ci
599e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"categories":"filter1",
600e509ee18Sopenharmony_ci            "options":"1", "bufferUsageReportingInterval":11, "transferMode":"ReportEvents", "streamFormat":"json",
601e509ee18Sopenharmony_ci            "streamCompression":"none", "traceConfig": {"recordMode":"recordUntilFull"}, "perfettoConfig":"categories",
602e509ee18Sopenharmony_ci            "tracingBackend":"auto"}})";
603e509ee18Sopenharmony_ci    objectData = StartParams::Create(DispatchRequest(msg).GetParams());
604e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
605e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetCategories(), "filter1");
606e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetOptions(), "1");
607e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetBufferUsageReportingInterval(), 11);
608e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetTransferMode(), "ReportEvents");
609e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetStreamFormat(), "json");
610e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetStreamCompression(), "none");
611e509ee18Sopenharmony_ci    TraceConfig *traceConfig = objectData->GetTraceConfig();
612e509ee18Sopenharmony_ci    ASSERT_NE(traceConfig, nullptr);
613e509ee18Sopenharmony_ci    EXPECT_EQ(traceConfig->GetRecordMode(), "recordUntilFull");
614e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetPerfettoConfig(), "categories");
615e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetTracingBackend(), "auto");
616e509ee18Sopenharmony_ci}
617e509ee18Sopenharmony_ci
618e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, EvaluateOnCallFrameParamsCreateTest)
619e509ee18Sopenharmony_ci{
620e509ee18Sopenharmony_ci    std::string msg;
621e509ee18Sopenharmony_ci    std::unique_ptr<EvaluateOnCallFrameParams> objectData;
622e509ee18Sopenharmony_ci
623e509ee18Sopenharmony_ci    // abnormal params of null msg
624e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
625e509ee18Sopenharmony_ci    objectData = EvaluateOnCallFrameParams::Create(DispatchRequest(msg).GetParams());
626e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
627e509ee18Sopenharmony_ci
628e509ee18Sopenharmony_ci    // abnormal params of unexist key params
629e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
630e509ee18Sopenharmony_ci    objectData = EvaluateOnCallFrameParams::Create(DispatchRequest(msg).GetParams());
631e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
632e509ee18Sopenharmony_ci
633e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
634e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
635e509ee18Sopenharmony_ci    objectData = EvaluateOnCallFrameParams::Create(DispatchRequest(msg).GetParams());
636e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
637e509ee18Sopenharmony_ci
638e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"callFrameId":1, "expression":true,
639e509ee18Sopenharmony_ci        "objectGroup":1, "includeCommandLineAPI":"true", "silent":"true", "returnByValue":"true",
640e509ee18Sopenharmony_ci        "generatePreview":"true", "throwOnSideEffect":"true", "timeout":"10"}})";
641e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
642e509ee18Sopenharmony_ci
643e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"callFrameId":"1", "expression":"test",
644e509ee18Sopenharmony_ci        "objectGroup":"testGroup", "includeCommandLineAPI":true, "silent":true, "returnByValue":true,
645e509ee18Sopenharmony_ci        "generatePreview":true, "throwOnSideEffect":true, "timeout":10}})";
646e509ee18Sopenharmony_ci    objectData = EvaluateOnCallFrameParams::Create(DispatchRequest(msg).GetParams());
647e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
648e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetCallFrameId(), 1);
649e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetExpression(), "test");
650e509ee18Sopenharmony_ci}
651e509ee18Sopenharmony_ci
652e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetPossibleBreakpointsParamsCreateTest)
653e509ee18Sopenharmony_ci{
654e509ee18Sopenharmony_ci    std::string msg;
655e509ee18Sopenharmony_ci    std::unique_ptr<GetPossibleBreakpointsParams> objectData;
656e509ee18Sopenharmony_ci
657e509ee18Sopenharmony_ci    // abnormal params of null msg
658e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
659e509ee18Sopenharmony_ci    objectData = GetPossibleBreakpointsParams::Create(DispatchRequest(msg).GetParams());
660e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
661e509ee18Sopenharmony_ci
662e509ee18Sopenharmony_ci    // abnormal params of unexist key params
663e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
664e509ee18Sopenharmony_ci    objectData = GetPossibleBreakpointsParams::Create(DispatchRequest(msg).GetParams());
665e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
666e509ee18Sopenharmony_ci
667e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
668e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
669e509ee18Sopenharmony_ci    objectData = GetPossibleBreakpointsParams::Create(DispatchRequest(msg).GetParams());
670e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
671e509ee18Sopenharmony_ci
672e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"start":10, "end":10,
673e509ee18Sopenharmony_ci        "restrictToFunction":"true"}})";
674e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
675e509ee18Sopenharmony_ci
676e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"start":{"scriptId":"1", "lineNumber":1,
677e509ee18Sopenharmony_ci        "columnNumber":10}, "end":{"scriptId":"1", "lineNumber":10, "columnNumber":10}, "restrictToFunction":true}})";
678e509ee18Sopenharmony_ci    objectData = GetPossibleBreakpointsParams::Create(DispatchRequest(msg).GetParams());
679e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
680e509ee18Sopenharmony_ci    Location *start = objectData->GetStart();
681e509ee18Sopenharmony_ci    Location *end = objectData->GetEnd();
682e509ee18Sopenharmony_ci    EXPECT_EQ(start->GetScriptId(), 1);
683e509ee18Sopenharmony_ci    EXPECT_EQ(start->GetLine(), 1);
684e509ee18Sopenharmony_ci    EXPECT_EQ(start->GetColumn(), 10);
685e509ee18Sopenharmony_ci    EXPECT_EQ(end->GetScriptId(), 1);
686e509ee18Sopenharmony_ci    EXPECT_EQ(end->GetLine(), 10);
687e509ee18Sopenharmony_ci    EXPECT_EQ(end->GetColumn(), 10);
688e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetRestrictToFunction());
689e509ee18Sopenharmony_ci}
690e509ee18Sopenharmony_ci
691e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetScriptSourceParamsCreateTest)
692e509ee18Sopenharmony_ci{
693e509ee18Sopenharmony_ci    std::string msg;
694e509ee18Sopenharmony_ci    std::unique_ptr<GetScriptSourceParams> objectData;
695e509ee18Sopenharmony_ci
696e509ee18Sopenharmony_ci    // abnormal params of null msg
697e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
698e509ee18Sopenharmony_ci    objectData = GetScriptSourceParams::Create(DispatchRequest(msg).GetParams());
699e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
700e509ee18Sopenharmony_ci
701e509ee18Sopenharmony_ci    // abnormal params of unexist key params
702e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
703e509ee18Sopenharmony_ci    objectData = GetScriptSourceParams::Create(DispatchRequest(msg).GetParams());
704e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
705e509ee18Sopenharmony_ci
706e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
707e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
708e509ee18Sopenharmony_ci    objectData = GetScriptSourceParams::Create(DispatchRequest(msg).GetParams());
709e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
710e509ee18Sopenharmony_ci
711e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"scriptId":10}})";
712e509ee18Sopenharmony_ci    objectData = GetScriptSourceParams::Create(DispatchRequest(msg).GetParams());
713e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
714e509ee18Sopenharmony_ci
715e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"scriptId":"10"}})";
716e509ee18Sopenharmony_ci    objectData = GetScriptSourceParams::Create(DispatchRequest(msg).GetParams());
717e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
718e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetScriptId(), 10);
719e509ee18Sopenharmony_ci}
720e509ee18Sopenharmony_ci
721e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, RemoveBreakpointParamsCreateTest)
722e509ee18Sopenharmony_ci{
723e509ee18Sopenharmony_ci    std::string msg;
724e509ee18Sopenharmony_ci    std::unique_ptr<RemoveBreakpointParams> objectData;
725e509ee18Sopenharmony_ci
726e509ee18Sopenharmony_ci    // abnormal params of null msg
727e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
728e509ee18Sopenharmony_ci    objectData = RemoveBreakpointParams::Create(DispatchRequest(msg).GetParams());
729e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
730e509ee18Sopenharmony_ci
731e509ee18Sopenharmony_ci    // abnormal params of unexist key params
732e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
733e509ee18Sopenharmony_ci    objectData = RemoveBreakpointParams::Create(DispatchRequest(msg).GetParams());
734e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
735e509ee18Sopenharmony_ci
736e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
737e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
738e509ee18Sopenharmony_ci    objectData = RemoveBreakpointParams::Create(DispatchRequest(msg).GetParams());
739e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
740e509ee18Sopenharmony_ci
741e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"breakpointId":10}})";
742e509ee18Sopenharmony_ci    objectData = RemoveBreakpointParams::Create(DispatchRequest(msg).GetParams());
743e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
744e509ee18Sopenharmony_ci
745e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"breakpointId":"10"}})";
746e509ee18Sopenharmony_ci    objectData = RemoveBreakpointParams::Create(DispatchRequest(msg).GetParams());
747e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
748e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetBreakpointId(), "10");
749e509ee18Sopenharmony_ci}
750e509ee18Sopenharmony_ci
751e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, RemoveBreakpointsByUrlParamsCreateTest)
752e509ee18Sopenharmony_ci{
753e509ee18Sopenharmony_ci    std::string msg;
754e509ee18Sopenharmony_ci    std::unique_ptr<RemoveBreakpointsByUrlParams> objectData;
755e509ee18Sopenharmony_ci
756e509ee18Sopenharmony_ci    // abnormal params of null msg
757e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
758e509ee18Sopenharmony_ci    objectData = RemoveBreakpointsByUrlParams::Create(DispatchRequest(msg).GetParams());
759e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
760e509ee18Sopenharmony_ci
761e509ee18Sopenharmony_ci    // abnormal params of unexist key params
762e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
763e509ee18Sopenharmony_ci    objectData = RemoveBreakpointsByUrlParams::Create(DispatchRequest(msg).GetParams());
764e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
765e509ee18Sopenharmony_ci
766e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
767e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
768e509ee18Sopenharmony_ci    objectData = RemoveBreakpointsByUrlParams::Create(DispatchRequest(msg).GetParams());
769e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
770e509ee18Sopenharmony_ci
771e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"url":10}})";
772e509ee18Sopenharmony_ci    objectData = RemoveBreakpointsByUrlParams::Create(DispatchRequest(msg).GetParams());
773e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
774e509ee18Sopenharmony_ci
775e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"url":"10"}})";
776e509ee18Sopenharmony_ci    objectData = RemoveBreakpointsByUrlParams::Create(DispatchRequest(msg).GetParams());
777e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
778e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetUrl(), "10");
779e509ee18Sopenharmony_ci}
780e509ee18Sopenharmony_ci
781e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, ResumeParamsCreateTest)
782e509ee18Sopenharmony_ci{
783e509ee18Sopenharmony_ci    std::string msg;
784e509ee18Sopenharmony_ci    std::unique_ptr<ResumeParams> objectData;
785e509ee18Sopenharmony_ci
786e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"terminateOnResume":10}})";
787e509ee18Sopenharmony_ci    objectData = ResumeParams::Create(DispatchRequest(msg).GetParams());
788e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
789e509ee18Sopenharmony_ci
790e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"terminateOnResume":true}})";
791e509ee18Sopenharmony_ci    objectData = ResumeParams::Create(DispatchRequest(msg).GetParams());
792e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
793e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetTerminateOnResume());
794e509ee18Sopenharmony_ci}
795e509ee18Sopenharmony_ci
796e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetAsyncCallStackDepthParamsCreateTest)
797e509ee18Sopenharmony_ci{
798e509ee18Sopenharmony_ci    std::string msg;
799e509ee18Sopenharmony_ci    std::unique_ptr<SetAsyncCallStackDepthParams> objectData;
800e509ee18Sopenharmony_ci
801e509ee18Sopenharmony_ci    // abnormal params of null msg
802e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
803e509ee18Sopenharmony_ci    objectData = SetAsyncCallStackDepthParams::Create(DispatchRequest(msg).GetParams());
804e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
805e509ee18Sopenharmony_ci
806e509ee18Sopenharmony_ci    // abnormal params of unexist key params
807e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
808e509ee18Sopenharmony_ci    objectData = SetAsyncCallStackDepthParams::Create(DispatchRequest(msg).GetParams());
809e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
810e509ee18Sopenharmony_ci
811e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
812e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
813e509ee18Sopenharmony_ci    objectData = SetAsyncCallStackDepthParams::Create(DispatchRequest(msg).GetParams());
814e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
815e509ee18Sopenharmony_ci
816e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"maxDepth":true}})";
817e509ee18Sopenharmony_ci    objectData = SetAsyncCallStackDepthParams::Create(DispatchRequest(msg).GetParams());
818e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
819e509ee18Sopenharmony_ci
820e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"maxDepth":5}})";
821e509ee18Sopenharmony_ci    objectData = SetAsyncCallStackDepthParams::Create(DispatchRequest(msg).GetParams());
822e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
823e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetMaxDepth(), 5);
824e509ee18Sopenharmony_ci}
825e509ee18Sopenharmony_ci
826e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetBlackboxPatternsParamsCreateTest)
827e509ee18Sopenharmony_ci{
828e509ee18Sopenharmony_ci    std::string msg;
829e509ee18Sopenharmony_ci    std::unique_ptr<SetBlackboxPatternsParams> objectData;
830e509ee18Sopenharmony_ci
831e509ee18Sopenharmony_ci    // abnormal params of null msg
832e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
833e509ee18Sopenharmony_ci    objectData = SetBlackboxPatternsParams::Create(DispatchRequest(msg).GetParams());
834e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
835e509ee18Sopenharmony_ci
836e509ee18Sopenharmony_ci    // abnormal params of unexist key params
837e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
838e509ee18Sopenharmony_ci    objectData = SetBlackboxPatternsParams::Create(DispatchRequest(msg).GetParams());
839e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
840e509ee18Sopenharmony_ci
841e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
842e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
843e509ee18Sopenharmony_ci    objectData = SetBlackboxPatternsParams::Create(DispatchRequest(msg).GetParams());
844e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
845e509ee18Sopenharmony_ci
846e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"patterns":"testpattern"}})";
847e509ee18Sopenharmony_ci    objectData = SetBlackboxPatternsParams::Create(DispatchRequest(msg).GetParams());
848e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
849e509ee18Sopenharmony_ci
850e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"patterns":["testpattern1", "testpattern2"]}})";
851e509ee18Sopenharmony_ci    objectData = SetBlackboxPatternsParams::Create(DispatchRequest(msg).GetParams());
852e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
853e509ee18Sopenharmony_ci    std::list<std::string> patterns = objectData->GetPatterns();
854e509ee18Sopenharmony_ci    EXPECT_EQ(patterns.size(), 2U);
855e509ee18Sopenharmony_ci}
856e509ee18Sopenharmony_ci
857e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetBreakpointByUrlParamsCreateTest)
858e509ee18Sopenharmony_ci{
859e509ee18Sopenharmony_ci    std::string msg;
860e509ee18Sopenharmony_ci    std::unique_ptr<SetBreakpointByUrlParams> objectData;
861e509ee18Sopenharmony_ci
862e509ee18Sopenharmony_ci    // abnormal params of null msg
863e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
864e509ee18Sopenharmony_ci    objectData = SetBreakpointByUrlParams::Create(DispatchRequest(msg).GetParams());
865e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
866e509ee18Sopenharmony_ci
867e509ee18Sopenharmony_ci    // abnormal params of unexist key params
868e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
869e509ee18Sopenharmony_ci    objectData = SetBreakpointByUrlParams::Create(DispatchRequest(msg).GetParams());
870e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
871e509ee18Sopenharmony_ci
872e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
873e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
874e509ee18Sopenharmony_ci    objectData = SetBreakpointByUrlParams::Create(DispatchRequest(msg).GetParams());
875e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
876e509ee18Sopenharmony_ci
877e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"lineNumber":"10", "url":10,
878e509ee18Sopenharmony_ci        "urlRegex":true, "scriptHash":true, "columnNumber":"10", "condition":10}})";
879e509ee18Sopenharmony_ci    objectData = SetBreakpointByUrlParams::Create(DispatchRequest(msg).GetParams());
880e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
881e509ee18Sopenharmony_ci
882e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"lineNumber":10, "url":"testURL",
883e509ee18Sopenharmony_ci        "urlRegex":"testURLRegex", "scriptHash":"testScriptHash", "columnNumber":10, "condition":"testCondition"}})";
884e509ee18Sopenharmony_ci    objectData = SetBreakpointByUrlParams::Create(DispatchRequest(msg).GetParams());
885e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
886e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetLine(), 10);
887e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetUrl(), "testURL");
888e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetUrlRegex(), "testURLRegex");
889e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetScriptHash(), "testScriptHash");
890e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetColumn(), 10);
891e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetCondition(), "testCondition");
892e509ee18Sopenharmony_ci}
893e509ee18Sopenharmony_ci
894e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, SetPauseOnExceptionsParamsCreateTest)
895e509ee18Sopenharmony_ci{
896e509ee18Sopenharmony_ci    std::string msg;
897e509ee18Sopenharmony_ci    std::unique_ptr<SetPauseOnExceptionsParams> objectData;
898e509ee18Sopenharmony_ci
899e509ee18Sopenharmony_ci    // abnormal params of null msg
900e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
901e509ee18Sopenharmony_ci    objectData = SetPauseOnExceptionsParams::Create(DispatchRequest(msg).GetParams());
902e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
903e509ee18Sopenharmony_ci
904e509ee18Sopenharmony_ci    // abnormal params of unexist key params
905e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
906e509ee18Sopenharmony_ci    objectData = SetPauseOnExceptionsParams::Create(DispatchRequest(msg).GetParams());
907e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
908e509ee18Sopenharmony_ci
909e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
910e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
911e509ee18Sopenharmony_ci    objectData = SetPauseOnExceptionsParams::Create(DispatchRequest(msg).GetParams());
912e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
913e509ee18Sopenharmony_ci
914e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"state":10}})";
915e509ee18Sopenharmony_ci    objectData = SetPauseOnExceptionsParams::Create(DispatchRequest(msg).GetParams());
916e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
917e509ee18Sopenharmony_ci
918e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"state":"none"}})";
919e509ee18Sopenharmony_ci    objectData = SetPauseOnExceptionsParams::Create(DispatchRequest(msg).GetParams());
920e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
921e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetState(), PauseOnExceptionsState::NONE);
922e509ee18Sopenharmony_ci}
923e509ee18Sopenharmony_ci
924e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StepIntoParamsCreateTest)
925e509ee18Sopenharmony_ci{
926e509ee18Sopenharmony_ci    std::string msg;
927e509ee18Sopenharmony_ci    std::unique_ptr<StepIntoParams> objectData;
928e509ee18Sopenharmony_ci
929e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"breakOnAsyncCall":10, "skipList":true}})";
930e509ee18Sopenharmony_ci    objectData = StepIntoParams::Create(DispatchRequest(msg).GetParams());
931e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
932e509ee18Sopenharmony_ci
933e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"breakOnAsyncCall":true,
934e509ee18Sopenharmony_ci        "skipList":[{"scriptId":"1", "start":{"lineNumber":1, "columnNumber":10}, "end":{"lineNumber":2,
935e509ee18Sopenharmony_ci        "columnNumber":20}}, {"scriptId":"2", "start":{"lineNumber":3, "columnNumber":30}, "end":{"lineNumber":4,
936e509ee18Sopenharmony_ci        "columnNumber":40}}]}})";
937e509ee18Sopenharmony_ci    objectData = StepIntoParams::Create(DispatchRequest(msg).GetParams());
938e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
939e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetBreakOnAsyncCall());
940e509ee18Sopenharmony_ci    const std::list<std::unique_ptr<LocationRange>> *locationRangeList = objectData->GetSkipList();
941e509ee18Sopenharmony_ci    EXPECT_EQ(locationRangeList->size(), 2U);
942e509ee18Sopenharmony_ci}
943e509ee18Sopenharmony_ci
944e509ee18Sopenharmony_ci
945e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, StepOverParamsCreateTest)
946e509ee18Sopenharmony_ci{
947e509ee18Sopenharmony_ci    std::string msg;
948e509ee18Sopenharmony_ci    std::unique_ptr<StepOverParams> objectData;
949e509ee18Sopenharmony_ci
950e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"skipList":true}})";
951e509ee18Sopenharmony_ci    objectData = StepOverParams::Create(DispatchRequest(msg).GetParams());
952e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
953e509ee18Sopenharmony_ci
954e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"skipList":[{"scriptId":"1",
955e509ee18Sopenharmony_ci        "start":{"lineNumber":1, "columnNumber":10}, "end":{"lineNumber":2, "columnNumber":20}}, {"scriptId":"2",
956e509ee18Sopenharmony_ci        "start":{"lineNumber":3, "columnNumber":30}, "end":{"lineNumber":4, "columnNumber":40}}]}})";
957e509ee18Sopenharmony_ci    objectData = StepOverParams::Create(DispatchRequest(msg).GetParams());
958e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
959e509ee18Sopenharmony_ci    const std::list<std::unique_ptr<LocationRange>> *locationRangeList = objectData->GetSkipList();
960e509ee18Sopenharmony_ci    EXPECT_EQ(locationRangeList->size(), 2U);
961e509ee18Sopenharmony_ci}
962e509ee18Sopenharmony_ci
963e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, ReplyNativeCallingParamsCreateTest)
964e509ee18Sopenharmony_ci{
965e509ee18Sopenharmony_ci    std::string msg;
966e509ee18Sopenharmony_ci    std::unique_ptr<ReplyNativeCallingParams> objectData;
967e509ee18Sopenharmony_ci
968e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"userCode":"test"}})";
969e509ee18Sopenharmony_ci    objectData = ReplyNativeCallingParams::Create(DispatchRequest(msg).GetParams());
970e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
971e509ee18Sopenharmony_ci
972e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"userCode":true}})";
973e509ee18Sopenharmony_ci    objectData = ReplyNativeCallingParams::Create(DispatchRequest(msg).GetParams());
974e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
975e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetUserCode());
976e509ee18Sopenharmony_ci}
977e509ee18Sopenharmony_ci
978e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, GetPropertiesParamsCreateTest)
979e509ee18Sopenharmony_ci{
980e509ee18Sopenharmony_ci    std::string msg;
981e509ee18Sopenharmony_ci    std::unique_ptr<GetPropertiesParams> objectData;
982e509ee18Sopenharmony_ci
983e509ee18Sopenharmony_ci    // abnormal params of null msg
984e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
985e509ee18Sopenharmony_ci    objectData = GetPropertiesParams::Create(DispatchRequest(msg).GetParams());
986e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
987e509ee18Sopenharmony_ci
988e509ee18Sopenharmony_ci    // abnormal params of unexist key params
989e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
990e509ee18Sopenharmony_ci    objectData = GetPropertiesParams::Create(DispatchRequest(msg).GetParams());
991e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
992e509ee18Sopenharmony_ci
993e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
994e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
995e509ee18Sopenharmony_ci    objectData = GetPropertiesParams::Create(DispatchRequest(msg).GetParams());
996e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
997e509ee18Sopenharmony_ci
998e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":10, "ownProperties":1,
999e509ee18Sopenharmony_ci        "accessorPropertiesOnly":2, "generatePreview":3}})";
1000e509ee18Sopenharmony_ci    objectData = GetPropertiesParams::Create(DispatchRequest(msg).GetParams());
1001e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1002e509ee18Sopenharmony_ci
1003e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"objectId":"10", "ownProperties":true,
1004e509ee18Sopenharmony_ci        "accessorPropertiesOnly":true, "generatePreview":true}})";
1005e509ee18Sopenharmony_ci    objectData = GetPropertiesParams::Create(DispatchRequest(msg).GetParams());
1006e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
1007e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetObjectId(), 10);
1008e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetOwnProperties());
1009e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetAccessPropertiesOnly());
1010e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetGeneratePreview());
1011e509ee18Sopenharmony_ci}
1012e509ee18Sopenharmony_ci
1013e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, CallFunctionOnParamsCreateTest)
1014e509ee18Sopenharmony_ci{
1015e509ee18Sopenharmony_ci    std::string msg;
1016e509ee18Sopenharmony_ci    std::unique_ptr<CallFunctionOnParams> objectData;
1017e509ee18Sopenharmony_ci
1018e509ee18Sopenharmony_ci    // abnormal params of null msg
1019e509ee18Sopenharmony_ci    msg = std::string() + R"({})";
1020e509ee18Sopenharmony_ci    objectData = CallFunctionOnParams::Create(DispatchRequest(msg).GetParams());
1021e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1022e509ee18Sopenharmony_ci
1023e509ee18Sopenharmony_ci    // abnormal params of unexist key params
1024e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test"})";
1025e509ee18Sopenharmony_ci    objectData = CallFunctionOnParams::Create(DispatchRequest(msg).GetParams());
1026e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1027e509ee18Sopenharmony_ci
1028e509ee18Sopenharmony_ci    // abnormal params of null params.sub-key
1029e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{}})";
1030e509ee18Sopenharmony_ci    objectData = CallFunctionOnParams::Create(DispatchRequest(msg).GetParams());
1031e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1032e509ee18Sopenharmony_ci
1033e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0, "method":"Debugger.Test", "params":{"callFrameId":0, "functionDeclaration":true,
1034e509ee18Sopenharmony_ci        "objectId":1, "arguments":[{"unserializableValue":1, "objectId":10}, {"unserializableValue":2, "objectId":20}],
1035e509ee18Sopenharmony_ci        "silent":"true", "returnByValue":"true", "generatePreview":"true", "userGesture":"true",
1036e509ee18Sopenharmony_ci        "awaitPromise":"true", "executionContextId":"1", "objectGroup":2, "throwOnSideEffect":"true"}})";
1037e509ee18Sopenharmony_ci    objectData = CallFunctionOnParams::Create(DispatchRequest(msg).GetParams());
1038e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1039e509ee18Sopenharmony_ci
1040e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0, "method":"Debugger.Test", "params":{"callFrameId":"0",
1041e509ee18Sopenharmony_ci        "functionDeclaration":"testFunction", "objectId":"1",
1042e509ee18Sopenharmony_ci        "arguments":[{"unserializableValue":"testValue1", "objectId":"10"},
1043e509ee18Sopenharmony_ci        {"unserializableValue":"testValue2", "objectId":"20"}], "silent":true, "returnByValue":true,
1044e509ee18Sopenharmony_ci        "generatePreview":true, "userGesture":true, "awaitPromise":true, "executionContextId":1,
1045e509ee18Sopenharmony_ci        "objectGroup":"testGrp", "throwOnSideEffect":true}})";
1046e509ee18Sopenharmony_ci    objectData = CallFunctionOnParams::Create(DispatchRequest(msg).GetParams());
1047e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
1048e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetCallFrameId(), 0);
1049e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetFunctionDeclaration(), "testFunction");
1050e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetObjectId(), 1);
1051e509ee18Sopenharmony_ci    const std::vector<std::unique_ptr<CallArgument>> *callArgument = objectData->GetArguments();
1052e509ee18Sopenharmony_ci    EXPECT_EQ(callArgument->size(), 2U);
1053e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetSilent());
1054e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetReturnByValue());
1055e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetGeneratePreview());
1056e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetUserGesture());
1057e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetAwaitPromise());
1058e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetExecutionContextId(), 1);
1059e509ee18Sopenharmony_ci    EXPECT_EQ(objectData->GetObjectGroup(), "testGrp");
1060e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetThrowOnSideEffect());
1061e509ee18Sopenharmony_ci}
1062e509ee18Sopenharmony_ci
1063e509ee18Sopenharmony_ciHWTEST_F_L0(DebuggerParamsTest, ResetSingleStepperParamsCreateTest)
1064e509ee18Sopenharmony_ci{
1065e509ee18Sopenharmony_ci    std::string msg;
1066e509ee18Sopenharmony_ci    std::unique_ptr<ResetSingleStepperParams> objectData;
1067e509ee18Sopenharmony_ci
1068e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"resetSingleStepper":"test"}})";
1069e509ee18Sopenharmony_ci    objectData = ResetSingleStepperParams::Create(DispatchRequest(msg).GetParams());
1070e509ee18Sopenharmony_ci    EXPECT_EQ(objectData, nullptr);
1071e509ee18Sopenharmony_ci
1072e509ee18Sopenharmony_ci    msg = std::string() + R"({"id":0,"method":"Debugger.Test","params":{"resetSingleStepper":true}})";
1073e509ee18Sopenharmony_ci    objectData = ResetSingleStepperParams::Create(DispatchRequest(msg).GetParams());
1074e509ee18Sopenharmony_ci    ASSERT_NE(objectData, nullptr);
1075e509ee18Sopenharmony_ci    ASSERT_TRUE(objectData->GetResetSingleStepper());
1076e509ee18Sopenharmony_ci}
1077e509ee18Sopenharmony_ci}  // namespace panda::test