Index: chrome/common/cloud_print/cloud_print_helpers_unittest.cc |
diff --git a/chrome/common/cloud_print/cloud_print_helpers_unittest.cc b/chrome/common/cloud_print/cloud_print_helpers_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..515cfdf4fabf483c1f40c77b2466694ca177c483 |
--- /dev/null |
+++ b/chrome/common/cloud_print/cloud_print_helpers_unittest.cc |
@@ -0,0 +1,86 @@ |
+// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/common/cloud_print/cloud_print_helpers.h" |
+ |
+#include "base/stringprintf.h" |
+#include "base/values.h" |
+#include "chrome/common/cloud_print/test_cloud_print_utils.h" |
+#include "googleurl/src/gurl.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+using namespace cloud_print; |
+ |
+namespace { |
+ |
+void CheckURLs(const GURL& server_base_url) { |
+ GURL url = GetUrlForPrinterRegistration(server_base_url); |
+ std::string expected_url_base = server_base_url.spec(); |
+ if (expected_url_base[expected_url_base.length() - 1] != '/') |
+ expected_url_base += "/"; |
+ std::string expected_url = base::StringPrintf( |
+ "%sregister", expected_url_base.c_str()); |
+ EXPECT_EQ(expected_url, url.spec()); |
+ |
+ url = GetUrlForPrinterUpdate(server_base_url, "printeridfoo"); |
+ expected_url = base::StringPrintf("%supdate?printerid=printeridfoo", |
+ expected_url_base.c_str()); |
+ EXPECT_EQ(expected_url, url.spec()); |
+ |
+ url = GetUrlForPrinterDelete(server_base_url, "printeridbar", "deleted"); |
+ expected_url = base::StringPrintf( |
+ "%sdelete?printerid=printeridbar&reason=deleted", |
+ expected_url_base.c_str()); |
+ EXPECT_EQ(expected_url, url.spec()); |
+ |
+ url = GetUrlForPrinterList(server_base_url, "demoproxy"); |
+ expected_url = base::StringPrintf("%slist?proxy=demoproxy", |
+ expected_url_base.c_str()); |
+ EXPECT_EQ(expected_url, url.spec()); |
+ |
+ url = GetUrlForJobFetch(server_base_url, "myprinter", "nogoodreason"); |
+ expected_url = base::StringPrintf( |
+ "%sfetch?printerid=myprinter&deb=nogoodreason", |
+ expected_url_base.c_str()); |
+ EXPECT_EQ(expected_url, url.spec()); |
+} |
+ |
+TEST(CloudPrintHelpersTest, GetURLs) { |
+ CheckURLs(GURL("https://www.google.com/cloudprint")); |
+ CheckURLs(GURL("https://www.google.com/cloudprint/")); |
+ CheckURLs(GURL("http://www.myprinterserver.com")); |
+ CheckURLs(GURL("http://www.myprinterserver.com/")); |
+} |
+ |
+TEST(CloudPrintHelperTest, ParsePrinterIdsFromListResponse) { |
+ bool succeeded; |
+ std::set<std::string> printer_ids; |
+ |
+ ParsePrinterIdsFromListResponse( |
+ GenerateListResponseWithPrinterIds(2, "p1", "p2"), |
+ &succeeded, &printer_ids); |
+ EXPECT_TRUE(succeeded); |
+ EXPECT_EQ(2U, printer_ids.size()); |
+ EXPECT_TRUE(printer_ids.find("p1") != printer_ids.end()); |
+ EXPECT_TRUE(printer_ids.find("p2") != printer_ids.end()); |
+} |
+ |
+TEST(CloudPrintHelperTest, ParsePrinterIdFromRegisterResponse) { |
+ std::string printer_id; |
+ bool succeeded; |
+ |
+ ParsePrinterIdFromRegisterResponse(GenerateRegistrationResponse(true, "p1"), |
+ &succeeded, |
+ &printer_id); |
+ EXPECT_TRUE(succeeded); |
+ EXPECT_STREQ("p1", printer_id.c_str()); |
+ |
+ ParsePrinterIdFromRegisterResponse(GenerateRegistrationResponse(false, "p2"), |
+ &succeeded, |
+ &printer_id); |
+ EXPECT_FALSE(succeeded); |
+ EXPECT_TRUE(printer_id.empty()); |
+} |
+ |
+} // namespace |