summaryrefslogtreecommitdiffstats
path: root/chrome_frame/test/url_request_test.cc
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-08 15:36:17 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-08 15:36:17 +0000
commit1a5b2c24261882d1daeae97ffb3b5c9242c880d7 (patch)
treefd3ce3a73b586cb7974585e3e7c6859eebf4b228 /chrome_frame/test/url_request_test.cc
parente4369e0b28e037c5157b83ee92da5353339ba5f1 (diff)
downloadchromium_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.cc71
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) {