OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <atlbase.h> | 5 #include <atlbase.h> |
6 #include <atlcom.h> | 6 #include <atlcom.h> |
7 | 7 |
8 #include "base/win/scoped_com_initializer.h" | 8 #include "app/win/scoped_com_initializer.h" |
9 #include "chrome/common/automation_messages.h" | 9 #include "chrome/common/automation_messages.h" |
10 #include "chrome_frame/test/chrome_frame_test_utils.h" | 10 #include "chrome_frame/test/chrome_frame_test_utils.h" |
11 #include "chrome_frame/test/test_server.h" | 11 #include "chrome_frame/test/test_server.h" |
12 #include "chrome_frame/test/test_with_web_server.h" | 12 #include "chrome_frame/test/test_with_web_server.h" |
13 #include "chrome_frame/urlmon_url_request.h" | 13 #include "chrome_frame/urlmon_url_request.h" |
14 #include "chrome_frame/urlmon_url_request_private.h" | 14 #include "chrome_frame/urlmon_url_request_private.h" |
| 15 #include "testing/gmock_mutant.h" |
15 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
16 #include "testing/gmock_mutant.h" | |
17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
18 | 18 |
19 using testing::CreateFunctor; | 19 using testing::CreateFunctor; |
20 | 20 |
21 const int kChromeFrameLongNavigationTimeoutInSeconds = 10; | 21 const int kChromeFrameLongNavigationTimeoutInSeconds = 10; |
22 | 22 |
23 static void AppendToStream(IStream* s, void* buffer, ULONG cb) { | 23 static void AppendToStream(IStream* s, void* buffer, ULONG cb) { |
24 ULONG bytes_written; | 24 ULONG bytes_written; |
25 LARGE_INTEGER current_pos; | 25 LARGE_INTEGER current_pos; |
26 LARGE_INTEGER zero = {0}; | 26 LARGE_INTEGER zero = {0}; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 // Simplest UrlmonUrlRequest. Retrieve a file from local web server. | 68 // Simplest UrlmonUrlRequest. Retrieve a file from local web server. |
69 TEST(UrlmonUrlRequestTest, Simple1) { | 69 TEST(UrlmonUrlRequestTest, Simple1) { |
70 MockUrlDelegate mock; | 70 MockUrlDelegate mock; |
71 chrome_frame_test::TimedMsgLoop loop; | 71 chrome_frame_test::TimedMsgLoop loop; |
72 | 72 |
73 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", | 73 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", |
74 chrome_frame_test::GetTestDataFolder()); | 74 chrome_frame_test::GetTestDataFolder()); |
75 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); | 75 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); |
76 | 76 |
77 base::win::ScopedCOMInitializer init_com; | 77 app::win::ScopedCOMInitializer init_com; |
78 CComObjectStackEx<UrlmonUrlRequest> request; | 78 CComObjectStackEx<UrlmonUrlRequest> request; |
79 | 79 |
80 request.AddRef(); | 80 request.AddRef(); |
81 request.Initialize(&mock, 1, // request_id | 81 request.Initialize(&mock, 1, // request_id |
82 WideToUTF8(mock_server.Resolve(L"chrome_frame_window_open.html")), | 82 WideToUTF8(mock_server.Resolve(L"chrome_frame_window_open.html")), |
83 "get", | 83 "get", |
84 "", // referrer | 84 "", // referrer |
85 "", // extra request | 85 "", // extra request |
86 NULL, // upload data | 86 NULL, // upload data |
87 ResourceType::MAIN_FRAME, // resource type | 87 ResourceType::MAIN_FRAME, // resource type |
(...skipping 28 matching lines...) Expand all Loading... |
116 // from the server. | 116 // from the server. |
117 TEST(UrlmonUrlRequestTest, Head) { | 117 TEST(UrlmonUrlRequestTest, Head) { |
118 MockUrlDelegate mock; | 118 MockUrlDelegate mock; |
119 chrome_frame_test::TimedMsgLoop loop; | 119 chrome_frame_test::TimedMsgLoop loop; |
120 // Use SimpleWebServer instead of the python server to support HEAD | 120 // Use SimpleWebServer instead of the python server to support HEAD |
121 // requests. | 121 // requests. |
122 test_server::SimpleWebServer server(13337); | 122 test_server::SimpleWebServer server(13337); |
123 test_server::SimpleResponse head_response("/head", ""); | 123 test_server::SimpleResponse head_response("/head", ""); |
124 server.AddResponse(&head_response); | 124 server.AddResponse(&head_response); |
125 | 125 |
126 base::win::ScopedCOMInitializer init_com; | 126 app::win::ScopedCOMInitializer init_com; |
127 CComObjectStackEx<UrlmonUrlRequest> request; | 127 CComObjectStackEx<UrlmonUrlRequest> request; |
128 | 128 |
129 request.AddRef(); | 129 request.AddRef(); |
130 request.Initialize(&mock, 1, // request_id | 130 request.Initialize(&mock, 1, // request_id |
131 "http://localhost:13337/head", | 131 "http://localhost:13337/head", |
132 "head", | 132 "head", |
133 "", // referrer | 133 "", // referrer |
134 "", // extra request | 134 "", // extra request |
135 NULL, // upload data | 135 NULL, // upload data |
136 ResourceType::MAIN_FRAME, // resource type | 136 ResourceType::MAIN_FRAME, // resource type |
(...skipping 16 matching lines...) Expand all Loading... |
153 .WillOnce(QUIT_LOOP_SOON(loop, 2)); | 153 .WillOnce(QUIT_LOOP_SOON(loop, 2)); |
154 | 154 |
155 request.Start(); | 155 request.Start(); |
156 loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds); | 156 loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds); |
157 request.Release(); | 157 request.Release(); |
158 } | 158 } |
159 | 159 |
160 TEST(UrlmonUrlRequestTest, UnreachableUrl) { | 160 TEST(UrlmonUrlRequestTest, UnreachableUrl) { |
161 MockUrlDelegate mock; | 161 MockUrlDelegate mock; |
162 chrome_frame_test::TimedMsgLoop loop; | 162 chrome_frame_test::TimedMsgLoop loop; |
163 base::win::ScopedCOMInitializer init_com; | 163 app::win::ScopedCOMInitializer init_com; |
164 CComObjectStackEx<UrlmonUrlRequest> request; | 164 CComObjectStackEx<UrlmonUrlRequest> request; |
165 | 165 |
166 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", | 166 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", |
167 chrome_frame_test::GetTestDataFolder()); | 167 chrome_frame_test::GetTestDataFolder()); |
168 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); | 168 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); |
169 | 169 |
170 GURL unreachable(WideToUTF8(mock_server.Resolve( | 170 GURL unreachable(WideToUTF8(mock_server.Resolve( |
171 L"non_existing.html"))); | 171 L"non_existing.html"))); |
172 | 172 |
173 request.AddRef(); | 173 request.AddRef(); |
(...skipping 25 matching lines...) Expand all Loading... |
199 } | 199 } |
200 | 200 |
201 TEST(UrlmonUrlRequestTest, ZeroLengthResponse) { | 201 TEST(UrlmonUrlRequestTest, ZeroLengthResponse) { |
202 MockUrlDelegate mock; | 202 MockUrlDelegate mock; |
203 chrome_frame_test::TimedMsgLoop loop; | 203 chrome_frame_test::TimedMsgLoop loop; |
204 | 204 |
205 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", | 205 testing::StrictMock<MockWebServer> mock_server(1337, L"127.0.0.1", |
206 chrome_frame_test::GetTestDataFolder()); | 206 chrome_frame_test::GetTestDataFolder()); |
207 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); | 207 mock_server.ExpectAndServeAnyRequests(CFInvocation(CFInvocation::NONE)); |
208 | 208 |
209 base::win::ScopedCOMInitializer init_com; | 209 app::win::ScopedCOMInitializer init_com; |
210 CComObjectStackEx<UrlmonUrlRequest> request; | 210 CComObjectStackEx<UrlmonUrlRequest> request; |
211 | 211 |
212 request.AddRef(); | 212 request.AddRef(); |
213 request.Initialize(&mock, 1, // request_id | 213 request.Initialize(&mock, 1, // request_id |
214 WideToUTF8(mock_server.Resolve(L"empty.html")), "get", | 214 WideToUTF8(mock_server.Resolve(L"empty.html")), "get", |
215 "", // referrer | 215 "", // referrer |
216 "", // extra request | 216 "", // extra request |
217 NULL, // upload data | 217 NULL, // upload data |
218 ResourceType::MAIN_FRAME, // resource type | 218 ResourceType::MAIN_FRAME, // resource type |
219 true, | 219 true, |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 EXPECT_CALL(mock, OnReadComplete(1, testing::_)) | 311 EXPECT_CALL(mock, OnReadComplete(1, testing::_)) |
312 .Times(0); | 312 .Times(0); |
313 | 313 |
314 EXPECT_CALL(mock, OnResponseEnd(1, testing::_)) | 314 EXPECT_CALL(mock, OnResponseEnd(1, testing::_)) |
315 .Times(0); | 315 .Times(0); |
316 | 316 |
317 mgr->StartUrlRequest(1, r1); | 317 mgr->StartUrlRequest(1, r1); |
318 loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds); | 318 loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds); |
319 mgr.reset(); | 319 mgr.reset(); |
320 } | 320 } |
OLD | NEW |