| Index: net/http/http_network_transaction_unittest.cc
|
| diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
|
| index 7846028187a746511d5ad2cb339f436955757dcc..844e344851bddc76ae7df09694ddff626044072a 100644
|
| --- a/net/http/http_network_transaction_unittest.cc
|
| +++ b/net/http/http_network_transaction_unittest.cc
|
| @@ -7724,25 +7724,12 @@ TEST_P(HttpNetworkTransactionTest, UploadUnreadableFile) {
|
| request.upload_data_stream = &upload_data_stream;
|
| request.load_flags = 0;
|
|
|
| - // If we try to upload an unreadable file, the network stack should report
|
| - // the file size as zero and upload zero bytes for that file.
|
| + // If we try to upload an unreadable file, the transaction should fail.
|
| scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| scoped_ptr<HttpTransaction> trans(
|
| new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
|
|
| - MockRead data_reads[] = {
|
| - MockRead("HTTP/1.0 200 OK\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - MockWrite data_writes[] = {
|
| - MockWrite("POST /upload HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, OK),
|
| - };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| + StaticSocketDataProvider data(NULL, 0, NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
|
|
| TestCompletionCallback callback;
|
| @@ -7751,103 +7738,10 @@ TEST_P(HttpNetworkTransactionTest, UploadUnreadableFile) {
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| rv = callback.WaitForResult();
|
| - EXPECT_EQ(OK, rv);
|
| + EXPECT_EQ(ERR_ACCESS_DENIED, rv);
|
|
|
| const HttpResponseInfo* response = trans->GetResponseInfo();
|
| - ASSERT_TRUE(response != NULL);
|
| - EXPECT_TRUE(response->headers.get() != NULL);
|
| - EXPECT_EQ("HTTP/1.0 200 OK", response->headers->GetStatusLine());
|
| -
|
| - base::DeleteFile(temp_file, false);
|
| -}
|
| -
|
| -TEST_P(HttpNetworkTransactionTest, UnreadableUploadFileAfterAuthRestart) {
|
| - base::FilePath temp_file;
|
| - ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file));
|
| - std::string temp_file_contents("Unreadable file.");
|
| - std::string unreadable_contents(temp_file_contents.length(), '\0');
|
| - ASSERT_TRUE(file_util::WriteFile(temp_file, temp_file_contents.c_str(),
|
| - temp_file_contents.length()));
|
| -
|
| - ScopedVector<UploadElementReader> element_readers;
|
| - element_readers.push_back(
|
| - new UploadFileElementReader(base::MessageLoopProxy::current().get(),
|
| - temp_file,
|
| - 0,
|
| - kuint64max,
|
| - base::Time()));
|
| - UploadDataStream upload_data_stream(element_readers.Pass(), 0);
|
| -
|
| - HttpRequestInfo request;
|
| - request.method = "POST";
|
| - request.url = GURL("http://www.google.com/upload");
|
| - request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
| -
|
| - scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| - scoped_ptr<HttpTransaction> trans(
|
| - new HttpNetworkTransaction(DEFAULT_PRIORITY, session));
|
| -
|
| - MockRead data_reads[] = {
|
| - MockRead("HTTP/1.1 401 Unauthorized\r\n"),
|
| - MockRead("WWW-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"), // No response body.
|
| -
|
| - MockRead("HTTP/1.1 200 OK\r\n"),
|
| - MockRead("Content-Length: 0\r\n\r\n"),
|
| - MockRead(SYNCHRONOUS, OK),
|
| - };
|
| - MockWrite data_writes[] = {
|
| - MockWrite("POST /upload HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 16\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, temp_file_contents.c_str()),
|
| -
|
| - MockWrite("POST /upload HTTP/1.1\r\n"
|
| - "Host: www.google.com\r\n"
|
| - "Connection: keep-alive\r\n"
|
| - "Content-Length: 0\r\n"
|
| - "Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
|
| - MockWrite(SYNCHRONOUS, unreadable_contents.c_str(),
|
| - temp_file_contents.length()),
|
| - MockWrite(SYNCHRONOUS, OK),
|
| - };
|
| - StaticSocketDataProvider data(data_reads, arraysize(data_reads), data_writes,
|
| - arraysize(data_writes));
|
| - session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| -
|
| - TestCompletionCallback callback1;
|
| -
|
| - int rv = trans->Start(&request, callback1.callback(), BoundNetLog());
|
| - EXPECT_EQ(ERR_IO_PENDING, rv);
|
| -
|
| - rv = callback1.WaitForResult();
|
| - EXPECT_EQ(OK, rv);
|
| -
|
| - const HttpResponseInfo* response = trans->GetResponseInfo();
|
| - ASSERT_TRUE(response != NULL);
|
| - ASSERT_TRUE(response->headers.get() != NULL);
|
| - EXPECT_EQ("HTTP/1.1 401 Unauthorized", response->headers->GetStatusLine());
|
| - EXPECT_TRUE(CheckBasicServerAuth(response->auth_challenge.get()));
|
| -
|
| - // Now make the file unreadable and try again.
|
| - ASSERT_TRUE(file_util::MakeFileUnreadable(temp_file));
|
| -
|
| - TestCompletionCallback callback2;
|
| -
|
| - rv = trans->RestartWithAuth(
|
| - AuthCredentials(kFoo, kBar), callback2.callback());
|
| - EXPECT_EQ(ERR_IO_PENDING, rv);
|
| -
|
| - rv = callback2.WaitForResult();
|
| - EXPECT_EQ(OK, rv);
|
| -
|
| - response = trans->GetResponseInfo();
|
| - ASSERT_TRUE(response != NULL);
|
| - EXPECT_TRUE(response->headers.get() != NULL);
|
| - EXPECT_TRUE(response->auth_challenge.get() == NULL);
|
| - EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
|
| + EXPECT_FALSE(response);
|
|
|
| base::DeleteFile(temp_file, false);
|
| }
|
|
|