* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <string>
#include <map>
#include "gtest/gtest.h"
#define private public
#define protected public
#include "CommandLineFactory.h"
#include "CommandParser.h"
#include "JsAppImpl.h"
#include "MockGlobalResult.h"
#include "VirtualScreenImpl.h"
#include "KeyInputImpl.h"
#include "MouseInputImpl.h"
#include "SharedData.h"
#include "MouseWheelImpl.h"
#include "Interrupter.h"
namespace {
class CommandLineTest : public ::testing::Test {
public:
CommandLineTest() {}
~CommandLineTest() {}
static std::unique_ptr<LocalSocket> socket;
protected:
static void SetUpTestCase()
{
socket = std::make_unique<LocalSocket>();
SharedData<bool>(SharedDataType::KEEP_SCREEN_ON, true);
SharedData<uint8_t>(SharedDataType::BATTERY_STATUS, (uint8_t)ChargeState::NOCHARGE,
(uint8_t)ChargeState::NOCHARGE, (uint8_t)ChargeState::CHARGING);
SharedData<uint8_t>(SharedDataType::BRIGHTNESS_VALUE, 255, 1, 255);
SharedData<uint8_t>(SharedDataType::BRIGHTNESS_MODE, (uint8_t)BrightnessMode::MANUAL,
(uint8_t)BrightnessMode::MANUAL, (uint8_t)BrightnessMode::AUTO);
SharedData<uint32_t>(SharedDataType::SUMSTEP_VALUE, 0, 0, 999999);
SharedData<double>(SharedDataType::VOLUME_VALUE, 1.0, 0.0, 1.0);
SharedData<double>(SharedDataType::BATTERY_LEVEL, 1.0, 0.0, 1.0);
SharedData<uint8_t>(SharedDataType::HEARTBEAT_VALUE, 80, 0, 255);
SharedData<std::string>(SharedDataType::LANGUAGE, "zh-CN");
SharedData<double>(SharedDataType::LONGITUDE, 0, -180, 180);
SharedData<uint32_t>(SharedDataType::PRESSURE_VALUE, 101325, 0, 999900);
SharedData<bool>(SharedDataType::WEARING_STATE, true);
SharedData<double>(SharedDataType::LATITUDE, 0, -90, 90);
}
};
std::unique_ptr<LocalSocket> CommandLineTest::socket = nullptr;
TEST_F(CommandLineTest, BackClickedCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg = "{\"args\":null}";
Json2::Value args = JsonReader::ParseJsonData2(msg);
BackClickedCommand command(type, args, *socket);
g_dispatchOsBackEvent = false;
command.CheckAndRun();
EXPECT_TRUE(g_dispatchOsBackEvent);
}
TEST_F(CommandLineTest, InspectorJSONTreeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
Json2::Value args;
InspectorJSONTree command(type, args, *socket);
g_getJSONTree = false;
command.CheckAndRun();
EXPECT_TRUE(g_getJSONTree);
}
TEST_F(CommandLineTest, InspectorDefaultTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
Json2::Value args;
InspectorDefault command(type, args, *socket);
g_getDefaultJSONTree = false;
command.CheckAndRun();
EXPECT_TRUE(g_getDefaultJSONTree);
}
TEST_F(CommandLineTest, OrientationCommandTest)
{
JsAppImpl::GetInstance().orientation = "";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
OrientationCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
std::string jsonStr = "{\"aaaa\":\"landscape\"}";
Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
OrientationCommand command2(type, args2, *socket);
command2.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
jsonStr = "{\"Orientation\":\"aaaaa\"}";
Json2::Value args3 = JsonReader::ParseJsonData2(jsonStr);
OrientationCommand command3(type, args3, *socket);
command3.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
jsonStr = "{\"Orientation\":\"landscape\"}";
Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr);
OrientationCommand command4(type, args4, *socket);
g_output = false;
command4.CheckAndRun();
EXPECT_TRUE(g_output);
EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "landscape");
args4.Replace("Orientation", "portrait");
OrientationCommand command5(type, args4, *socket);
command5.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "portrait");
}
TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTest)
{
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
ResolutionSwitchCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
std::string jsonStr = R"({"aaaaa":1080,"originHeight":2340,"width":1080,"height":2340,"screenDensity":480})";
Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
ResolutionSwitchCommand command3(type, args2, *socket);
command3.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
}
TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTypeTest)
{
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string jsonStr = R"({"originWidth":"1080","originHeight":2340,"width":1080,
"height":2340,"screenDensity":480})";
Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
ResolutionSwitchCommand command3(type, args2, *socket);
command3.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
"height" : 2340, "screenDensity" : 480, "reason" : 333})";
Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1);
ResolutionSwitchCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
}
TEST_F(CommandLineTest, ResolutionSwitchCommandArgsRangesTest)
{
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string jsonStr = R"({"originWidth":5000,"originHeight":2340,"width":1080,
"height":2340,"screenDensity":480})";
Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
ResolutionSwitchCommand command3(type, args2, *socket);
command3.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
"height" : 2340, "screenDensity" : 480, "reason" : "aaa"})";
Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1);
ResolutionSwitchCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
std::string jsonStr4 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
"height" : 2340, "screenDensity" : 100, "reason" : "resize"})";
Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr4);
ResolutionSwitchCommand command4(type, args4, *socket);
command4.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
std::string jsonStr5 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
"height" : 2340, "screenDensity" : 700, "reason" : "resize"})";
Json2::Value args5 = JsonReader::ParseJsonData2(jsonStr5);
ResolutionSwitchCommand command5(type, args5, *socket);
command5.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
}
TEST_F(CommandLineTest, ResolutionSwitchCommandArgsCorrectTest)
{
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string jsonStr = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
"height" : 2340, "screenDensity" : 480, "reason" : "resize"})";
Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
ResolutionSwitchCommand command3(type, args2, *socket);
command3.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 1080);
EXPECT_EQ(JsAppImpl::GetInstance().height, 2340);
}
TEST_F(CommandLineTest, CurrentRouterCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args1 = JsonReader::CreateObject();
CurrentRouterCommand command3(type, args1, *socket);
g_getCurrentRouter = false;
command3.CheckAndRun();
EXPECT_TRUE(g_getCurrentRouter);
}
TEST_F(CommandLineTest, ReloadRuntimePageCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = "{\"ReloadRuntimePage\":\"aaa\"}";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
ReloadRuntimePageCommand command(type, args2, *socket);
g_reloadRuntimePage = false;
command.CheckAndRun();
EXPECT_TRUE(g_reloadRuntimePage);
std::string msg2 = "{\"ReloadRuntimePage\" : 222}";
Json2::Value args3 = JsonReader::ParseJsonData2(msg2);
ReloadRuntimePageCommand command3(type, args3, *socket);
g_reloadRuntimePage = false;
command3.CheckAndRun();
EXPECT_FALSE(g_reloadRuntimePage);
}
TEST_F(CommandLineTest, ToUint8Test)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
ResolutionSwitchCommand command1(type, args1, *socket);
EXPECT_EQ(command1.ToUint8("256"), 0);
}
TEST_F(CommandLineTest, IsSetArgValidTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
ColorModeCommand command1(type, args1, *socket);
command1.RunSet();
EXPECT_FALSE(command1.IsSetArgValid());
}
TEST_F(CommandLineTest, FontSelectCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
FontSelectCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
command1.RunSet();
EXPECT_FALSE(command1.IsSetArgValid());
EXPECT_TRUE(g_output);
std::string msg = "{\"FontSelect\":true}";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
FontSelectCommand command3(type, args2, *socket);
g_output = false;
command3.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, MemoryRefreshCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
MemoryRefreshCommand command1(type, args1, *socket);
g_memoryRefresh = false;
command1.CheckAndRun();
EXPECT_FALSE(g_memoryRefresh);
std::string msg = "{\"jsCode\":\"UEFOREEAAAAAAAAAAAAAA+wDAADEAAAAFQ\"}";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
MemoryRefreshCommand command3(type, args2, *socket);
g_memoryRefresh = false;
command3.CheckAndRun();
EXPECT_TRUE(g_memoryRefresh);
}
TEST_F(CommandLineTest, LoadDocumentCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args2 = JsonReader::CreateNull();
LoadDocumentCommand command(type, args2, *socket);
g_loadDocument = false;
command.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
}
TEST_F(CommandLineTest, LoadDocumentCommandArgsTypeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
"height":"2340","locale":"zh_CN","colorMode":"light","orientation":"portrait",
"deviceType":"phone","dpi":480}})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
LoadDocumentCommand command(type, args2, *socket);
g_loadDocument = false;
command.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
}
TEST_F(CommandLineTest, LoadDocumentCommandArgsNumRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
"height" : 2340, "locale" : "zh_CN" , "colorMode" : "light", "orientation" : "portrait",
"deviceType" : "phone", "dpi" : 720}})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
LoadDocumentCommand command(type, args2, *socket);
g_loadDocument = false;
command.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
}
TEST_F(CommandLineTest, LoadDocumentCommandArgsStrRangeTest)
{
CommandParser::GetInstance().deviceType = "phone";
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
"height" : 2340, "locale" : "aa_PP", "colorMode" : "light", "orientation" : "portrait",
"deviceType" : "phone", "dpi" : 480}})";
Json2::Value args = JsonReader::ParseJsonData2(msg);
LoadDocumentCommand command(type, args, *socket);
g_loadDocument = false;
command.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
std::string msg1 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
"height" : 2340, "locale" : "zh_CN", "colorMode" : "aaa", "orientation" : "portrait",
"deviceType" : "phone", "dpi" : 480}})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
LoadDocumentCommand command1(type, args1, *socket);
g_loadDocument = false;
command1.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
std::string msg2 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
"height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "aaa",
"deviceType" : "phone", "dpi" : 480}})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
LoadDocumentCommand command2(type, args2, *socket);
g_loadDocument = false;
command2.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
std::string msg3 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
"height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "landscape",
"deviceType" : "liteWearable", "dpi" : 480}})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
LoadDocumentCommand command3(type, args3, *socket);
g_loadDocument = false;
command3.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
}
TEST_F(CommandLineTest, LoadDocumentCommandArgsCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
CommandParser::GetInstance().deviceType = "phone";
std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
"height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait",
"deviceType":"phone","dpi":480}})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
LoadDocumentCommand command1(type, args1, *socket);
g_loadDocument = false;
command1.CheckAndRun();
EXPECT_TRUE(g_loadDocument);
CommandParser::GetInstance().deviceType = "liteWearable";
msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
"height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait",
"deviceType":"liteWearable","dpi":480}})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
LoadDocumentCommand command2(type, args2, *socket);
g_loadDocument = false;
command2.CheckAndRun();
EXPECT_FALSE(g_loadDocument);
}
TEST_F(CommandLineTest, FastPreviewMsgCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
FastPreviewMsgCommand command2(type, args2, *socket);
g_getFastPreviewMsg = false;
command2.CheckAndRun();
EXPECT_TRUE(g_getFastPreviewMsg);
}
TEST_F(CommandLineTest, LoadContentCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
LoadContentCommand command2(type, args2, *socket);
g_getAbilityCurrentRouter = false;
command2.CheckAndRun();
EXPECT_TRUE(g_getAbilityCurrentRouter);
}
TEST_F(CommandLineTest, DropFrameCommandTest)
{
VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = R"({"frequency" : 1000})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
DropFrameCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 1000);
VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
std::string msg2 = R"({"frequency" : "aaaa"})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
DropFrameCommand command2(type, args2, *socket);
command2.CheckAndRun();
EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0);
VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
std::string msg3 = R"({"frequency" : -100})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
DropFrameCommand command3(type, args3, *socket);
command3.CheckAndRun();
EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0);
}
TEST_F(CommandLineTest, KeyPressCommandImeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
int codePoint = 2033;
std::string msg = R"({"isInputMethod":"aaa","codePoint":2033})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
KeyPressCommand command1(type, args1, *socket);
g_dispatchOsInputMethodEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsInputMethodEvent);
args1.Replace("isInputMethod", true);
args1.Replace("codePoint", "aaaa");
KeyPressCommand command2(type, args1, *socket);
g_dispatchOsInputMethodEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsInputMethodEvent);
args1.Replace("codePoint", codePoint);
KeyPressCommand command3(type, args1, *socket);
g_dispatchOsInputMethodEvent = false;
KeyInputImpl::GetInstance().codePoint = 0;
command3.CheckAndRun();
EXPECT_TRUE(g_dispatchOsInputMethodEvent);
EXPECT_EQ(KeyInputImpl::GetInstance().codePoint, codePoint);
}
TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"keyString":123,
"pressedCodes":[2033]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
KeyPressCommand command1(type, args1, *socket);
g_dispatchOsKeyEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsKeyEvent);
}
TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTypeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":["aaa"]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
KeyPressCommand command1(type, args1, *socket);
g_dispatchOsKeyEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsKeyEvent);
}
TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 3, "keyString" : "123",
"pressedCodes" : [2033]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg);
KeyPressCommand command1(type, args1, *socket);
g_dispatchOsKeyEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsKeyEvent);
args1.Replace("keyAction", 0);
args1.Replace("keyCode", 1900);
KeyPressCommand command2(type, args1, *socket);
g_dispatchOsKeyEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsKeyEvent);
msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 1, "keyString" : "123",
"pressedCodes" : [1900]})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg);
KeyPressCommand command3(type, args2, *socket);
g_dispatchOsKeyEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsKeyEvent);
}
TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,
"keyString":"ctrl","pressedCodes":[2033]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
KeyPressCommand command1(type, args1, *socket);
g_dispatchOsKeyEvent = false;
command1.CheckAndRun();
EXPECT_TRUE(g_dispatchOsKeyEvent);
EXPECT_EQ(KeyInputImpl::GetInstance().keyCode, 2033);
EXPECT_EQ(KeyInputImpl::GetInstance().keyAction, 0);
EXPECT_EQ(KeyInputImpl::GetInstance().keyString, "ctrl");
EXPECT_EQ(KeyInputImpl::GetInstance().pressedCodes[0], OHOS::MMI::KeyCode(2033));
std::string msg2 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":[2033]})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
KeyPressCommand command2(type, args2, *socket);
g_dispatchOsKeyEvent = false;
command2.CheckAndRun();
EXPECT_TRUE(g_dispatchOsKeyEvent);
EXPECT_EQ(KeyInputImpl::GetInstance().keyString, "");
KeyPressCommand command3(type, args1, *socket);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
g_dispatchOsKeyEvent = false;
command3.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_FALSE(g_dispatchOsKeyEvent);
}
TEST_F(CommandLineTest, PointEventCommandArgTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":"aaa","duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
"sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
PointEventCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
args1.Replace("y", 1071);
args1.Replace("action", "2");
PointEventCommand command2(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
args1.Replace("action", 2);
args1.Replace("sourceTool", "7");
PointEventCommand command3(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
args1.Replace("sourceTool", 7);
args1.Replace("axisValues", "aaa");
PointEventCommand command4(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command4.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, PointEventCommandArgRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":2000,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
"sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
PointEventCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
args1.Replace("x", 365);
args1.Replace("y", 5000);
PointEventCommand command2(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
args1.Replace("y", 1071);
args1.Replace("sourceTool", -1);
PointEventCommand command3(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2,
"axisValues" : ["0", 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [0, 1]})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
PointEventCommand command4(type, args2, *socket);
g_dispatchOsTouchEvent = false;
command4.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2,
"axisValues" : [0, 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [-2, 0, 1]})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
PointEventCommand command5(type, args3, *socket);
g_dispatchOsTouchEvent = false;
command5.CheckAndRun();
EXPECT_TRUE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, PointEventCommandArgCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
"sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
PointEventCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_TRUE(g_dispatchOsTouchEvent);
EXPECT_EQ(MouseInputImpl::GetInstance().mouseXPosition, 365);
EXPECT_EQ(MouseInputImpl::GetInstance().mouseYPosition, 1071);
PointEventCommand command2(type, args1, *socket);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, FoldStatusCommandArgsTest)
{
VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"FoldStatus":100,"width":1080,"height":2504})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
FoldStatusCommand command1(type, args1, *socket);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
command1.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2504);
args1.Replace("FoldStatus", "fold");
args1.Replace("height", "aaa");
FoldStatusCommand command2(type, args1, *socket);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
command2.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2504);
}
TEST_F(CommandLineTest, FoldStatusCommandArgsRangeTest)
{
VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":4000})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
FoldStatusCommand command1(type, args1, *socket);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
command1.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 4000);
args1.Replace("height", 2504);
args1.Replace("FoldStatus", "aaaa");
FoldStatusCommand command2(type, args1, *socket);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
command2.CheckAndRun();
EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
EXPECT_NE(JsAppImpl::GetInstance().height, 2504);
}
TEST_F(CommandLineTest, FoldStatusCommandArgsCorrectTest)
{
VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":2504})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
FoldStatusCommand command1(type, args1, *socket);
JsAppImpl::GetInstance().width = 0;
JsAppImpl::GetInstance().height = 0;
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().width, 1080);
EXPECT_EQ(JsAppImpl::GetInstance().height, 2504);
}
TEST_F(CommandLineTest, PowerCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"Power":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
PowerCommand command1(type, args1, *socket);
command1.CheckAndRun();
double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
EXPECT_EQ(power, 1.0);
args1.Replace("Power", 2.0);
PowerCommand command2(type, args1, *socket);
command2.CheckAndRun();
power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
EXPECT_NE(power, 2.0);
args1.Replace("Power", -1);
PowerCommand command3(type, args1, *socket);
command3.CheckAndRun();
power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
EXPECT_NE(power, -1);
}
TEST_F(CommandLineTest, PowerCommandSetTest)
{
std::string msg1 = R"({"Power":0.5})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
PowerCommand command1(type, args1, *socket);
command1.CheckAndRun();
double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
EXPECT_EQ(power, 0.5);
}
TEST_F(CommandLineTest, PowerCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
PowerCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, VolumeCommandTest)
{
std::string msg1 = R"({"Volume":90})";
CommandLine::CommandType type1 = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
VolumeCommand command1(type1, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(g_output);
CommandLine::CommandType type2 = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
VolumeCommand command2(type2, args2, *socket);
g_output = false;
command2.CheckAndRun();
command2.RunGet();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, BarometerCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"Barometer":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BarometerCommand command1(type, args1, *socket);
command1.CheckAndRun();
int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
EXPECT_EQ(barometer, 101325);
args1.Replace("Barometer", 999901);
BarometerCommand command2(type, args1, *socket);
command2.CheckAndRun();
barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
EXPECT_NE(barometer, 999901);
args1.Replace("Barometer", -1);
BarometerCommand command3(type, args1, *socket);
command3.CheckAndRun();
barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
EXPECT_NE(barometer, -1);
}
TEST_F(CommandLineTest, BarometerCommandSetTest)
{
std::string msg1 = R"({"Barometer":999})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BarometerCommand command1(type, args1, *socket);
command1.CheckAndRun();
int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
EXPECT_EQ(barometer, 999);
}
TEST_F(CommandLineTest, BarometerCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
BarometerCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, LocationCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"latitude":"10.0"})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
LocationCommand command0(type, args0, *socket);
command0.CheckAndRun();
double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
EXPECT_EQ(latitude, 0);
std::string msg1 = R"({"latitude":"10.0","longitude":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
LocationCommand command1(type, args1, *socket);
command1.CheckAndRun();
latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
EXPECT_EQ(latitude, 0);
args1.Replace("longitude", "10.0");
args1.Replace("latitude", "-91.0");
LocationCommand command2(type, args1, *socket);
command2.CheckAndRun();
latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
EXPECT_NE(latitude, -91.0);
args1.Replace("latitude", "91.0");
LocationCommand command3(type, args1, *socket);
command3.CheckAndRun();
latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
EXPECT_NE(latitude, 91);
args1.Replace("latitude", "10.0");
args1.Replace("longitude", "-181.0");
LocationCommand command4(type, args1, *socket);
command4.CheckAndRun();
double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
EXPECT_NE(longitude, -181);
args1.Replace("longitude", "181.0");
LocationCommand command5(type, args1, *socket);
command5.CheckAndRun();
longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
EXPECT_NE(longitude, 181);
}
TEST_F(CommandLineTest, LocationCommandSetTest)
{
std::string msg1 = R"({"latitude":"10.9023142","longitude":"56.3043242"})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
LocationCommand command1(type, args1, *socket);
command1.CheckAndRun();
double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
EXPECT_EQ(latitude, 10.9023142);
EXPECT_EQ(longitude, 56.3043242);
}
TEST_F(CommandLineTest, LocationCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
LocationCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, KeepScreenOnStateCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"KeepScreenOnState111":false})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
KeepScreenOnStateCommand command0(type, args0, *socket);
command0.CheckAndRun();
bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
EXPECT_EQ(status, true);
std::string msg1 = R"({"KeepScreenOnState":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
KeepScreenOnStateCommand command1(type, args1, *socket);
command1.CheckAndRun();
status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
EXPECT_EQ(status, true);
}
TEST_F(CommandLineTest, KeepScreenOnStateCommandSetTest)
{
std::string msg1 = R"({"KeepScreenOnState":false})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
KeepScreenOnStateCommand command1(type, args1, *socket);
command1.CheckAndRun();
bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
EXPECT_EQ(status, false);
}
TEST_F(CommandLineTest, KeepScreenOnStateCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
KeepScreenOnStateCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, WearingStateCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"WearingState11":false})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
WearingStateCommand command0(type, args0, *socket);
command0.CheckAndRun();
bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
EXPECT_EQ(status, true);
std::string msg1 = R"({"WearingState":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
WearingStateCommand command1(type, args1, *socket);
command1.CheckAndRun();
status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
EXPECT_EQ(status, true);
}
TEST_F(CommandLineTest, WearingStateCommandSetTest)
{
std::string msg1 = R"({"WearingState":false})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
WearingStateCommand command1(type, args1, *socket);
command1.CheckAndRun();
bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
EXPECT_EQ(status, false);
}
TEST_F(CommandLineTest, WearingStateCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
WearingStateCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, BrightnessModeCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"BrightnessMode111":1})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
BrightnessModeCommand command0(type, args0, *socket);
command0.CheckAndRun();
uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_EQ(brightness, 0);
std::string msg1 = R"({"BrightnessMode":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BrightnessModeCommand command1(type, args1, *socket);
command1.CheckAndRun();
brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_EQ(brightness, 0);
msg1 = R"({"BrightnessMode":-1})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
BrightnessModeCommand command2(type, args2, *socket);
command2.CheckAndRun();
brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_NE(brightness, -1);
msg1 = R"({"BrightnessMode":2})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
BrightnessModeCommand command3(type, args3, *socket);
command3.CheckAndRun();
brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_NE(brightness, 2);
}
TEST_F(CommandLineTest, BrightnessModeCommandSetTest)
{
std::string msg1 = R"({"BrightnessMode":1})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BrightnessModeCommand command1(type, args1, *socket);
command1.CheckAndRun();
uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_EQ(brightness, 1);
}
TEST_F(CommandLineTest, BrightnessModeCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
BrightnessModeCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, ChargeModeCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"ChargeMode111":1})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
ChargeModeCommand command0(type, args0, *socket);
command0.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
EXPECT_EQ(mode, 0);
std::string msg1 = R"({"ChargeMode":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
ChargeModeCommand command1(type, args1, *socket);
command1.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
EXPECT_EQ(mode, 0);
msg1 = R"({"ChargeMode":-1})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
ChargeModeCommand command2(type, args2, *socket);
command2.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
EXPECT_NE(mode, -1);
msg1 = R"({"ChargeMode":2})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
ChargeModeCommand command3(type, args3, *socket);
command3.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
EXPECT_NE(mode, 2);
}
TEST_F(CommandLineTest, ChargeModeCommandSetTest)
{
std::string msg1 = R"({"ChargeMode":1})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
ChargeModeCommand command1(type, args1, *socket);
command1.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
EXPECT_EQ(mode, 1);
}
TEST_F(CommandLineTest, ChargeModeCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
ChargeModeCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, BrightnessCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"Brightness111":100})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
BrightnessCommand command0(type, args0, *socket);
command0.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
EXPECT_EQ(mode, 255);
std::string msg1 = R"({"Brightness":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BrightnessCommand command1(type, args1, *socket);
command1.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
EXPECT_EQ(mode, 255);
msg1 = R"({"Brightness":256})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
BrightnessCommand command2(type, args2, *socket);
command2.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
EXPECT_NE(mode, 256);
msg1 = R"({"Brightness":0})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
BrightnessCommand command3(type, args3, *socket);
command3.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
EXPECT_NE(mode, 0);
}
TEST_F(CommandLineTest, BrightnessCommandSetTest)
{
std::string msg1 = R"({"Brightness":100})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
BrightnessCommand command1(type, args1, *socket);
command1.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
EXPECT_EQ(mode, 100);
}
TEST_F(CommandLineTest, BrightnessCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
BrightnessCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, HeartRateCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"HeartRate111":100})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
HeartRateCommand command0(type, args0, *socket);
command0.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
EXPECT_EQ(mode, 80);
std::string msg1 = R"({"HeartRate":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
HeartRateCommand command1(type, args1, *socket);
command1.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
EXPECT_EQ(mode, 80);
msg1 = R"({"HeartRate":256})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
HeartRateCommand command2(type, args2, *socket);
command2.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
EXPECT_NE(mode, 256);
msg1 = R"({"HeartRate":-1})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
HeartRateCommand command3(type, args3, *socket);
command3.CheckAndRun();
mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
EXPECT_NE(mode, -1);
}
TEST_F(CommandLineTest, HeartRateCommandSetTest)
{
std::string msg1 = R"({"HeartRate":100})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
HeartRateCommand command1(type, args1, *socket);
command1.CheckAndRun();
uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
EXPECT_EQ(mode, 100);
}
TEST_F(CommandLineTest, HeartRateCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
HeartRateCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, StepCountCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg0 = R"({"StepCount111":100})";
Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
StepCountCommand command0(type, args0, *socket);
command0.CheckAndRun();
uint32_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
EXPECT_EQ(mode, 0);
std::string msg1 = R"({"StepCount":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
StepCountCommand command1(type, args1, *socket);
command1.CheckAndRun();
mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
EXPECT_EQ(mode, 0);
msg1 = R"({"StepCount":10000000})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
StepCountCommand command2(type, args2, *socket);
command2.CheckAndRun();
mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
EXPECT_NE(mode, 10000000);
msg1 = R"({"StepCount":-1})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
StepCountCommand command3(type, args3, *socket);
command3.CheckAndRun();
mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
EXPECT_NE(mode, -1);
}
TEST_F(CommandLineTest, StepCountCommandSetTest)
{
std::string msg1 = R"({"StepCount":100})";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
StepCountCommand command1(type, args1, *socket);
command1.CheckAndRun();
uint8_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
EXPECT_EQ(mode, 100);
}
TEST_F(CommandLineTest, StepCountCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
StepCountCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, DistributedCommunicationsCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
"abilityName":"hello"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
DistributedCommunicationsCommand command1(type, args1, *socket);
g_sendVirtualMessage = false;
command1.CheckAndRun();
EXPECT_FALSE(g_sendVirtualMessage);
std::string msg2 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
"abilityName":"hello"},"message":"")";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
DistributedCommunicationsCommand command2(type, args2, *socket);
g_sendVirtualMessage = false;
command2.CheckAndRun();
EXPECT_FALSE(g_sendVirtualMessage);
std::string msg3 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
"abilityName":"hello","message":"{ action:'GET_WEATHER',city:'HangZhou' }"})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
DistributedCommunicationsCommand command3(type, args3, *socket);
g_sendVirtualMessage = false;
command3.CheckAndRun();
EXPECT_TRUE(g_sendVirtualMessage);
std::string msg4 = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc",
"abilityName" : "hello", "message" : ""})";
Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
DistributedCommunicationsCommand command4(type, args4, *socket);
g_sendVirtualMessage = false;
command4.CheckAndRun();
EXPECT_FALSE(g_sendVirtualMessage);
}
TEST_F(CommandLineTest, DistributedCommunicationsCommandTest2)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc",
"abilityName" : "hello", "message" : "{ action : 'GET_WEATHER', city : 'HangZhou' }"})";
Json2::Value args = JsonReader::ParseJsonData2(msg);
DistributedCommunicationsCommand command(type, args, *socket);
std::vector<char> vec = command.StringToCharVector("123");
int size = 4;
EXPECT_EQ(vec.size(), size);
}
TEST_F(CommandLineTest, MouseWheelCommandTest)
{
std::string msg1 = R"({"rotate":"aaa"})";
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
MouseWheelCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(MouseWheelImpl::GetInstance().rotate, 0);
std::string msg2 = R"({"rotate":100})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
MouseWheelCommand command2(type, args2, *socket);
command2.CheckAndRun();
EXPECT_EQ(MouseWheelImpl::GetInstance().GetRotate(), 100);
msg2 = R"({"rotate":150})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg2);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
MouseWheelCommand command3(type, args3, *socket);
command3.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_NE(MouseWheelImpl::GetInstance().GetRotate(), 150);
}
TEST_F(CommandLineTest, TouchPressCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":"abc","duration":""})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchPressCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchPressCommandArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":15000,"duration":""})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchPressCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg2 = R"({"x":-1,"y":15000,"duration":""})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
TouchPressCommand command2(type, args2, *socket);
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg3 = R"({"x":15000,"y":365,"duration":""})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
TouchPressCommand command3(type, args3, *socket);
g_dispatchOsTouchEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg4 = R"({"x":15000,"y":-1,"duration":""})";
Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
TouchPressCommand command4(type, args4, *socket);
g_dispatchOsTouchEvent = false;
command4.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchPressCommandArgsCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":1076,"duration":""})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchPressCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_TRUE(g_dispatchOsTouchEvent);
TouchPressCommand command2(type, args1, *socket);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchReleaseCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchReleaseCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchReleaseCommandArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":15000})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchReleaseCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg2 = R"({"x":-1,"y":15000})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
TouchReleaseCommand command2(type, args2, *socket);
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg3 = R"({"x":15000,"y":365})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
TouchReleaseCommand command3(type, args3, *socket);
g_dispatchOsTouchEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg4 = R"({"x":15000,"y":-1})";
Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
TouchReleaseCommand command4(type, args4, *socket);
g_dispatchOsTouchEvent = false;
command4.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchReleaseCommandArgsCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":1076})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchReleaseCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_TRUE(g_dispatchOsTouchEvent);
TouchReleaseCommand command2(type, args1, *socket);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchMoveCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":"abc"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchMoveCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchMoveCommandArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":15000})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchMoveCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg2 = R"({"x":-1,"y":15000})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
TouchMoveCommand command2(type, args2, *socket);
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg3 = R"({"x":15000,"y":365})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
TouchMoveCommand command3(type, args3, *socket);
g_dispatchOsTouchEvent = false;
command3.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
std::string msg4 = R"({"x":15000,"y":-1})";
Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
TouchMoveCommand command4(type, args4, *socket);
g_dispatchOsTouchEvent = false;
command4.CheckAndRun();
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, TouchMoveCommandArgsCorrectTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
std::string msg1 = R"({"x":365,"y":1076})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
TouchMoveCommand command1(type, args1, *socket);
g_dispatchOsTouchEvent = false;
command1.CheckAndRun();
EXPECT_TRUE(g_dispatchOsTouchEvent);
TouchMoveCommand command2(type, args1, *socket);
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
g_dispatchOsTouchEvent = false;
command2.CheckAndRun();
CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
EXPECT_FALSE(g_dispatchOsTouchEvent);
}
TEST_F(CommandLineTest, LanguageCommandArgsTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"Language":111})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
LanguageCommand command1(type, args1, *socket);
command1.CheckAndRun();
std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
EXPECT_EQ(language, "zh-CN");
CommandParser::GetInstance().deviceType = "liteWearable";
std::string msg2 = R"({"Language":"ar_AE"})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
LanguageCommand command2(type, args2, *socket);
command2.CheckAndRun();
language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
EXPECT_NE(language, "ar_AE");
CommandParser::GetInstance().deviceType = "phone";
std::string msg3 = R"({"Language":"aa_BB"})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
LanguageCommand command3(type, args3, *socket);
command3.CheckAndRun();
language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
EXPECT_NE(language, "aa_BB");
}
TEST_F(CommandLineTest, LanguageCommandSetTest)
{
CommandParser::GetInstance().deviceType = "liteWearable";
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"Language":"en-US"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
LanguageCommand command1(type, args1, *socket);
command1.CheckAndRun();
std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
EXPECT_EQ(language, "en-US");
CommandParser::GetInstance().deviceType = "phone";
std::string msg2 = R"({"Language":"en_US"})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
LanguageCommand command2(type, args2, *socket);
command2.CheckAndRun();
language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
EXPECT_EQ(language, "en_US");
}
TEST_F(CommandLineTest, LanguageCommandGetTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
LanguageCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, SupportedLanguagesCommandTest)
{
CommandParser::GetInstance().deviceType = "liteWearable";
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args1 = JsonReader::CreateNull();
SupportedLanguagesCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(g_output);
CommandParser::GetInstance().deviceType = "phone";
SupportedLanguagesCommand command2(type, args1, *socket);
command2.CheckAndRun();
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, ExitCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::ACTION;
Interrupter::isInterrupt = false;
Json2::Value args1 = JsonReader::CreateNull();
ExitCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(Interrupter::isInterrupt);
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, RestartCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
RestartCommand command2(type, args2, *socket);
command2.RunAction();
}
TEST_F(CommandLineTest, ResolutionCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
ResolutionCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, DeviceTypeCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args1 = JsonReader::CreateNull();
DeviceTypeCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, AvoidAreaCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
{"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
AvoidAreaCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
command1.RunSet();
EXPECT_TRUE(g_output);
std::string msg2 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},"rightRect":0})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
AvoidAreaCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg3 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
{"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
"rightRect":{"posX":0,"posY":0,"width":0}})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
AvoidAreaCommand command3(type, args3, *socket);
g_output = false;
command3.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg4 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
{"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
"rightRect":{"posX":0,"posY":0,"width":0,"height":"350"}})";
Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
AvoidAreaCommand command4(type, args4, *socket);
g_output = false;
command4.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg5 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
"rightRect":{"posX":0,"posY":0,"width":-1,"height":-1}})";
Json2::Value args5 = JsonReader::ParseJsonData2(msg5);
AvoidAreaCommand command5(type, args5, *socket);
g_output = false;
command5.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg6 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
"rightRect":{"posX":0,"posY":0,"width":2340,"height":84}})";
Json2::Value args6 = JsonReader::ParseJsonData2(msg6);
AvoidAreaCommand command6(type, args6, *socket);
g_output = false;
command6.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, AvoidAreaCommandArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg1 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117},
"bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
"posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340,
"height" : "84"}})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
AvoidAreaCommand command1(type, args1, *socket);
g_output = false;
command1.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg2 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117},
"bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
"posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : -2, "width" : 2340,
"height" : 84}})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
AvoidAreaCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
std::string msg3 = R"({"topRect" : {"posX" :0, "posY" : 0, "width" : 2340, "height" : 117},
"bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
"posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340,
"height" : 84}})";
Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
AvoidAreaCommand command3(type, args3, *socket);
g_output = false;
command3.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, AvoidAreaChangedCommandTest)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args2 = JsonReader::CreateNull();
AvoidAreaChangedCommand command2(type, args2, *socket);
g_output = false;
command2.CheckAndRun();
EXPECT_TRUE(g_output);
}
TEST_F(CommandLineTest, IsArgValidTest_Err)
{
CommandLine::CommandType type = CommandLine::CommandType::GET;
Json2::Value args1 = JsonReader::CreateObject();
CurrentRouterCommand command2(type, args1, *socket);
command2.type = CommandLine::CommandType::INVALID;
EXPECT_TRUE(command2.IsArgValid());
}
TEST_F(CommandLineTest, ColorModeCommandArgsCorrectTest)
{
JsAppImpl::GetInstance().colorMode = "light";
CommandLine::CommandType type = CommandLine::CommandType::SET;
std::string msg = R"({"ColorMode" : "dark"})";
Json2::Value args = JsonReader::ParseJsonData2(msg);
ColorModeCommand command(type, args, *socket);
command.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "dark");
}
TEST_F(CommandLineTest, ColorModeCommandArgsTypeTest)
{
JsAppImpl::GetInstance().colorMode = "light";
CommandLine::CommandType type = CommandLine::CommandType::SET;
Json2::Value args = JsonReader::CreateNull();
ColorModeCommand command(type, args, *socket);
command.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
JsAppImpl::GetInstance().colorMode = "light";
std::string msg1 = R"({"aaa" : "dark"})";
Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
ColorModeCommand command1(type, args1, *socket);
command1.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
JsAppImpl::GetInstance().colorMode = "light";
std::string msg2 = R"({"ColorMode" : 123})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
ColorModeCommand command2(type, args2, *socket);
command2.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
}
TEST_F(CommandLineTest, ColorModeCommandArgsRangeTest)
{
CommandLine::CommandType type = CommandLine::CommandType::SET;
JsAppImpl::GetInstance().colorMode = "light";
std::string msg2 = R"({"ColorMode" : "aaa"})";
Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
ColorModeCommand command2(type, args2, *socket);
command2.CheckAndRun();
EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
}
}