| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/memory/ptr_util.h" | 6 #include "base/memory/ptr_util.h" |
| 7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "extensions/renderer/api_binding.h" | 10 #include "extensions/renderer/api_binding.h" |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 } | 119 } |
| 120 | 120 |
| 121 void OnEventListenersChanged(const std::string& event_name, | 121 void OnEventListenersChanged(const std::string& event_name, |
| 122 binding::EventListenersChanged change, | 122 binding::EventListenersChanged change, |
| 123 v8::Local<v8::Context> context) {} | 123 v8::Local<v8::Context> context) {} |
| 124 | 124 |
| 125 } // namespace | 125 } // namespace |
| 126 | 126 |
| 127 class APIBindingUnittest : public APIBindingTest { | 127 class APIBindingUnittest : public APIBindingTest { |
| 128 public: | 128 public: |
| 129 void OnFunctionCall(std::unique_ptr<APIBinding::Request> request, | 129 void OnFunctionCall(std::unique_ptr<APIRequestHandler::Request> request, |
| 130 v8::Local<v8::Context> context) { | 130 v8::Local<v8::Context> context) { |
| 131 last_request_ = std::move(request); | 131 last_request_ = std::move(request); |
| 132 } | 132 } |
| 133 | 133 |
| 134 protected: | 134 protected: |
| 135 APIBindingUnittest() | 135 APIBindingUnittest() |
| 136 : type_refs_(APITypeReferenceMap::InitializeTypeCallback()) {} | 136 : type_refs_(APITypeReferenceMap::InitializeTypeCallback()) {} |
| 137 void SetUp() override { | 137 void SetUp() override { |
| 138 APIBindingTest::SetUp(); | 138 APIBindingTest::SetUp(); |
| 139 request_handler_ = base::MakeUnique<APIRequestHandler>( | 139 request_handler_ = base::MakeUnique<APIRequestHandler>( |
| 140 base::Bind(&APIBindingUnittest::OnFunctionCall, base::Unretained(this)), |
| 140 base::Bind(&RunFunctionOnGlobalAndIgnoreResult), | 141 base::Bind(&RunFunctionOnGlobalAndIgnoreResult), |
| 141 APILastError(APILastError::GetParent())); | 142 APILastError(APILastError::GetParent())); |
| 142 } | 143 } |
| 143 | 144 |
| 144 void TearDown() override { | 145 void TearDown() override { |
| 145 request_handler_.reset(); | 146 request_handler_.reset(); |
| 146 event_handler_.reset(); | 147 event_handler_.reset(); |
| 147 binding_.reset(); | 148 binding_.reset(); |
| 148 APIBindingTest::TearDown(); | 149 APIBindingTest::TearDown(); |
| 149 } | 150 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 177 if (!binding_hooks_) { | 178 if (!binding_hooks_) { |
| 178 binding_hooks_ = | 179 binding_hooks_ = |
| 179 base::MakeUnique<APIBindingHooks>(binding::RunJSFunctionSync()); | 180 base::MakeUnique<APIBindingHooks>(binding::RunJSFunctionSync()); |
| 180 } | 181 } |
| 181 event_handler_ = base::MakeUnique<APIEventHandler>( | 182 event_handler_ = base::MakeUnique<APIEventHandler>( |
| 182 base::Bind(&RunFunctionOnGlobalAndIgnoreResult), | 183 base::Bind(&RunFunctionOnGlobalAndIgnoreResult), |
| 183 base::Bind(&OnEventListenersChanged)); | 184 base::Bind(&OnEventListenersChanged)); |
| 184 binding_ = base::MakeUnique<APIBinding>( | 185 binding_ = base::MakeUnique<APIBinding>( |
| 185 "test", binding_functions_.get(), binding_types_.get(), | 186 "test", binding_functions_.get(), binding_types_.get(), |
| 186 binding_events_.get(), binding_properties_.get(), | 187 binding_events_.get(), binding_properties_.get(), |
| 187 base::Bind(&APIBindingUnittest::OnFunctionCall, base::Unretained(this)), | |
| 188 std::move(binding_hooks_), &type_refs_, request_handler_.get(), | 188 std::move(binding_hooks_), &type_refs_, request_handler_.get(), |
| 189 event_handler_.get()); | 189 event_handler_.get()); |
| 190 EXPECT_EQ(!binding_types_.get(), type_refs_.empty()); | 190 EXPECT_EQ(!binding_types_.get(), type_refs_.empty()); |
| 191 } | 191 } |
| 192 | 192 |
| 193 void ExpectPass(v8::Local<v8::Object> object, | 193 void ExpectPass(v8::Local<v8::Object> object, |
| 194 const std::string& script_source, | 194 const std::string& script_source, |
| 195 const std::string& expected_json_arguments_single_quotes, | 195 const std::string& expected_json_arguments_single_quotes, |
| 196 bool expect_callback) { | 196 bool expect_callback) { |
| 197 ExpectPass(ContextLocal(), object, script_source, | 197 ExpectPass(ContextLocal(), object, script_source, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 209 } | 209 } |
| 210 | 210 |
| 211 void ExpectFailure(v8::Local<v8::Object> object, | 211 void ExpectFailure(v8::Local<v8::Object> object, |
| 212 const std::string& script_source, | 212 const std::string& script_source, |
| 213 const std::string& expected_error) { | 213 const std::string& expected_error) { |
| 214 RunTest(ContextLocal(), object, script_source, false, std::string(), false, | 214 RunTest(ContextLocal(), object, script_source, false, std::string(), false, |
| 215 expected_error); | 215 expected_error); |
| 216 } | 216 } |
| 217 | 217 |
| 218 bool HandlerWasInvoked() const { return last_request_ != nullptr; } | 218 bool HandlerWasInvoked() const { return last_request_ != nullptr; } |
| 219 const APIBinding::Request* last_request() const { | 219 const APIRequestHandler::Request* last_request() const { |
| 220 return last_request_.get(); | 220 return last_request_.get(); |
| 221 } | 221 } |
| 222 void reset_last_request() { last_request_.reset(); } | 222 void reset_last_request() { last_request_.reset(); } |
| 223 APIBinding* binding() { return binding_.get(); } | 223 APIBinding* binding() { return binding_.get(); } |
| 224 APIEventHandler* event_handler() { return event_handler_.get(); } | 224 APIEventHandler* event_handler() { return event_handler_.get(); } |
| 225 APIRequestHandler* request_handler() { return request_handler_.get(); } | 225 APIRequestHandler* request_handler() { return request_handler_.get(); } |
| 226 const APITypeReferenceMap& type_refs() const { return type_refs_; } | 226 const APITypeReferenceMap& type_refs() const { return type_refs_; } |
| 227 | 227 |
| 228 private: | 228 private: |
| 229 void RunTest(v8::Local<v8::Context> context, | 229 void RunTest(v8::Local<v8::Context> context, |
| 230 v8::Local<v8::Object> object, | 230 v8::Local<v8::Object> object, |
| 231 const std::string& script_source, | 231 const std::string& script_source, |
| 232 bool should_pass, | 232 bool should_pass, |
| 233 const std::string& expected_json_arguments, | 233 const std::string& expected_json_arguments, |
| 234 bool expect_callback, | 234 bool expect_callback, |
| 235 const std::string& expected_error); | 235 const std::string& expected_error); |
| 236 | 236 |
| 237 std::unique_ptr<APIBinding::Request> last_request_; | 237 std::unique_ptr<APIRequestHandler::Request> last_request_; |
| 238 std::unique_ptr<APIBinding> binding_; | 238 std::unique_ptr<APIBinding> binding_; |
| 239 std::unique_ptr<APIEventHandler> event_handler_; | 239 std::unique_ptr<APIEventHandler> event_handler_; |
| 240 std::unique_ptr<APIRequestHandler> request_handler_; | 240 std::unique_ptr<APIRequestHandler> request_handler_; |
| 241 APITypeReferenceMap type_refs_; | 241 APITypeReferenceMap type_refs_; |
| 242 | 242 |
| 243 std::unique_ptr<base::ListValue> binding_functions_; | 243 std::unique_ptr<base::ListValue> binding_functions_; |
| 244 std::unique_ptr<base::ListValue> binding_events_; | 244 std::unique_ptr<base::ListValue> binding_events_; |
| 245 std::unique_ptr<base::ListValue> binding_types_; | 245 std::unique_ptr<base::ListValue> binding_types_; |
| 246 std::unique_ptr<base::DictionaryValue> binding_properties_; | 246 std::unique_ptr<base::DictionaryValue> binding_properties_; |
| 247 std::unique_ptr<APIBindingHooks> binding_hooks_; | 247 std::unique_ptr<APIBindingHooks> binding_hooks_; |
| (...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 | 1045 |
| 1046 blink::WebScopedUserGesture user_gesture(nullptr); | 1046 blink::WebScopedUserGesture user_gesture(nullptr); |
| 1047 RunFunction(function, context, arraysize(argv), argv); | 1047 RunFunction(function, context, arraysize(argv), argv); |
| 1048 ASSERT_TRUE(last_request()); | 1048 ASSERT_TRUE(last_request()); |
| 1049 EXPECT_TRUE(last_request()->has_user_gesture); | 1049 EXPECT_TRUE(last_request()->has_user_gesture); |
| 1050 | 1050 |
| 1051 reset_last_request(); | 1051 reset_last_request(); |
| 1052 } | 1052 } |
| 1053 | 1053 |
| 1054 } // namespace extensions | 1054 } // namespace extensions |
| OLD | NEW |