diff options
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.cc | 56 |
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 |