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 "base/json/json_writer.h" | 5 #include "base/json/json_writer.h" |
6 #include "base/values.h" | 6 #include "base/values.h" |
7 #include "chrome/browser/extensions/api/copresence/copresence_api.h" | 7 #include "chrome/browser/extensions/api/copresence/copresence_api.h" |
8 #include "chrome/browser/extensions/extension_api_unittest.h" | 8 #include "chrome/browser/extensions/extension_api_unittest.h" |
9 #include "chrome/browser/extensions/extension_function_test_utils.h" | 9 #include "chrome/browser/extensions/extension_function_test_utils.h" |
10 #include "components/copresence/proto/data.pb.h" | 10 #include "components/copresence/proto/data.pb.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 | 60 |
61 template <typename T> | 61 template <typename T> |
62 bool GetOnly(const RepeatedPtrField<T>& things, T* out) { | 62 bool GetOnly(const RepeatedPtrField<T>& things, T* out) { |
63 if (things.size() != 1) | 63 if (things.size() != 1) |
64 return false; | 64 return false; |
65 | 65 |
66 *out = things.Get(0); | 66 *out = things.Get(0); |
67 return true; | 67 return true; |
68 } | 68 } |
69 | 69 |
70 class FakeCopresenceManager : public CopresenceManager { | 70 class MockCopresenceManager : public CopresenceManager { |
71 public: | 71 public: |
72 explicit FakeCopresenceManager(CopresenceDelegate* delegate) | 72 explicit MockCopresenceManager(CopresenceDelegate* delegate) |
73 : delegate_(delegate) {} | 73 : delegate_(delegate) {} |
74 ~FakeCopresenceManager() override {} | 74 ~MockCopresenceManager() override {} |
75 | 75 |
76 // CopresenceManager overrides. | |
77 copresence::CopresenceState* state() override { | |
78 NOTREACHED(); | |
79 return nullptr; | |
80 } | |
81 void ExecuteReportRequest( | 76 void ExecuteReportRequest( |
82 const ReportRequest& request, | 77 const ReportRequest& request, |
83 const std::string& app_id, | 78 const std::string& app_id, |
84 const std::string& /* auth_token */, | 79 const std::string& /* auth_token */, |
85 const copresence::StatusCallback& status_callback) override { | 80 const copresence::StatusCallback& status_callback) override { |
86 request_ = request; | 81 request_ = request; |
87 app_id_ = app_id; | 82 app_id_ = app_id; |
88 status_callback.Run(copresence::SUCCESS); | 83 status_callback.Run(copresence::SUCCESS); |
89 } | 84 } |
90 | 85 |
91 CopresenceDelegate* delegate_; | 86 CopresenceDelegate* delegate_; |
92 | 87 |
93 ReportRequest request_; | 88 ReportRequest request_; |
94 std::string app_id_; | 89 std::string app_id_; |
95 }; | 90 }; |
96 | 91 |
97 class CopresenceApiUnittest : public ExtensionApiUnittest { | 92 class CopresenceApiUnittest : public ExtensionApiUnittest { |
98 public: | 93 public: |
99 CopresenceApiUnittest() {} | 94 CopresenceApiUnittest() {} |
100 ~CopresenceApiUnittest() override {} | 95 ~CopresenceApiUnittest() override {} |
101 | 96 |
102 void SetUp() override { | 97 void SetUp() override { |
103 ExtensionApiUnittest::SetUp(); | 98 ExtensionApiUnittest::SetUp(); |
104 | 99 |
105 CopresenceService* service = | 100 CopresenceService* service = |
106 CopresenceService::GetFactoryInstance()->Get(profile()); | 101 CopresenceService::GetFactoryInstance()->Get(profile()); |
107 copresence_manager_ = new FakeCopresenceManager(service); | 102 copresence_manager_ = new MockCopresenceManager(service); |
108 service->set_manager_for_testing( | 103 service->set_manager_for_testing( |
109 make_scoped_ptr<CopresenceManager>(copresence_manager_)); | 104 make_scoped_ptr<CopresenceManager>(copresence_manager_)); |
110 } | 105 } |
111 | 106 |
112 // Takes ownership of the operation_list. | 107 // Takes ownership of the operation_list. |
113 bool ExecuteOperations(ListValue* operation_list) { | 108 bool ExecuteOperations(ListValue* operation_list) { |
114 scoped_ptr<ListValue> args_list(new ListValue); | 109 scoped_ptr<ListValue> args_list(new ListValue); |
115 args_list->Append(operation_list); | 110 args_list->Append(operation_list); |
116 | 111 |
117 scoped_refptr<UIThreadExtensionFunction> function = | 112 scoped_refptr<UIThreadExtensionFunction> function = |
(...skipping 14 matching lines...) Expand all Loading... |
132 | 127 |
133 const ReportRequest& request_sent() const { | 128 const ReportRequest& request_sent() const { |
134 return copresence_manager_->request_; | 129 return copresence_manager_->request_; |
135 } | 130 } |
136 | 131 |
137 const std::string& app_id_sent() const { | 132 const std::string& app_id_sent() const { |
138 return copresence_manager_->app_id_; | 133 return copresence_manager_->app_id_; |
139 } | 134 } |
140 | 135 |
141 void clear_app_id() { | 136 void clear_app_id() { |
142 copresence_manager_->app_id_.clear(); | 137 copresence_manager_->app_id_ = ""; |
143 } | 138 } |
144 | 139 |
145 CopresenceDelegate* delegate() { | 140 CopresenceDelegate* delegate() { |
146 return copresence_manager_->delegate_; | 141 return copresence_manager_->delegate_; |
147 } | 142 } |
148 | 143 |
149 protected: | 144 protected: |
150 FakeCopresenceManager* copresence_manager_; | 145 MockCopresenceManager* copresence_manager_; |
151 }; | 146 }; |
152 | 147 |
153 TEST_F(CopresenceApiUnittest, Publish) { | 148 TEST_F(CopresenceApiUnittest, Publish) { |
154 scoped_ptr<PublishOperation> publish(CreatePublish("pub")); | 149 scoped_ptr<PublishOperation> publish(CreatePublish("pub")); |
155 publish->strategies.reset(new Strategy); | 150 publish->strategies.reset(new Strategy); |
156 publish->strategies->only_broadcast.reset(new bool(true)); // Default | 151 publish->strategies->only_broadcast.reset(new bool(true)); // Default |
157 | 152 |
158 scoped_ptr<Operation> operation(new Operation); | 153 scoped_ptr<Operation> operation(new Operation); |
159 operation->publish = publish.Pass(); | 154 operation->publish = publish.Pass(); |
160 | 155 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 scoped_ptr<Operation> multi_operation(new Operation); | 282 scoped_ptr<Operation> multi_operation(new Operation); |
288 multi_operation->publish.reset(CreatePublish("pub")); | 283 multi_operation->publish.reset(CreatePublish("pub")); |
289 multi_operation->subscribe.reset(CreateSubscribe("sub")); | 284 multi_operation->subscribe.reset(CreateSubscribe("sub")); |
290 | 285 |
291 EXPECT_FALSE(ExecuteOperation(multi_operation.Pass())); | 286 EXPECT_FALSE(ExecuteOperation(multi_operation.Pass())); |
292 } | 287 } |
293 | 288 |
294 } // namespace extensions | 289 } // namespace extensions |
295 | 290 |
296 // TODO(ckehoe): add tests for auth tokens and api key functionality | 291 // TODO(ckehoe): add tests for auth tokens and api key functionality |
OLD | NEW |