OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/browser/extensions/api/copresence/copresence_api.h" |
| 6 |
| 7 #include <utility> |
| 8 |
5 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
6 #include "base/values.h" | 10 #include "base/values.h" |
7 #include "chrome/browser/extensions/api/copresence/copresence_api.h" | |
8 #include "chrome/browser/extensions/extension_api_unittest.h" | 11 #include "chrome/browser/extensions/extension_api_unittest.h" |
9 #include "chrome/browser/extensions/extension_function_test_utils.h" | 12 #include "chrome/browser/extensions/extension_function_test_utils.h" |
10 #include "components/copresence/proto/data.pb.h" | 13 #include "components/copresence/proto/data.pb.h" |
11 #include "components/copresence/proto/rpcs.pb.h" | 14 #include "components/copresence/proto/rpcs.pb.h" |
12 #include "components/copresence/public/copresence_manager.h" | 15 #include "components/copresence/public/copresence_manager.h" |
13 | 16 |
14 using base::ListValue; | 17 using base::ListValue; |
15 using copresence::AUDIO_CONFIGURATION_AUDIBLE; | 18 using copresence::AUDIO_CONFIGURATION_AUDIBLE; |
16 using copresence::AUDIO_CONFIGURATION_UNKNOWN; | 19 using copresence::AUDIO_CONFIGURATION_UNKNOWN; |
17 using copresence::BROADCAST_ONLY; | 20 using copresence::BROADCAST_ONLY; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 // Takes ownership of the operation_list. | 116 // Takes ownership of the operation_list. |
114 bool ExecuteOperations(ListValue* operation_list) { | 117 bool ExecuteOperations(ListValue* operation_list) { |
115 scoped_ptr<ListValue> args_list(new ListValue); | 118 scoped_ptr<ListValue> args_list(new ListValue); |
116 args_list->Append(operation_list); | 119 args_list->Append(operation_list); |
117 | 120 |
118 scoped_refptr<UIThreadExtensionFunction> function = | 121 scoped_refptr<UIThreadExtensionFunction> function = |
119 new CopresenceExecuteFunction; | 122 new CopresenceExecuteFunction; |
120 function->set_extension(extension()); | 123 function->set_extension(extension()); |
121 function->set_browser_context(profile()); | 124 function->set_browser_context(profile()); |
122 function->set_has_callback(true); | 125 function->set_has_callback(true); |
123 test_utils::RunFunction( | 126 test_utils::RunFunction(function.get(), std::move(args_list), browser(), |
124 function.get(), args_list.Pass(), browser(), test_utils::NONE); | 127 test_utils::NONE); |
125 return function->GetResultList(); | 128 return function->GetResultList(); |
126 } | 129 } |
127 | 130 |
128 bool ExecuteOperation(scoped_ptr<Operation> operation) { | 131 bool ExecuteOperation(scoped_ptr<Operation> operation) { |
129 ListValue* operation_list = new ListValue; | 132 ListValue* operation_list = new ListValue; |
130 operation_list->Append(operation->ToValue().release()); | 133 operation_list->Append(operation->ToValue().release()); |
131 return ExecuteOperations(operation_list); | 134 return ExecuteOperations(operation_list); |
132 } | 135 } |
133 | 136 |
134 const ReportRequest& request_sent() const { | 137 const ReportRequest& request_sent() const { |
(...skipping 15 matching lines...) Expand all Loading... |
150 protected: | 153 protected: |
151 FakeCopresenceManager* copresence_manager_; | 154 FakeCopresenceManager* copresence_manager_; |
152 }; | 155 }; |
153 | 156 |
154 TEST_F(CopresenceApiUnittest, Publish) { | 157 TEST_F(CopresenceApiUnittest, Publish) { |
155 scoped_ptr<PublishOperation> publish(CreatePublish("pub")); | 158 scoped_ptr<PublishOperation> publish(CreatePublish("pub")); |
156 publish->strategies.reset(new Strategy); | 159 publish->strategies.reset(new Strategy); |
157 publish->strategies->only_broadcast.reset(new bool(true)); // Default | 160 publish->strategies->only_broadcast.reset(new bool(true)); // Default |
158 | 161 |
159 scoped_ptr<Operation> operation(new Operation); | 162 scoped_ptr<Operation> operation(new Operation); |
160 operation->publish = publish.Pass(); | 163 operation->publish = std::move(publish); |
161 | 164 |
162 clear_app_id(); | 165 clear_app_id(); |
163 EXPECT_TRUE(ExecuteOperation(operation.Pass())); | 166 EXPECT_TRUE(ExecuteOperation(std::move(operation))); |
164 EXPECT_EQ(extension()->id(), app_id_sent()); | 167 EXPECT_EQ(extension()->id(), app_id_sent()); |
165 | 168 |
166 PublishedMessage message; | 169 PublishedMessage message; |
167 ASSERT_TRUE(GetOnly( | 170 ASSERT_TRUE(GetOnly( |
168 request_sent().manage_messages_request().message_to_publish(), &message)); | 171 request_sent().manage_messages_request().message_to_publish(), &message)); |
169 EXPECT_EQ("pub", message.id()); | 172 EXPECT_EQ("pub", message.id()); |
170 EXPECT_EQ(1000, message.access_policy().ttl_millis()); | 173 EXPECT_EQ(1000, message.access_policy().ttl_millis()); |
171 EXPECT_EQ(copresence::NO_ACL_CHECK, message.access_policy().acl().acl_type()); | 174 EXPECT_EQ(copresence::NO_ACL_CHECK, message.access_policy().acl().acl_type()); |
172 EXPECT_EQ("joke", message.message().type().type()); | 175 EXPECT_EQ("joke", message.message().type().type()); |
173 EXPECT_EQ("Knock Knock!", message.message().payload()); | 176 EXPECT_EQ("Knock Knock!", message.message().payload()); |
174 EXPECT_EQ(BROADCAST_ONLY, | 177 EXPECT_EQ(BROADCAST_ONLY, |
175 message.token_exchange_strategy().broadcast_scan_configuration()); | 178 message.token_exchange_strategy().broadcast_scan_configuration()); |
176 EXPECT_EQ(AUDIO_CONFIGURATION_UNKNOWN, | 179 EXPECT_EQ(AUDIO_CONFIGURATION_UNKNOWN, |
177 message.token_exchange_strategy().audio_configuration()); | 180 message.token_exchange_strategy().audio_configuration()); |
178 } | 181 } |
179 | 182 |
180 TEST_F(CopresenceApiUnittest, Subscribe) { | 183 TEST_F(CopresenceApiUnittest, Subscribe) { |
181 scoped_ptr<SubscribeOperation> subscribe(CreateSubscribe("sub")); | 184 scoped_ptr<SubscribeOperation> subscribe(CreateSubscribe("sub")); |
182 subscribe->strategies.reset(new Strategy); | 185 subscribe->strategies.reset(new Strategy); |
183 subscribe->strategies->only_broadcast.reset(new bool(true)); // Not default | 186 subscribe->strategies->only_broadcast.reset(new bool(true)); // Not default |
184 subscribe->strategies->audible.reset(new bool(true)); // Not default | 187 subscribe->strategies->audible.reset(new bool(true)); // Not default |
185 | 188 |
186 scoped_ptr<Operation> operation(new Operation); | 189 scoped_ptr<Operation> operation(new Operation); |
187 operation->subscribe = subscribe.Pass(); | 190 operation->subscribe = std::move(subscribe); |
188 | 191 |
189 clear_app_id(); | 192 clear_app_id(); |
190 EXPECT_TRUE(ExecuteOperation(operation.Pass())); | 193 EXPECT_TRUE(ExecuteOperation(std::move(operation))); |
191 EXPECT_EQ(extension()->id(), app_id_sent()); | 194 EXPECT_EQ(extension()->id(), app_id_sent()); |
192 | 195 |
193 Subscription subscription; | 196 Subscription subscription; |
194 ASSERT_TRUE(GetOnly( | 197 ASSERT_TRUE(GetOnly( |
195 request_sent().manage_subscriptions_request().subscription(), | 198 request_sent().manage_subscriptions_request().subscription(), |
196 &subscription)); | 199 &subscription)); |
197 EXPECT_EQ("sub", subscription.id()); | 200 EXPECT_EQ("sub", subscription.id()); |
198 EXPECT_EQ(1000, subscription.ttl_millis()); | 201 EXPECT_EQ(1000, subscription.ttl_millis()); |
199 EXPECT_EQ("joke", subscription.message_type().type()); | 202 EXPECT_EQ("joke", subscription.message_type().type()); |
200 copresence::BroadcastScanConfiguration broadcast_scan = | 203 copresence::BroadcastScanConfiguration broadcast_scan = |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 request_sent().manage_subscriptions_request().id_to_unsubscribe(), | 277 request_sent().manage_subscriptions_request().id_to_unsubscribe(), |
275 &unsubscribe_id)); | 278 &unsubscribe_id)); |
276 EXPECT_EQ("sub", unsubscribe_id); | 279 EXPECT_EQ("sub", unsubscribe_id); |
277 } | 280 } |
278 | 281 |
279 TEST_F(CopresenceApiUnittest, BadId) { | 282 TEST_F(CopresenceApiUnittest, BadId) { |
280 scoped_ptr<Operation> unsubscribe_operation(new Operation); | 283 scoped_ptr<Operation> unsubscribe_operation(new Operation); |
281 unsubscribe_operation->unsubscribe.reset(new UnsubscribeOperation); | 284 unsubscribe_operation->unsubscribe.reset(new UnsubscribeOperation); |
282 unsubscribe_operation->unsubscribe->unsubscribe_id = "invalid id"; | 285 unsubscribe_operation->unsubscribe->unsubscribe_id = "invalid id"; |
283 | 286 |
284 EXPECT_FALSE(ExecuteOperation(unsubscribe_operation.Pass())); | 287 EXPECT_FALSE(ExecuteOperation(std::move(unsubscribe_operation))); |
285 } | 288 } |
286 | 289 |
287 TEST_F(CopresenceApiUnittest, MultipleOperations) { | 290 TEST_F(CopresenceApiUnittest, MultipleOperations) { |
288 scoped_ptr<Operation> multi_operation(new Operation); | 291 scoped_ptr<Operation> multi_operation(new Operation); |
289 multi_operation->publish.reset(CreatePublish("pub")); | 292 multi_operation->publish.reset(CreatePublish("pub")); |
290 multi_operation->subscribe.reset(CreateSubscribe("sub")); | 293 multi_operation->subscribe.reset(CreateSubscribe("sub")); |
291 | 294 |
292 EXPECT_FALSE(ExecuteOperation(multi_operation.Pass())); | 295 EXPECT_FALSE(ExecuteOperation(std::move(multi_operation))); |
293 } | 296 } |
294 | 297 |
295 } // namespace extensions | 298 } // namespace extensions |
296 | 299 |
297 // TODO(ckehoe): add tests for auth tokens and api key functionality | 300 // TODO(ckehoe): add tests for auth tokens and api key functionality |
OLD | NEW |