From: Haoyang Chen chenhaoyang@kylinos.cn
--- dlls/winhttp/tests/winhttp.c | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c index 5ea0c45b183..a079fc5aded 100644 --- a/dlls/winhttp/tests/winhttp.c +++ b/dlls/winhttp/tests/winhttp.c @@ -4725,6 +4725,47 @@ static void test_IWinHttpRequest(int port) ok( V_VT( &cp ) == VT_I4, "got %#x\n", V_VT( &cp ) ); ok( V_I4( &cp ) == CP_UTF8, "got %ld\n", V_I4( &cp ) );
+ V_VT( &cp ) = VT_ERROR; + V_ERROR( &cp ) = 0xdeadbeef; + hr = IWinHttpRequest_get_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, &cp ); + ok( hr == S_OK, "got %#lx\n", hr ); + ok( V_VT( &cp ) == VT_I4, "got %#x\n", V_VT( &cp ) ); + ok( V_I4( &cp ) == 0, "got %lx\n", V_I4( &cp ) ); + + V_VT( &cp ) = VT_I4; + V_I4( &cp ) = 0x321; + hr = IWinHttpRequest_put_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, cp ); + ok( hr == E_INVALIDARG, "got %#lx\n", hr ); + + V_VT( &cp ) = VT_UI4; + V_UI4( &cp ) = 0x123; + hr = IWinHttpRequest_put_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, cp ); + ok( hr == E_INVALIDARG, "got %#lx\n", hr ); + + V_VT( &cp ) = VT_UI4; + V_UI4( &cp ) = SECURITY_FLAG_IGNORE_CERT_DATE_INVALID; + hr = IWinHttpRequest_put_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, cp ); + ok( hr == S_OK, "got %#lx\n", hr ); + + V_VT( &cp ) = VT_ERROR; + V_ERROR( &cp ) = 0xdeadbeef; + hr = IWinHttpRequest_get_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, &cp ); + ok( hr == S_OK, "got %#lx\n", hr ); + ok( V_VT( &cp ) == VT_I4, "got %#x\n", V_VT( &cp ) ); + ok( V_I4( &cp ) == SECURITY_FLAG_IGNORE_CERT_DATE_INVALID, "got %lx\n", V_I4( &cp ) ); + + V_VT( &cp ) = VT_I4; + V_I4( &cp ) = SECURITY_FLAG_IGNORE_UNKNOWN_CA|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE; + hr = IWinHttpRequest_put_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, cp ); + ok( hr == S_OK, "got %#lx\n", hr ); + + V_VT( &cp ) = VT_ERROR; + V_ERROR( &cp ) = 0xdeadbeef; + hr = IWinHttpRequest_get_Option( req, WinHttpRequestOption_SslErrorIgnoreFlags, &cp ); + ok( hr == S_OK, "got %#lx\n", hr ); + ok( V_VT( &cp ) == VT_I4, "got %#x\n", V_VT( &cp ) ); + ok( V_I4( &cp ) == (SECURITY_FLAG_IGNORE_UNKNOWN_CA|SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE), "got %lx\n", V_I4( &cp ) ); + hr = IWinHttpRequest_Abort( req ); ok( hr == S_OK, "got %#lx\n", hr );