OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "public/platform/WebURLLoaderClient.h" | 38 #include "public/platform/WebURLLoaderClient.h" |
39 #include "public/platform/WebURLLoaderMockFactory.h" | 39 #include "public/platform/WebURLLoaderMockFactory.h" |
40 #include "public/platform/WebURLRequest.h" | 40 #include "public/platform/WebURLRequest.h" |
41 #include "public/platform/WebURLResponse.h" | 41 #include "public/platform/WebURLResponse.h" |
42 #include "public/web/WebCache.h" | 42 #include "public/web/WebCache.h" |
43 #include "public/web/WebFrame.h" | 43 #include "public/web/WebFrame.h" |
44 #include "public/web/WebURLLoaderOptions.h" | 44 #include "public/web/WebURLLoaderOptions.h" |
45 #include "public/web/WebView.h" | 45 #include "public/web/WebView.h" |
46 #include "testing/gtest/include/gtest/gtest.h" | 46 #include "testing/gtest/include/gtest/gtest.h" |
47 #include "web/tests/FrameTestHelpers.h" | 47 #include "web/tests/FrameTestHelpers.h" |
48 #include "wtf/PtrUtil.h" | |
49 #include "wtf/text/CString.h" | 48 #include "wtf/text/CString.h" |
50 #include "wtf/text/WTFString.h" | 49 #include "wtf/text/WTFString.h" |
51 #include <memory> | |
52 | 50 |
53 using blink::URLTestHelpers::toKURL; | 51 using blink::URLTestHelpers::toKURL; |
54 using blink::testing::runPendingTasks; | 52 using blink::testing::runPendingTasks; |
55 | 53 |
56 namespace blink { | 54 namespace blink { |
57 | 55 |
58 class AssociatedURLLoaderTest : public ::testing::Test, | 56 class AssociatedURLLoaderTest : public ::testing::Test, |
59 public WebURLLoaderClient { | 57 public WebURLLoaderClient { |
60 public: | 58 public: |
61 AssociatedURLLoaderTest() | 59 AssociatedURLLoaderTest() |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 { | 108 { |
111 Platform::current()->getURLLoaderMockFactory()->unregisterAllURLs(); | 109 Platform::current()->getURLLoaderMockFactory()->unregisterAllURLs(); |
112 WebCache::clear(); | 110 WebCache::clear(); |
113 } | 111 } |
114 | 112 |
115 void serveRequests() | 113 void serveRequests() |
116 { | 114 { |
117 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequest
s(); | 115 Platform::current()->getURLLoaderMockFactory()->serveAsynchronousRequest
s(); |
118 } | 116 } |
119 | 117 |
120 std::unique_ptr<WebURLLoader> createAssociatedURLLoader(const WebURLLoaderOp
tions options = WebURLLoaderOptions()) | 118 PassOwnPtr<WebURLLoader> createAssociatedURLLoader(const WebURLLoaderOptions
options = WebURLLoaderOptions()) |
121 { | 119 { |
122 return wrapUnique(mainFrame()->createAssociatedURLLoader(options)); | 120 return adoptPtr(mainFrame()->createAssociatedURLLoader(options)); |
123 } | 121 } |
124 | 122 |
125 // WebURLLoaderClient implementation. | 123 // WebURLLoaderClient implementation. |
126 void willFollowRedirect(WebURLLoader* loader, WebURLRequest& newRequest, con
st WebURLResponse& redirectResponse) override | 124 void willFollowRedirect(WebURLLoader* loader, WebURLRequest& newRequest, con
st WebURLResponse& redirectResponse) override |
127 { | 125 { |
128 m_willFollowRedirect = true; | 126 m_willFollowRedirect = true; |
129 EXPECT_EQ(m_expectedLoader.get(), loader); | 127 EXPECT_EQ(m_expectedLoader, loader); |
130 EXPECT_EQ(m_expectedNewRequest.url(), newRequest.url()); | 128 EXPECT_EQ(m_expectedNewRequest.url(), newRequest.url()); |
131 // Check that CORS simple headers are transferred to the new request. | 129 // Check that CORS simple headers are transferred to the new request. |
132 EXPECT_EQ(m_expectedNewRequest.httpHeaderField("accept"), newRequest.htt
pHeaderField("accept")); | 130 EXPECT_EQ(m_expectedNewRequest.httpHeaderField("accept"), newRequest.htt
pHeaderField("accept")); |
133 EXPECT_EQ(m_expectedRedirectResponse.url(), redirectResponse.url()); | 131 EXPECT_EQ(m_expectedRedirectResponse.url(), redirectResponse.url()); |
134 EXPECT_EQ(m_expectedRedirectResponse.httpStatusCode(), redirectResponse.
httpStatusCode()); | 132 EXPECT_EQ(m_expectedRedirectResponse.httpStatusCode(), redirectResponse.
httpStatusCode()); |
135 EXPECT_EQ(m_expectedRedirectResponse.mimeType(), redirectResponse.mimeTy
pe()); | 133 EXPECT_EQ(m_expectedRedirectResponse.mimeType(), redirectResponse.mimeTy
pe()); |
136 } | 134 } |
137 | 135 |
138 void didSendData(WebURLLoader* loader, unsigned long long bytesSent, unsigne
d long long totalBytesToBeSent) override | 136 void didSendData(WebURLLoader* loader, unsigned long long bytesSent, unsigne
d long long totalBytesToBeSent) override |
139 { | 137 { |
140 m_didSendData = true; | 138 m_didSendData = true; |
141 EXPECT_EQ(m_expectedLoader.get(), loader); | 139 EXPECT_EQ(m_expectedLoader, loader); |
142 } | 140 } |
143 | 141 |
144 void didReceiveResponse(WebURLLoader* loader, const WebURLResponse& response
) override | 142 void didReceiveResponse(WebURLLoader* loader, const WebURLResponse& response
) override |
145 { | 143 { |
146 m_didReceiveResponse = true; | 144 m_didReceiveResponse = true; |
147 m_actualResponse = WebURLResponse(response); | 145 m_actualResponse = WebURLResponse(response); |
148 EXPECT_EQ(m_expectedLoader.get(), loader); | 146 EXPECT_EQ(m_expectedLoader, loader); |
149 EXPECT_EQ(m_expectedResponse.url(), response.url()); | 147 EXPECT_EQ(m_expectedResponse.url(), response.url()); |
150 EXPECT_EQ(m_expectedResponse.httpStatusCode(), response.httpStatusCode()
); | 148 EXPECT_EQ(m_expectedResponse.httpStatusCode(), response.httpStatusCode()
); |
151 } | 149 } |
152 | 150 |
153 void didDownloadData(WebURLLoader* loader, int dataLength, int encodedDataLe
ngth) override | 151 void didDownloadData(WebURLLoader* loader, int dataLength, int encodedDataLe
ngth) override |
154 { | 152 { |
155 m_didDownloadData = true; | 153 m_didDownloadData = true; |
156 EXPECT_EQ(m_expectedLoader.get(), loader); | 154 EXPECT_EQ(m_expectedLoader, loader); |
157 } | 155 } |
158 | 156 |
159 void didReceiveData(WebURLLoader* loader, const char* data, int dataLength,
int encodedDataLength) override | 157 void didReceiveData(WebURLLoader* loader, const char* data, int dataLength,
int encodedDataLength) override |
160 { | 158 { |
161 m_didReceiveData = true; | 159 m_didReceiveData = true; |
162 EXPECT_EQ(m_expectedLoader.get(), loader); | 160 EXPECT_EQ(m_expectedLoader, loader); |
163 EXPECT_TRUE(data); | 161 EXPECT_TRUE(data); |
164 EXPECT_GT(dataLength, 0); | 162 EXPECT_GT(dataLength, 0); |
165 } | 163 } |
166 | 164 |
167 void didReceiveCachedMetadata(WebURLLoader* loader, const char* data, int da
taLength) override | 165 void didReceiveCachedMetadata(WebURLLoader* loader, const char* data, int da
taLength) override |
168 { | 166 { |
169 m_didReceiveCachedMetadata = true; | 167 m_didReceiveCachedMetadata = true; |
170 EXPECT_EQ(m_expectedLoader.get(), loader); | 168 EXPECT_EQ(m_expectedLoader, loader); |
171 } | 169 } |
172 | 170 |
173 void didFinishLoading(WebURLLoader* loader, double finishTime, int64_t encod
edDataLength) override | 171 void didFinishLoading(WebURLLoader* loader, double finishTime, int64_t encod
edDataLength) override |
174 { | 172 { |
175 m_didFinishLoading = true; | 173 m_didFinishLoading = true; |
176 EXPECT_EQ(m_expectedLoader.get(), loader); | 174 EXPECT_EQ(m_expectedLoader, loader); |
177 } | 175 } |
178 | 176 |
179 void didFail(WebURLLoader* loader, const WebURLError& error) override | 177 void didFail(WebURLLoader* loader, const WebURLError& error) override |
180 { | 178 { |
181 m_didFail = true; | 179 m_didFail = true; |
182 EXPECT_EQ(m_expectedLoader.get(), loader); | 180 EXPECT_EQ(m_expectedLoader, loader); |
183 } | 181 } |
184 | 182 |
185 void CheckMethodFails(const char* unsafeMethod) | 183 void CheckMethodFails(const char* unsafeMethod) |
186 { | 184 { |
187 WebURLRequest request; | 185 WebURLRequest request; |
188 request.initialize(); | 186 request.initialize(); |
189 request.setURL(toKURL("http://www.test.com/success.html")); | 187 request.setURL(toKURL("http://www.test.com/success.html")); |
190 request.setHTTPMethod(WebString::fromUTF8(unsafeMethod)); | 188 request.setHTTPMethod(WebString::fromUTF8(unsafeMethod)); |
191 WebURLLoaderOptions options; | 189 WebURLLoaderOptions options; |
192 options.untrustedHTTP = true; | 190 options.untrustedHTTP = true; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 return !m_actualResponse.httpHeaderField(headerNameString).isEmpty(); | 261 return !m_actualResponse.httpHeaderField(headerNameString).isEmpty(); |
264 } | 262 } |
265 | 263 |
266 WebFrame* mainFrame() const { return m_helper.webView()->mainFrame(); } | 264 WebFrame* mainFrame() const { return m_helper.webView()->mainFrame(); } |
267 | 265 |
268 protected: | 266 protected: |
269 String m_baseFilePath; | 267 String m_baseFilePath; |
270 String m_frameFilePath; | 268 String m_frameFilePath; |
271 FrameTestHelpers::WebViewHelper m_helper; | 269 FrameTestHelpers::WebViewHelper m_helper; |
272 | 270 |
273 std::unique_ptr<WebURLLoader> m_expectedLoader; | 271 OwnPtr<WebURLLoader> m_expectedLoader; |
274 WebURLResponse m_actualResponse; | 272 WebURLResponse m_actualResponse; |
275 WebURLResponse m_expectedResponse; | 273 WebURLResponse m_expectedResponse; |
276 WebURLRequest m_expectedNewRequest; | 274 WebURLRequest m_expectedNewRequest; |
277 WebURLResponse m_expectedRedirectResponse; | 275 WebURLResponse m_expectedRedirectResponse; |
278 bool m_willFollowRedirect; | 276 bool m_willFollowRedirect; |
279 bool m_didSendData; | 277 bool m_didSendData; |
280 bool m_didReceiveResponse; | 278 bool m_didReceiveResponse; |
281 bool m_didDownloadData; | 279 bool m_didDownloadData; |
282 bool m_didReceiveData; | 280 bool m_didReceiveData; |
283 bool m_didReceiveCachedMetadata; | 281 bool m_didReceiveCachedMetadata; |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
714 m_expectedLoader->loadAsynchronously(request, this); | 712 m_expectedLoader->loadAsynchronously(request, this); |
715 serveRequests(); | 713 serveRequests(); |
716 EXPECT_TRUE(m_didReceiveResponse); | 714 EXPECT_TRUE(m_didReceiveResponse); |
717 EXPECT_TRUE(m_didReceiveData); | 715 EXPECT_TRUE(m_didReceiveData); |
718 EXPECT_TRUE(m_didFinishLoading); | 716 EXPECT_TRUE(m_didFinishLoading); |
719 | 717 |
720 EXPECT_FALSE(m_actualResponse.httpHeaderField(headerNameString).isEmpty()); | 718 EXPECT_FALSE(m_actualResponse.httpHeaderField(headerNameString).isEmpty()); |
721 } | 719 } |
722 | 720 |
723 } // namespace blink | 721 } // namespace blink |
OLD | NEW |