From 0548a06905f8b95218b624773bbc6ac479a38550 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 24 Mar 2021 16:24:34 +0100 Subject: [PATCH] Check the values from wxWebRequestEvent in the unit test too In addition to checking that wxWebRequest itself is filled with the expected values, verify that the same values are returned via wxWebRequestEvent. --- tests/net/webrequest.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/tests/net/webrequest.cpp b/tests/net/webrequest.cpp index b8c8de79a9..5051b66386 100644 --- a/tests/net/webrequest.cpp +++ b/tests/net/webrequest.cpp @@ -44,6 +44,8 @@ public: { expectedFileSize = 0; dataSize = 0; + stateFromEvent = wxWebRequest::State_Idle; + statusFromEvent = 0; } // All tests should call this function first and skip the test entirely if @@ -81,7 +83,17 @@ public: void OnRequestState(wxWebRequestEvent& evt) { - switch (evt.GetState()) + stateFromEvent = evt.GetState(); + const wxWebResponse& response = evt.GetResponse(); + if ( response.IsOk() ) + { + // Note that the response object itself may be deleted if request + // using it is, so we need to copy its data to use it later. + statusFromEvent = response.GetStatus(); + responseStringFromEvent = response.AsString(); + } + + switch ( stateFromEvent ) { case wxWebRequest::State_Idle: FAIL("should never get events with State_Idle"); @@ -134,16 +146,22 @@ public: request.Start(); RunLoopWithTimeout(); - if ( request.GetState() != requiredState ) + if ( stateFromEvent != requiredState ) { errorDescription.Trim(); if ( !errorDescription.empty() ) WARN("Error: " << errorDescription); } - REQUIRE( request.GetState() == requiredState ); + REQUIRE( stateFromEvent == requiredState ); + + CHECK( request.GetState() == stateFromEvent ); + if (requiredStatus) + { + CHECK( statusFromEvent == requiredStatus ); CHECK( request.GetResponse().GetStatus() == requiredStatus ); + } } // Precondition: we must have an auth challenge. @@ -156,6 +174,9 @@ public: wxString baseURL; wxEventLoop loop; wxWebRequest request; + wxWebRequest::State stateFromEvent; + int statusFromEvent; + wxString responseStringFromEvent; wxInt64 expectedFileSize; wxInt64 dataSize; wxString errorDescription;