diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-08 15:36:17 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-08 15:36:17 +0000 |
commit | 1a5b2c24261882d1daeae97ffb3b5c9242c880d7 (patch) | |
tree | fd3ce3a73b586cb7974585e3e7c6859eebf4b228 /chrome_frame/test/url_request_test.cc | |
parent | e4369e0b28e037c5157b83ee92da5353339ba5f1 (diff) | |
download | chromium_src-1a5b2c24261882d1daeae97ffb3b5c9242c880d7.zip chromium_src-1a5b2c24261882d1daeae97ffb3b5c9242c880d7.tar.gz chromium_src-1a5b2c24261882d1daeae97ffb3b5c9242c880d7.tar.bz2 |
This change consists of the previous change in addition to a fix for the download issue.
See also:
http://codereview.chromium.org/1718025 (initial change)
http://codereview.chromium.org/1829001 (fix for Head test)
http://codereview.chromium.org/1887001 (fix for download issue)
TEST=Monitor the Chrome Frame IE6 build bot for flakiness. Particularly the net tests.
BUG=none
Review URL: http://codereview.chromium.org/1821001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46790 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test/url_request_test.cc')
-rw-r--r-- | chrome_frame/test/url_request_test.cc | 71 |
1 files changed, 9 insertions, 62 deletions
diff --git a/chrome_frame/test/url_request_test.cc b/chrome_frame/test/url_request_test.cc index 35f0f81..235b227 100644 --- a/chrome_frame/test/url_request_test.cc +++ b/chrome_frame/test/url_request_test.cc @@ -3,7 +3,9 @@ // found in the LICENSE file. #include <atlbase.h> #include <atlcom.h> + #include "app/win_util.h" +#include "chrome_frame/test/test_server.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock_mutant.h" @@ -31,63 +33,6 @@ static void AppendToStream(IStream* s, void* buffer, ULONG cb) { ASSERT_HRESULT_SUCCEEDED(s->Seek(current_pos, STREAM_SEEK_SET, NULL)); } -TEST(UrlmonUrlRequestCache, ReadWrite) { - UrlmonUrlRequest::Cache cache; - ScopedComPtr<IStream> stream; - ASSERT_HRESULT_SUCCEEDED(::CreateStreamOnHGlobal(0, TRUE, stream.Receive())); - cache.Append(stream); - ASSERT_EQ(0, cache.size()); - size_t bytes_read; - const size_t BUF_SIZE = UrlmonUrlRequest::Cache::BUF_SIZE; - scoped_array<uint8> buffer(new uint8[BUF_SIZE * 2]); - - AppendToStream(stream, "hello", 5u); - ASSERT_TRUE(cache.Append(stream)); - ASSERT_HRESULT_SUCCEEDED(cache.Read(buffer.get(), 2u, &bytes_read)); - ASSERT_EQ(2, bytes_read); - ASSERT_EQ('h', buffer[0]); - ASSERT_EQ('e', buffer[1]); - - AppendToStream(stream, "world\0", 6u); - ASSERT_TRUE(cache.Append(stream)); - ASSERT_HRESULT_SUCCEEDED(cache.Read(buffer.get(), 1u, &bytes_read)); - ASSERT_EQ(1, bytes_read); - ASSERT_EQ('l', buffer[0]); - ASSERT_HRESULT_SUCCEEDED(cache.Read(buffer.get(), 100u, &bytes_read)); - ASSERT_EQ(8, bytes_read); - ASSERT_STREQ("loworld", (const char*)buffer.get()); - - memset(buffer.get(), '1', BUF_SIZE / 2); - AppendToStream(stream, buffer.get(), BUF_SIZE / 2); - cache.Append(stream); - memset(buffer.get(), '2', BUF_SIZE); - AppendToStream(stream, buffer.get(), BUF_SIZE); - memset(buffer.get(), '3', BUF_SIZE * 3 / 4); - AppendToStream(stream, buffer.get(), BUF_SIZE * 3 / 4); - cache.Append(stream); - - cache.Read(buffer.get(), BUF_SIZE / 2, &bytes_read); - ASSERT_EQ(BUF_SIZE / 2, bytes_read); - ASSERT_EQ('1', buffer[0]); - ASSERT_EQ('1', buffer[BUF_SIZE / 4]); - ASSERT_EQ('1', buffer[BUF_SIZE /2 - 1]); - - cache.Read(buffer.get(), BUF_SIZE, &bytes_read); - ASSERT_EQ(BUF_SIZE, bytes_read); - ASSERT_EQ('2', buffer[0]); - ASSERT_EQ('2', buffer[BUF_SIZE /2]); - ASSERT_EQ('2', buffer[BUF_SIZE - 1]); - - cache.Read(buffer.get(), BUF_SIZE * 3 / 4, &bytes_read); - ASSERT_EQ(BUF_SIZE * 3 / 4, bytes_read); - ASSERT_EQ('3', buffer[0]); - ASSERT_EQ('3', buffer[BUF_SIZE / 2]); - ASSERT_EQ('3', buffer[BUF_SIZE * 3 / 4 - 1]); - cache.Read(buffer.get(), 11, &bytes_read); - ASSERT_EQ(0, bytes_read); -} - - class MockUrlDelegate : public PluginUrlRequestDelegate { public: MOCK_METHOD7(OnResponseStarted, void(int request_id, const char* mime_type, @@ -163,15 +108,19 @@ TEST(UrlmonUrlRequestTest, Simple1) { // from the server. TEST(UrlmonUrlRequestTest, Head) { MockUrlDelegate mock; - ChromeFrameHTTPServer server; chrome_frame_test::TimedMsgLoop loop; + // Use SimpleWebServer instead of the python server to support HEAD + // requests. + test_server::SimpleWebServer server(13337); + test_server::SimpleResponse head_response("/head", ""); + server.AddResponse(&head_response); + win_util::ScopedCOMInitializer init_com; CComObjectStackEx<UrlmonUrlRequest> request; - server.SetUp(); request.AddRef(); request.Initialize(&mock, 1, // request_id - server.Resolve(L"files/chrome_frame_window_open.html").spec(), + "http://localhost:13337/head", "head", "", // referrer "", // extra request @@ -185,7 +134,6 @@ TEST(UrlmonUrlRequestTest, Head) { .WillOnce(testing::IgnoreResult(testing::InvokeWithoutArgs(CreateFunctor( &request, &UrlmonUrlRequest::Read, 512)))); - // For HEAD requests we don't expect content reads. EXPECT_CALL(mock, OnReadComplete(1, testing::_)).Times(0); @@ -196,7 +144,6 @@ TEST(UrlmonUrlRequestTest, Head) { request.Start(); loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds); request.Release(); - server.TearDown(); } TEST(UrlmonUrlRequestTest, UnreachableUrl) { |