summaryrefslogtreecommitdiff
path: root/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc')
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc
index 232d5ab628..ba4eefeee1 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/navi_start_stream_request_test.cc
@@ -59,6 +59,7 @@ using sdl_rpc_plugin::commands::NaviStartStreamRequest;
namespace {
const uint32_t kHmiAppId = 13u;
+const uint32_t kCorrelationId = 2u;
const am::HmiInterfaces::InterfaceID kHmiInterface =
am::HmiInterfaces::HMI_INTERFACE_Navigation;
} // namespace
@@ -73,11 +74,24 @@ class NaviStartStreamRequestTest
command_ = CreateCommand<NaviStartStreamRequest>(msg_);
}
+ void UpdateMsgParams(MessageSharedPtr& message) {
+ (*message)[am::strings::params][am::strings::correlation_id] =
+ kCorrelationId;
+ (*message)[am::strings::params][am::strings::message_type] =
+ am::MessageType::kRequest;
+ (*message)[am::strings::params][am::strings::function_id] =
+ static_cast<int32_t>(hmi_apis::FunctionID::Navigation_StartStream);
+ (*message)[am::strings::msg_params][am::strings::app_id] = kHmiAppId;
+ }
+
std::pair<uint32_t, int32_t> start_stream_retry_amount_;
MessageSharedPtr msg_;
std::shared_ptr<NaviStartStreamRequest> command_;
+ static const std::string big_url_;
};
+const std::string NaviStartStreamRequestTest::big_url_(20000u, 'a');
+
TEST_F(NaviStartStreamRequestTest, Run_HmiInterfaceNotAvailable_NoRequest) {
EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceState(kHmiInterface))
.WillOnce(Return(am::HmiInterfaces::STATE_NOT_AVAILABLE));
@@ -113,6 +127,48 @@ TEST_F(NaviStartStreamRequestTest, Run_HmiInterfaceAvailable_SentRequest) {
command_->Run();
}
+TEST_F(NaviStartStreamRequestTest, Run_HmiHugeUrl_SentRequest_SUCCESS) {
+ UpdateMsgParams(msg_);
+
+ (*msg_)[am::strings::msg_params][am::strings::url] = big_url_;
+
+ ON_CALL(mock_hmi_interfaces_, GetInterfaceState(kHmiInterface))
+ .WillByDefault(Return(am::HmiInterfaces::STATE_AVAILABLE));
+ MockAppPtr mock_app = CreateMockApp();
+ ON_CALL(app_mngr_, application_by_hmi_app(kHmiAppId))
+ .WillByDefault(Return(mock_app));
+
+ ON_CALL(app_mngr_, application(kHmiAppId)).WillByDefault(Return(mock_app));
+ ON_CALL(*mock_app, hmi_app_id()).WillByDefault(Return(kHmiAppId));
+
+ EXPECT_CALL(*mock_app, set_video_streaming_allowed(true));
+ EXPECT_CALL(mock_rpc_service_, SendMessageToHMI(msg_));
+
+ ASSERT_TRUE(command_->Init());
+ command_->Run();
+}
+
+TEST_F(NaviStartStreamRequestTest, ValidateSchema_HmiHugeUrl_SUCCESS) {
+ UpdateMsgParams(msg_);
+
+ (*msg_)[am::strings::params][am::strings::protocol_type] =
+ am::commands::CommandImpl::hmi_protocol_type_;
+ (*msg_)[am::strings::params][am::strings::protocol_version] =
+ am::commands::CommandImpl::protocol_version_;
+
+ (*msg_)[am::strings::msg_params][am::strings::url] = big_url_;
+
+ hmi_apis::HMI_API hmi_so_factory;
+ ns_smart_device_link::ns_smart_objects::CSmartSchema schema;
+ hmi_so_factory.GetSchema(hmi_apis::FunctionID::Navigation_StartStream,
+ hmi_apis::messageType::eType::request,
+ schema);
+
+ rpc::ValidationReport report("RPC");
+ EXPECT_EQ(smart_objects::errors::eType::OK, schema.validate(*msg_, &report));
+ EXPECT_EQ("", rpc::PrettyFormat(report));
+}
+
} // namespace navi_start_stream_request
} // namespace hmi_commands_test
} // namespace commands_test