| Index: net/url_request/url_fetcher_impl_unittest.cc
|
| diff --git a/net/url_request/url_fetcher_impl_unittest.cc b/net/url_request/url_fetcher_impl_unittest.cc
|
| index c8cbd1ac6f6c4389c8f52a4c74b338569a0434f7..79bde230ae37b5b636347d8dcc1ac6a1246a55fe 100644
|
| --- a/net/url_request/url_fetcher_impl_unittest.cc
|
| +++ b/net/url_request/url_fetcher_impl_unittest.cc
|
| @@ -243,6 +243,11 @@ class URLFetcherPostFileTest : public URLFetcherTest {
|
| public:
|
| URLFetcherPostFileTest();
|
|
|
| + void SetUploadRange(uint64 range_offset, uint64 range_length) {
|
| + range_offset_ = range_offset;
|
| + range_length_ = range_length;
|
| + }
|
| +
|
| // URLFetcherTest:
|
| virtual void CreateFetcher(const GURL& url) OVERRIDE;
|
|
|
| @@ -251,6 +256,8 @@ class URLFetcherPostFileTest : public URLFetcherTest {
|
|
|
| private:
|
| base::FilePath path_;
|
| + uint64 range_offset_;
|
| + uint64 range_length_;
|
| };
|
|
|
| // Version of URLFetcherTest that does a POST instead with empty upload body
|
| @@ -524,7 +531,9 @@ void URLFetcherPostTest::OnURLFetchComplete(const URLFetcher* source) {
|
| URLFetcherTest::OnURLFetchComplete(source);
|
| }
|
|
|
| -URLFetcherPostFileTest::URLFetcherPostFileTest() {
|
| +URLFetcherPostFileTest::URLFetcherPostFileTest()
|
| + : range_offset_(0),
|
| + range_length_(kuint64max) {
|
| PathService::Get(base::DIR_SOURCE_ROOT, &path_);
|
| path_ = path_.Append(FILE_PATH_LITERAL("net"));
|
| path_ = path_.Append(FILE_PATH_LITERAL("data"));
|
| @@ -538,19 +547,22 @@ void URLFetcherPostFileTest::CreateFetcher(const GURL& url) {
|
| io_message_loop_proxy(), request_context()));
|
| fetcher_->SetUploadFilePath("application/x-www-form-urlencoded",
|
| path_,
|
| + range_offset_,
|
| + range_length_,
|
| base::MessageLoopProxy::current());
|
| fetcher_->Start();
|
| }
|
|
|
| void URLFetcherPostFileTest::OnURLFetchComplete(const URLFetcher* source) {
|
| - int64 size = 0;
|
| - ASSERT_EQ(true, file_util::GetFileSize(path_, &size));
|
| - scoped_ptr<char[]> expected(new char[size]);
|
| - ASSERT_EQ(size, file_util::ReadFile(path_, expected.get(), size));
|
| + std::string expected;
|
| + ASSERT_TRUE(file_util::ReadFileToString(path_, &expected));
|
| + ASSERT_LE(range_offset_, expected.size());
|
| + size_t expected_size = std::min(static_cast<size_t>(range_length_),
|
| + expected.size() - range_offset_);
|
|
|
| std::string data;
|
| EXPECT_TRUE(source->GetResponseAsString(&data));
|
| - EXPECT_EQ(std::string(&expected[0], size), data);
|
| + EXPECT_EQ(expected.substr(range_offset_, expected_size), data);
|
| URLFetcherTest::OnURLFetchComplete(source);
|
| }
|
|
|
| @@ -1063,6 +1075,18 @@ TEST_F(URLFetcherPostFileTest, Basic) {
|
| MessageLoop::current()->Run();
|
| }
|
|
|
| +TEST_F(URLFetcherPostFileTest, Range) {
|
| + TestServer test_server(TestServer::TYPE_HTTP,
|
| + TestServer::kLocalhost,
|
| + base::FilePath(kDocRoot));
|
| + ASSERT_TRUE(test_server.Start());
|
| +
|
| + SetUploadRange(30, 100);
|
| +
|
| + CreateFetcher(test_server.GetURL("echo"));
|
| + MessageLoop::current()->Run();
|
| +}
|
| +
|
| TEST_F(URLFetcherEmptyPostTest, Basic) {
|
| TestServer test_server(TestServer::TYPE_HTTP,
|
| TestServer::kLocalhost,
|
|
|