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

Side by Side Diff: chrome/service/cloud_print/printer_job_handler_unittest.cc

Issue 23625015: Consolidate TestURLFetcherFactory::SetFakeResponse (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Could have spelled it Cloud... Created 7 years, 3 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 (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/md5.h" 6 #include "base/md5.h"
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "chrome/common/cloud_print/cloud_print_constants.h" 12 #include "chrome/common/cloud_print/cloud_print_constants.h"
13 #include "chrome/service/cloud_print/cloud_print_helpers.h" 13 #include "chrome/service/cloud_print/cloud_print_helpers.h"
14 #include "chrome/service/cloud_print/cloud_print_token_store.h" 14 #include "chrome/service/cloud_print/cloud_print_token_store.h"
15 #include "chrome/service/cloud_print/print_system.h" 15 #include "chrome/service/cloud_print/print_system.h"
16 #include "chrome/service/cloud_print/printer_job_handler.h" 16 #include "chrome/service/cloud_print/printer_job_handler.h"
17 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
18 #include "net/url_request/test_url_fetcher_factory.h" 18 #include "net/url_request/test_url_fetcher_factory.h"
19 #include "net/url_request/url_request_test_util.h" 19 #include "net/url_request/url_request_test_util.h"
20 #include "printing/backend/print_backend.h" 20 #include "printing/backend/print_backend.h"
21 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 using ::testing::AtLeast; 24 using ::testing::AtLeast;
25 using ::testing::DoAll;
25 using ::testing::Exactly; 26 using ::testing::Exactly;
26 using ::testing::Sequence; 27 using ::testing::Invoke;
28 using ::testing::InvokeWithoutArgs;
29 using ::testing::NiceMock;
27 using ::testing::Return; 30 using ::testing::Return;
28 using ::testing::SaveArg; 31 using ::testing::SaveArg;
29 using ::testing::DoAll; 32 using ::testing::Sequence;
33 using ::testing::SetArgPointee;
34 using ::testing::StrictMock;
30 using ::testing::_; 35 using ::testing::_;
31 using ::testing::NiceMock;
32 using ::testing::StrictMock;
33 using ::testing::Invoke;
34 using ::testing::SetArgPointee;
35 using ::testing::InvokeWithoutArgs;
36 36
37 namespace cloud_print { 37 namespace cloud_print {
38 38
39 namespace { 39 namespace {
40 40
41 using base::StringPrintf; 41 using base::StringPrintf;
42 42
43 const char kExampleCloudPrintServerURL[] = "https://www.google.com/cloudprint/"; 43 const char kExampleCloudPrintServerURL[] = "https://www.google.com/cloudprint/";
44 44
45 const char kExamplePrintTicket[] = "{\"MediaType\":\"plain\"," 45 const char kExamplePrintTicket[] = "{\"MediaType\":\"plain\","
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 std::string JobListResponse(int num_jobs) { 196 std::string JobListResponse(int num_jobs) {
197 std::string job_objects; 197 std::string job_objects;
198 for (int i = 0; i < num_jobs; i++) { 198 for (int i = 0; i < num_jobs; i++) {
199 job_objects = job_objects + StringPrintf(kExampleJobObject, i+1, i+1, i+1, 199 job_objects = job_objects + StringPrintf(kExampleJobObject, i+1, i+1, i+1,
200 i+1); 200 i+1);
201 if (i != num_jobs-1) job_objects = job_objects + ","; 201 if (i != num_jobs-1) job_objects = job_objects + ",";
202 } 202 }
203 return StringPrintf(kExampleJobListResponse, job_objects.c_str()); 203 return StringPrintf(kExampleJobListResponse, job_objects.c_str());
204 } 204 }
205 205
206 std::string JobListURI(const char* reason) { 206 GURL JobListURI(const char* reason) {
207 return StringPrintf(kExamplePrinterJobListURI, reason); 207 return GURL(StringPrintf(kExamplePrinterJobListURI, reason));
208 } 208 }
209 209
210 std::string JobID(int job_num) { 210 std::string JobID(int job_num) {
211 return StringPrintf(kExampleJobID, job_num); 211 return StringPrintf(kExampleJobID, job_num);
212 } 212 }
213 213
214 std::string DoneURI(int job_num) { 214 GURL DoneURI(int job_num) {
215 return StringPrintf(kExampleUpdateDoneURI, job_num); 215 return GURL(StringPrintf(kExampleUpdateDoneURI, job_num));
216 } 216 }
217 217
218 std::string ErrorURI(int job_num) { 218 GURL ErrorURI(int job_num) {
219 return StringPrintf(kExampleUpdateErrorURI, job_num); 219 return GURL(StringPrintf(kExampleUpdateErrorURI, job_num));
220 } 220 }
221 221
222 std::string TicketURI(int job_num) { 222 GURL TicketURI(int job_num) {
223 return StringPrintf(kExamplePrintTicketURI, job_num); 223 return GURL(StringPrintf(kExamplePrintTicketURI, job_num));
224 } 224 }
225 225
226 std::string DownloadURI(int job_num) { 226 GURL DownloadURI(int job_num) {
227 return StringPrintf(kExamplePrintDownloadURI, job_num); 227 return GURL(StringPrintf(kExamplePrintDownloadURI, job_num));
228 } 228 }
229 229
230 // converts to string for consistency 230 GURL InProgressURI(int job_num) {
231 std::string InProgressURI(int job_num) {
232 return GetUrlForJobStatusUpdate(GURL(kExampleCloudPrintServerURL), 231 return GetUrlForJobStatusUpdate(GURL(kExampleCloudPrintServerURL),
233 StringPrintf(kExampleJobID, job_num), 232 StringPrintf(kExampleJobID, job_num),
234 PRINT_JOB_STATUS_IN_PROGRESS).spec(); 233 PRINT_JOB_STATUS_IN_PROGRESS);
235 } 234 }
236 235
237 std::string StatusResponse(int job_num, const char* status_string) { 236 std::string StatusResponse(int job_num, const char* status_string) {
238 return StringPrintf(kExampleControlResponse, 237 return StringPrintf(kExampleControlResponse,
239 status_string, 238 status_string,
240 job_num, 239 job_num,
241 status_string); 240 status_string);
242 } 241 }
243 242
244 } // namespace 243 } // namespace
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 546
548 factory_.SetFakeResponse(DoneURI(job_num), 547 factory_.SetFakeResponse(DoneURI(job_num),
549 StatusResponse(job_num, "DONE"), 548 StatusResponse(job_num, "DONE"),
550 true); 549 true);
551 factory_.SetFakeResponse(InProgressURI(job_num), 550 factory_.SetFakeResponse(InProgressURI(job_num),
552 StatusResponse(job_num, "IN_PROGRESS"), 551 StatusResponse(job_num, "IN_PROGRESS"),
553 true); 552 true);
554 553
555 // The times requirement is relaxed for the ticket URI 554 // The times requirement is relaxed for the ticket URI
556 // in order to accommodate TicketDownloadFailureTest 555 // in order to accommodate TicketDownloadFailureTest
557 EXPECT_CALL(url_callback_, OnRequestCreate( 556 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(job_num), _))
558 GURL(TicketURI(job_num)), _))
559 .Times(AtLeast(1)); 557 .Times(AtLeast(1));
560 558
561 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(DownloadURI(job_num)), _)) 559 EXPECT_CALL(url_callback_, OnRequestCreate(DownloadURI(job_num), _))
562 .Times(Exactly(1)) 560 .Times(Exactly(1))
563 .WillOnce(Invoke(this, &PrinterJobHandlerTest::AddMimeHeader)); 561 .WillOnce(Invoke(this, &PrinterJobHandlerTest::AddMimeHeader));
564 562
565 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(InProgressURI(job_num)), _)) 563 EXPECT_CALL(url_callback_, OnRequestCreate(InProgressURI(job_num), _))
566 .Times(Exactly(1)); 564 .Times(Exactly(1));
567 565
568 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(DoneURI(job_num)), _)) 566 EXPECT_CALL(url_callback_, OnRequestCreate(DoneURI(job_num), _))
569 .Times(Exactly(1)); 567 .Times(Exactly(1));
570 568
571 EXPECT_CALL(print_system_->JobSpooler(), 569 EXPECT_CALL(print_system_->JobSpooler(),
572 Spool(kExamplePrintTicket, _, _, _, _, _, _)) 570 Spool(kExamplePrintTicket, _, _, _, _, _, _))
573 .Times(Exactly(1)) 571 .Times(Exactly(1))
574 .WillOnce(InvokeWithoutArgs(this, 572 .WillOnce(InvokeWithoutArgs(this,
575 &PrinterJobHandlerTest::PostSpoolSuccess)); 573 &PrinterJobHandlerTest::PostSpoolSuccess));
576 } 574 }
577 575
578 void PrinterJobHandlerTest::BeginTest(int timeout_seconds) { 576 void PrinterJobHandlerTest::BeginTest(int timeout_seconds) {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 // This test simulates an end-to-end printing of a document 651 // This test simulates an end-to-end printing of a document
654 // but tests only non-failure cases. 652 // but tests only non-failure cases.
655 // Disabled - http://crbug.com/184245 653 // Disabled - http://crbug.com/184245
656 TEST_F(PrinterJobHandlerTest, DISABLED_HappyPathTest) { 654 TEST_F(PrinterJobHandlerTest, DISABLED_HappyPathTest) {
657 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 655 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
658 JobListResponse(1), true); 656 JobListResponse(1), true);
659 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 657 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
660 JobListResponse(0), true); 658 JobListResponse(0), true);
661 659
662 EXPECT_CALL(url_callback_, 660 EXPECT_CALL(url_callback_,
663 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 661 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
664 .Times(Exactly(1)); 662 .Times(Exactly(1));
665 EXPECT_CALL(url_callback_, 663 EXPECT_CALL(url_callback_,
666 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 664 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
667 .Times(Exactly(1)); 665 .Times(Exactly(1));
668 666
669 SetUpJobSuccessTest(1); 667 SetUpJobSuccessTest(1);
670 BeginTest(20); 668 BeginTest(20);
671 } 669 }
672 670
673 TEST_F(PrinterJobHandlerTest, TicketDownloadFailureTest) { 671 TEST_F(PrinterJobHandlerTest, TicketDownloadFailureTest) {
674 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 672 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
675 JobListResponse(2), true); 673 JobListResponse(2), true);
676 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 674 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
677 JobListResponse(2), true); 675 JobListResponse(2), true);
678 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 676 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
679 JobListResponse(0), true); 677 JobListResponse(0), true);
680 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 678 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
681 679
682 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(TicketURI(1)), _)) 680 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _))
683 .Times(AtLeast(1)); 681 .Times(AtLeast(1));
684 682
685 EXPECT_CALL(url_callback_, 683 EXPECT_CALL(url_callback_,
686 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 684 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
687 .Times(AtLeast(1)); 685 .Times(AtLeast(1));
688 686
689 EXPECT_CALL(url_callback_, 687 EXPECT_CALL(url_callback_,
690 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 688 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
691 .Times(AtLeast(1)); 689 .Times(AtLeast(1));
692 690
693 EXPECT_CALL(url_callback_, 691 EXPECT_CALL(url_callback_,
694 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 692 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
695 .Times(AtLeast(1)); 693 .Times(AtLeast(1));
696 694
697 SetUpJobSuccessTest(2); 695 SetUpJobSuccessTest(2);
698 BeginTest(20); 696 BeginTest(20);
699 } 697 }
700 698
701 // TODO(noamsml): Figure out how to make this test not take 1 second and 699 // TODO(noamsml): Figure out how to make this test not take 1 second and
702 // re-enable it 700 // re-enable it
703 TEST_F(PrinterJobHandlerTest, DISABLED_ManyFailureTest) { 701 TEST_F(PrinterJobHandlerTest, DISABLED_ManyFailureTest) {
704 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 702 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
705 JobListResponse(1), true); 703 JobListResponse(1), true);
706 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 704 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
707 JobListResponse(1), true); 705 JobListResponse(1), true);
708 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry), 706 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry),
709 JobListResponse(1), true); 707 JobListResponse(1), true);
710 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 708 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
711 JobListResponse(0), true); 709 JobListResponse(0), true);
712 710
713 EXPECT_CALL(url_callback_, 711 EXPECT_CALL(url_callback_,
714 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 712 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
715 .Times(AtLeast(1)); 713 .Times(AtLeast(1));
716 714
717 EXPECT_CALL(url_callback_, 715 EXPECT_CALL(url_callback_,
718 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 716 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
719 .Times(AtLeast(1)); 717 .Times(AtLeast(1));
720 718
721 EXPECT_CALL(url_callback_, 719 EXPECT_CALL(url_callback_,
722 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 720 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
723 .Times(AtLeast(1)); 721 .Times(AtLeast(1));
724 722
725 EXPECT_CALL(url_callback_, 723 EXPECT_CALL(url_callback_,
726 OnRequestCreate(GURL(JobListURI(kJobFetchReasonRetry)), _)) 724 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _))
727 .Times(AtLeast(1)); 725 .Times(AtLeast(1));
728 726
729 SetUpJobSuccessTest(1); 727 SetUpJobSuccessTest(1);
730 728
731 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 729 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
732 730
733 loop_.PostDelayedTask(FROM_HERE, 731 loop_.PostDelayedTask(FROM_HERE,
734 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse, 732 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse,
735 base::Unretained(&factory_), 733 base::Unretained(&factory_),
736 TicketURI(1), 734 TicketURI(1),
(...skipping 12 matching lines...) Expand all
749 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 747 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
750 JobListResponse(1), true); 748 JobListResponse(1), true);
751 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 749 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
752 JobListResponse(1), true); 750 JobListResponse(1), true);
753 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry), 751 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry),
754 JobListResponse(1), true); 752 JobListResponse(1), true);
755 factory_.SetFakeResponse(ErrorURI(1), StatusResponse(1, "ERROR"), true); 753 factory_.SetFakeResponse(ErrorURI(1), StatusResponse(1, "ERROR"), true);
756 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 754 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
757 755
758 EXPECT_CALL(url_callback_, 756 EXPECT_CALL(url_callback_,
759 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 757 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
760 .Times(AtLeast(1)); 758 .Times(AtLeast(1));
761 759
762 EXPECT_CALL(url_callback_, 760 EXPECT_CALL(url_callback_,
763 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 761 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
764 .Times(AtLeast(1)); 762 .Times(AtLeast(1));
765 763
766 EXPECT_CALL(url_callback_, 764 EXPECT_CALL(url_callback_,
767 OnRequestCreate(GURL(JobListURI(kJobFetchReasonRetry)), _)) 765 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _))
768 .Times(AtLeast(1)); 766 .Times(AtLeast(1));
769 767
770 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(ErrorURI(1)), _)) 768 EXPECT_CALL(url_callback_, OnRequestCreate(ErrorURI(1), _))
771 .Times(Exactly(1)) 769 .Times(Exactly(1))
772 .WillOnce(InvokeWithoutArgs( 770 .WillOnce(InvokeWithoutArgs(
773 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs)); 771 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs));
774 772
775 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(TicketURI(1)), _)) 773 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _))
776 .Times(AtLeast(kNumRetriesBeforeAbandonJob)); 774 .Times(AtLeast(kNumRetriesBeforeAbandonJob));
777 775
778 BeginTest(70); 776 BeginTest(70);
779 } 777 }
780 778
781 } // namespace cloud_print 779 } // namespace cloud_print
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698