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

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: Rebase. Created 7 years, 2 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, 233 PRINT_JOB_STATUS_IN_PROGRESS,
235 0).spec(); 234 0);
236 } 235 }
237 236
238 std::string StatusResponse(int job_num, const char* status_string) { 237 std::string StatusResponse(int job_num, const char* status_string) {
239 return StringPrintf(kExampleControlResponse, 238 return StringPrintf(kExampleControlResponse,
240 status_string, 239 status_string,
241 job_num, 240 job_num,
242 status_string); 241 status_string);
243 } 242 }
244 243
245 } // namespace 244 } // namespace
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 549
551 factory_.SetFakeResponse(DoneURI(job_num), 550 factory_.SetFakeResponse(DoneURI(job_num),
552 StatusResponse(job_num, "DONE"), 551 StatusResponse(job_num, "DONE"),
553 true); 552 true);
554 factory_.SetFakeResponse(InProgressURI(job_num), 553 factory_.SetFakeResponse(InProgressURI(job_num),
555 StatusResponse(job_num, "IN_PROGRESS"), 554 StatusResponse(job_num, "IN_PROGRESS"),
556 true); 555 true);
557 556
558 // The times requirement is relaxed for the ticket URI 557 // The times requirement is relaxed for the ticket URI
559 // in order to accommodate TicketDownloadFailureTest 558 // in order to accommodate TicketDownloadFailureTest
560 EXPECT_CALL(url_callback_, OnRequestCreate( 559 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(job_num), _))
561 GURL(TicketURI(job_num)), _))
562 .Times(AtLeast(1)); 560 .Times(AtLeast(1));
563 561
564 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(DownloadURI(job_num)), _)) 562 EXPECT_CALL(url_callback_, OnRequestCreate(DownloadURI(job_num), _))
565 .Times(Exactly(1)) 563 .Times(Exactly(1))
566 .WillOnce(Invoke(this, &PrinterJobHandlerTest::AddMimeHeader)); 564 .WillOnce(Invoke(this, &PrinterJobHandlerTest::AddMimeHeader));
567 565
568 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(InProgressURI(job_num)), _)) 566 EXPECT_CALL(url_callback_, OnRequestCreate(InProgressURI(job_num), _))
569 .Times(Exactly(1)); 567 .Times(Exactly(1));
570 568
571 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(DoneURI(job_num)), _)) 569 EXPECT_CALL(url_callback_, OnRequestCreate(DoneURI(job_num), _))
572 .Times(Exactly(1)); 570 .Times(Exactly(1));
573 571
574 EXPECT_CALL(print_system_->JobSpooler(), 572 EXPECT_CALL(print_system_->JobSpooler(),
575 Spool(kExamplePrintTicket, _, _, _, _, _, _)) 573 Spool(kExamplePrintTicket, _, _, _, _, _, _))
576 .Times(Exactly(1)) 574 .Times(Exactly(1))
577 .WillOnce(InvokeWithoutArgs(this, 575 .WillOnce(InvokeWithoutArgs(this,
578 &PrinterJobHandlerTest::PostSpoolSuccess)); 576 &PrinterJobHandlerTest::PostSpoolSuccess));
579 } 577 }
580 578
581 void PrinterJobHandlerTest::BeginTest(int timeout_seconds) { 579 void PrinterJobHandlerTest::BeginTest(int timeout_seconds) {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 // This test simulates an end-to-end printing of a document 654 // This test simulates an end-to-end printing of a document
657 // but tests only non-failure cases. 655 // but tests only non-failure cases.
658 // Disabled - http://crbug.com/184245 656 // Disabled - http://crbug.com/184245
659 TEST_F(PrinterJobHandlerTest, DISABLED_HappyPathTest) { 657 TEST_F(PrinterJobHandlerTest, DISABLED_HappyPathTest) {
660 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 658 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
661 JobListResponse(1), true); 659 JobListResponse(1), true);
662 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 660 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
663 JobListResponse(0), true); 661 JobListResponse(0), true);
664 662
665 EXPECT_CALL(url_callback_, 663 EXPECT_CALL(url_callback_,
666 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 664 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
667 .Times(Exactly(1)); 665 .Times(Exactly(1));
668 EXPECT_CALL(url_callback_, 666 EXPECT_CALL(url_callback_,
669 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 667 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
670 .Times(Exactly(1)); 668 .Times(Exactly(1));
671 669
672 SetUpJobSuccessTest(1); 670 SetUpJobSuccessTest(1);
673 BeginTest(20); 671 BeginTest(20);
674 } 672 }
675 673
676 TEST_F(PrinterJobHandlerTest, TicketDownloadFailureTest) { 674 TEST_F(PrinterJobHandlerTest, TicketDownloadFailureTest) {
677 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 675 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
678 JobListResponse(2), true); 676 JobListResponse(2), true);
679 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 677 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
680 JobListResponse(2), true); 678 JobListResponse(2), true);
681 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 679 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
682 JobListResponse(0), true); 680 JobListResponse(0), true);
683 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 681 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
684 682
685 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(TicketURI(1)), _)) 683 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _))
686 .Times(AtLeast(1)); 684 .Times(AtLeast(1));
687 685
688 EXPECT_CALL(url_callback_, 686 EXPECT_CALL(url_callback_,
689 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 687 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
690 .Times(AtLeast(1)); 688 .Times(AtLeast(1));
691 689
692 EXPECT_CALL(url_callback_, 690 EXPECT_CALL(url_callback_,
693 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 691 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
694 .Times(AtLeast(1)); 692 .Times(AtLeast(1));
695 693
696 EXPECT_CALL(url_callback_, 694 EXPECT_CALL(url_callback_,
697 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 695 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
698 .Times(AtLeast(1)); 696 .Times(AtLeast(1));
699 697
700 SetUpJobSuccessTest(2); 698 SetUpJobSuccessTest(2);
701 BeginTest(20); 699 BeginTest(20);
702 } 700 }
703 701
704 // TODO(noamsml): Figure out how to make this test not take 1 second and 702 // TODO(noamsml): Figure out how to make this test not take 1 second and
705 // re-enable it 703 // re-enable it
706 TEST_F(PrinterJobHandlerTest, DISABLED_ManyFailureTest) { 704 TEST_F(PrinterJobHandlerTest, DISABLED_ManyFailureTest) {
707 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 705 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
708 JobListResponse(1), true); 706 JobListResponse(1), true);
709 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 707 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
710 JobListResponse(1), true); 708 JobListResponse(1), true);
711 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry), 709 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry),
712 JobListResponse(1), true); 710 JobListResponse(1), true);
713 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore), 711 factory_.SetFakeResponse(JobListURI(kJobFetchReasonQueryMore),
714 JobListResponse(0), true); 712 JobListResponse(0), true);
715 713
716 EXPECT_CALL(url_callback_, 714 EXPECT_CALL(url_callback_,
717 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 715 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
718 .Times(AtLeast(1)); 716 .Times(AtLeast(1));
719 717
720 EXPECT_CALL(url_callback_, 718 EXPECT_CALL(url_callback_,
721 OnRequestCreate(GURL(JobListURI(kJobFetchReasonQueryMore)), _)) 719 OnRequestCreate(JobListURI(kJobFetchReasonQueryMore), _))
722 .Times(AtLeast(1)); 720 .Times(AtLeast(1));
723 721
724 EXPECT_CALL(url_callback_, 722 EXPECT_CALL(url_callback_,
725 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 723 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
726 .Times(AtLeast(1)); 724 .Times(AtLeast(1));
727 725
728 EXPECT_CALL(url_callback_, 726 EXPECT_CALL(url_callback_,
729 OnRequestCreate(GURL(JobListURI(kJobFetchReasonRetry)), _)) 727 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _))
730 .Times(AtLeast(1)); 728 .Times(AtLeast(1));
731 729
732 SetUpJobSuccessTest(1); 730 SetUpJobSuccessTest(1);
733 731
734 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 732 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
735 733
736 loop_.PostDelayedTask(FROM_HERE, 734 loop_.PostDelayedTask(FROM_HERE,
737 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse, 735 base::Bind(&net::FakeURLFetcherFactory::SetFakeResponse,
738 base::Unretained(&factory_), 736 base::Unretained(&factory_),
739 TicketURI(1), 737 TicketURI(1),
(...skipping 12 matching lines...) Expand all
752 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup), 750 factory_.SetFakeResponse(JobListURI(kJobFetchReasonStartup),
753 JobListResponse(1), true); 751 JobListResponse(1), true);
754 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure), 752 factory_.SetFakeResponse(JobListURI(kJobFetchReasonFailure),
755 JobListResponse(1), true); 753 JobListResponse(1), true);
756 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry), 754 factory_.SetFakeResponse(JobListURI(kJobFetchReasonRetry),
757 JobListResponse(1), true); 755 JobListResponse(1), true);
758 factory_.SetFakeResponse(ErrorURI(1), StatusResponse(1, "ERROR"), true); 756 factory_.SetFakeResponse(ErrorURI(1), StatusResponse(1, "ERROR"), true);
759 factory_.SetFakeResponse(TicketURI(1), std::string(), false); 757 factory_.SetFakeResponse(TicketURI(1), std::string(), false);
760 758
761 EXPECT_CALL(url_callback_, 759 EXPECT_CALL(url_callback_,
762 OnRequestCreate(GURL(JobListURI(kJobFetchReasonStartup)), _)) 760 OnRequestCreate(JobListURI(kJobFetchReasonStartup), _))
763 .Times(AtLeast(1)); 761 .Times(AtLeast(1));
764 762
765 EXPECT_CALL(url_callback_, 763 EXPECT_CALL(url_callback_,
766 OnRequestCreate(GURL(JobListURI(kJobFetchReasonFailure)), _)) 764 OnRequestCreate(JobListURI(kJobFetchReasonFailure), _))
767 .Times(AtLeast(1)); 765 .Times(AtLeast(1));
768 766
769 EXPECT_CALL(url_callback_, 767 EXPECT_CALL(url_callback_,
770 OnRequestCreate(GURL(JobListURI(kJobFetchReasonRetry)), _)) 768 OnRequestCreate(JobListURI(kJobFetchReasonRetry), _))
771 .Times(AtLeast(1)); 769 .Times(AtLeast(1));
772 770
773 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(ErrorURI(1)), _)) 771 EXPECT_CALL(url_callback_, OnRequestCreate(ErrorURI(1), _))
774 .Times(Exactly(1)) 772 .Times(Exactly(1))
775 .WillOnce(InvokeWithoutArgs( 773 .WillOnce(InvokeWithoutArgs(
776 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs)); 774 this, &PrinterJobHandlerTest::MakeJobFetchReturnNoJobs));
777 775
778 EXPECT_CALL(url_callback_, OnRequestCreate(GURL(TicketURI(1)), _)) 776 EXPECT_CALL(url_callback_, OnRequestCreate(TicketURI(1), _))
779 .Times(AtLeast(kNumRetriesBeforeAbandonJob)); 777 .Times(AtLeast(kNumRetriesBeforeAbandonJob));
780 778
781 BeginTest(70); 779 BeginTest(70);
782 } 780 }
783 781
784 } // namespace cloud_print 782 } // namespace cloud_print
OLDNEW
« no previous file with comments | « chrome/browser/ui/search/instant_extended_interactive_uitest.cc ('k') | net/url_request/test_url_fetcher_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698