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