OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/location.h" |
6 #include "base/md5.h" | 7 #include "base/md5.h" |
7 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
8 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
10 #include "base/message_loop/message_loop_proxy.h" | 11 #include "base/single_thread_task_runner.h" |
11 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 13 #include "base/thread_task_runner_handle.h" |
12 #include "chrome/common/cloud_print/cloud_print_constants.h" | 14 #include "chrome/common/cloud_print/cloud_print_constants.h" |
13 #include "chrome/service/cloud_print/cloud_print_service_helpers.h" | 15 #include "chrome/service/cloud_print/cloud_print_service_helpers.h" |
14 #include "chrome/service/cloud_print/cloud_print_token_store.h" | 16 #include "chrome/service/cloud_print/cloud_print_token_store.h" |
15 #include "chrome/service/cloud_print/print_system.h" | 17 #include "chrome/service/cloud_print/print_system.h" |
16 #include "chrome/service/cloud_print/printer_job_handler.h" | 18 #include "chrome/service/cloud_print/printer_job_handler.h" |
17 #include "net/http/http_response_headers.h" | 19 #include "net/http/http_response_headers.h" |
18 #include "net/http/http_status_code.h" | 20 #include "net/http/http_status_code.h" |
19 #include "net/url_request/test_url_fetcher_factory.h" | 21 #include "net/url_request/test_url_fetcher_factory.h" |
20 #include "net/url_request/url_request_status.h" | 22 #include "net/url_request/url_request_status.h" |
21 #include "net/url_request/url_request_test_util.h" | 23 #include "net/url_request/url_request_test_util.h" |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 status_string, | 242 status_string, |
241 job_num, | 243 job_num, |
242 status_string); | 244 status_string); |
243 } | 245 } |
244 | 246 |
245 } // namespace | 247 } // namespace |
246 | 248 |
247 class CloudPrintURLFetcherNoServiceProcess | 249 class CloudPrintURLFetcherNoServiceProcess |
248 : public CloudPrintURLFetcher { | 250 : public CloudPrintURLFetcher { |
249 public: | 251 public: |
250 CloudPrintURLFetcherNoServiceProcess() : | 252 CloudPrintURLFetcherNoServiceProcess() |
251 context_getter_(new net::TestURLRequestContextGetter( | 253 : context_getter_(new net::TestURLRequestContextGetter( |
252 base::MessageLoopProxy::current())) {} | 254 base::ThreadTaskRunnerHandle::Get())) {} |
| 255 |
253 protected: | 256 protected: |
254 net::URLRequestContextGetter* GetRequestContextGetter() override { | 257 net::URLRequestContextGetter* GetRequestContextGetter() override { |
255 return context_getter_.get(); | 258 return context_getter_.get(); |
256 } | 259 } |
257 | 260 |
258 ~CloudPrintURLFetcherNoServiceProcess() override {} | 261 ~CloudPrintURLFetcherNoServiceProcess() override {} |
259 | 262 |
260 private: | 263 private: |
261 scoped_refptr<net::URLRequestContextGetter> context_getter_; | 264 scoped_refptr<net::URLRequestContextGetter> context_getter_; |
262 }; | 265 }; |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 net::URLRequestStatus::SUCCESS); | 518 net::URLRequestStatus::SUCCESS); |
516 } | 519 } |
517 | 520 |
518 void PrinterJobHandlerTest::MessageLoopQuitNowHelper( | 521 void PrinterJobHandlerTest::MessageLoopQuitNowHelper( |
519 base::MessageLoop* message_loop) { | 522 base::MessageLoop* message_loop) { |
520 message_loop->QuitWhenIdle(); | 523 message_loop->QuitWhenIdle(); |
521 } | 524 } |
522 | 525 |
523 void PrinterJobHandlerTest::MessageLoopQuitSoonHelper( | 526 void PrinterJobHandlerTest::MessageLoopQuitSoonHelper( |
524 base::MessageLoop* message_loop) { | 527 base::MessageLoop* message_loop) { |
525 message_loop->message_loop_proxy()->PostTask( | 528 message_loop->task_runner()->PostTask( |
526 FROM_HERE, base::Bind(&MessageLoopQuitNowHelper, message_loop)); | 529 FROM_HERE, base::Bind(&MessageLoopQuitNowHelper, message_loop)); |
527 } | 530 } |
528 | 531 |
529 PrinterJobHandlerTest::PrinterJobHandlerTest() | 532 PrinterJobHandlerTest::PrinterJobHandlerTest() |
530 : factory_(NULL, base::Bind(&TestURLFetcherCallback::CreateURLFetcher, | 533 : factory_(NULL, base::Bind(&TestURLFetcherCallback::CreateURLFetcher, |
531 base::Unretained(&url_callback_))) { | 534 base::Unretained(&url_callback_))) { |
532 } | 535 } |
533 | 536 |
534 bool PrinterJobHandlerTest::PostSpoolSuccess() { | 537 bool PrinterJobHandlerTest::PostSpoolSuccess() { |
535 base::MessageLoop::current()->PostTask( | 538 base::ThreadTaskRunnerHandle::Get()->PostTask( |
536 FROM_HERE, | 539 FROM_HERE, |
537 base::Bind(&PrinterJobHandler::OnJobSpoolSucceeded, job_handler_, 0)); | 540 base::Bind(&PrinterJobHandler::OnJobSpoolSucceeded, job_handler_, 0)); |
538 | 541 |
539 // Everything that would be posted on the printer thread queue | 542 // Everything that would be posted on the printer thread queue |
540 // has been posted, we can tell the main message loop to quit when idle | 543 // has been posted, we can tell the main message loop to quit when idle |
541 // and not worry about it idling while the print thread does work | 544 // and not worry about it idling while the print thread does work |
542 base::MessageLoop::current()->PostTask( | 545 base::ThreadTaskRunnerHandle::Get()->PostTask( |
543 FROM_HERE, base::Bind(&MessageLoopQuitSoonHelper, &loop_)); | 546 FROM_HERE, base::Bind(&MessageLoopQuitSoonHelper, &loop_)); |
544 return true; | 547 return true; |
545 } | 548 } |
546 | 549 |
547 void PrinterJobHandlerTest::AddMimeHeader(const GURL& url, | 550 void PrinterJobHandlerTest::AddMimeHeader(const GURL& url, |
548 net::FakeURLFetcher* fetcher) { | 551 net::FakeURLFetcher* fetcher) { |
549 scoped_refptr<net::HttpResponseHeaders> download_headers = | 552 scoped_refptr<net::HttpResponseHeaders> download_headers = |
550 new net::HttpResponseHeaders(kExampleJobDownloadResponseHeaders); | 553 new net::HttpResponseHeaders(kExampleJobDownloadResponseHeaders); |
551 fetcher->set_response_headers(download_headers); | 554 fetcher->set_response_headers(download_headers); |
552 } | 555 } |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _)) | 765 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _)) |
763 .Times(AtLeast(1)); | 766 .Times(AtLeast(1)); |
764 | 767 |
765 SetUpJobSuccessTest(1); | 768 SetUpJobSuccessTest(1); |
766 | 769 |
767 factory_.SetFakeResponse(TicketURI(1), | 770 factory_.SetFakeResponse(TicketURI(1), |
768 std::string(), | 771 std::string(), |
769 net::HTTP_INTERNAL_SERVER_ERROR, | 772 net::HTTP_INTERNAL_SERVER_ERROR, |
770 net::URLRequestStatus::FAILED); | 773 net::URLRequestStatus::FAILED); |
771 | 774 |
772 loop_.PostDelayedTask(FROM_HERE, | 775 loop_.task_runner()->PostDelayedTask( |
773 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse, | 776 FROM_HERE, |
774 base::Unretained(&factory_), | 777 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse, |
775 TicketURI(1), | 778 base::Unretained(&factory_), TicketURI(1), kExamplePrintTicket, |
776 kExamplePrintTicket, | 779 net::HTTP_OK, net::URLRequestStatus::SUCCESS), |
777 net::HTTP_OK, | 780 base::TimeDelta::FromSeconds(1)); |
778 net::URLRequestStatus::SUCCESS), | |
779 base::TimeDelta::FromSeconds(1)); | |
780 | |
781 | 781 |
782 BeginTest(5); | 782 BeginTest(5); |
783 } | 783 } |
784 | 784 |
785 | 785 |
786 // TODO(noamsml): Figure out how to make this test not take ~64-~2048 (depending | 786 // TODO(noamsml): Figure out how to make this test not take ~64-~2048 (depending |
787 // constant values) seconds and re-enable it | 787 // constant values) seconds and re-enable it |
788 TEST_F(PrinterJobHandlerTest, DISABLED_CompleteFailureTest) { | 788 TEST_F(PrinterJobHandlerTest, DISABLED_CompleteFailureTest) { |
789 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), | 789 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), |
790 JobListResponse(1), net::HTTP_OK, | 790 JobListResponse(1), net::HTTP_OK, |
(...skipping 27 matching lines...) Expand all Loading... |
818 .WillOnce(InvokeWithoutArgs( | 818 .WillOnce(InvokeWithoutArgs( |
819 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs)); | 819 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs)); |
820 | 820 |
821 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _)) | 821 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _)) |
822 .Times(AtLeast(kNumRetriesBeforeAbandonJob)); | 822 .Times(AtLeast(kNumRetriesBeforeAbandonJob)); |
823 | 823 |
824 BeginTest(70); | 824 BeginTest(70); |
825 } | 825 } |
826 | 826 |
827 } // namespace cloud_print | 827 } // namespace cloud_print |
OLD | NEW |