1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #include <string> 16 #include <map> 17 #include "gtest/gtest.h" 18 #define private public 19 #define protected public 20 #include "CommandLineFactory.h" 21 #include "CommandParser.h" 22 #include "JsAppImpl.h" 23 #include "MockGlobalResult.h" 24 #include "VirtualScreenImpl.h" 25 #include "KeyInputImpl.h" 26 #include "MouseInputImpl.h" 27 #include "SharedData.h" 28 #include "MouseWheelImpl.h" 29 #include "Interrupter.h" 30 31 namespace { 32 class CommandLineTest : public ::testing::Test { 33 public: CommandLineTest()34 CommandLineTest() {} ~CommandLineTest()35 ~CommandLineTest() {} 36 static std::unique_ptr<LocalSocket> socket; 37 protected: SetUpTestCase()38 static void SetUpTestCase() 39 { 40 socket = std::make_unique<LocalSocket>(); 41 SharedData<bool>(SharedDataType::KEEP_SCREEN_ON, true); 42 SharedData<uint8_t>(SharedDataType::BATTERY_STATUS, (uint8_t)ChargeState::NOCHARGE, 43 (uint8_t)ChargeState::NOCHARGE, (uint8_t)ChargeState::CHARGING); 44 // The brightness ranges from 1 to 255. The default value is 255. 45 SharedData<uint8_t>(SharedDataType::BRIGHTNESS_VALUE, 255, 1, 255); 46 SharedData<uint8_t>(SharedDataType::BRIGHTNESS_MODE, (uint8_t)BrightnessMode::MANUAL, 47 (uint8_t)BrightnessMode::MANUAL, (uint8_t)BrightnessMode::AUTO); 48 // The value ranges from 0 to 999999. The default value is 0. 49 SharedData<uint32_t>(SharedDataType::SUMSTEP_VALUE, 0, 0, 999999); 50 // The volume ranges from 0.0 to 1.0. The default value is 1.0. 51 SharedData<double>(SharedDataType::VOLUME_VALUE, 1.0, 0.0, 1.0); 52 // Battery level range: 0.0–1.0; default: 1.0 53 SharedData<double>(SharedDataType::BATTERY_LEVEL, 1.0, 0.0, 1.0); 54 // Heart rate range: 0 to 255. The default value is 80. 55 SharedData<uint8_t>(SharedDataType::HEARTBEAT_VALUE, 80, 0, 255); 56 SharedData<std::string>(SharedDataType::LANGUAGE, "zh-CN"); 57 // The value ranges from 180 to 180. The default value is 0. 58 SharedData<double>(SharedDataType::LONGITUDE, 0, -180, 180); 59 // The atmospheric pressure ranges from 0 to 999900. The default value is 101325. 60 SharedData<uint32_t>(SharedDataType::PRESSURE_VALUE, 101325, 0, 999900); 61 SharedData<bool>(SharedDataType::WEARING_STATE, true); 62 // The value ranges from -90 to 90. The default value is 0. 63 SharedData<double>(SharedDataType::LATITUDE, 0, -90, 90); 64 } 65 }; 66 67 std::unique_ptr<LocalSocket> CommandLineTest::socket = nullptr; 68 69 TEST_F(CommandLineTest,BackClickedCommandTest)70 TEST_F(CommandLineTest, BackClickedCommandTest) 71 { 72 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 73 std::string msg = "{\"args\":null}"; 74 Json2::Value args = JsonReader::ParseJsonData2(msg); 75 BackClickedCommand command(type, args, *socket); 76 g_dispatchOsBackEvent = false; 77 command.CheckAndRun(); 78 EXPECT_TRUE(g_dispatchOsBackEvent); 79 } 80 TEST_F(CommandLineTest,InspectorJSONTreeTest)81 TEST_F(CommandLineTest, InspectorJSONTreeTest) 82 { 83 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 84 Json2::Value args; 85 InspectorJSONTree command(type, args, *socket); 86 g_getJSONTree = false; 87 command.CheckAndRun(); 88 EXPECT_TRUE(g_getJSONTree); 89 } 90 TEST_F(CommandLineTest,InspectorDefaultTest)91 TEST_F(CommandLineTest, InspectorDefaultTest) 92 { 93 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 94 Json2::Value args; 95 InspectorDefault command(type, args, *socket); 96 g_getDefaultJSONTree = false; 97 command.CheckAndRun(); 98 EXPECT_TRUE(g_getDefaultJSONTree); 99 } 100 TEST_F(CommandLineTest,OrientationCommandTest)101 TEST_F(CommandLineTest, OrientationCommandTest) 102 { 103 JsAppImpl::GetInstance().orientation = ""; 104 CommandLine::CommandType type = CommandLine::CommandType::SET; 105 // args是null 106 Json2::Value args1 = JsonReader::CreateNull(); 107 OrientationCommand command1(type, args1, *socket); 108 command1.CheckAndRun(); 109 EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), ""); 110 // 无Orientation 111 std::string jsonStr = "{\"aaaa\":\"landscape\"}"; 112 Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr); 113 OrientationCommand command2(type, args2, *socket); 114 command2.CheckAndRun(); 115 EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), ""); 116 // 有Orientation,但不是string类型 117 jsonStr = "{\"Orientation\":\"aaaaa\"}"; 118 Json2::Value args3 = JsonReader::ParseJsonData2(jsonStr); 119 OrientationCommand command3(type, args3, *socket); 120 command3.CheckAndRun(); 121 EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), ""); 122 // Orientation : landscape 123 jsonStr = "{\"Orientation\":\"landscape\"}"; 124 Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr); 125 OrientationCommand command4(type, args4, *socket); 126 g_output = false; 127 command4.CheckAndRun(); 128 EXPECT_TRUE(g_output); 129 EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "landscape"); 130 // Orientation : portrait 131 args4.Replace("Orientation", "portrait"); 132 OrientationCommand command5(type, args4, *socket); 133 command5.CheckAndRun(); 134 EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "portrait"); 135 } 136 137 // 参数异常 TEST_F(CommandLineTest,ResolutionSwitchCommandArgsTest)138 TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTest) 139 { 140 JsAppImpl::GetInstance().width = 0; 141 JsAppImpl::GetInstance().height = 0; 142 CommandLine::CommandType type = CommandLine::CommandType::SET; 143 // null 144 Json2::Value args1 = JsonReader::CreateNull(); 145 ResolutionSwitchCommand command1(type, args1, *socket); 146 command1.CheckAndRun(); 147 EXPECT_EQ(JsAppImpl::GetInstance().width, 0); 148 EXPECT_EQ(JsAppImpl::GetInstance().height, 0); 149 // 缺失参数 150 std::string jsonStr = R"({"aaaaa":1080,"originHeight":2340,"width":1080,"height":2340,"screenDensity":480})"; 151 Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr); 152 ResolutionSwitchCommand command3(type, args2, *socket); 153 command3.CheckAndRun(); 154 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); 155 EXPECT_NE(JsAppImpl::GetInstance().height, 2340); 156 } 157 158 // 参数类型异常 TEST_F(CommandLineTest,ResolutionSwitchCommandArgsTypeTest)159 TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTypeTest) 160 { 161 JsAppImpl::GetInstance().width = 0; 162 JsAppImpl::GetInstance().height = 0; 163 CommandLine::CommandType type = CommandLine::CommandType::SET; 164 std::string jsonStr = R"({"originWidth":"1080","originHeight":2340,"width":1080, 165 "height":2340,"screenDensity":480})"; 166 Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr); 167 ResolutionSwitchCommand command3(type, args2, *socket); 168 command3.CheckAndRun(); 169 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); 170 EXPECT_NE(JsAppImpl::GetInstance().height, 2340); 171 172 JsAppImpl::GetInstance().width = 0; 173 JsAppImpl::GetInstance().height = 0; 174 std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080, 175 "height" : 2340, "screenDensity" : 480, "reason" : 333})"; 176 Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1); 177 ResolutionSwitchCommand command1(type, args1, *socket); 178 command1.CheckAndRun(); 179 EXPECT_EQ(JsAppImpl::GetInstance().width, 0); 180 EXPECT_EQ(JsAppImpl::GetInstance().height, 0); 181 } 182 183 // 参数范围异常 TEST_F(CommandLineTest,ResolutionSwitchCommandArgsRangesTest)184 TEST_F(CommandLineTest, ResolutionSwitchCommandArgsRangesTest) 185 { 186 JsAppImpl::GetInstance().width = 0; 187 JsAppImpl::GetInstance().height = 0; 188 CommandLine::CommandType type = CommandLine::CommandType::SET; 189 std::string jsonStr = R"({"originWidth":5000,"originHeight":2340,"width":1080, 190 "height":2340,"screenDensity":480})"; 191 Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr); 192 ResolutionSwitchCommand command3(type, args2, *socket); 193 command3.CheckAndRun(); 194 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); 195 EXPECT_NE(JsAppImpl::GetInstance().height, 2340); 196 197 JsAppImpl::GetInstance().width = 0; 198 JsAppImpl::GetInstance().height = 0; 199 std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080, 200 "height" : 2340, "screenDensity" : 480, "reason" : "aaa"})"; 201 Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1); 202 ResolutionSwitchCommand command1(type, args1, *socket); 203 command1.CheckAndRun(); 204 EXPECT_EQ(JsAppImpl::GetInstance().width, 0); 205 EXPECT_EQ(JsAppImpl::GetInstance().height, 0); 206 207 JsAppImpl::GetInstance().width = 0; 208 JsAppImpl::GetInstance().height = 0; 209 std::string jsonStr4 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080, 210 "height" : 2340, "screenDensity" : 100, "reason" : "resize"})"; 211 Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr4); 212 ResolutionSwitchCommand command4(type, args4, *socket); 213 command4.CheckAndRun(); 214 EXPECT_EQ(JsAppImpl::GetInstance().width, 0); 215 EXPECT_EQ(JsAppImpl::GetInstance().height, 0); 216 217 JsAppImpl::GetInstance().width = 0; 218 JsAppImpl::GetInstance().height = 0; 219 std::string jsonStr5 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080, 220 "height" : 2340, "screenDensity" : 700, "reason" : "resize"})"; 221 Json2::Value args5 = JsonReader::ParseJsonData2(jsonStr5); 222 ResolutionSwitchCommand command5(type, args5, *socket); 223 command5.CheckAndRun(); 224 EXPECT_EQ(JsAppImpl::GetInstance().width, 0); 225 EXPECT_EQ(JsAppImpl::GetInstance().height, 0); 226 } 227 228 // 参数正常 TEST_F(CommandLineTest,ResolutionSwitchCommandArgsCorrectTest)229 TEST_F(CommandLineTest, ResolutionSwitchCommandArgsCorrectTest) 230 { 231 JsAppImpl::GetInstance().width = 0; 232 JsAppImpl::GetInstance().height = 0; 233 CommandLine::CommandType type = CommandLine::CommandType::SET; 234 std::string jsonStr = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080, 235 "height" : 2340, "screenDensity" : 480, "reason" : "resize"})"; 236 Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr); 237 ResolutionSwitchCommand command3(type, args2, *socket); 238 command3.CheckAndRun(); 239 EXPECT_EQ(JsAppImpl::GetInstance().width, 1080); 240 EXPECT_EQ(JsAppImpl::GetInstance().height, 2340); 241 } 242 TEST_F(CommandLineTest,CurrentRouterCommandTest)243 TEST_F(CommandLineTest, CurrentRouterCommandTest) 244 { 245 CommandLine::CommandType type = CommandLine::CommandType::GET; 246 Json2::Value args1 = JsonReader::CreateObject(); 247 CurrentRouterCommand command3(type, args1, *socket); 248 g_getCurrentRouter = false; 249 command3.CheckAndRun(); 250 EXPECT_TRUE(g_getCurrentRouter); 251 } 252 TEST_F(CommandLineTest,ReloadRuntimePageCommandTest)253 TEST_F(CommandLineTest, ReloadRuntimePageCommandTest) 254 { 255 CommandLine::CommandType type = CommandLine::CommandType::SET; 256 std::string msg = "{\"ReloadRuntimePage\":\"aaa\"}"; 257 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 258 ReloadRuntimePageCommand command(type, args2, *socket); 259 g_reloadRuntimePage = false; 260 command.CheckAndRun(); 261 EXPECT_TRUE(g_reloadRuntimePage); 262 263 std::string msg2 = "{\"ReloadRuntimePage\" : 222}"; 264 Json2::Value args3 = JsonReader::ParseJsonData2(msg2); 265 ReloadRuntimePageCommand command3(type, args3, *socket); 266 g_reloadRuntimePage = false; 267 command3.CheckAndRun(); 268 EXPECT_FALSE(g_reloadRuntimePage); 269 } 270 TEST_F(CommandLineTest,ToUint8Test)271 TEST_F(CommandLineTest, ToUint8Test) 272 { 273 CommandLine::CommandType type = CommandLine::CommandType::SET; 274 // null 275 Json2::Value args1 = JsonReader::CreateNull(); 276 ResolutionSwitchCommand command1(type, args1, *socket); 277 EXPECT_EQ(command1.ToUint8("256"), 0); 278 } 279 TEST_F(CommandLineTest,IsBoolTypeTest)280 TEST_F(CommandLineTest, IsBoolTypeTest) 281 { 282 CommandLine::CommandType type = CommandLine::CommandType::SET; 283 // null 284 Json2::Value args1 = JsonReader::CreateNull(); 285 ResolutionSwitchCommand command1(type, args1, *socket); 286 EXPECT_TRUE(command1.IsBoolType("true")); 287 EXPECT_FALSE(command1.IsBoolType("XX")); 288 } 289 TEST_F(CommandLineTest,IsIntTypeTest)290 TEST_F(CommandLineTest, IsIntTypeTest) 291 { 292 CommandLine::CommandType type = CommandLine::CommandType::SET; 293 // null 294 Json2::Value args1 = JsonReader::CreateNull(); 295 ResolutionSwitchCommand command1(type, args1, *socket); 296 EXPECT_TRUE(command1.IsIntType("123")); 297 } 298 TEST_F(CommandLineTest,IsOneDigitFloatTypeTest)299 TEST_F(CommandLineTest, IsOneDigitFloatTypeTest) 300 { 301 CommandLine::CommandType type = CommandLine::CommandType::SET; 302 // null 303 Json2::Value args1 = JsonReader::CreateNull(); 304 ResolutionSwitchCommand command1(type, args1, *socket); 305 EXPECT_TRUE(command1.IsOneDigitFloatType("-6", true)); 306 EXPECT_TRUE(command1.IsOneDigitFloatType("3", false)); 307 } 308 TEST_F(CommandLineTest,IsSetArgValidTest)309 TEST_F(CommandLineTest, IsSetArgValidTest) 310 { 311 CommandLine::CommandType type = CommandLine::CommandType::SET; 312 // null 313 Json2::Value args1 = JsonReader::CreateNull(); 314 ColorModeCommand command1(type, args1, *socket); 315 command1.RunSet(); 316 EXPECT_FALSE(command1.IsSetArgValid()); 317 } 318 TEST_F(CommandLineTest,FontSelectCommandTest)319 TEST_F(CommandLineTest, FontSelectCommandTest) 320 { 321 CommandLine::CommandType type = CommandLine::CommandType::SET; 322 Json2::Value args1 = JsonReader::CreateNull(); 323 FontSelectCommand command1(type, args1, *socket); 324 g_output = false; 325 command1.CheckAndRun(); 326 command1.RunSet(); 327 EXPECT_FALSE(command1.IsSetArgValid()); 328 EXPECT_TRUE(g_output); 329 std::string msg = "{\"FontSelect\":true}"; 330 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 331 FontSelectCommand command3(type, args2, *socket); 332 g_output = false; 333 command3.CheckAndRun(); 334 EXPECT_TRUE(g_output); 335 } 336 TEST_F(CommandLineTest,MemoryRefreshCommandTest)337 TEST_F(CommandLineTest, MemoryRefreshCommandTest) 338 { 339 CommandLine::CommandType type = CommandLine::CommandType::SET; 340 Json2::Value args1 = JsonReader::CreateNull(); 341 MemoryRefreshCommand command1(type, args1, *socket); 342 g_memoryRefresh = false; 343 command1.CheckAndRun(); 344 EXPECT_FALSE(g_memoryRefresh); 345 std::string msg = "{\"jsCode\":\"UEFOREEAAAAAAAAAAAAAA+wDAADEAAAAFQ\"}"; 346 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 347 MemoryRefreshCommand command3(type, args2, *socket); 348 g_memoryRefresh = false; 349 command3.CheckAndRun(); 350 EXPECT_TRUE(g_memoryRefresh); 351 } 352 TEST_F(CommandLineTest,LoadDocumentCommandArgsTest)353 TEST_F(CommandLineTest, LoadDocumentCommandArgsTest) 354 { 355 CommandLine::CommandType type = CommandLine::CommandType::SET; 356 Json2::Value args2 = JsonReader::CreateNull(); 357 LoadDocumentCommand command(type, args2, *socket); 358 g_loadDocument = false; 359 command.CheckAndRun(); 360 EXPECT_FALSE(g_loadDocument); 361 } 362 TEST_F(CommandLineTest,LoadDocumentCommandArgsTypeTest)363 TEST_F(CommandLineTest, LoadDocumentCommandArgsTypeTest) 364 { 365 CommandLine::CommandType type = CommandLine::CommandType::SET; 366 std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080, 367 "height":"2340","locale":"zh_CN","colorMode":"light","orientation":"portrait", 368 "deviceType":"phone","dpi":480}})"; 369 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 370 LoadDocumentCommand command(type, args2, *socket); 371 g_loadDocument = false; 372 command.CheckAndRun(); 373 EXPECT_FALSE(g_loadDocument); 374 } 375 TEST_F(CommandLineTest,LoadDocumentCommandArgsNumRangeTest)376 TEST_F(CommandLineTest, LoadDocumentCommandArgsNumRangeTest) 377 { 378 CommandLine::CommandType type = CommandLine::CommandType::SET; 379 std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080, 380 "height" : 2340, "locale" : "zh_CN" , "colorMode" : "light", "orientation" : "portrait", 381 "deviceType" : "phone", "dpi" : 720}})"; 382 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 383 LoadDocumentCommand command(type, args2, *socket); 384 g_loadDocument = false; 385 command.CheckAndRun(); 386 EXPECT_FALSE(g_loadDocument); 387 } 388 TEST_F(CommandLineTest,LoadDocumentCommandArgsStrRangeTest)389 TEST_F(CommandLineTest, LoadDocumentCommandArgsStrRangeTest) 390 { 391 CommandParser::GetInstance().deviceType = "phone"; 392 CommandLine::CommandType type = CommandLine::CommandType::SET; 393 std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080, 394 "height" : 2340, "locale" : "aa_PP", "colorMode" : "light", "orientation" : "portrait", 395 "deviceType" : "phone", "dpi" : 480}})"; 396 Json2::Value args = JsonReader::ParseJsonData2(msg); 397 // locale error 398 LoadDocumentCommand command(type, args, *socket); 399 g_loadDocument = false; 400 command.CheckAndRun(); 401 EXPECT_FALSE(g_loadDocument); 402 // colorMode error 403 std::string msg1 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080, 404 "height" : 2340, "locale" : "zh_CN", "colorMode" : "aaa", "orientation" : "portrait", 405 "deviceType" : "phone", "dpi" : 480}})"; 406 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 407 LoadDocumentCommand command1(type, args1, *socket); 408 g_loadDocument = false; 409 command1.CheckAndRun(); 410 EXPECT_FALSE(g_loadDocument); 411 // colorMode error 412 std::string msg2 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080, 413 "height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "aaa", 414 "deviceType" : "phone", "dpi" : 480}})"; 415 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 416 LoadDocumentCommand command2(type, args2, *socket); 417 g_loadDocument = false; 418 command2.CheckAndRun(); 419 EXPECT_FALSE(g_loadDocument); 420 // deviceType error 421 std::string msg3 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080, 422 "height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "landscape", 423 "deviceType" : "liteWearable", "dpi" : 480}})"; 424 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 425 LoadDocumentCommand command3(type, args3, *socket); 426 g_loadDocument = false; 427 command3.CheckAndRun(); 428 EXPECT_FALSE(g_loadDocument); 429 } 430 TEST_F(CommandLineTest,LoadDocumentCommandArgsCorrectTest)431 TEST_F(CommandLineTest, LoadDocumentCommandArgsCorrectTest) 432 { 433 CommandLine::CommandType type = CommandLine::CommandType::SET; 434 CommandParser::GetInstance().deviceType = "phone"; 435 std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080, 436 "height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait", 437 "deviceType":"phone","dpi":480}})"; 438 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 439 LoadDocumentCommand command1(type, args1, *socket); 440 g_loadDocument = false; 441 command1.CheckAndRun(); 442 EXPECT_TRUE(g_loadDocument); 443 444 CommandParser::GetInstance().deviceType = "liteWearable"; 445 msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080, 446 "height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait", 447 "deviceType":"liteWearable","dpi":480}})"; 448 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 449 LoadDocumentCommand command2(type, args2, *socket); 450 g_loadDocument = false; 451 command2.CheckAndRun(); 452 EXPECT_FALSE(g_loadDocument); 453 } 454 TEST_F(CommandLineTest,FastPreviewMsgCommandTest)455 TEST_F(CommandLineTest, FastPreviewMsgCommandTest) 456 { 457 CommandLine::CommandType type = CommandLine::CommandType::GET; 458 Json2::Value args2 = JsonReader::CreateNull(); 459 FastPreviewMsgCommand command2(type, args2, *socket); 460 g_getFastPreviewMsg = false; 461 command2.CheckAndRun(); 462 EXPECT_TRUE(g_getFastPreviewMsg); 463 } 464 TEST_F(CommandLineTest,LoadContentCommandTest)465 TEST_F(CommandLineTest, LoadContentCommandTest) 466 { 467 CommandLine::CommandType type = CommandLine::CommandType::GET; 468 Json2::Value args2 = JsonReader::CreateNull(); 469 LoadContentCommand command2(type, args2, *socket); 470 g_getAbilityCurrentRouter = false; 471 command2.CheckAndRun(); 472 EXPECT_TRUE(g_getAbilityCurrentRouter); 473 } 474 TEST_F(CommandLineTest,DropFrameCommandTest)475 TEST_F(CommandLineTest, DropFrameCommandTest) 476 { 477 VirtualScreenImpl::GetInstance().dropFrameFrequency = 0; 478 CommandLine::CommandType type = CommandLine::CommandType::SET; 479 std::string msg = R"({"frequency" : 1000})"; 480 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 481 DropFrameCommand command1(type, args1, *socket); 482 command1.CheckAndRun(); 483 EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 1000); // set value is 1000 484 485 VirtualScreenImpl::GetInstance().dropFrameFrequency = 0; 486 std::string msg2 = R"({"frequency" : "aaaa"})"; 487 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 488 DropFrameCommand command2(type, args2, *socket); 489 command2.CheckAndRun(); 490 EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0); 491 492 VirtualScreenImpl::GetInstance().dropFrameFrequency = 0; 493 std::string msg3 = R"({"frequency" : -100})"; 494 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 495 DropFrameCommand command3(type, args3, *socket); 496 command3.CheckAndRun(); 497 EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0); 498 } 499 TEST_F(CommandLineTest,KeyPressCommandImeTest)500 TEST_F(CommandLineTest, KeyPressCommandImeTest) 501 { 502 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 503 int codePoint = 2033; 504 std::string msg = R"({"isInputMethod":"aaa","codePoint":2033})"; 505 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 506 KeyPressCommand command1(type, args1, *socket); 507 g_dispatchOsInputMethodEvent = false; 508 command1.CheckAndRun(); 509 EXPECT_FALSE(g_dispatchOsInputMethodEvent); 510 511 args1.Replace("isInputMethod", true); 512 args1.Replace("codePoint", "aaaa"); 513 KeyPressCommand command2(type, args1, *socket); 514 g_dispatchOsInputMethodEvent = false; 515 command2.CheckAndRun(); 516 EXPECT_FALSE(g_dispatchOsInputMethodEvent); 517 518 args1.Replace("codePoint", codePoint); 519 KeyPressCommand command3(type, args1, *socket); 520 g_dispatchOsInputMethodEvent = false; 521 KeyInputImpl::GetInstance().codePoint = 0; 522 command3.CheckAndRun(); 523 EXPECT_TRUE(g_dispatchOsInputMethodEvent); 524 EXPECT_EQ(KeyInputImpl::GetInstance().codePoint, codePoint); 525 } 526 TEST_F(CommandLineTest,KeyPressCommandNoneImeArgsTest)527 TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTest) 528 { 529 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 530 std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"keyString":123, 531 "pressedCodes":[2033]})"; 532 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 533 KeyPressCommand command1(type, args1, *socket); 534 g_dispatchOsKeyEvent = false; 535 command1.CheckAndRun(); 536 EXPECT_FALSE(g_dispatchOsKeyEvent); 537 } 538 TEST_F(CommandLineTest,KeyPressCommandNoneImeArgsTypeTest)539 TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTypeTest) 540 { 541 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 542 std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":["aaa"]})"; 543 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 544 KeyPressCommand command1(type, args1, *socket); 545 g_dispatchOsKeyEvent = false; 546 command1.CheckAndRun(); 547 EXPECT_FALSE(g_dispatchOsKeyEvent); 548 } 549 TEST_F(CommandLineTest,KeyPressCommandNoneImeArgsRangeTest)550 TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsRangeTest) 551 { 552 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 553 // keyAction error 554 std::string msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 3, "keyString" : "123", 555 "pressedCodes" : [2033]})"; 556 Json2::Value args1 = JsonReader::ParseJsonData2(msg); 557 KeyPressCommand command1(type, args1, *socket); 558 g_dispatchOsKeyEvent = false; 559 command1.CheckAndRun(); 560 EXPECT_FALSE(g_dispatchOsKeyEvent); 561 // keyCode error 562 args1.Replace("keyAction", 0); 563 args1.Replace("keyCode", 1900); 564 KeyPressCommand command2(type, args1, *socket); 565 g_dispatchOsKeyEvent = false; 566 command2.CheckAndRun(); 567 EXPECT_FALSE(g_dispatchOsKeyEvent); 568 // pressedCodes error 569 msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 1, "keyString" : "123", 570 "pressedCodes" : [1900]})"; 571 Json2::Value args2 = JsonReader::ParseJsonData2(msg); 572 KeyPressCommand command3(type, args2, *socket); 573 g_dispatchOsKeyEvent = false; 574 command3.CheckAndRun(); 575 EXPECT_FALSE(g_dispatchOsKeyEvent); 576 } 577 TEST_F(CommandLineTest,KeyPressCommandNoneImeArgsCorrectTest)578 TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsCorrectTest) 579 { 580 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 581 std::string msg1 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0, 582 "keyString":"ctrl","pressedCodes":[2033]})"; 583 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 584 KeyPressCommand command1(type, args1, *socket); 585 g_dispatchOsKeyEvent = false; 586 command1.CheckAndRun(); 587 EXPECT_TRUE(g_dispatchOsKeyEvent); 588 EXPECT_EQ(KeyInputImpl::GetInstance().keyCode, 2033); 589 EXPECT_EQ(KeyInputImpl::GetInstance().keyAction, 0); 590 EXPECT_EQ(KeyInputImpl::GetInstance().keyString, "ctrl"); 591 EXPECT_EQ(KeyInputImpl::GetInstance().pressedCodes[0], OHOS::MMI::KeyCode(2033)); 592 593 std::string msg2 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":[2033]})"; 594 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 595 KeyPressCommand command2(type, args2, *socket); 596 g_dispatchOsKeyEvent = false; 597 command2.CheckAndRun(); 598 EXPECT_TRUE(g_dispatchOsKeyEvent); 599 EXPECT_EQ(KeyInputImpl::GetInstance().keyString, ""); 600 601 KeyPressCommand command3(type, args1, *socket); 602 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 603 g_dispatchOsKeyEvent = false; 604 command3.CheckAndRun(); 605 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 606 EXPECT_FALSE(g_dispatchOsKeyEvent); 607 } 608 TEST_F(CommandLineTest,PointEventCommandArgTest)609 TEST_F(CommandLineTest, PointEventCommandArgTest) 610 { 611 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 612 // y error 613 std::string msg1 = R"({"x":365,"y":"aaa","duration":"","button":1,"action": 2,"axisValues":[0,0,0,0], 614 "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})"; 615 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 616 PointEventCommand command1(type, args1, *socket); 617 g_dispatchOsTouchEvent = false; 618 command1.CheckAndRun(); 619 EXPECT_FALSE(g_dispatchOsTouchEvent); 620 // action error 621 args1.Replace("y", 1071); 622 args1.Replace("action", "2"); 623 PointEventCommand command2(type, args1, *socket); 624 g_dispatchOsTouchEvent = false; 625 command2.CheckAndRun(); 626 EXPECT_FALSE(g_dispatchOsTouchEvent); 627 // sourceTool error 628 args1.Replace("action", 2); 629 args1.Replace("sourceTool", "7"); 630 PointEventCommand command3(type, args1, *socket); 631 g_dispatchOsTouchEvent = false; 632 command3.CheckAndRun(); 633 EXPECT_FALSE(g_dispatchOsTouchEvent); 634 // axisValues error 635 args1.Replace("sourceTool", 7); 636 args1.Replace("axisValues", "aaa"); 637 PointEventCommand command4(type, args1, *socket); 638 g_dispatchOsTouchEvent = false; 639 command4.CheckAndRun(); 640 EXPECT_FALSE(g_dispatchOsTouchEvent); 641 } 642 TEST_F(CommandLineTest,PointEventCommandArgRangeTest)643 TEST_F(CommandLineTest, PointEventCommandArgRangeTest) 644 { 645 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 646 // x error 647 std::string msg1 = R"({"x":2000,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0], 648 "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})"; 649 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 650 PointEventCommand command1(type, args1, *socket); 651 g_dispatchOsTouchEvent = false; 652 command1.CheckAndRun(); 653 EXPECT_FALSE(g_dispatchOsTouchEvent); 654 // y error 655 args1.Replace("x", 365); 656 args1.Replace("y", 5000); 657 PointEventCommand command2(type, args1, *socket); 658 g_dispatchOsTouchEvent = false; 659 command2.CheckAndRun(); 660 EXPECT_FALSE(g_dispatchOsTouchEvent); 661 // sourceTool error 662 args1.Replace("y", 1071); 663 args1.Replace("sourceTool", -1); 664 PointEventCommand command3(type, args1, *socket); 665 g_dispatchOsTouchEvent = false; 666 command3.CheckAndRun(); 667 EXPECT_FALSE(g_dispatchOsTouchEvent); 668 // axisValues error 669 msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2, 670 "axisValues" : ["0", 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [0, 1]})"; 671 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 672 PointEventCommand command4(type, args2, *socket); 673 g_dispatchOsTouchEvent = false; 674 command4.CheckAndRun(); 675 EXPECT_FALSE(g_dispatchOsTouchEvent); 676 // pressedButtons errors 677 msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2, 678 "axisValues" : [0, 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [-2, 0, 1]})"; 679 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 680 PointEventCommand command5(type, args3, *socket); 681 g_dispatchOsTouchEvent = false; 682 command5.CheckAndRun(); 683 EXPECT_TRUE(g_dispatchOsTouchEvent); 684 } 685 TEST_F(CommandLineTest,PointEventCommandArgCorrectTest)686 TEST_F(CommandLineTest, PointEventCommandArgCorrectTest) 687 { 688 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 689 std::string msg1 = R"({"x":365,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0], 690 "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})"; 691 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 692 PointEventCommand command1(type, args1, *socket); 693 g_dispatchOsTouchEvent = false; 694 command1.CheckAndRun(); 695 EXPECT_TRUE(g_dispatchOsTouchEvent); 696 EXPECT_EQ(MouseInputImpl::GetInstance().mouseXPosition, 365); // 365 is test x 697 EXPECT_EQ(MouseInputImpl::GetInstance().mouseYPosition, 1071); // 1071 is test y 698 699 PointEventCommand command2(type, args1, *socket); 700 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 701 g_dispatchOsTouchEvent = false; 702 command2.CheckAndRun(); 703 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 704 EXPECT_FALSE(g_dispatchOsTouchEvent); 705 } 706 TEST_F(CommandLineTest,FoldStatusCommandArgsTest)707 TEST_F(CommandLineTest, FoldStatusCommandArgsTest) 708 { 709 VirtualScreenImpl::GetInstance().SetFoldStatus("unfold"); 710 CommandLine::CommandType type = CommandLine::CommandType::SET; 711 // FoldStatus error 712 std::string msg1 = R"({"FoldStatus":100,"width":1080,"height":2504})"; 713 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 714 FoldStatusCommand command1(type, args1, *socket); 715 JsAppImpl::GetInstance().width = 0; 716 JsAppImpl::GetInstance().height = 0; 717 command1.CheckAndRun(); 718 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width 719 EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height 720 // height error 721 args1.Replace("FoldStatus", "fold"); 722 args1.Replace("height", "aaa"); 723 FoldStatusCommand command2(type, args1, *socket); 724 JsAppImpl::GetInstance().width = 0; 725 JsAppImpl::GetInstance().height = 0; 726 command2.CheckAndRun(); 727 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width 728 EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height 729 } 730 TEST_F(CommandLineTest,FoldStatusCommandArgsRangeTest)731 TEST_F(CommandLineTest, FoldStatusCommandArgsRangeTest) 732 { 733 VirtualScreenImpl::GetInstance().SetFoldStatus("unfold"); 734 CommandLine::CommandType type = CommandLine::CommandType::SET; 735 // FoldStatus error 736 std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":4000})"; 737 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 738 FoldStatusCommand command1(type, args1, *socket); 739 JsAppImpl::GetInstance().width = 0; 740 JsAppImpl::GetInstance().height = 0; 741 command1.CheckAndRun(); 742 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width 743 EXPECT_NE(JsAppImpl::GetInstance().height, 4000); // 4000 is test height 744 // height error 745 args1.Replace("height", 2504); // 2504 is test height 746 args1.Replace("FoldStatus", "aaaa"); 747 FoldStatusCommand command2(type, args1, *socket); 748 JsAppImpl::GetInstance().width = 0; 749 JsAppImpl::GetInstance().height = 0; 750 command2.CheckAndRun(); 751 EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width 752 EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height 753 } 754 TEST_F(CommandLineTest,FoldStatusCommandArgsCorrectTest)755 TEST_F(CommandLineTest, FoldStatusCommandArgsCorrectTest) 756 { 757 VirtualScreenImpl::GetInstance().SetFoldStatus("unfold"); 758 CommandLine::CommandType type = CommandLine::CommandType::SET; 759 std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":2504})"; 760 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 761 FoldStatusCommand command1(type, args1, *socket); 762 JsAppImpl::GetInstance().width = 0; 763 JsAppImpl::GetInstance().height = 0; 764 command1.CheckAndRun(); 765 EXPECT_EQ(JsAppImpl::GetInstance().width, 1080); // 1080 is test width 766 EXPECT_EQ(JsAppImpl::GetInstance().height, 2504); // 2504 is test height 767 } 768 TEST_F(CommandLineTest,PowerCommandArgsTest)769 TEST_F(CommandLineTest, PowerCommandArgsTest) 770 { 771 CommandLine::CommandType type = CommandLine::CommandType::SET; 772 std::string msg1 = R"({"Power":"abc"})"; 773 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 774 PowerCommand command1(type, args1, *socket); 775 command1.CheckAndRun(); 776 double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL); 777 EXPECT_EQ(power, 1.0); // 1.0 is default Power value 778 779 args1.Replace("Power", 2.0); // 2.0 is test Power value 780 PowerCommand command2(type, args1, *socket); 781 command2.CheckAndRun(); 782 power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL); 783 EXPECT_NE(power, 2.0); // 2.0 is test Power value 784 785 args1.Replace("Power", -1); 786 PowerCommand command3(type, args1, *socket); 787 command3.CheckAndRun(); 788 power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL); 789 EXPECT_NE(power, -1); // -1 is test Power value 790 } 791 TEST_F(CommandLineTest,PowerCommandSetTest)792 TEST_F(CommandLineTest, PowerCommandSetTest) 793 { 794 std::string msg1 = R"({"Power":0.5})"; 795 CommandLine::CommandType type = CommandLine::CommandType::SET; 796 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 797 PowerCommand command1(type, args1, *socket); 798 command1.CheckAndRun(); 799 double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL); 800 EXPECT_EQ(power, 0.5); // 0.5 is test Barometer value 801 } 802 TEST_F(CommandLineTest,PowerCommandGetTest)803 TEST_F(CommandLineTest, PowerCommandGetTest) 804 { 805 CommandLine::CommandType type = CommandLine::CommandType::GET; 806 Json2::Value args2 = JsonReader::CreateNull(); 807 PowerCommand command2(type, args2, *socket); 808 g_output = false; 809 command2.CheckAndRun(); 810 EXPECT_TRUE(g_output); 811 } 812 TEST_F(CommandLineTest,VolumeCommandTest)813 TEST_F(CommandLineTest, VolumeCommandTest) 814 { 815 std::string msg1 = R"({"Volume":90})"; 816 CommandLine::CommandType type1 = CommandLine::CommandType::SET; 817 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 818 VolumeCommand command1(type1, args1, *socket); 819 g_output = false; 820 command1.CheckAndRun(); 821 EXPECT_TRUE(g_output); 822 823 CommandLine::CommandType type2 = CommandLine::CommandType::GET; 824 Json2::Value args2 = JsonReader::CreateNull(); 825 VolumeCommand command2(type2, args2, *socket); 826 g_output = false; 827 command2.CheckAndRun(); 828 command2.RunGet(); 829 EXPECT_TRUE(g_output); 830 } 831 TEST_F(CommandLineTest,BarometerCommandArgsTest)832 TEST_F(CommandLineTest, BarometerCommandArgsTest) 833 { 834 CommandLine::CommandType type = CommandLine::CommandType::SET; 835 std::string msg1 = R"({"Barometer":"abc"})"; 836 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 837 BarometerCommand command1(type, args1, *socket); 838 command1.CheckAndRun(); 839 int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE)); 840 EXPECT_EQ(barometer, 101325); // 101325 is default Power value 841 842 args1.Replace("Barometer", 999901); // 999901 is test Power value 843 BarometerCommand command2(type, args1, *socket); 844 command2.CheckAndRun(); 845 barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE)); 846 EXPECT_NE(barometer, 999901); // 999901 is test Power value 847 848 args1.Replace("Barometer", -1); 849 BarometerCommand command3(type, args1, *socket); 850 command3.CheckAndRun(); 851 barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE)); 852 EXPECT_NE(barometer, -1); // -1 is test Power value 853 } 854 TEST_F(CommandLineTest,BarometerCommandSetTest)855 TEST_F(CommandLineTest, BarometerCommandSetTest) 856 { 857 std::string msg1 = R"({"Barometer":999})"; 858 CommandLine::CommandType type = CommandLine::CommandType::SET; 859 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 860 BarometerCommand command1(type, args1, *socket); 861 command1.CheckAndRun(); 862 int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE)); 863 EXPECT_EQ(barometer, 999); // 999 is test Barometer value 864 } 865 TEST_F(CommandLineTest,BarometerCommandGetTest)866 TEST_F(CommandLineTest, BarometerCommandGetTest) 867 { 868 CommandLine::CommandType type = CommandLine::CommandType::GET; 869 Json2::Value args2 = JsonReader::CreateNull(); 870 BarometerCommand command2(type, args2, *socket); 871 g_output = false; 872 command2.CheckAndRun(); 873 EXPECT_TRUE(g_output); 874 } 875 TEST_F(CommandLineTest,LocationCommandArgsTest)876 TEST_F(CommandLineTest, LocationCommandArgsTest) 877 { 878 CommandLine::CommandType type = CommandLine::CommandType::SET; 879 std::string msg0 = R"({"latitude":"10.0"})"; 880 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 881 LocationCommand command0(type, args0, *socket); 882 command0.CheckAndRun(); 883 double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE); 884 EXPECT_EQ(latitude, 0); 885 std::string msg1 = R"({"latitude":"10.0","longitude":"abc"})"; 886 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 887 LocationCommand command1(type, args1, *socket); 888 command1.CheckAndRun(); 889 latitude = SharedData<double>::GetData(SharedDataType::LATITUDE); 890 EXPECT_EQ(latitude, 0); 891 args1.Replace("longitude", "10.0"); // 10.0 is test longitude value 892 args1.Replace("latitude", "-91.0"); // -91 is test latitude value 893 LocationCommand command2(type, args1, *socket); 894 command2.CheckAndRun(); 895 latitude = SharedData<double>::GetData(SharedDataType::LATITUDE); 896 EXPECT_NE(latitude, -91.0); // -91 is test longitude value 897 args1.Replace("latitude", "91.0"); // 91 is test latitude value 898 LocationCommand command3(type, args1, *socket); 899 command3.CheckAndRun(); 900 latitude = SharedData<double>::GetData(SharedDataType::LATITUDE); 901 EXPECT_NE(latitude, 91); // 91 is test longitude value 902 args1.Replace("latitude", "10.0"); // 10.0 is test latitude value 903 args1.Replace("longitude", "-181.0"); // -181 is test longitude value 904 LocationCommand command4(type, args1, *socket); 905 command4.CheckAndRun(); 906 double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE); 907 EXPECT_NE(longitude, -181); // -181 is test longitude value 908 args1.Replace("longitude", "181.0"); // 181 is test longitude value 909 LocationCommand command5(type, args1, *socket); 910 command5.CheckAndRun(); 911 longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE); 912 EXPECT_NE(longitude, 181); // 181 is test longitude value 913 } 914 TEST_F(CommandLineTest,LocationCommandSetTest)915 TEST_F(CommandLineTest, LocationCommandSetTest) 916 { 917 std::string msg1 = R"({"latitude":"10.9023142","longitude":"56.3043242"})"; 918 CommandLine::CommandType type = CommandLine::CommandType::SET; 919 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 920 LocationCommand command1(type, args1, *socket); 921 command1.CheckAndRun(); 922 double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE); 923 double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE); 924 EXPECT_EQ(latitude, 10.9023142); // 10.9023142 is test longitude value 925 EXPECT_EQ(longitude, 56.3043242); // 56.3043242 is test latitude value 926 } 927 TEST_F(CommandLineTest,LocationCommandGetTest)928 TEST_F(CommandLineTest, LocationCommandGetTest) 929 { 930 CommandLine::CommandType type = CommandLine::CommandType::GET; 931 Json2::Value args2 = JsonReader::CreateNull(); 932 LocationCommand command2(type, args2, *socket); 933 g_output = false; 934 command2.CheckAndRun(); 935 EXPECT_TRUE(g_output); 936 } 937 TEST_F(CommandLineTest,KeepScreenOnStateCommandArgsTest)938 TEST_F(CommandLineTest, KeepScreenOnStateCommandArgsTest) 939 { 940 CommandLine::CommandType type = CommandLine::CommandType::SET; 941 std::string msg0 = R"({"KeepScreenOnState111":false})"; 942 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 943 KeepScreenOnStateCommand command0(type, args0, *socket); 944 command0.CheckAndRun(); 945 bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON); 946 EXPECT_EQ(status, true); 947 948 std::string msg1 = R"({"KeepScreenOnState":"abc"})"; 949 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 950 KeepScreenOnStateCommand command1(type, args1, *socket); 951 command1.CheckAndRun(); 952 status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON); 953 EXPECT_EQ(status, true); 954 } 955 TEST_F(CommandLineTest,KeepScreenOnStateCommandSetTest)956 TEST_F(CommandLineTest, KeepScreenOnStateCommandSetTest) 957 { 958 std::string msg1 = R"({"KeepScreenOnState":false})"; 959 CommandLine::CommandType type = CommandLine::CommandType::SET; 960 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 961 KeepScreenOnStateCommand command1(type, args1, *socket); 962 command1.CheckAndRun(); 963 bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON); 964 EXPECT_EQ(status, false); 965 } 966 TEST_F(CommandLineTest,KeepScreenOnStateCommandGetTest)967 TEST_F(CommandLineTest, KeepScreenOnStateCommandGetTest) 968 { 969 CommandLine::CommandType type = CommandLine::CommandType::GET; 970 Json2::Value args2 = JsonReader::CreateNull(); 971 KeepScreenOnStateCommand command2(type, args2, *socket); 972 g_output = false; 973 command2.CheckAndRun(); 974 EXPECT_TRUE(g_output); 975 } 976 TEST_F(CommandLineTest,WearingStateCommandArgsTest)977 TEST_F(CommandLineTest, WearingStateCommandArgsTest) 978 { 979 CommandLine::CommandType type = CommandLine::CommandType::SET; 980 std::string msg0 = R"({"WearingState11":false})"; 981 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 982 WearingStateCommand command0(type, args0, *socket); 983 command0.CheckAndRun(); 984 bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE); 985 EXPECT_EQ(status, true); 986 987 std::string msg1 = R"({"WearingState":"abc"})"; 988 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 989 WearingStateCommand command1(type, args1, *socket); 990 command1.CheckAndRun(); 991 status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE); 992 EXPECT_EQ(status, true); 993 } 994 TEST_F(CommandLineTest,WearingStateCommandSetTest)995 TEST_F(CommandLineTest, WearingStateCommandSetTest) 996 { 997 std::string msg1 = R"({"WearingState":false})"; 998 CommandLine::CommandType type = CommandLine::CommandType::SET; 999 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1000 WearingStateCommand command1(type, args1, *socket); 1001 command1.CheckAndRun(); 1002 bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE); 1003 EXPECT_EQ(status, false); 1004 } 1005 TEST_F(CommandLineTest,WearingStateCommandGetTest)1006 TEST_F(CommandLineTest, WearingStateCommandGetTest) 1007 { 1008 CommandLine::CommandType type = CommandLine::CommandType::GET; 1009 Json2::Value args2 = JsonReader::CreateNull(); 1010 WearingStateCommand command2(type, args2, *socket); 1011 g_output = false; 1012 command2.CheckAndRun(); 1013 EXPECT_TRUE(g_output); 1014 } 1015 TEST_F(CommandLineTest,BrightnessModeCommandArgsTest)1016 TEST_F(CommandLineTest, BrightnessModeCommandArgsTest) 1017 { 1018 CommandLine::CommandType type = CommandLine::CommandType::SET; 1019 std::string msg0 = R"({"BrightnessMode111":1})"; 1020 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 1021 BrightnessModeCommand command0(type, args0, *socket); 1022 command0.CheckAndRun(); 1023 uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1024 EXPECT_EQ(brightness, 0); // 0 is default brightness 1025 1026 std::string msg1 = R"({"BrightnessMode":"abc"})"; 1027 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1028 BrightnessModeCommand command1(type, args1, *socket); 1029 command1.CheckAndRun(); 1030 brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1031 EXPECT_EQ(brightness, 0); // 0 is default brightness 1032 1033 msg1 = R"({"BrightnessMode":-1})"; 1034 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 1035 BrightnessModeCommand command2(type, args2, *socket); 1036 command2.CheckAndRun(); 1037 brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1038 EXPECT_NE(brightness, -1); // -1 is test brightness value 1039 1040 msg1 = R"({"BrightnessMode":2})"; 1041 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 1042 BrightnessModeCommand command3(type, args3, *socket); 1043 command3.CheckAndRun(); 1044 brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1045 EXPECT_NE(brightness, 2); // 2 is test brightness value 1046 } 1047 TEST_F(CommandLineTest,BrightnessModeCommandSetTest)1048 TEST_F(CommandLineTest, BrightnessModeCommandSetTest) 1049 { 1050 std::string msg1 = R"({"BrightnessMode":1})"; 1051 CommandLine::CommandType type = CommandLine::CommandType::SET; 1052 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1053 BrightnessModeCommand command1(type, args1, *socket); 1054 command1.CheckAndRun(); 1055 uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1056 EXPECT_EQ(brightness, 1); // 1 is default brightness 1057 } 1058 TEST_F(CommandLineTest,BrightnessModeCommandGetTest)1059 TEST_F(CommandLineTest, BrightnessModeCommandGetTest) 1060 { 1061 CommandLine::CommandType type = CommandLine::CommandType::GET; 1062 Json2::Value args2 = JsonReader::CreateNull(); 1063 BrightnessModeCommand command2(type, args2, *socket); 1064 g_output = false; 1065 command2.CheckAndRun(); 1066 EXPECT_TRUE(g_output); 1067 } 1068 TEST_F(CommandLineTest,ChargeModeCommandArgsTest)1069 TEST_F(CommandLineTest, ChargeModeCommandArgsTest) 1070 { 1071 CommandLine::CommandType type = CommandLine::CommandType::SET; 1072 std::string msg0 = R"({"ChargeMode111":1})"; 1073 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 1074 ChargeModeCommand command0(type, args0, *socket); 1075 command0.CheckAndRun(); 1076 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS); 1077 EXPECT_EQ(mode, 0); // 0 is default mode 1078 1079 std::string msg1 = R"({"ChargeMode":"abc"})"; 1080 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1081 ChargeModeCommand command1(type, args1, *socket); 1082 command1.CheckAndRun(); 1083 mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS); 1084 EXPECT_EQ(mode, 0); // 0 is default mode 1085 1086 msg1 = R"({"ChargeMode":-1})"; 1087 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 1088 ChargeModeCommand command2(type, args2, *socket); 1089 command2.CheckAndRun(); 1090 mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS); 1091 EXPECT_NE(mode, -1); // -1 is test mode value 1092 1093 msg1 = R"({"ChargeMode":2})"; 1094 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 1095 ChargeModeCommand command3(type, args3, *socket); 1096 command3.CheckAndRun(); 1097 mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS); 1098 EXPECT_NE(mode, 2); // 2 is test mode value 1099 } 1100 TEST_F(CommandLineTest,ChargeModeCommandSetTest)1101 TEST_F(CommandLineTest, ChargeModeCommandSetTest) 1102 { 1103 std::string msg1 = R"({"ChargeMode":1})"; 1104 CommandLine::CommandType type = CommandLine::CommandType::SET; 1105 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1106 ChargeModeCommand command1(type, args1, *socket); 1107 command1.CheckAndRun(); 1108 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE); 1109 EXPECT_EQ(mode, 1); // 1 is default mode 1110 } 1111 TEST_F(CommandLineTest,ChargeModeCommandGetTest)1112 TEST_F(CommandLineTest, ChargeModeCommandGetTest) 1113 { 1114 CommandLine::CommandType type = CommandLine::CommandType::GET; 1115 Json2::Value args2 = JsonReader::CreateNull(); 1116 ChargeModeCommand command2(type, args2, *socket); 1117 g_output = false; 1118 command2.CheckAndRun(); 1119 EXPECT_TRUE(g_output); 1120 } 1121 TEST_F(CommandLineTest,BrightnessCommandArgsTest)1122 TEST_F(CommandLineTest, BrightnessCommandArgsTest) 1123 { 1124 CommandLine::CommandType type = CommandLine::CommandType::SET; 1125 std::string msg0 = R"({"Brightness111":100})"; 1126 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 1127 BrightnessCommand command0(type, args0, *socket); 1128 command0.CheckAndRun(); 1129 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE); 1130 EXPECT_EQ(mode, 255); // 255 is default mode 1131 1132 std::string msg1 = R"({"Brightness":"abc"})"; 1133 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1134 BrightnessCommand command1(type, args1, *socket); 1135 command1.CheckAndRun(); 1136 mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE); 1137 EXPECT_EQ(mode, 255); // 255 is default mode 1138 1139 msg1 = R"({"Brightness":256})"; 1140 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 1141 BrightnessCommand command2(type, args2, *socket); 1142 command2.CheckAndRun(); 1143 mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE); 1144 EXPECT_NE(mode, 256); // 256 is test mode value 1145 1146 msg1 = R"({"Brightness":0})"; 1147 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 1148 BrightnessCommand command3(type, args3, *socket); 1149 command3.CheckAndRun(); 1150 mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE); 1151 EXPECT_NE(mode, 0); // 0 is test mode value 1152 } 1153 TEST_F(CommandLineTest,BrightnessCommandSetTest)1154 TEST_F(CommandLineTest, BrightnessCommandSetTest) 1155 { 1156 std::string msg1 = R"({"Brightness":100})"; 1157 CommandLine::CommandType type = CommandLine::CommandType::SET; 1158 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1159 BrightnessCommand command1(type, args1, *socket); 1160 command1.CheckAndRun(); 1161 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE); 1162 EXPECT_EQ(mode, 100); // 100 is test mode 1163 } 1164 TEST_F(CommandLineTest,BrightnessCommandGetTest)1165 TEST_F(CommandLineTest, BrightnessCommandGetTest) 1166 { 1167 CommandLine::CommandType type = CommandLine::CommandType::GET; 1168 Json2::Value args2 = JsonReader::CreateNull(); 1169 BrightnessCommand command2(type, args2, *socket); 1170 g_output = false; 1171 command2.CheckAndRun(); 1172 EXPECT_TRUE(g_output); 1173 } 1174 TEST_F(CommandLineTest,HeartRateCommandArgsTest)1175 TEST_F(CommandLineTest, HeartRateCommandArgsTest) 1176 { 1177 CommandLine::CommandType type = CommandLine::CommandType::SET; 1178 std::string msg0 = R"({"HeartRate111":100})"; 1179 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 1180 HeartRateCommand command0(type, args0, *socket); 1181 command0.CheckAndRun(); 1182 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE); 1183 EXPECT_EQ(mode, 80); // 80 is default mode 1184 1185 std::string msg1 = R"({"HeartRate":"abc"})"; 1186 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1187 HeartRateCommand command1(type, args1, *socket); 1188 command1.CheckAndRun(); 1189 mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE); 1190 EXPECT_EQ(mode, 80); // 80 is default mode 1191 1192 msg1 = R"({"HeartRate":256})"; 1193 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 1194 HeartRateCommand command2(type, args2, *socket); 1195 command2.CheckAndRun(); 1196 mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE); 1197 EXPECT_NE(mode, 256); // 256 is test mode value 1198 1199 msg1 = R"({"HeartRate":-1})"; 1200 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 1201 HeartRateCommand command3(type, args3, *socket); 1202 command3.CheckAndRun(); 1203 mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE); 1204 EXPECT_NE(mode, -1); // -1 is test mode value 1205 } 1206 TEST_F(CommandLineTest,HeartRateCommandSetTest)1207 TEST_F(CommandLineTest, HeartRateCommandSetTest) 1208 { 1209 std::string msg1 = R"({"HeartRate":100})"; 1210 CommandLine::CommandType type = CommandLine::CommandType::SET; 1211 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1212 HeartRateCommand command1(type, args1, *socket); 1213 command1.CheckAndRun(); 1214 uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE); 1215 EXPECT_EQ(mode, 100); // 100 is test mode 1216 } 1217 TEST_F(CommandLineTest,HeartRateCommandGetTest)1218 TEST_F(CommandLineTest, HeartRateCommandGetTest) 1219 { 1220 CommandLine::CommandType type = CommandLine::CommandType::GET; 1221 Json2::Value args2 = JsonReader::CreateNull(); 1222 HeartRateCommand command2(type, args2, *socket); 1223 g_output = false; 1224 command2.CheckAndRun(); 1225 EXPECT_TRUE(g_output); 1226 } 1227 TEST_F(CommandLineTest,StepCountCommandArgsTest)1228 TEST_F(CommandLineTest, StepCountCommandArgsTest) 1229 { 1230 CommandLine::CommandType type = CommandLine::CommandType::SET; 1231 std::string msg0 = R"({"StepCount111":100})"; 1232 Json2::Value args0 = JsonReader::ParseJsonData2(msg0); 1233 StepCountCommand command0(type, args0, *socket); 1234 command0.CheckAndRun(); 1235 uint32_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE); 1236 EXPECT_EQ(mode, 0); // 0 is default mode 1237 1238 std::string msg1 = R"({"StepCount":"abc"})"; 1239 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1240 StepCountCommand command1(type, args1, *socket); 1241 command1.CheckAndRun(); 1242 mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE); 1243 EXPECT_EQ(mode, 0); // 0 is default mode 1244 1245 msg1 = R"({"StepCount":10000000})"; 1246 Json2::Value args2 = JsonReader::ParseJsonData2(msg1); 1247 StepCountCommand command2(type, args2, *socket); 1248 command2.CheckAndRun(); 1249 mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE); 1250 EXPECT_NE(mode, 10000000); // 10000000 is test mode value 1251 1252 msg1 = R"({"StepCount":-1})"; 1253 Json2::Value args3 = JsonReader::ParseJsonData2(msg1); 1254 StepCountCommand command3(type, args3, *socket); 1255 command3.CheckAndRun(); 1256 mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE); 1257 EXPECT_NE(mode, -1); // -1 is test mode value 1258 } 1259 TEST_F(CommandLineTest,StepCountCommandSetTest)1260 TEST_F(CommandLineTest, StepCountCommandSetTest) 1261 { 1262 std::string msg1 = R"({"StepCount":100})"; 1263 CommandLine::CommandType type = CommandLine::CommandType::SET; 1264 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1265 StepCountCommand command1(type, args1, *socket); 1266 command1.CheckAndRun(); 1267 uint8_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE); 1268 EXPECT_EQ(mode, 100); // 100 is test mode 1269 } 1270 TEST_F(CommandLineTest,StepCountCommandGetTest)1271 TEST_F(CommandLineTest, StepCountCommandGetTest) 1272 { 1273 CommandLine::CommandType type = CommandLine::CommandType::GET; 1274 Json2::Value args2 = JsonReader::CreateNull(); 1275 StepCountCommand command2(type, args2, *socket); 1276 g_output = false; 1277 command2.CheckAndRun(); 1278 EXPECT_TRUE(g_output); 1279 } 1280 TEST_F(CommandLineTest,DistributedCommunicationsCommandTest)1281 TEST_F(CommandLineTest, DistributedCommunicationsCommandTest) 1282 { 1283 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1284 std::string msg1 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc", 1285 "abilityName":"hello"})"; 1286 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1287 DistributedCommunicationsCommand command1(type, args1, *socket); 1288 g_sendVirtualMessage = false; 1289 command1.CheckAndRun(); 1290 EXPECT_FALSE(g_sendVirtualMessage); 1291 1292 std::string msg2 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc", 1293 "abilityName":"hello"},"message":"")"; 1294 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1295 DistributedCommunicationsCommand command2(type, args2, *socket); 1296 g_sendVirtualMessage = false; 1297 command2.CheckAndRun(); 1298 EXPECT_FALSE(g_sendVirtualMessage); 1299 1300 std::string msg3 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc", 1301 "abilityName":"hello","message":"{ action:'GET_WEATHER',city:'HangZhou' }"})"; 1302 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1303 DistributedCommunicationsCommand command3(type, args3, *socket); 1304 g_sendVirtualMessage = false; 1305 command3.CheckAndRun(); 1306 EXPECT_TRUE(g_sendVirtualMessage); 1307 1308 std::string msg4 = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc", 1309 "abilityName" : "hello", "message" : ""})"; 1310 Json2::Value args4 = JsonReader::ParseJsonData2(msg4); 1311 DistributedCommunicationsCommand command4(type, args4, *socket); 1312 g_sendVirtualMessage = false; 1313 command4.CheckAndRun(); 1314 EXPECT_FALSE(g_sendVirtualMessage); 1315 } 1316 TEST_F(CommandLineTest,DistributedCommunicationsCommandTest2)1317 TEST_F(CommandLineTest, DistributedCommunicationsCommandTest2) 1318 { 1319 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1320 std::string msg = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc", 1321 "abilityName" : "hello", "message" : "{ action : 'GET_WEATHER', city : 'HangZhou' }"})"; 1322 Json2::Value args = JsonReader::ParseJsonData2(msg); 1323 DistributedCommunicationsCommand command(type, args, *socket); 1324 std::vector<char> vec = command.StringToCharVector("123"); 1325 int size = 4; 1326 EXPECT_EQ(vec.size(), size); 1327 } 1328 TEST_F(CommandLineTest,MouseWheelCommandTest)1329 TEST_F(CommandLineTest, MouseWheelCommandTest) 1330 { 1331 std::string msg1 = R"({"rotate":"aaa"})"; 1332 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1333 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1334 MouseWheelCommand command1(type, args1, *socket); 1335 command1.CheckAndRun(); 1336 EXPECT_EQ(MouseWheelImpl::GetInstance().rotate, 0); // 0 is default value 1337 1338 std::string msg2 = R"({"rotate":100})"; 1339 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1340 MouseWheelCommand command2(type, args2, *socket); 1341 command2.CheckAndRun(); 1342 EXPECT_EQ(MouseWheelImpl::GetInstance().GetRotate(), 100); // 100 is test mode 1343 1344 msg2 = R"({"rotate":150})"; 1345 Json2::Value args3 = JsonReader::ParseJsonData2(msg2); 1346 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 1347 MouseWheelCommand command3(type, args3, *socket); 1348 command3.CheckAndRun(); 1349 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 1350 EXPECT_NE(MouseWheelImpl::GetInstance().GetRotate(), 150); // 100 is test mode 1351 } 1352 TEST_F(CommandLineTest,TouchPressCommandArgsTest)1353 TEST_F(CommandLineTest, TouchPressCommandArgsTest) 1354 { 1355 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1356 std::string msg1 = R"({"x":365,"y":"abc","duration":""})"; 1357 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1358 TouchPressCommand command1(type, args1, *socket); 1359 g_dispatchOsTouchEvent = false; 1360 command1.CheckAndRun(); 1361 EXPECT_FALSE(g_dispatchOsTouchEvent); 1362 } 1363 TEST_F(CommandLineTest,TouchPressCommandArgsRangeTest)1364 TEST_F(CommandLineTest, TouchPressCommandArgsRangeTest) 1365 { 1366 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1367 std::string msg1 = R"({"x":365,"y":15000,"duration":""})"; 1368 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1369 TouchPressCommand command1(type, args1, *socket); 1370 g_dispatchOsTouchEvent = false; 1371 command1.CheckAndRun(); 1372 EXPECT_FALSE(g_dispatchOsTouchEvent); 1373 1374 std::string msg2 = R"({"x":-1,"y":15000,"duration":""})"; 1375 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1376 TouchPressCommand command2(type, args2, *socket); 1377 g_dispatchOsTouchEvent = false; 1378 command2.CheckAndRun(); 1379 EXPECT_FALSE(g_dispatchOsTouchEvent); 1380 1381 std::string msg3 = R"({"x":15000,"y":365,"duration":""})"; 1382 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1383 TouchPressCommand command3(type, args3, *socket); 1384 g_dispatchOsTouchEvent = false; 1385 command3.CheckAndRun(); 1386 EXPECT_FALSE(g_dispatchOsTouchEvent); 1387 1388 std::string msg4 = R"({"x":15000,"y":-1,"duration":""})"; 1389 Json2::Value args4 = JsonReader::ParseJsonData2(msg4); 1390 TouchPressCommand command4(type, args4, *socket); 1391 g_dispatchOsTouchEvent = false; 1392 command4.CheckAndRun(); 1393 EXPECT_FALSE(g_dispatchOsTouchEvent); 1394 } 1395 TEST_F(CommandLineTest,TouchPressCommandArgsCorrectTest)1396 TEST_F(CommandLineTest, TouchPressCommandArgsCorrectTest) 1397 { 1398 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1399 std::string msg1 = R"({"x":365,"y":1076,"duration":""})"; 1400 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1401 TouchPressCommand command1(type, args1, *socket); 1402 g_dispatchOsTouchEvent = false; 1403 command1.CheckAndRun(); 1404 EXPECT_TRUE(g_dispatchOsTouchEvent); 1405 1406 TouchPressCommand command2(type, args1, *socket); 1407 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 1408 g_dispatchOsTouchEvent = false; 1409 command2.CheckAndRun(); 1410 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 1411 EXPECT_FALSE(g_dispatchOsTouchEvent); 1412 } 1413 TEST_F(CommandLineTest,TouchReleaseCommandArgsTest)1414 TEST_F(CommandLineTest, TouchReleaseCommandArgsTest) 1415 { 1416 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1417 std::string msg1 = R"({"x":365,"y":"abc"})"; 1418 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1419 TouchReleaseCommand command1(type, args1, *socket); 1420 g_dispatchOsTouchEvent = false; 1421 command1.CheckAndRun(); 1422 EXPECT_FALSE(g_dispatchOsTouchEvent); 1423 } 1424 TEST_F(CommandLineTest,TouchReleaseCommandArgsRangeTest)1425 TEST_F(CommandLineTest, TouchReleaseCommandArgsRangeTest) 1426 { 1427 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1428 std::string msg1 = R"({"x":365,"y":15000})"; 1429 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1430 TouchReleaseCommand command1(type, args1, *socket); 1431 g_dispatchOsTouchEvent = false; 1432 command1.CheckAndRun(); 1433 EXPECT_FALSE(g_dispatchOsTouchEvent); 1434 1435 std::string msg2 = R"({"x":-1,"y":15000})"; 1436 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1437 TouchReleaseCommand command2(type, args2, *socket); 1438 g_dispatchOsTouchEvent = false; 1439 command2.CheckAndRun(); 1440 EXPECT_FALSE(g_dispatchOsTouchEvent); 1441 1442 std::string msg3 = R"({"x":15000,"y":365})"; 1443 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1444 TouchReleaseCommand command3(type, args3, *socket); 1445 g_dispatchOsTouchEvent = false; 1446 command3.CheckAndRun(); 1447 EXPECT_FALSE(g_dispatchOsTouchEvent); 1448 1449 std::string msg4 = R"({"x":15000,"y":-1})"; 1450 Json2::Value args4 = JsonReader::ParseJsonData2(msg4); 1451 TouchReleaseCommand command4(type, args4, *socket); 1452 g_dispatchOsTouchEvent = false; 1453 command4.CheckAndRun(); 1454 EXPECT_FALSE(g_dispatchOsTouchEvent); 1455 } 1456 TEST_F(CommandLineTest,TouchReleaseCommandArgsCorrectTest)1457 TEST_F(CommandLineTest, TouchReleaseCommandArgsCorrectTest) 1458 { 1459 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1460 std::string msg1 = R"({"x":365,"y":1076})"; 1461 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1462 TouchReleaseCommand command1(type, args1, *socket); 1463 g_dispatchOsTouchEvent = false; 1464 command1.CheckAndRun(); 1465 EXPECT_TRUE(g_dispatchOsTouchEvent); 1466 1467 TouchReleaseCommand command2(type, args1, *socket); 1468 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 1469 g_dispatchOsTouchEvent = false; 1470 command2.CheckAndRun(); 1471 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 1472 EXPECT_FALSE(g_dispatchOsTouchEvent); 1473 } 1474 TEST_F(CommandLineTest,TouchMoveCommandArgsTest)1475 TEST_F(CommandLineTest, TouchMoveCommandArgsTest) 1476 { 1477 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1478 std::string msg1 = R"({"x":365,"y":"abc"})"; 1479 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1480 TouchMoveCommand command1(type, args1, *socket); 1481 g_dispatchOsTouchEvent = false; 1482 command1.CheckAndRun(); 1483 EXPECT_FALSE(g_dispatchOsTouchEvent); 1484 } 1485 TEST_F(CommandLineTest,TouchMoveCommandArgsRangeTest)1486 TEST_F(CommandLineTest, TouchMoveCommandArgsRangeTest) 1487 { 1488 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1489 std::string msg1 = R"({"x":365,"y":15000})"; 1490 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1491 TouchMoveCommand command1(type, args1, *socket); 1492 g_dispatchOsTouchEvent = false; 1493 command1.CheckAndRun(); 1494 EXPECT_FALSE(g_dispatchOsTouchEvent); 1495 1496 std::string msg2 = R"({"x":-1,"y":15000})"; 1497 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1498 TouchMoveCommand command2(type, args2, *socket); 1499 g_dispatchOsTouchEvent = false; 1500 command2.CheckAndRun(); 1501 EXPECT_FALSE(g_dispatchOsTouchEvent); 1502 1503 std::string msg3 = R"({"x":15000,"y":365})"; 1504 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1505 TouchMoveCommand command3(type, args3, *socket); 1506 g_dispatchOsTouchEvent = false; 1507 command3.CheckAndRun(); 1508 EXPECT_FALSE(g_dispatchOsTouchEvent); 1509 1510 std::string msg4 = R"({"x":15000,"y":-1})"; 1511 Json2::Value args4 = JsonReader::ParseJsonData2(msg4); 1512 TouchMoveCommand command4(type, args4, *socket); 1513 g_dispatchOsTouchEvent = false; 1514 command4.CheckAndRun(); 1515 EXPECT_FALSE(g_dispatchOsTouchEvent); 1516 } 1517 TEST_F(CommandLineTest,TouchMoveCommandArgsCorrectTest)1518 TEST_F(CommandLineTest, TouchMoveCommandArgsCorrectTest) 1519 { 1520 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1521 std::string msg1 = R"({"x":365,"y":1076})"; 1522 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1523 TouchMoveCommand command1(type, args1, *socket); 1524 g_dispatchOsTouchEvent = false; 1525 command1.CheckAndRun(); 1526 EXPECT_TRUE(g_dispatchOsTouchEvent); 1527 1528 TouchMoveCommand command2(type, args1, *socket); 1529 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC; 1530 g_dispatchOsTouchEvent = false; 1531 command2.CheckAndRun(); 1532 CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC; 1533 EXPECT_FALSE(g_dispatchOsTouchEvent); 1534 } 1535 TEST_F(CommandLineTest,LanguageCommandArgsTest)1536 TEST_F(CommandLineTest, LanguageCommandArgsTest) 1537 { 1538 CommandLine::CommandType type = CommandLine::CommandType::SET; 1539 std::string msg1 = R"({"Language":111})"; 1540 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1541 LanguageCommand command1(type, args1, *socket); 1542 command1.CheckAndRun(); 1543 std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE); 1544 EXPECT_EQ(language, "zh-CN"); // zh-CN is default value 1545 1546 CommandParser::GetInstance().deviceType = "liteWearable"; 1547 std::string msg2 = R"({"Language":"ar_AE"})"; 1548 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1549 LanguageCommand command2(type, args2, *socket); 1550 command2.CheckAndRun(); 1551 language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE); 1552 EXPECT_NE(language, "ar_AE"); 1553 1554 CommandParser::GetInstance().deviceType = "phone"; 1555 std::string msg3 = R"({"Language":"aa_BB"})"; 1556 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1557 LanguageCommand command3(type, args3, *socket); 1558 command3.CheckAndRun(); 1559 language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE); 1560 EXPECT_NE(language, "aa_BB"); 1561 } 1562 TEST_F(CommandLineTest,LanguageCommandSetTest)1563 TEST_F(CommandLineTest, LanguageCommandSetTest) 1564 { 1565 CommandParser::GetInstance().deviceType = "liteWearable"; 1566 CommandLine::CommandType type = CommandLine::CommandType::SET; 1567 std::string msg1 = R"({"Language":"en-US"})"; 1568 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1569 LanguageCommand command1(type, args1, *socket); 1570 command1.CheckAndRun(); 1571 std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE); 1572 EXPECT_EQ(language, "en-US"); 1573 1574 CommandParser::GetInstance().deviceType = "phone"; 1575 std::string msg2 = R"({"Language":"en_US"})"; 1576 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1577 LanguageCommand command2(type, args2, *socket); 1578 command2.CheckAndRun(); 1579 language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE); 1580 EXPECT_EQ(language, "en_US"); 1581 } 1582 TEST_F(CommandLineTest,LanguageCommandGetTest)1583 TEST_F(CommandLineTest, LanguageCommandGetTest) 1584 { 1585 CommandLine::CommandType type = CommandLine::CommandType::GET; 1586 Json2::Value args2 = JsonReader::CreateNull(); 1587 LanguageCommand command2(type, args2, *socket); 1588 g_output = false; 1589 command2.CheckAndRun(); 1590 EXPECT_TRUE(g_output); 1591 } 1592 TEST_F(CommandLineTest,SupportedLanguagesCommandTest)1593 TEST_F(CommandLineTest, SupportedLanguagesCommandTest) 1594 { 1595 CommandParser::GetInstance().deviceType = "liteWearable"; 1596 CommandLine::CommandType type = CommandLine::CommandType::GET; 1597 Json2::Value args1 = JsonReader::CreateNull(); 1598 SupportedLanguagesCommand command1(type, args1, *socket); 1599 g_output = false; 1600 command1.CheckAndRun(); 1601 EXPECT_TRUE(g_output); 1602 1603 CommandParser::GetInstance().deviceType = "phone"; 1604 SupportedLanguagesCommand command2(type, args1, *socket); 1605 command2.CheckAndRun(); 1606 g_output = false; 1607 command2.CheckAndRun(); 1608 EXPECT_TRUE(g_output); 1609 } 1610 TEST_F(CommandLineTest,ExitCommandTest)1611 TEST_F(CommandLineTest, ExitCommandTest) 1612 { 1613 CommandLine::CommandType type = CommandLine::CommandType::ACTION; 1614 Interrupter::isInterrupt = false; 1615 Json2::Value args1 = JsonReader::CreateNull(); 1616 ExitCommand command1(type, args1, *socket); 1617 g_output = false; 1618 command1.CheckAndRun(); 1619 EXPECT_TRUE(Interrupter::isInterrupt); 1620 EXPECT_TRUE(g_output); 1621 } 1622 TEST_F(CommandLineTest,RestartCommandTest)1623 TEST_F(CommandLineTest, RestartCommandTest) 1624 { 1625 CommandLine::CommandType type = CommandLine::CommandType::GET; 1626 Json2::Value args2 = JsonReader::CreateNull(); 1627 RestartCommand command2(type, args2, *socket); 1628 command2.RunAction(); 1629 } 1630 TEST_F(CommandLineTest,ResolutionCommandTest)1631 TEST_F(CommandLineTest, ResolutionCommandTest) 1632 { 1633 CommandLine::CommandType type = CommandLine::CommandType::SET; 1634 Json2::Value args1 = JsonReader::CreateNull(); 1635 ResolutionCommand command1(type, args1, *socket); 1636 g_output = false; 1637 command1.CheckAndRun(); 1638 EXPECT_TRUE(g_output); 1639 } 1640 TEST_F(CommandLineTest,DeviceTypeCommandTest)1641 TEST_F(CommandLineTest, DeviceTypeCommandTest) 1642 { 1643 CommandLine::CommandType type = CommandLine::CommandType::SET; 1644 Json2::Value args1 = JsonReader::CreateNull(); 1645 DeviceTypeCommand command1(type, args1, *socket); 1646 g_output = false; 1647 command1.CheckAndRun(); 1648 EXPECT_TRUE(g_output); 1649 } 1650 TEST_F(CommandLineTest,AvoidAreaCommandTest)1651 TEST_F(CommandLineTest, AvoidAreaCommandTest) 1652 { 1653 CommandLine::CommandType type = CommandLine::CommandType::SET; 1654 std::string msg1 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect": 1655 {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}})"; 1656 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1657 AvoidAreaCommand command1(type, args1, *socket); 1658 g_output = false; 1659 command1.CheckAndRun(); 1660 command1.RunSet(); 1661 EXPECT_TRUE(g_output); 1662 std::string msg2 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect": 1663 0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},"rightRect":0})"; 1664 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1665 AvoidAreaCommand command2(type, args2, *socket); 1666 g_output = false; 1667 command2.CheckAndRun(); 1668 EXPECT_TRUE(g_output); 1669 std::string msg3 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect": 1670 {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}, 1671 "rightRect":{"posX":0,"posY":0,"width":0}})"; 1672 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1673 AvoidAreaCommand command3(type, args3, *socket); 1674 g_output = false; 1675 command3.CheckAndRun(); 1676 EXPECT_TRUE(g_output); 1677 std::string msg4 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect": 1678 {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}, 1679 "rightRect":{"posX":0,"posY":0,"width":0,"height":"350"}})"; 1680 Json2::Value args4 = JsonReader::ParseJsonData2(msg4); 1681 AvoidAreaCommand command4(type, args4, *socket); 1682 g_output = false; 1683 command4.CheckAndRun(); 1684 EXPECT_TRUE(g_output); 1685 std::string msg5 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect": 1686 0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}, 1687 "rightRect":{"posX":0,"posY":0,"width":-1,"height":-1}})"; 1688 Json2::Value args5 = JsonReader::ParseJsonData2(msg5); 1689 AvoidAreaCommand command5(type, args5, *socket); 1690 g_output = false; 1691 command5.CheckAndRun(); 1692 EXPECT_TRUE(g_output); 1693 std::string msg6 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect": 1694 0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}, 1695 "rightRect":{"posX":0,"posY":0,"width":2340,"height":84}})"; 1696 Json2::Value args6 = JsonReader::ParseJsonData2(msg6); 1697 AvoidAreaCommand command6(type, args6, *socket); 1698 g_output = false; 1699 command6.CheckAndRun(); 1700 EXPECT_TRUE(g_output); 1701 } 1702 TEST_F(CommandLineTest,AvoidAreaCommandArgsRangeTest)1703 TEST_F(CommandLineTest, AvoidAreaCommandArgsRangeTest) 1704 { 1705 CommandLine::CommandType type = CommandLine::CommandType::SET; 1706 std::string msg1 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117}, 1707 "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0, 1708 "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340, 1709 "height" : "84"}})"; 1710 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1711 AvoidAreaCommand command1(type, args1, *socket); 1712 g_output = false; 1713 command1.CheckAndRun(); 1714 EXPECT_TRUE(g_output); 1715 1716 std::string msg2 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117}, 1717 "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0, 1718 "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : -2, "width" : 2340, 1719 "height" : 84}})"; 1720 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1721 AvoidAreaCommand command2(type, args2, *socket); 1722 g_output = false; 1723 command2.CheckAndRun(); 1724 EXPECT_TRUE(g_output); 1725 1726 1727 std::string msg3 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117}, 1728 "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0, 1729 "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340, 1730 "height" : 84}})"; 1731 Json2::Value args3 = JsonReader::ParseJsonData2(msg3); 1732 AvoidAreaCommand command3(type, args3, *socket); 1733 g_output = false; 1734 command3.CheckAndRun(); 1735 EXPECT_TRUE(g_output); 1736 } 1737 TEST_F(CommandLineTest,AvoidAreaChangedCommandTest)1738 TEST_F(CommandLineTest, AvoidAreaChangedCommandTest) 1739 { 1740 CommandLine::CommandType type = CommandLine::CommandType::GET; 1741 Json2::Value args2 = JsonReader::CreateNull(); 1742 AvoidAreaChangedCommand command2(type, args2, *socket); 1743 g_output = false; 1744 command2.CheckAndRun(); 1745 EXPECT_TRUE(g_output); 1746 } 1747 TEST_F(CommandLineTest,IsArgValidTest_Err)1748 TEST_F(CommandLineTest, IsArgValidTest_Err) 1749 { 1750 CommandLine::CommandType type = CommandLine::CommandType::GET; 1751 Json2::Value args1 = JsonReader::CreateObject(); 1752 CurrentRouterCommand command2(type, args1, *socket); 1753 command2.type = CommandLine::CommandType::INVALID; 1754 EXPECT_TRUE(command2.IsArgValid()); 1755 } 1756 TEST_F(CommandLineTest,ColorModeCommandArgsCorrectTest)1757 TEST_F(CommandLineTest, ColorModeCommandArgsCorrectTest) 1758 { 1759 JsAppImpl::GetInstance().colorMode = "light"; 1760 CommandLine::CommandType type = CommandLine::CommandType::SET; 1761 std::string msg = R"({"ColorMode" : "dark"})"; 1762 Json2::Value args = JsonReader::ParseJsonData2(msg); 1763 ColorModeCommand command(type, args, *socket); 1764 command.CheckAndRun(); 1765 EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "dark"); 1766 } 1767 TEST_F(CommandLineTest,ColorModeCommandArgsTypeTest)1768 TEST_F(CommandLineTest, ColorModeCommandArgsTypeTest) 1769 { 1770 JsAppImpl::GetInstance().colorMode = "light"; 1771 CommandLine::CommandType type = CommandLine::CommandType::SET; 1772 Json2::Value args = JsonReader::CreateNull(); 1773 ColorModeCommand command(type, args, *socket); 1774 command.CheckAndRun(); 1775 EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light"); 1776 1777 JsAppImpl::GetInstance().colorMode = "light"; 1778 std::string msg1 = R"({"aaa" : "dark"})"; 1779 Json2::Value args1 = JsonReader::ParseJsonData2(msg1); 1780 ColorModeCommand command1(type, args1, *socket); 1781 command1.CheckAndRun(); 1782 EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light"); 1783 1784 JsAppImpl::GetInstance().colorMode = "light"; 1785 std::string msg2 = R"({"ColorMode" : 123})"; 1786 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1787 ColorModeCommand command2(type, args2, *socket); 1788 command2.CheckAndRun(); 1789 EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light"); 1790 } 1791 TEST_F(CommandLineTest,ColorModeCommandArgsRangeTest)1792 TEST_F(CommandLineTest, ColorModeCommandArgsRangeTest) 1793 { 1794 CommandLine::CommandType type = CommandLine::CommandType::SET; 1795 JsAppImpl::GetInstance().colorMode = "light"; 1796 std::string msg2 = R"({"ColorMode" : "aaa"})"; 1797 Json2::Value args2 = JsonReader::ParseJsonData2(msg2); 1798 ColorModeCommand command2(type, args2, *socket); 1799 command2.CheckAndRun(); 1800 EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light"); 1801 } 1802 } 1803