Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: net/url_request/url_request_unittest.cc

Issue 39203004: [Net] Fix error handling on wrong file in UploadData (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif 10 #endif
(...skipping 4454 matching lines...) Expand 10 before | Expand all | Expand 10 after
4465 path = path.Append(FILE_PATH_LITERAL("net")); 4465 path = path.Append(FILE_PATH_LITERAL("net"));
4466 path = path.Append(FILE_PATH_LITERAL("data")); 4466 path = path.Append(FILE_PATH_LITERAL("data"));
4467 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); 4467 path = path.Append(FILE_PATH_LITERAL("url_request_unittest"));
4468 path = path.Append(FILE_PATH_LITERAL("with-headers.html")); 4468 path = path.Append(FILE_PATH_LITERAL("with-headers.html"));
4469 element_readers.push_back( 4469 element_readers.push_back(
4470 new UploadFileElementReader(base::MessageLoopProxy::current().get(), 4470 new UploadFileElementReader(base::MessageLoopProxy::current().get(),
4471 path, 4471 path,
4472 0, 4472 0,
4473 kuint64max, 4473 kuint64max,
4474 base::Time())); 4474 base::Time()));
4475
4476 // This file should just be ignored in the upload stream.
4477 element_readers.push_back(new UploadFileElementReader(
4478 base::MessageLoopProxy::current().get(),
4479 base::FilePath(FILE_PATH_LITERAL(
4480 "c:\\path\\to\\non\\existant\\file.randomness.12345")),
4481 0,
4482 kuint64max,
4483 base::Time()));
4484 r.set_upload(make_scoped_ptr( 4475 r.set_upload(make_scoped_ptr(
4485 new UploadDataStream(element_readers.Pass(), 0))); 4476 new UploadDataStream(element_readers.Pass(), 0)));
4486 4477
4487 r.Start(); 4478 r.Start();
4488 EXPECT_TRUE(r.is_pending()); 4479 EXPECT_TRUE(r.is_pending());
4489 4480
4490 base::RunLoop().Run(); 4481 base::RunLoop().Run();
4491 4482
4492 int64 size = 0; 4483 int64 size = 0;
4493 ASSERT_EQ(true, file_util::GetFileSize(path, &size)); 4484 ASSERT_EQ(true, file_util::GetFileSize(path, &size));
4494 scoped_ptr<char[]> buf(new char[size]); 4485 scoped_ptr<char[]> buf(new char[size]);
4495 4486
4496 ASSERT_EQ(size, file_util::ReadFile(path, buf.get(), size)); 4487 ASSERT_EQ(size, file_util::ReadFile(path, buf.get(), size));
4497 4488
4498 ASSERT_EQ(1, d.response_started_count()) 4489 ASSERT_EQ(1, d.response_started_count())
4499 << "request failed: " << r.status().status() 4490 << "request failed: " << r.status().status()
4500 << ", error: " << r.status().error(); 4491 << ", error: " << r.status().error();
4501 4492
4502 EXPECT_FALSE(d.received_data_before_response()); 4493 EXPECT_FALSE(d.received_data_before_response());
4503 4494
4504 EXPECT_EQ(size, d.bytes_received()); 4495 EXPECT_EQ(size, d.bytes_received());
4505 EXPECT_EQ(std::string(&buf[0], size), d.data_received()); 4496 EXPECT_EQ(std::string(&buf[0], size), d.data_received());
4506 } 4497 }
4507 } 4498 }
4508 4499
4500 TEST_F(URLRequestTestHTTP, PostUnreadableFileTest) {
4501 ASSERT_TRUE(test_server_.Start());
4502
4503 TestDelegate d;
4504 {
4505 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_);
4506 r.set_method("POST");
4507
4508 base::FilePath dir;
4509 PathService::Get(base::DIR_EXE, &dir);
4510 file_util::SetCurrentDirectory(dir);
4511
4512 ScopedVector<UploadElementReader> element_readers;
4513
4514 element_readers.push_back(new UploadFileElementReader(
4515 base::MessageLoopProxy::current().get(),
4516 base::FilePath(FILE_PATH_LITERAL(
4517 "c:\\path\\to\\non\\existant\\file.randomness.12345")),
4518 0,
4519 kuint64max,
4520 base::Time()));
4521 r.set_upload(make_scoped_ptr(
4522 new UploadDataStream(element_readers.Pass(), 0)));
4523
4524 r.Start();
4525 EXPECT_TRUE(r.is_pending());
4526
4527 base::RunLoop().Run();
4528
4529 EXPECT_TRUE(d.request_failed());
4530 EXPECT_FALSE(d.received_data_before_response());
4531 EXPECT_EQ(0, d.bytes_received());
4532 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
4533 EXPECT_EQ(ERR_FILE_NOT_FOUND, r.status().error());
4534 }
4535 }
4536
4509 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) { 4537 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) {
4510 ASSERT_TRUE(test_server_.Start()); 4538 ASSERT_TRUE(test_server_.Start());
4511 4539
4512 TestDelegate d; 4540 TestDelegate d;
4513 { 4541 {
4514 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); 4542 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_);
4515 r.EnableChunkedUpload(); 4543 r.EnableChunkedUpload();
4516 r.set_method("POST"); 4544 r.set_method("POST");
4517 AddChunksToUpload(&r); 4545 AddChunksToUpload(&r);
4518 r.Start(); 4546 r.Start();
(...skipping 2447 matching lines...) Expand 10 before | Expand all | Expand 10 after
6966 6994
6967 EXPECT_FALSE(r.is_pending()); 6995 EXPECT_FALSE(r.is_pending());
6968 EXPECT_EQ(1, d->response_started_count()); 6996 EXPECT_EQ(1, d->response_started_count());
6969 EXPECT_FALSE(d->received_data_before_response()); 6997 EXPECT_FALSE(d->received_data_before_response());
6970 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); 6998 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
6971 } 6999 }
6972 } 7000 }
6973 #endif // !defined(DISABLE_FTP_SUPPORT) 7001 #endif // !defined(DISABLE_FTP_SUPPORT)
6974 7002
6975 } // namespace net 7003 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698