Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: extensions/renderer/api_bindings_system_unittest.cc

Issue 2657613005: [Extensions Bindings] Add chrome.runtime.lastError support (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "extensions/renderer/api_bindings_system.h" 5 #include "extensions/renderer/api_bindings_system.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 void SetUp() override { 101 void SetUp() override {
102 APIBindingTest::SetUp(); 102 APIBindingTest::SetUp();
103 bindings_system_ = base::MakeUnique<APIBindingsSystem>( 103 bindings_system_ = base::MakeUnique<APIBindingsSystem>(
104 base::Bind(&RunFunctionOnGlobalAndIgnoreResult), 104 base::Bind(&RunFunctionOnGlobalAndIgnoreResult),
105 base::Bind(&RunFunctionOnGlobalAndReturnHandle), 105 base::Bind(&RunFunctionOnGlobalAndReturnHandle),
106 base::Bind(&APIBindingsSystemTestBase::GetAPISchema, 106 base::Bind(&APIBindingsSystemTestBase::GetAPISchema,
107 base::Unretained(this)), 107 base::Unretained(this)),
108 base::Bind(&APIBindingsSystemTestBase::OnAPIRequest, 108 base::Bind(&APIBindingsSystemTestBase::OnAPIRequest,
109 base::Unretained(this)), 109 base::Unretained(this)),
110 base::Bind(&APIBindingsSystemTestBase::OnEventListenersChanged, 110 base::Bind(&APIBindingsSystemTestBase::OnEventListenersChanged,
111 base::Unretained(this))); 111 base::Unretained(this)),
112 APILastError(APILastError::GetParent()));
112 } 113 }
113 114
114 void TearDown() override { 115 void TearDown() override {
115 bindings_system_.reset(); 116 bindings_system_.reset();
116 APIBindingTest::TearDown(); 117 APIBindingTest::TearDown();
117 } 118 }
118 119
119 // Checks that |last_request_| exists and was provided with the 120 // Checks that |last_request_| exists and was provided with the
120 // |expected_name| and |expected_arguments|. 121 // |expected_name| and |expected_arguments|.
121 void ValidateLastRequest(const std::string& expected_name, 122 void ValidateLastRequest(const std::string& expected_name,
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 " this.callbackArguments = Array.from(arguments);\n" 231 " this.callbackArguments = Array.from(arguments);\n"
231 "});"; 232 "});";
232 CallFunctionOnObject(context, alpha_api, kTestCall); 233 CallFunctionOnObject(context, alpha_api, kTestCall);
233 234
234 ValidateLastRequest("alpha.functionWithCallback", "['foo']"); 235 ValidateLastRequest("alpha.functionWithCallback", "['foo']");
235 236
236 const char kResponseArgsJson[] = "['response',1,{'key':42}]"; 237 const char kResponseArgsJson[] = "['response',1,{'key':42}]";
237 std::unique_ptr<base::ListValue> expected_args = 238 std::unique_ptr<base::ListValue> expected_args =
238 ListValueFromString(kResponseArgsJson); 239 ListValueFromString(kResponseArgsJson);
239 bindings_system()->CompleteRequest(last_request()->request_id, 240 bindings_system()->CompleteRequest(last_request()->request_id,
240 *expected_args); 241 *expected_args, std::string());
241 242
242 EXPECT_EQ(ReplaceSingleQuotes(kResponseArgsJson), 243 EXPECT_EQ(ReplaceSingleQuotes(kResponseArgsJson),
243 GetStringPropertyFromObject(context->Global(), context, 244 GetStringPropertyFromObject(context->Global(), context,
244 "callbackArguments")); 245 "callbackArguments"));
245 reset_last_request(); 246 reset_last_request();
246 } 247 }
247 248
248 { 249 {
249 // Test a call with references -> response. 250 // Test a call with references -> response.
250 const char kTestCall[] = 251 const char kTestCall[] =
251 "obj.functionWithRefAndCallback({prop1: 'alpha', prop2: 42},\n" 252 "obj.functionWithRefAndCallback({prop1: 'alpha', prop2: 42},\n"
252 " function() {\n" 253 " function() {\n"
253 " this.callbackArguments = Array.from(arguments);\n" 254 " this.callbackArguments = Array.from(arguments);\n"
254 "});"; 255 "});";
255 256
256 CallFunctionOnObject(context, alpha_api, kTestCall); 257 CallFunctionOnObject(context, alpha_api, kTestCall);
257 258
258 ValidateLastRequest("alpha.functionWithRefAndCallback", 259 ValidateLastRequest("alpha.functionWithRefAndCallback",
259 "[{'prop1':'alpha','prop2':42}]"); 260 "[{'prop1':'alpha','prop2':42}]");
260 261
261 bindings_system()->CompleteRequest(last_request()->request_id, 262 bindings_system()->CompleteRequest(last_request()->request_id,
262 base::ListValue()); 263 base::ListValue(), std::string());
263 264
264 EXPECT_EQ("[]", GetStringPropertyFromObject(context->Global(), context, 265 EXPECT_EQ("[]", GetStringPropertyFromObject(context->Global(), context,
265 "callbackArguments")); 266 "callbackArguments"));
266 reset_last_request(); 267 reset_last_request();
267 } 268 }
268 269
269 { 270 {
270 // Test an event registration -> event occurrence. 271 // Test an event registration -> event occurrence.
271 const char kTestCall[] = 272 const char kTestCall[] =
272 "obj.alphaEvent.addListener(function() {\n" 273 "obj.alphaEvent.addListener(function() {\n"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 const char kTestCall[] = 385 const char kTestCall[] =
385 "obj.functionWithCallback('foo', function() {\n" 386 "obj.functionWithCallback('foo', function() {\n"
386 " this.callbackArguments = Array.from(arguments);\n" 387 " this.callbackArguments = Array.from(arguments);\n"
387 "});"; 388 "});";
388 CallFunctionOnObject(context, alpha_api, kTestCall); 389 CallFunctionOnObject(context, alpha_api, kTestCall);
389 390
390 ValidateLastRequest("alpha.functionWithCallback", "['foo']"); 391 ValidateLastRequest("alpha.functionWithCallback", "['foo']");
391 392
392 std::unique_ptr<base::ListValue> response = 393 std::unique_ptr<base::ListValue> response =
393 ListValueFromString("['alpha','beta']"); 394 ListValueFromString("['alpha','beta']");
394 bindings_system()->CompleteRequest(last_request()->request_id, *response); 395 bindings_system()->CompleteRequest(last_request()->request_id, *response,
396 std::string());
395 397
396 EXPECT_EQ( 398 EXPECT_EQ(
397 "\"alpha.functionWithCallback\"", 399 "\"alpha.functionWithCallback\"",
398 GetStringPropertyFromObject(context->Global(), context, "methodName")); 400 GetStringPropertyFromObject(context->Global(), context, "methodName"));
399 EXPECT_EQ( 401 EXPECT_EQ(
400 "[\"alpha\",\"beta\"]", 402 "[\"alpha\",\"beta\"]",
401 GetStringPropertyFromObject(context->Global(), context, "results")); 403 GetStringPropertyFromObject(context->Global(), context, "results"));
402 EXPECT_EQ("[\"beta\"]", 404 EXPECT_EQ("[\"beta\"]",
403 GetStringPropertyFromObject(context->Global(), context, 405 GetStringPropertyFromObject(context->Global(), context,
404 "callbackArguments")); 406 "callbackArguments"));
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 context, "idleState")); 550 context, "idleState"));
549 bindings_system()->FireEventInContext("idle.onStateChanged", context, 551 bindings_system()->FireEventInContext("idle.onStateChanged", context,
550 *ListValueFromString("['active']")); 552 *ListValueFromString("['active']"));
551 553
552 EXPECT_EQ("\"active\"", GetStringPropertyFromObject(context->Global(), 554 EXPECT_EQ("\"active\"", GetStringPropertyFromObject(context->Global(),
553 context, "idleState")); 555 context, "idleState"));
554 } 556 }
555 } 557 }
556 558
557 } // namespace extensions 559 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698