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

Side by Side Diff: chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc

Issue 14197014: Add TestBrowserThreadBundle into RenderViewHostTestHarness. Kill some unnecessary real threads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: compile fixes. Created 7 years, 6 months 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/chromeos/drive/drive_url_request_job.h" 5 #include "chrome/browser/chromeos/drive/drive_url_request_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/sequenced_task_runner.h" 10 #include "base/sequenced_task_runner.h"
11 #include "base/threading/sequenced_worker_pool.h" 11 #include "base/threading/sequenced_worker_pool.h"
12 #include "base/threading/thread.h" 12 #include "base/threading/thread.h"
13 #include "chrome/browser/chromeos/drive/drive_file_stream_reader.h" 13 #include "chrome/browser/chromeos/drive/drive_file_stream_reader.h"
14 #include "chrome/browser/chromeos/drive/fake_file_system.h" 14 #include "chrome/browser/chromeos/drive/fake_file_system.h"
15 #include "chrome/browser/chromeos/drive/file_system_util.h" 15 #include "chrome/browser/chromeos/drive/file_system_util.h"
16 #include "chrome/browser/chromeos/drive/test_util.h" 16 #include "chrome/browser/chromeos/drive/test_util.h"
17 #include "chrome/browser/google_apis/fake_drive_service.h" 17 #include "chrome/browser/google_apis/fake_drive_service.h"
18 #include "chrome/browser/google_apis/task_util.h" 18 #include "chrome/browser/google_apis/task_util.h"
19 #include "chrome/browser/google_apis/test_util.h" 19 #include "chrome/browser/google_apis/test_util.h"
20 #include "chrome/common/url_constants.h" 20 #include "chrome/common/url_constants.h"
21 #include "content/public/test/test_browser_thread.h" 21 #include "content/public/test/test_browser_thread_bundle.h"
22 #include "googleurl/src/gurl.h" 22 #include "googleurl/src/gurl.h"
23 #include "net/base/test_completion_callback.h" 23 #include "net/base/test_completion_callback.h"
24 #include "net/http/http_byte_range.h" 24 #include "net/http/http_byte_range.h"
25 #include "net/url_request/url_request_test_util.h" 25 #include "net/url_request/url_request_test_util.h"
26 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
27 27
28 using content::BrowserThread; 28 using content::BrowserThread;
29 29
30 namespace drive { 30 namespace drive {
31 namespace { 31 namespace {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 private: 89 private:
90 GURL redirect_url_; 90 GURL redirect_url_;
91 91
92 DISALLOW_COPY_AND_ASSIGN(TestDelegate); 92 DISALLOW_COPY_AND_ASSIGN(TestDelegate);
93 }; 93 };
94 94
95 } // namespace 95 } // namespace
96 96
97 class DriveURLRequestJobTest : public testing::Test { 97 class DriveURLRequestJobTest : public testing::Test {
98 protected: 98 protected:
99 DriveURLRequestJobTest() : ui_thread_(BrowserThread::UI), 99 DriveURLRequestJobTest()
100 io_thread_(BrowserThread::IO, &message_loop_) { 100 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {
101 } 101 }
102 102
103 virtual ~DriveURLRequestJobTest() { 103 virtual ~DriveURLRequestJobTest() {
104 } 104 }
105 105
106 virtual void SetUp() OVERRIDE { 106 virtual void SetUp() OVERRIDE {
107 ui_thread_.Start(); 107 // Initialize FakeDriveService.
108 fake_drive_service_.reset(new google_apis::FakeDriveService);
109 ASSERT_TRUE(fake_drive_service_->LoadResourceListForWapi(
110 "chromeos/gdata/root_feed.json"));
111 ASSERT_TRUE(fake_drive_service_->LoadAccountMetadataForWapi(
112 "chromeos/gdata/account_metadata.json"));
108 113
109 BrowserThread::PostTaskAndReply( 114 // Initialize FakeFileSystem.
110 BrowserThread::UI, 115 fake_file_system_.reset(
111 FROM_HERE, 116 new test_util::FakeFileSystem(fake_drive_service_.get()));
112 base::Bind(&DriveURLRequestJobTest::SetUpOnUIThread, 117 ASSERT_TRUE(fake_file_system_->InitializeForTesting());
113 base::Unretained(this)),
114 base::MessageLoop::QuitClosure());
115 message_loop_.Run();
116 118
117 scoped_refptr<base::SequencedWorkerPool> blocking_pool = 119 scoped_refptr<base::SequencedWorkerPool> blocking_pool =
118 BrowserThread::GetBlockingPool(); 120 BrowserThread::GetBlockingPool();
119 test_network_delegate_.reset(new net::TestNetworkDelegate); 121 test_network_delegate_.reset(new net::TestNetworkDelegate);
120 test_url_request_job_factory_.reset(new TestURLRequestJobFactory( 122 test_url_request_job_factory_.reset(new TestURLRequestJobFactory(
121 base::Bind(&DriveURLRequestJobTest::GetFileSystem, 123 base::Bind(&DriveURLRequestJobTest::GetFileSystem,
122 base::Unretained(this)), 124 base::Unretained(this)),
123 blocking_pool->GetSequencedTaskRunner( 125 blocking_pool->GetSequencedTaskRunner(
124 blocking_pool->GetSequenceToken()))); 126 blocking_pool->GetSequenceToken())));
125 url_request_context_.reset(new net::URLRequestContext()); 127 url_request_context_.reset(new net::URLRequestContext());
126 url_request_context_->set_job_factory(test_url_request_job_factory_.get()); 128 url_request_context_->set_job_factory(test_url_request_job_factory_.get());
127 url_request_context_->set_network_delegate(test_network_delegate_.get()); 129 url_request_context_->set_network_delegate(test_network_delegate_.get());
128 test_delegate_.reset(new TestDelegate); 130 test_delegate_.reset(new TestDelegate);
129 } 131 }
130 132
131 virtual void TearDown() OVERRIDE { 133 virtual void TearDown() OVERRIDE {
132 test_delegate_.reset(); 134 test_delegate_.reset();
133 url_request_context_.reset(); 135 url_request_context_.reset();
134 test_url_request_job_factory_.reset(); 136 test_url_request_job_factory_.reset();
135 test_network_delegate_.reset(); 137 test_network_delegate_.reset();
136 138
137 BrowserThread::PostTaskAndReply(
138 BrowserThread::UI,
139 FROM_HERE,
140 base::Bind(&DriveURLRequestJobTest::TearDownOnUIThread,
141 base::Unretained(this)),
142 base::MessageLoop::QuitClosure());
143 message_loop_.Run();
144 }
145
146 void SetUpOnUIThread() {
147 // Initialize FakeDriveService.
148 fake_drive_service_.reset(new google_apis::FakeDriveService);
149 ASSERT_TRUE(fake_drive_service_->LoadResourceListForWapi(
150 "chromeos/gdata/root_feed.json"));
151 ASSERT_TRUE(fake_drive_service_->LoadAccountMetadataForWapi(
152 "chromeos/gdata/account_metadata.json"));
153
154 // Initialize FakeFileSystem.
155 fake_file_system_.reset(
156 new test_util::FakeFileSystem(fake_drive_service_.get()));
157 ASSERT_TRUE(fake_file_system_->InitializeForTesting());
158 }
159
160 void TearDownOnUIThread() {
161 fake_file_system_.reset(); 139 fake_file_system_.reset();
162 fake_drive_service_.reset(); 140 fake_drive_service_.reset();
163 } 141 }
164 142
165 FileSystemInterface* GetFileSystem() { 143 FileSystemInterface* GetFileSystem() {
166 return fake_file_system_.get(); 144 return fake_file_system_.get();
167 } 145 }
168 146
169 bool ReadDriveFileSync( 147 bool ReadDriveFileSync(
170 const base::FilePath& file_path, std::string* out_content) { 148 const base::FilePath& file_path, std::string* out_content) {
(...skipping 24 matching lines...) Expand all
195 if (test_util::ReadAllData(reader.get(), &content) != net::OK) 173 if (test_util::ReadAllData(reader.get(), &content) != net::OK)
196 return false; 174 return false;
197 175
198 if (static_cast<size_t>(entry->file_info().size()) != content.size()) 176 if (static_cast<size_t>(entry->file_info().size()) != content.size())
199 return false; 177 return false;
200 178
201 *out_content = content; 179 *out_content = content;
202 return true; 180 return true;
203 } 181 }
204 182
205 base::MessageLoopForIO message_loop_; 183 content::TestBrowserThreadBundle thread_bundle_;
206 content::TestBrowserThread ui_thread_;
207 content::TestBrowserThread io_thread_;
208 184
209 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_; 185 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_;
210 scoped_ptr<test_util::FakeFileSystem> fake_file_system_; 186 scoped_ptr<test_util::FakeFileSystem> fake_file_system_;
211 187
212 scoped_ptr<net::TestNetworkDelegate> test_network_delegate_; 188 scoped_ptr<net::TestNetworkDelegate> test_network_delegate_;
213 scoped_ptr<TestURLRequestJobFactory> test_url_request_job_factory_; 189 scoped_ptr<TestURLRequestJobFactory> test_url_request_job_factory_;
214 scoped_ptr<net::URLRequestContext> url_request_context_; 190 scoped_ptr<net::URLRequestContext> url_request_context_;
215 scoped_ptr<TestDelegate> test_delegate_; 191 scoped_ptr<TestDelegate> test_delegate_;
216 }; 192 };
217 193
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 "Range", "Wrong Range Header Value", false /* overwrite */); 369 "Range", "Wrong Range Header Value", false /* overwrite */);
394 request.Start(); 370 request.Start();
395 371
396 base::MessageLoop::current()->Run(); 372 base::MessageLoop::current()->Run();
397 373
398 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 374 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
399 EXPECT_EQ(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE, request.status().error()); 375 EXPECT_EQ(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE, request.status().error());
400 } 376 }
401 377
402 } // namespace drive 378 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698