OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/service/cloud_print/connector_settings.h" | 5 #include "chrome/service/cloud_print/connector_settings.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
11 #include "base/message_loop_proxy.h" | 11 #include "base/message_loop_proxy.h" |
12 #include "base/scoped_temp_dir.h" | 12 #include "base/scoped_temp_dir.h" |
13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "chrome/service/cloud_print/cloud_print_consts.h" |
14 #include "chrome/service/service_process_prefs.h" | 15 #include "chrome/service/service_process_prefs.h" |
15 | 16 |
16 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
18 | 19 |
19 const char kServiceStateContent[] = | 20 const char kServiceStateContent[] = |
20 "{" | 21 "{" |
21 " 'cloud_print': {" | 22 " 'cloud_print': {" |
22 " 'auth_token': 'token'," | 23 " 'auth_token': 'token'," |
23 " 'email': 'user@gmail.com'," | 24 " 'email': 'user@gmail.com'," |
24 " 'enabled': true," | 25 " 'enabled': true," |
25 " 'proxy_id': 'PROXY'," | 26 " 'proxy_id': 'PROXY'," |
26 " 'robot_email': '123@cloudprint.googleusercontent.com'," | 27 " 'robot_email': '123@cloudprint.googleusercontent.com'," |
27 " 'robot_refresh_token': '123'," | 28 " 'robot_refresh_token': '123'," |
28 " 'service_url': 'http://cp.google.com'," | 29 " 'service_url': 'http://cp.google.com'," |
29 " 'xmpp_auth_token': 'xmp token'," | 30 " 'xmpp_auth_token': 'xmp token'," |
30 " 'connect_new_printers': false," | 31 " 'connect_new_printers': false," |
| 32 " 'xmpp_ping_enabled': true," |
| 33 " 'xmpp_ping_timeout_sec': 256," |
31 " 'printer_blacklist': [" | 34 " 'printer_blacklist': [" |
32 " 'prn1'," | 35 " 'prn1'," |
33 " 'prn2'" | 36 " 'prn2'" |
34 " ]," | 37 " ]," |
35 " 'print_system_settings': {" | 38 " 'print_system_settings': {" |
36 " 'delete_on_enum_fail' : true" | 39 " 'delete_on_enum_fail' : true" |
37 " }" | 40 " }" |
38 " }" | 41 " }" |
39 "}"; | 42 "}"; |
40 | 43 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kEmptyJSons[i])); | 79 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kEmptyJSons[i])); |
77 ConnectorSettings settings; | 80 ConnectorSettings settings; |
78 settings.InitFrom(prefs.get()); | 81 settings.InitFrom(prefs.get()); |
79 | 82 |
80 EXPECT_EQ("https://www.google.com/cloudprint", | 83 EXPECT_EQ("https://www.google.com/cloudprint", |
81 settings.server_url().spec()); | 84 settings.server_url().spec()); |
82 EXPECT_FALSE(settings.proxy_id().empty()); | 85 EXPECT_FALSE(settings.proxy_id().empty()); |
83 EXPECT_FALSE(settings.delete_on_enum_fail()); | 86 EXPECT_FALSE(settings.delete_on_enum_fail()); |
84 EXPECT_EQ(NULL, settings.print_system_settings()); | 87 EXPECT_EQ(NULL, settings.print_system_settings()); |
85 EXPECT_TRUE(settings.connect_new_printers()); | 88 EXPECT_TRUE(settings.connect_new_printers()); |
| 89 EXPECT_FALSE(settings.xmpp_ping_enabled()); |
86 EXPECT_FALSE(settings.IsPrinterBlacklisted("prn1")); | 90 EXPECT_FALSE(settings.IsPrinterBlacklisted("prn1")); |
87 } | 91 } |
88 } | 92 } |
89 | 93 |
90 TEST_F(ConnectorSettingsTest, InitFromFile) { | 94 TEST_F(ConnectorSettingsTest, InitFromFile) { |
91 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kServiceStateContent)); | 95 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kServiceStateContent)); |
92 ConnectorSettings settings; | 96 ConnectorSettings settings; |
93 settings.InitFrom(prefs.get()); | 97 settings.InitFrom(prefs.get()); |
94 EXPECT_EQ("http://cp.google.com/", settings.server_url().spec()); | 98 EXPECT_EQ("http://cp.google.com/", settings.server_url().spec()); |
95 EXPECT_EQ("PROXY", settings.proxy_id()); | 99 EXPECT_EQ("PROXY", settings.proxy_id()); |
96 EXPECT_FALSE(settings.proxy_id().empty()); | 100 EXPECT_FALSE(settings.proxy_id().empty()); |
97 EXPECT_TRUE(settings.delete_on_enum_fail()); | 101 EXPECT_TRUE(settings.delete_on_enum_fail()); |
98 EXPECT_TRUE(settings.print_system_settings()); | 102 EXPECT_TRUE(settings.print_system_settings()); |
99 EXPECT_FALSE(settings.connect_new_printers()); | 103 EXPECT_FALSE(settings.connect_new_printers()); |
| 104 EXPECT_TRUE(settings.xmpp_ping_enabled()); |
| 105 EXPECT_EQ(settings.xmpp_ping_timeout_sec(), 256); |
100 EXPECT_FALSE(settings.IsPrinterBlacklisted("prn0")); | 106 EXPECT_FALSE(settings.IsPrinterBlacklisted("prn0")); |
101 EXPECT_TRUE(settings.IsPrinterBlacklisted("prn1")); | 107 EXPECT_TRUE(settings.IsPrinterBlacklisted("prn1")); |
102 } | 108 } |
103 | 109 |
104 TEST_F(ConnectorSettingsTest, CopyFrom) { | 110 TEST_F(ConnectorSettingsTest, CopyFrom) { |
105 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kServiceStateContent)); | 111 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile(kServiceStateContent)); |
106 ConnectorSettings settings1; | 112 ConnectorSettings settings1; |
107 settings1.InitFrom(prefs.get()); | 113 settings1.InitFrom(prefs.get()); |
108 | 114 |
109 ConnectorSettings settings2; | 115 ConnectorSettings settings2; |
110 settings2.CopyFrom(settings1); | 116 settings2.CopyFrom(settings1); |
111 | 117 |
112 EXPECT_EQ(settings1.server_url(), settings2.server_url()); | 118 EXPECT_EQ(settings1.server_url(), settings2.server_url()); |
113 EXPECT_EQ(settings1.proxy_id(), settings2.proxy_id()); | 119 EXPECT_EQ(settings1.proxy_id(), settings2.proxy_id()); |
114 EXPECT_EQ(settings1.delete_on_enum_fail(), settings2.delete_on_enum_fail()); | 120 EXPECT_EQ(settings1.delete_on_enum_fail(), settings2.delete_on_enum_fail()); |
115 EXPECT_EQ(settings1.print_system_settings()->size(), | 121 EXPECT_EQ(settings1.print_system_settings()->size(), |
116 settings2.print_system_settings()->size()); | 122 settings2.print_system_settings()->size()); |
117 EXPECT_EQ(settings1.connect_new_printers(), settings2.connect_new_printers()); | 123 EXPECT_EQ(settings1.connect_new_printers(), settings2.connect_new_printers()); |
| 124 EXPECT_EQ(settings1.xmpp_ping_enabled(), settings2.xmpp_ping_enabled()); |
| 125 EXPECT_EQ(settings1.xmpp_ping_timeout_sec(), |
| 126 settings2.xmpp_ping_timeout_sec()); |
118 EXPECT_TRUE(settings2.IsPrinterBlacklisted("prn1")); | 127 EXPECT_TRUE(settings2.IsPrinterBlacklisted("prn1")); |
119 } | 128 } |
120 | 129 |
| 130 TEST_F(ConnectorSettingsTest, SettersTest) { |
| 131 scoped_ptr<ServiceProcessPrefs> prefs(CreateTestFile("{}")); |
| 132 ConnectorSettings settings; |
| 133 settings.InitFrom(prefs.get()); |
| 134 EXPECT_FALSE(settings.xmpp_ping_enabled()); |
| 135 |
| 136 // Set and check valid settings. |
| 137 settings.set_xmpp_ping_enabled(true); |
| 138 settings.SetXmppPingTimeoutSec(256); |
| 139 EXPECT_TRUE(settings.xmpp_ping_enabled()); |
| 140 EXPECT_EQ(settings.xmpp_ping_timeout_sec(), 256); |
| 141 |
| 142 // Set invalid settings, and check correct defaults. |
| 143 settings.SetXmppPingTimeoutSec(1); |
| 144 EXPECT_EQ(settings.xmpp_ping_timeout_sec(), kMinimumXmppPingTimeoutSecs); |
| 145 } |
OLD | NEW |