OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/fetch/Request.h" | 5 #include "modules/fetch/Request.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
9 #include "bindings/core/v8/ScriptState.h" | 9 #include "bindings/core/v8/ScriptState.h" |
10 #include "bindings/core/v8/V8BindingForTesting.h" | 10 #include "bindings/core/v8/V8BindingForTesting.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 struct { | 55 struct { |
56 const char* key; | 56 const char* key; |
57 const char* value; | 57 const char* value; |
58 } headers[] = {{"X-Foo", "bar"}, {"X-Quux", "foop"}, {0, 0}}; | 58 } headers[] = {{"X-Foo", "bar"}, {"X-Quux", "foop"}, {0, 0}}; |
59 const String referrer = "http://www.referrer.com/"; | 59 const String referrer = "http://www.referrer.com/"; |
60 const WebReferrerPolicy kReferrerPolicy = kWebReferrerPolicyAlways; | 60 const WebReferrerPolicy kReferrerPolicy = kWebReferrerPolicyAlways; |
61 const WebURLRequest::RequestContext kContext = | 61 const WebURLRequest::RequestContext kContext = |
62 WebURLRequest::kRequestContextAudio; | 62 WebURLRequest::kRequestContextAudio; |
63 const WebURLRequest::FetchRequestMode kMode = | 63 const WebURLRequest::FetchRequestMode kMode = |
64 WebURLRequest::kFetchRequestModeNavigate; | 64 WebURLRequest::kFetchRequestModeNavigate; |
| 65 const WebURLRequest::FetchCredentialsMode kCredentialsMode = |
| 66 WebURLRequest::kFetchCredentialsModeInclude; |
| 67 const WebURLRequest::FetchRequestCacheMode kCacheMode = |
| 68 WebURLRequest::kFetchRequestCacheModeNoCache; |
| 69 const WebURLRequest::FetchRedirectMode kRedirectMode = |
| 70 WebURLRequest::kFetchRedirectModeError; |
65 | 71 |
66 web_request.SetURL(url); | 72 web_request.SetURL(url); |
67 web_request.SetMethod(method); | 73 web_request.SetMethod(method); |
| 74 web_request.SetMode(kMode); |
| 75 web_request.SetCredentialsMode(kCredentialsMode); |
| 76 web_request.SetCacheMode(kCacheMode); |
| 77 web_request.SetRedirectMode(kRedirectMode); |
68 web_request.SetRequestContext(kContext); | 78 web_request.SetRequestContext(kContext); |
69 web_request.SetMode(kMode); | |
70 for (int i = 0; headers[i].key; ++i) | 79 for (int i = 0; headers[i].key; ++i) |
71 web_request.SetHeader(WebString::FromUTF8(headers[i].key), | 80 web_request.SetHeader(WebString::FromUTF8(headers[i].key), |
72 WebString::FromUTF8(headers[i].value)); | 81 WebString::FromUTF8(headers[i].value)); |
73 web_request.SetReferrer(referrer, kReferrerPolicy); | 82 web_request.SetReferrer(referrer, kReferrerPolicy); |
74 | 83 |
75 Request* request = Request::Create(scope.GetScriptState(), web_request); | 84 Request* request = Request::Create(scope.GetScriptState(), web_request); |
76 DCHECK(request); | 85 DCHECK(request); |
77 EXPECT_EQ(url, request->url()); | 86 EXPECT_EQ(url, request->url()); |
78 EXPECT_EQ(method, request->method()); | 87 EXPECT_EQ(method, request->method()); |
79 EXPECT_EQ("audio", request->Context()); | 88 EXPECT_EQ("audio", request->Context()); |
(...skipping 10 matching lines...) Expand all Loading... |
90 iter != headers_map.end(); ++iter) { | 99 iter != headers_map.end(); ++iter) { |
91 DummyExceptionStateForTesting exception_state; | 100 DummyExceptionStateForTesting exception_state; |
92 EXPECT_EQ(iter->value, request_headers->get(iter->key, exception_state)); | 101 EXPECT_EQ(iter->value, request_headers->get(iter->key, exception_state)); |
93 EXPECT_FALSE(exception_state.HadException()); | 102 EXPECT_FALSE(exception_state.HadException()); |
94 } | 103 } |
95 | 104 |
96 WebServiceWorkerRequest second_web_request; | 105 WebServiceWorkerRequest second_web_request; |
97 request->PopulateWebServiceWorkerRequest(second_web_request); | 106 request->PopulateWebServiceWorkerRequest(second_web_request); |
98 EXPECT_EQ(url, KURL(second_web_request.Url())); | 107 EXPECT_EQ(url, KURL(second_web_request.Url())); |
99 EXPECT_EQ(method, String(second_web_request.Method())); | 108 EXPECT_EQ(method, String(second_web_request.Method())); |
| 109 EXPECT_EQ(kMode, second_web_request.Mode()); |
| 110 EXPECT_EQ(kCredentialsMode, second_web_request.CredentialsMode()); |
| 111 EXPECT_EQ(kCacheMode, second_web_request.CacheMode()); |
| 112 EXPECT_EQ(kRedirectMode, second_web_request.RedirectMode()); |
100 EXPECT_EQ(kContext, second_web_request.GetRequestContext()); | 113 EXPECT_EQ(kContext, second_web_request.GetRequestContext()); |
101 EXPECT_EQ(referrer, KURL(second_web_request.ReferrerUrl())); | 114 EXPECT_EQ(referrer, KURL(second_web_request.ReferrerUrl())); |
102 EXPECT_EQ(kWebReferrerPolicyAlways, second_web_request.GetReferrerPolicy()); | 115 EXPECT_EQ(kWebReferrerPolicyAlways, second_web_request.GetReferrerPolicy()); |
103 EXPECT_EQ(web_request.Headers(), second_web_request.Headers()); | 116 EXPECT_EQ(web_request.Headers(), second_web_request.Headers()); |
104 EXPECT_EQ(WebURLRequest::kFetchRequestModeNoCORS, second_web_request.Mode()); | |
105 } | 117 } |
106 | 118 |
107 TEST(ServiceWorkerRequestTest, ToWebRequestStripsURLFragment) { | 119 TEST(ServiceWorkerRequestTest, ToWebRequestStripsURLFragment) { |
108 V8TestingScope scope; | 120 V8TestingScope scope; |
109 DummyExceptionStateForTesting exception_state; | 121 DummyExceptionStateForTesting exception_state; |
110 String url_without_fragment = "http://www.example.com/"; | 122 String url_without_fragment = "http://www.example.com/"; |
111 String url = url_without_fragment + "#fragment"; | 123 String url = url_without_fragment + "#fragment"; |
112 Request* request = | 124 Request* request = |
113 Request::Create(scope.GetScriptState(), url, exception_state); | 125 Request::Create(scope.GetScriptState(), url, exception_state); |
114 DCHECK(request); | 126 DCHECK(request); |
115 | 127 |
116 WebServiceWorkerRequest web_request; | 128 WebServiceWorkerRequest web_request; |
117 request->PopulateWebServiceWorkerRequest(web_request); | 129 request->PopulateWebServiceWorkerRequest(web_request); |
118 EXPECT_EQ(url_without_fragment, KURL(web_request.Url())); | 130 EXPECT_EQ(url_without_fragment, KURL(web_request.Url())); |
119 } | 131 } |
120 | 132 |
121 } // namespace | 133 } // namespace |
122 } // namespace blink | 134 } // namespace blink |
OLD | NEW |