| 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 |