| 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 e19bf1a17196e843a5e632fb211edd45883e518c..94c9bc7ad0db18f4cd8aa1154af4d6f8730afea0 100644
|
| --- a/chrome/browser/local_discovery/privet_http_unittest.cc
|
| +++ b/chrome/browser/local_discovery/privet_http_unittest.cc
|
| @@ -15,6 +15,10 @@
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +#if defined(ENABLE_FULL_PRINTING)
|
| +#include "chrome/browser/local_discovery/pwg_raster_converter.h"
|
| +#endif // ENABLE_FULL_PRINTING
|
| +
|
| using testing::StrictMock;
|
| using testing::NiceMock;
|
|
|
| @@ -76,34 +80,6 @@ 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\","
|
| "\"action\": \"start\""
|
| @@ -138,14 +114,6 @@ const char kSampleRegisterCancelResponse[] = "{"
|
| "\"action\": \"cancel\""
|
| "}";
|
|
|
| -const char kSampleLocalPrintResponse[] = "{"
|
| - "\"job_id\": \"123\","
|
| - "\"expires_in\": 500,"
|
| - "\"job_type\": \"application/pdf\","
|
| - "\"job_size\": 16,"
|
| - "\"job_name\": \"Sample job name\","
|
| - "}";
|
| -
|
| const char kSampleCapabilitiesResponse[] = "{"
|
| "\"version\" : \"1.0\","
|
| "\"printer\" : {"
|
| @@ -156,20 +124,47 @@ const char kSampleCapabilitiesResponse[] = "{"
|
| "}"
|
| "}";
|
|
|
| -const char kSampleCapabilitiesResponsePWGOnly[] = "{"
|
| - "\"version\" : \"1.0\","
|
| - "\"printer\" : {"
|
| - " \"supported_content_type\" : ["
|
| - " { \"content_type\" : \"image/pwg-raster\" }"
|
| - " ]"
|
| - "}"
|
| +#if defined(ENABLE_FULL_PRINTING)
|
| +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 kSampleCapabilitiesResponseWithAnyMimetype[] = "{"
|
| +const char kSampleLocalPrintResponse[] = "{"
|
| + "\"job_id\": \"123\","
|
| + "\"expires_in\": 500,"
|
| + "\"job_type\": \"application/pdf\","
|
| + "\"job_size\": 16,"
|
| + "\"job_name\": \"Sample job name\","
|
| + "}";
|
| +
|
| +const char kSampleCapabilitiesResponsePWGOnly[] = "{"
|
| "\"version\" : \"1.0\","
|
| "\"printer\" : {"
|
| " \"supported_content_type\" : ["
|
| - " { \"content_type\" : \"*/*\" },"
|
| " { \"content_type\" : \"image/pwg-raster\" }"
|
| " ]"
|
| "}"
|
| @@ -186,6 +181,16 @@ const char kSampleInvalidDocumentTypeResponse[] = "{"
|
|
|
| const char kSampleCreatejobResponse[] = "{ \"job_id\": \"1234\" }";
|
|
|
| +const char kSampleCapabilitiesResponseWithAnyMimetype[] = "{"
|
| + "\"version\" : \"1.0\","
|
| + "\"printer\" : {"
|
| + " \"supported_content_type\" : ["
|
| + " { \"content_type\" : \"*/*\" },"
|
| + " { \"content_type\" : \"image/pwg-raster\" }"
|
| + " ]"
|
| + "}"
|
| + "}";
|
| +
|
| const char kSampleCJT[] = "{ \"version\" : \"1.0\" }";
|
|
|
| const char kSampleCapabilitiesResponsePWGSettings[] =
|
| @@ -207,6 +212,7 @@ const char kSampleCJTDuplex[] =
|
| "\"version\" : \"1.0\","
|
| "\"print\": { \"duplex\": {\"type\": \"SHORT_EDGE\"} }"
|
| "}";
|
| +#endif // ENABLE_FULL_PRINTING
|
|
|
| // Return the representation of the given JSON that would be outputted by
|
| // JSONWriter. This ensures the same JSON values are represented by the same
|
| @@ -429,35 +435,6 @@ class MockLocalPrintDelegate : public PrivetLocalPrintOperation::Delegate {
|
| MOCK_METHOD1(OnPrivetPrintingErrorInternal, void(int http_code));
|
| };
|
|
|
| -// A note on PWG raster conversion: The PWG raster converter used simply
|
| -// converts strings to file paths based on them by appending "test.pdf", since
|
| -// it's easier to test that way. Instead of using a mock, we simply check if the
|
| -// request is uploading a file that is based on this pattern.
|
| -class FakePWGRasterConverter : public PWGRasterConverter {
|
| - public:
|
| - FakePWGRasterConverter() {
|
| - }
|
| -
|
| - virtual ~FakePWGRasterConverter() {
|
| - }
|
| -
|
| - virtual void Start(base::RefCountedMemory* data,
|
| - const printing::PdfRenderSettings& conversion_settings,
|
| - const printing::PwgRasterSettings& bitmap_settings,
|
| - const ResultCallback& callback) OVERRIDE {
|
| - bitmap_settings_ = bitmap_settings;
|
| - std::string data_str(data->front_as<char>(), data->size());
|
| - callback.Run(true, base::FilePath().AppendASCII(data_str + "test.pdf"));
|
| - }
|
| -
|
| - const printing::PwgRasterSettings& bitmap_settings() {
|
| - return bitmap_settings_;
|
| - }
|
| -
|
| - private:
|
| - printing::PwgRasterSettings bitmap_settings_;
|
| -};
|
| -
|
| class PrivetInfoTest : public PrivetHTTPTest {
|
| public:
|
| PrivetInfoTest() {}
|
| @@ -489,7 +466,7 @@ TEST_F(PrivetInfoTest, SuccessfulInfo) {
|
|
|
| EXPECT_CALL(info_callback_, OnPrivetJSONDoneInternal());
|
| fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetInfoTest, InfoFailureHTTP) {
|
| info_operation_->Start();
|
| @@ -502,7 +479,7 @@ TEST_F(PrivetInfoTest, InfoFailureHTTP) {
|
|
|
| EXPECT_CALL(info_callback_, OnPrivetJSONDoneInternal());
|
| fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -};
|
| +}
|
|
|
| class PrivetRegisterTest : public PrivetHTTPTest {
|
| public:
|
| @@ -726,7 +703,7 @@ TEST_F(PrivetCapabilitiesTest, SuccessfulCapabilities) {
|
| std::string version;
|
| EXPECT_TRUE(capabilities_callback_.value()->GetString("version", &version));
|
| EXPECT_EQ("1.0", version);
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetCapabilitiesTest, CacheToken) {
|
| capabilities_operation_->Start();
|
| @@ -751,7 +728,7 @@ TEST_F(PrivetCapabilitiesTest, CacheToken) {
|
| EXPECT_TRUE(SuccessfulResponseToURL(
|
| GURL("http://10.0.0.8:6006/privet/capabilities"),
|
| kSampleCapabilitiesResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetCapabilitiesTest, BadToken) {
|
| capabilities_operation_->Start();
|
| @@ -773,6 +750,36 @@ TEST_F(PrivetCapabilitiesTest, BadToken) {
|
| EXPECT_TRUE(SuccessfulResponseToURL(
|
| GURL("http://10.0.0.8:6006/privet/capabilities"),
|
| kSampleCapabilitiesResponse));
|
| +}
|
| +
|
| +#if defined(ENABLE_FULL_PRINTING)
|
| +// A note on PWG raster conversion: The PWG raster converter used simply
|
| +// converts strings to file paths based on them by appending "test.pdf", since
|
| +// it's easier to test that way. Instead of using a mock, we simply check if the
|
| +// request is uploading a file that is based on this pattern.
|
| +class FakePWGRasterConverter : public PWGRasterConverter {
|
| + public:
|
| + FakePWGRasterConverter() {
|
| + }
|
| +
|
| + virtual ~FakePWGRasterConverter() {
|
| + }
|
| +
|
| + virtual void Start(base::RefCountedMemory* data,
|
| + const printing::PdfRenderSettings& conversion_settings,
|
| + const printing::PwgRasterSettings& bitmap_settings,
|
| + const ResultCallback& callback) OVERRIDE {
|
| + bitmap_settings_ = bitmap_settings;
|
| + std::string data_str(data->front_as<char>(), data->size());
|
| + callback.Run(true, base::FilePath().AppendASCII(data_str + "test.pdf"));
|
| + }
|
| +
|
| + const printing::PwgRasterSettings& bitmap_settings() {
|
| + return bitmap_settings_;
|
| + }
|
| +
|
| + private:
|
| + printing::PwgRasterSettings bitmap_settings_;
|
| };
|
|
|
| class PrivetLocalPrintTest : public PrivetHTTPTest {
|
| @@ -832,7 +839,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrint) {
|
| "job_name=Sample+job+name"),
|
| "Sample print data",
|
| kSampleLocalPrintResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithAnyMimetype) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -859,7 +866,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithAnyMimetype) {
|
| "job_name=Sample+job+name"),
|
| "Sample print data",
|
| kSampleLocalPrintResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, SuccessfulPWGLocalPrint) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -890,7 +897,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulPWGLocalPrint) {
|
| pwg_converter_->bitmap_settings().odd_page_transform);
|
| EXPECT_FALSE(pwg_converter_->bitmap_settings().rotate_all_pages);
|
| EXPECT_FALSE(pwg_converter_->bitmap_settings().reverse_page_order);
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, SuccessfulPWGLocalPrintDuplex) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -927,7 +934,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulPWGLocalPrintDuplex) {
|
| pwg_converter_->bitmap_settings().odd_page_transform);
|
| EXPECT_FALSE(pwg_converter_->bitmap_settings().rotate_all_pages);
|
| EXPECT_TRUE(pwg_converter_->bitmap_settings().reverse_page_order);
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithCreatejob) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -959,7 +966,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithCreatejob) {
|
| "job_name=Sample+job+name&job_id=1234"),
|
| "Sample print data",
|
| kSampleLocalPrintResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithOverlongName) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -993,7 +1000,7 @@ TEST_F(PrivetLocalPrintTest, SuccessfulLocalPrintWithOverlongName) {
|
| "%3A123456789%3A123456789%3A&job_id=1234"),
|
| "Sample print data",
|
| kSampleLocalPrintResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, PDFPrintInvalidDocumentTypeRetry) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -1032,7 +1039,7 @@ TEST_F(PrivetLocalPrintTest, PDFPrintInvalidDocumentTypeRetry) {
|
| "job_name=Sample+job+name&job_id=1234"),
|
| base::FilePath(FILE_PATH_LITERAL("sample/path/test.pdf")),
|
| kSampleLocalPrintResponse));
|
| -};
|
| +}
|
|
|
| TEST_F(PrivetLocalPrintTest, LocalPrintRetryOnInvalidJobID) {
|
| local_print_operation_->SetUsername("sample@gmail.com");
|
| @@ -1067,8 +1074,8 @@ TEST_F(PrivetLocalPrintTest, LocalPrintRetryOnInvalidJobID) {
|
| EXPECT_TRUE(SuccessfulResponseToURL(
|
| GURL("http://10.0.0.8:6006/privet/printer/createjob"),
|
| kSampleCreatejobResponse));
|
| -};
|
| -
|
| +}
|
| +#endif // ENABLE_FULL_PRINTING
|
|
|
| } // namespace
|
|
|
|
|