Index: chrome/browser/chrome_to_mobile/receive/chrome_to_mobile_receive_util_unittest.cc |
diff --git a/chrome/browser/chrome_to_mobile/receive/chrome_to_mobile_receive_util_unittest.cc b/chrome/browser/chrome_to_mobile/receive/chrome_to_mobile_receive_util_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f01ed9ba58c50a428f8062bd5b19622fe112ab43 |
--- /dev/null |
+++ b/chrome/browser/chrome_to_mobile/receive/chrome_to_mobile_receive_util_unittest.cc |
@@ -0,0 +1,302 @@ |
+// Copyright (c) 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 <map> |
+#include <string> |
+ |
+#include "base/json/json_reader.h" |
+#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "chrome/browser/chrome_to_mobile/receive/chrome_to_mobile_receive_util.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+using namespace chrome_to_mobile_receive; |
+ |
+namespace { |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseSnapshotURLJobInformationFromCloudPrintFetchJobList) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue(); |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ job1->SetString(std::string("createTime"), std::string("1111")); |
+ base::ListValue* tag1 = new base::ListValue(); |
+ tag1->AppendString("__snapshot_id=snapshot id 1"); |
+ tag1->AppendString("__snapshot_type=url_with_delayed_snapshot"); |
+ tag1->AppendString("__apns__original_url=apns.original.url"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string snapshot_id; |
+ std::string snapshot_type; |
+ std::string original_url; |
+ std::string title; |
+ std::string offline_data_download_url; |
+ std::string job_creating_time; |
+ EXPECT_TRUE(ParseSnapshotURLJobInformationFromCloudPrintFetchJobList( |
+ &job_list, 0, &job_id, &snapshot_id, &snapshot_type, &original_url, &title, |
+ &job_creating_time)); |
+ |
+ EXPECT_STREQ("jobid1", job_id.c_str()); |
+ EXPECT_STREQ("snapshot id 1", snapshot_id.c_str()); |
+ EXPECT_STREQ("url_with_delayed_snapshot", snapshot_type.c_str()); |
+ EXPECT_STREQ("apns.original.url", original_url.c_str()); |
+ EXPECT_STREQ("title 1", title.c_str()); |
+ EXPECT_STREQ("1111", job_creating_time.c_str()); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseSnapshotURLJobInformationFromCloudPrintFetchJobListMultiple) { |
+ base::ListValue job_list; |
+ |
+ base::DictionaryValue* job0 = new base::DictionaryValue(); |
+ job0->SetString(std::string("id"), std::string("jobid0")); |
+ job0->SetString(std::string("fileUrl"), std::string("www.file.url.0")); |
+ job0->SetString(std::string("title"), std::string("title 0")); |
+ job0->SetString(std::string("status"), std::string("QUEUED")); |
+ job0->SetString(std::string("createTime"), std::string("1111")); |
+ base::ListValue* tag0 = new base::ListValue(); |
+ tag0->AppendString("__snapshot_id=snapshot id 1"); |
+ tag0->AppendString("__snapshot_type=url_with_delayed_snapshot"); |
+ tag0->AppendString("__apns__original_url=apns.original.url.0"); |
+ job0->Set(std::string("tags"), tag0); |
+ job_list.Append(job0); |
+ |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ job1->SetString(std::string("createTime"), std::string("1111")); |
+ base::ListValue* tag1 = new base::ListValue(); |
+ tag1->AppendString("__snapshot_id=snapshot id 1"); |
+ tag1->AppendString("__snapshot_type=url_with_delayed_snapshot"); |
+ tag1->AppendString("__apns__original_url=apns.original.url"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string snapshot_id; |
+ std::string snapshot_type; |
+ std::string original_url; |
+ std::string title; |
+ std::string offline_data_download_url; |
+ std::string job_creating_time; |
+ EXPECT_TRUE(ParseSnapshotURLJobInformationFromCloudPrintFetchJobList( |
+ &job_list, 1, &job_id, &snapshot_id, &snapshot_type, &original_url, &title, |
+ &job_creating_time)); |
+ |
+ EXPECT_STREQ("jobid1", job_id.c_str()); |
+ EXPECT_STREQ("snapshot id 1", snapshot_id.c_str()); |
+ EXPECT_STREQ("url_with_delayed_snapshot", snapshot_type.c_str()); |
+ EXPECT_STREQ("apns.original.url", original_url.c_str()); |
+ EXPECT_STREQ("title 1", title.c_str()); |
+ EXPECT_STREQ("1111", job_creating_time.c_str()); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseSnapshotURLJobInformationFromCloudPrintFetchJobListOutOfRange) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ job1->SetString(std::string("createTime"), std::string("111")); |
+ base::ListValue* tag1 = new base::ListValue(); |
+ tag1->AppendString("__snapshot_id=snapshot id 1"); |
+ tag1->AppendString("__snapshot_type=url_with_delayed_snapshot"); |
+ tag1->AppendString("__apns__original_url=apns.original.url"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string snapshot_id; |
+ std::string snapshot_type; |
+ std::string original_url; |
+ std::string title; |
+ std::string offline_data_download_url; |
+ std::string job_creating_time; |
+ EXPECT_FALSE(ParseSnapshotURLJobInformationFromCloudPrintFetchJobList( |
+ &job_list, 10, &job_id, &snapshot_id, &snapshot_type, &original_url, &title, |
+ &job_creating_time)); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseSnapshotOfflineDataJobInformationFromCloudPrintFetchJobList) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ base::ListValue* tag1 = new base::ListValue(); |
+ tag1->AppendString("__snapshot_id=snapshot id 1"); |
+ tag1->AppendString("__snapshot_type=snapshot"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string snapshot_id; |
+ std::string offline_data_download_url; |
+ EXPECT_TRUE(ParseSnapshotOfflineDataJobInformationFromCloudPrintFetchJobList( |
+ &job_list, 0, &job_id, &snapshot_id, &offline_data_download_url)); |
+ |
+ EXPECT_STREQ("jobid1", job_id.c_str()); |
+ EXPECT_STREQ("snapshot id 1", snapshot_id.c_str()); |
+ EXPECT_STREQ("www.file.url.1", offline_data_download_url.c_str()); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseSnapshotOfflineDataJobInformationFromCloudPrintFetchJobListNone) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ base::ListValue* tag1 = new base::ListValue(); |
+ tag1->AppendString("__snapshot_id=snapshot id 1"); |
+ tag1->AppendString("__snapshot_type=url only"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string snapshot_id; |
+ std::string offline_data_download_url; |
+ EXPECT_FALSE(ParseSnapshotOfflineDataJobInformationFromCloudPrintFetchJobList( |
+ &job_list, 0, &job_id, &snapshot_id, &offline_data_download_url)); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseQueuedPrintToPhoneJobFromFetchJobList) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ base::DictionaryValue* tag1 = new base::DictionaryValue(); |
+ tag1->SetString("snapshot_id", "snapshot_id1"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string title; |
+ std::string data_download_url; |
+ EXPECT_TRUE(ParseQueuedPrintToPhoneJobFromFetchJobList( |
+ &job_list, |
+ 0, |
+ &job_id, |
+ &title, |
+ &data_download_url)); |
+ |
+ EXPECT_STREQ("jobid1", job_id.c_str()); |
+ EXPECT_STREQ("title 1", title.c_str()); |
+ EXPECT_STREQ("www.file.url.1", data_download_url.c_str()); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseQueuedPrintToPhoneJobFromFetchJobListOutOfRand) { |
+ base::ListValue job_list; |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ base::DictionaryValue* tag1 = new base::DictionaryValue(); |
+ tag1->SetString("snapshot_id", "snapshot_id1"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string title; |
+ std::string data_download_url; |
+ EXPECT_FALSE(ParseQueuedPrintToPhoneJobFromFetchJobList( |
+ &job_list, |
+ 3, |
+ &job_id, |
+ &title, |
+ &data_download_url)); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseQueuedPrintToPhoneJobFromFetchJobListMultiple) { |
+ base::ListValue job_list; |
+ |
+ base::DictionaryValue* job0 = new base::DictionaryValue(); |
+ job0->SetString(std::string("id"), std::string("jobid0")); |
+ job0->SetString(std::string("fileUrl"), std::string("www.file.url.0")); |
+ job0->SetString(std::string("title"), std::string("title 0")); |
+ job0->SetString(std::string("status"), std::string("QUEUED")); |
+ base::DictionaryValue* tag0 = new base::DictionaryValue(); |
+ tag0->SetString("snapshot_id", "snapshot_id1"); |
+ job0->Set(std::string("tags"), tag0); |
+ job_list.Append(job0); |
+ |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("QUEUED")); |
+ base::DictionaryValue* tag1 = new base::DictionaryValue(); |
+ tag1->SetString("snapshot_id", "snapshot_id1"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string title; |
+ std::string data_download_url; |
+ EXPECT_TRUE(ParseQueuedPrintToPhoneJobFromFetchJobList( |
+ &job_list, |
+ 1, |
+ &job_id, |
+ &title, |
+ &data_download_url)); |
+ |
+ EXPECT_STREQ("jobid1", job_id.c_str()); |
+ EXPECT_STREQ("title 1", title.c_str()); |
+ EXPECT_STREQ("www.file.url.1", data_download_url.c_str()); |
+} |
+ |
+TEST(ChromeToMobileReceiveUtilTest, |
+ ParseQueuedPrintToPhoneJobFromFetchJobListNotQueued) { |
+ base::ListValue job_list; |
+ |
+ base::DictionaryValue* job0 = new base::DictionaryValue(); |
+ job0->SetString(std::string("id"), std::string("jobid0")); |
+ job0->SetString(std::string("fileUrl"), std::string("www.file.url.0")); |
+ job0->SetString(std::string("title"), std::string("title 0")); |
+ job0->SetString(std::string("status"), std::string("QUEUED")); |
+ base::DictionaryValue* tag0 = new base::DictionaryValue(); |
+ tag0->SetString("snapshot_id", "snapshot_id1"); |
+ job0->Set(std::string("tags"), tag0); |
+ job_list.Append(job0); |
+ |
+ base::DictionaryValue* job1 = new base::DictionaryValue();; |
+ job1->SetString(std::string("id"), std::string("jobid1")); |
+ job1->SetString(std::string("fileUrl"), std::string("www.file.url.1")); |
+ job1->SetString(std::string("title"), std::string("title 1")); |
+ job1->SetString(std::string("status"), std::string("DONE")); |
+ base::DictionaryValue* tag1 = new base::DictionaryValue(); |
+ tag1->SetString("snapshot_id", "snapshot_id1"); |
+ job1->Set(std::string("tags"), tag1); |
+ job_list.Append(job1); |
+ |
+ std::string job_id; |
+ std::string title; |
+ std::string data_download_url; |
+ EXPECT_FALSE(ParseQueuedPrintToPhoneJobFromFetchJobList( |
+ &job_list, |
+ 1, |
+ &job_id, |
+ &title, |
+ &data_download_url)); |
+} |
+ |
+} // namespace |