示例#1
0
        public async Task CanSetExtraHTTPHeaders()
        {
            using (var browser = new ChromiumWebBrowser("about:blank", automaticallyCreateBrowser: false))
            {
                await browser.CreateBrowserAsync();

                using (var devToolsClient = browser.GetDevToolsClient())
                {
                    var extraHeaders = new Headers();
                    extraHeaders.SetCommaSeparatedValues("TEST", "0");
                    extraHeaders.AppendCommaSeparatedValues("test", " 1 ", "\" 2 \"");
                    extraHeaders.AppendCommaSeparatedValues("Test", " 2,5 ");

                    await devToolsClient.Network.SetExtraHTTPHeadersAsync(extraHeaders);

                    var evtTask = Assert.RaisesAsync <RequestWillBeSentEventArgs>(
                        x => devToolsClient.Network.RequestWillBeSent += x,
                        x => devToolsClient.Network.RequestWillBeSent -= x,
                        async() =>
                    {
                        // enable events
                        await devToolsClient.Network.EnableAsync();

                        await browser.LoadUrlAsync("www.google.com");
                    });

                    var xUnitEvent = await evtTask;
                    Assert.NotNull(xUnitEvent);

                    var args = xUnitEvent.Arguments;

                    Assert.NotNull(args);
                    Assert.NotEmpty(args.RequestId);
                    Assert.NotEqual(0, args.Timestamp);
                    Assert.NotEqual(0, args.WallTime);
                    Assert.NotNull(args.Request);
                    Assert.True(args.Request.Headers.TryGetValues("TeSt", out var values));
                    Assert.Collection(values,
                                      v => Assert.Equal("0", v),
                                      v => Assert.Equal("1", v),
                                      v => Assert.Equal(" 2 ", v),
                                      v => Assert.Equal(" 2,5 ", v)
                                      );
                }
            }
        }
示例#2
0
        public void HeadersAppendCommaSeparatedValues()
        {
            var headers = new Headers();

            headers.AppendCommaSeparatedValues("TEST", " 1 ");

            headers.AppendCommaSeparatedValues("test", "\" 1,5 \"", "2", " 2 , 5 ", "3", " ", "");

            Assert.Collection(headers.GetCommaSeparatedValues("Test"),
                              v => Assert.Equal("1", v),
                              v => Assert.Equal(" 1,5 ", v),
                              v => Assert.Equal("2", v),
                              v => Assert.Equal(" 2 , 5 ", v),
                              v => Assert.Equal("3", v),
                              v => Assert.Equal("", v),
                              v => Assert.Equal("", v)
                              );
        }
示例#3
0
        public async Task CanSetExtraHTTPHeaders()
        {
            using (var browser = new ChromiumWebBrowser("about:blank", automaticallyCreateBrowser: false))
            {
                await browser.CreateBrowserAsync();

                RequestWillBeSentEventArgs requestWillBeSentEventArgs = null;
                using (var devToolsClient = browser.GetDevToolsClient())
                {
                    var extraHeaders = new Headers();
                    extraHeaders.SetCommaSeparatedValues("TEST", "0");
                    extraHeaders.AppendCommaSeparatedValues("test", " 1 ", "\" 2 \"");
                    extraHeaders.AppendCommaSeparatedValues("Test", " 2,5 ");

                    await devToolsClient.Network.SetExtraHTTPHeadersAsync(extraHeaders);

                    devToolsClient.Network.RequestWillBeSent += (sender, args) =>
                    {
                        if (requestWillBeSentEventArgs == null)
                        {
                            requestWillBeSentEventArgs = args;
                        }
                    };

                    // enable events
                    await devToolsClient.Network.EnableAsync();

                    await browser.LoadUrlAsync("www.google.com");
                }

                Assert.NotNull(requestWillBeSentEventArgs);
                Assert.NotEmpty(requestWillBeSentEventArgs.RequestId);
                Assert.NotEqual(0, requestWillBeSentEventArgs.Timestamp);
                Assert.NotEqual(0, requestWillBeSentEventArgs.WallTime);
                Assert.NotNull(requestWillBeSentEventArgs.Request);
                Assert.True(requestWillBeSentEventArgs.Request.Headers.TryGetValues("TeSt", out var values));
                Assert.Collection(values,
                                  v => Assert.Equal("0", v),
                                  v => Assert.Equal("1", v),
                                  v => Assert.Equal(" 2 ", v),
                                  v => Assert.Equal(" 2,5 ", v)
                                  );
            }
        }