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

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

Issue 2583273002: [Extensions Bindings] Allow for argument validation without conversion (Closed)
Patch Set: format Created 4 years 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 "base/memory/ptr_util.h" 5 #include "base/memory/ptr_util.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "extensions/renderer/api_binding_test_util.h" 7 #include "extensions/renderer/api_binding_test_util.h"
8 #include "extensions/renderer/argument_spec.h" 8 #include "extensions/renderer/argument_spec.h"
9 #include "gin/converter.h" 9 #include "gin/converter.h"
10 #include "gin/public/isolate_holder.h" 10 #include "gin/public/isolate_holder.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 v8::Isolate* isolate = instance_->isolate(); 64 v8::Isolate* isolate = instance_->isolate();
65 v8::HandleScope handle_scope(instance_->isolate()); 65 v8::HandleScope handle_scope(instance_->isolate());
66 66
67 v8::Local<v8::Context> context = 67 v8::Local<v8::Context> context =
68 v8::Local<v8::Context>::New(instance_->isolate(), context_); 68 v8::Local<v8::Context>::New(instance_->isolate(), context_);
69 v8::TryCatch try_catch(isolate); 69 v8::TryCatch try_catch(isolate);
70 v8::Local<v8::Value> val = V8ValueFromScriptSource(context, script_source); 70 v8::Local<v8::Value> val = V8ValueFromScriptSource(context, script_source);
71 ASSERT_FALSE(val.IsEmpty()) << script_source; 71 ASSERT_FALSE(val.IsEmpty()) << script_source;
72 72
73 std::string error; 73 std::string error;
74 std::unique_ptr<base::Value> out_value = 74 std::unique_ptr<base::Value> out_value;
75 spec.ConvertArgument(context, val, type_refs_, &error); 75 bool did_succeed =
76 spec.ParseArgument(context, val, type_refs_, &out_value, &error);
76 bool should_succeed = expected_result == TestResult::PASS; 77 bool should_succeed = expected_result == TestResult::PASS;
77 ASSERT_EQ(should_succeed, !!out_value) << script_source << ", " << error; 78 ASSERT_EQ(should_succeed, did_succeed) << script_source << ", " << error;
79 ASSERT_EQ(did_succeed, !!out_value);
78 bool should_throw = expected_result == TestResult::THROW; 80 bool should_throw = expected_result == TestResult::THROW;
79 ASSERT_EQ(should_throw, try_catch.HasCaught()) << script_source; 81 ASSERT_EQ(should_throw, try_catch.HasCaught()) << script_source;
80 if (should_succeed) { 82 if (should_succeed) {
81 ASSERT_TRUE(out_value); 83 ASSERT_TRUE(out_value);
82 EXPECT_EQ(expected_json, ValueToString(*out_value)); 84 EXPECT_EQ(expected_json, ValueToString(*out_value));
83 } else if (should_throw) { 85 } else if (should_throw) {
84 EXPECT_EQ(expected_thrown_message, 86 EXPECT_EQ(expected_thrown_message,
85 gin::V8ToString(try_catch.Message()->Get())); 87 gin::V8ToString(try_catch.Message()->Get()));
86 } 88 }
87 } 89 }
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 ExpectSuccess(spec, "['alpha']", "['alpha']"); 310 ExpectSuccess(spec, "['alpha']", "['alpha']");
309 ExpectSuccess(spec, "['alpha', 'beta']", "['alpha','beta']"); 311 ExpectSuccess(spec, "['alpha', 'beta']", "['alpha','beta']");
310 ExpectSuccess(spec, "({prop1: 'alpha'})", "{'prop1':'alpha'}"); 312 ExpectSuccess(spec, "({prop1: 'alpha'})", "{'prop1':'alpha'}");
311 ExpectFailure(spec, "({prop1: 1})"); 313 ExpectFailure(spec, "({prop1: 1})");
312 ExpectFailure(spec, "'alpha'"); 314 ExpectFailure(spec, "'alpha'");
313 ExpectFailure(spec, "42"); 315 ExpectFailure(spec, "42");
314 } 316 }
315 } 317 }
316 318
317 } // namespace extensions 319 } // namespace extensions
OLDNEW
« extensions/renderer/api_signature.cc ('K') | « extensions/renderer/argument_spec.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698