public async Task NetworkRedirectsShouldReportSecurityDetails()
        {
            var responses = new List <Response>();

            HttpsServer.SetRedirect("/plzredirect", "/empty.html");

            Page.Response += (_, e) => responses.Add(e.Response);

            var requestTask = HttpsServer.WaitForRequest(
                "/empty.html",
                request => request?.HttpContext?.Features?.Get <ITlsHandshakeFeature>()?.Protocol);
            var responseTask = Page.GoToAsync(TestConstants.HttpsPrefix + "/plzredirect");

            await Task.WhenAll(
                requestTask,
                responseTask).WithTimeout();

            var response = responseTask.Result;

            Assert.Equal(2, responses.Count);
            Assert.Equal(HttpStatusCode.Found, responses[0].Status);
            Assert.Equal(
                TestUtils.CurateProtocol(requestTask.Result.ToString()),
                TestUtils.CurateProtocol(response.SecurityDetails.Protocol));
        }
예제 #2
0
        public async Task NetworkRedirectsShouldReportSecurityDetails()
        {
            var responses = new List <Response>();

            HttpsServer.SetRedirect("/plzredirect", "/empty.html");

            Page.Response += (sender, e) => responses.Add(e.Response);

            await Page.GoToAsync(TestConstants.HttpsPrefix + "/plzredirect");

            Assert.Equal(2, responses.Count);
            Assert.Equal(HttpStatusCode.Found, responses[0].Status);
            Assert.Equal("TLS 1.2", responses[0].SecurityDetails.Protocol);
        }
예제 #3
0
        public async Task NetworkRedirectsShouldReportSecurityDetails()
        {
            var responses = new List <Response>();
            var options   = TestConstants.DefaultBrowserOptions();

            options.IgnoreHTTPSErrors = true;

            HttpsServer.SetRedirect("/plzredirect", "/empty.html");

            using (var browser = await Puppeteer.LaunchAsync(options, TestConstants.LoggerFactory))
                using (var page = await browser.NewPageAsync())
                {
                    page.Response += (sender, e) => responses.Add(e.Response);

                    await page.GoToAsync(TestConstants.HttpsPrefix + "/plzredirect");

                    Assert.Equal(2, responses.Count);
                    Assert.Equal(HttpStatusCode.Found, responses[0].Status);
                    Assert.Equal("TLS 1.2", responses[0].SecurityDetails.Protocol);
                }
        }