Index: chrome/browser/local_discovery/privet_http_unittest.cc |
diff --git a/chrome/browser/local_discovery/privet_http_unittest.cc b/chrome/browser/local_discovery/privet_http_unittest.cc |
index e2fce0415a857f5b9bdcf7c657ac5a13f4f8d564..4d2b443665da4b48eaaa44c21f37a8e935ef5192 100644 |
--- a/chrome/browser/local_discovery/privet_http_unittest.cc |
+++ b/chrome/browser/local_discovery/privet_http_unittest.cc |
@@ -73,6 +73,33 @@ const char kSampleInfoResponseRegistered[] = "{" |
" ]" |
"}"; |
+const char kSampleInfoResponseWithCreatejob[] = "{" |
+ " \"version\": \"1.0\"," |
+ " \"name\": \"Common printer\"," |
+ " \"description\": \"Printer connected through Chrome connector\"," |
+ " \"url\": \"https://www.google.com/cloudprint\"," |
+ " \"type\": [" |
+ " \"printer\"" |
+ " ]," |
+ " \"id\": \"\"," |
+ " \"device_state\": \"idle\"," |
+ " \"connection_state\": \"online\"," |
+ " \"manufacturer\": \"Google\"," |
+ " \"model\": \"Google Chrome\"," |
+ " \"serial_number\": \"1111-22222-33333-4444\"," |
+ " \"firmware\": \"24.0.1312.52\"," |
+ " \"uptime\": 600," |
+ " \"setup_url\": \"http://support.google.com/\"," |
+ " \"support_url\": \"http://support.google.com/cloudprint/?hl=en\"," |
+ " \"update_url\": \"http://support.google.com/cloudprint/?hl=en\"," |
+ " \"x-privet-token\": \"SampleTokenForTesting\"," |
+ " \"api\": [" |
+ " \"/privet/accesstoken\"," |
+ " \"/privet/capabilities\"," |
+ " \"/privet/printer/createjob\"," |
+ " \"/privet/printer/submitdoc\"," |
+ " ]" |
+ "}"; |
const char kSampleRegisterStartResponse[] = "{" |
"\"user\": \"example@google.com\"," |
@@ -135,6 +162,8 @@ const char kSampleCapabilitiesResponsePWGOnly[] = "{" |
"}" |
"}"; |
+const char kSampleCreatejobResponse[] = "{ \"job_id\": \"1234\" }"; |
+ |
class MockTestURLFetcherFactoryDelegate |
: public net::TestURLFetcher::DelegateForTests { |
public: |
@@ -790,6 +819,40 @@ TEST_F(PrivetLocalPrintTest, SuccessfulPWGLocalPrint) { |
kSampleLocalPrintResponse)); |
}; |
+TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithCreatejob) { |
+ local_print_operation_->SetUsername("sample@gmail.com"); |
+ local_print_operation_->SetJobname("Sample job name"); |
+ local_print_operation_->SetTicket("Sample print ticket"); |
+ local_print_operation_->Start(); |
+ |
+ EXPECT_TRUE(SuccessfulResponseToURL( |
+ GURL("http://10.0.0.8:6006/privet/info"), |
+ kSampleInfoResponseWithCreatejob)); |
+ |
+ EXPECT_CALL(local_print_delegate_, OnPrivetPrintingRequestPDFInternal()); |
+ |
+ EXPECT_TRUE(SuccessfulResponseToURL( |
+ GURL("http://10.0.0.8:6006/privet/capabilities"), |
+ kSampleCapabilitiesResponse)); |
+ |
+ local_print_operation_->SendData("Sample print data"); |
+ |
+ EXPECT_TRUE(SuccessfulResponseToURLAndData( |
+ GURL("http://10.0.0.8:6006/privet/printer/createjob"), |
+ "Sample print ticket", |
+ kSampleCreatejobResponse)); |
+ |
+ EXPECT_CALL(local_print_delegate_, OnPrivetPrintingDoneInternal()); |
+ |
+ // TODO(noamsml): Is encoding spaces as pluses standard? |
+ EXPECT_TRUE(SuccessfulResponseToURLAndData( |
+ GURL("http://10.0.0.8:6006/privet/printer/submitdoc?" |
+ "user=sample%40gmail.com&jobname=Sample+job+name&job_id=1234"), |
+ "Sample print data", |
+ kSampleLocalPrintResponse)); |
+}; |
+ |
+ |
} // namespace |
} // namespace local_discovery |