@@ -244,6 +244,36 @@ BOOST_DATA_TEST_CASE(ClientFollowsConnectProtocol, usesLuaScriptValues, usesLuaS
244244 }
245245}
246246
247+ BOOST_AUTO_TEST_CASE (ClientStoresReceivedSavegamesInSaveFolder)
248+ {
249+ rttr::test::TmpFolder testUserData;
250+ rttr::test::ConfigOverride userDataOverride (" USERDATA" , testUserData);
251+
252+ GameClient client;
253+ GameMessageInterface& clientMsgInterface = client;
254+ TestServer server;
255+ const auto serverPort = server.tryListen ();
256+ BOOST_TEST_REQUIRE (serverPort >= 0 );
257+
258+ BOOST_TEST_REQUIRE (client.Connect (" localhost" , rttr::test::randString (10 ), rttr::test::randomEnum<ServerType>(),
259+ serverPort, false , false ));
260+ clientMsgInterface.OnGameMessage (GameMessage_Player_Id (1 ));
261+ client.GetMainPlayer ().sendQueue .clear ();
262+ clientMsgInterface.OnGameMessage (GameMessage_Server_TypeOK (GameMessage_Server_TypeOK::StatusCode::Ok, " " ));
263+ client.GetMainPlayer ().sendQueue .clear ();
264+ clientMsgInterface.OnGameMessage (GameMessage_Server_Password (" true" ));
265+ client.GetMainPlayer ().sendQueue .clear ();
266+
267+ const auto expectedSavePath = RTTRCONFIG.ExpandPath (s25::folders::save) / " received.sav" ;
268+
269+ clientMsgInterface.OnGameMessage (GameMessage_Map_Info (" received.sav" , MapType::Savegame, 1 , 1 , 0 , 0 ));
270+ const auto msg = boost::dynamic_pointer_cast<GameMessage_MapRequest>(client.GetMainPlayer ().sendQueue .pop ());
271+ BOOST_TEST_REQUIRE (msg);
272+ BOOST_TEST (!msg->requestInfo );
273+ BOOST_TEST (client.GetMapType () == MapType::Savegame);
274+ BOOST_TEST (client.GetMapPath () == expectedSavePath);
275+ }
276+
247277BOOST_AUTO_TEST_CASE (ClientDetectsMapBufferOverflow)
248278{
249279 rttr::test::LogAccessor _suppressLogOutput;
0 commit comments