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

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

Issue 2947843004: [Extensions Bindings] Introduce BindingAccessChecker (Closed)
Patch Set: lazyboy's Created 3 years, 6 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
« no previous file with comments | « extensions/renderer/binding_access_checker.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "extensions/renderer/binding_access_checker.h"
6
7 #include "base/bind.h"
8 #include "extensions/renderer/api_binding_test.h"
9 #include "gin/converter.h"
10
11 namespace extensions {
12
13 namespace {
14
15 bool IsAvailable(v8::Local<v8::Context> context, const std::string& full_name) {
16 EXPECT_TRUE(full_name == "available" || full_name == "unavailable")
17 << full_name;
18 return full_name == "available";
19 }
20
21 } // namespace
22
23 using BindingAccessCheckerTest = APIBindingTest;
24
25 TEST_F(BindingAccessCheckerTest, TestHasAccess) {
26 v8::HandleScope handle_scope(isolate());
27
28 BindingAccessChecker checker(base::Bind(&IsAvailable));
29
30 v8::Local<v8::Context> context = MainContext();
31 EXPECT_TRUE(checker.HasAccess(context, "available"));
32 EXPECT_FALSE(checker.HasAccess(context, "unavailable"));
33 }
34
35 TEST_F(BindingAccessCheckerTest, TestHasAccessOrThrowError) {
36 v8::HandleScope handle_scope(isolate());
37
38 BindingAccessChecker checker(base::Bind(&IsAvailable));
39
40 v8::Local<v8::Context> context = MainContext();
41 {
42 v8::TryCatch try_catch(isolate());
43 EXPECT_TRUE(checker.HasAccessOrThrowError(context, "available"));
44 EXPECT_FALSE(try_catch.HasCaught());
45 }
46
47 {
48 v8::TryCatch try_catch(isolate());
49 EXPECT_FALSE(checker.HasAccessOrThrowError(context, "unavailable"));
50 ASSERT_TRUE(try_catch.HasCaught());
51 EXPECT_EQ("Uncaught Error: 'unavailable' is not available in this context.",
52 gin::V8ToString(try_catch.Message()->Get()));
53 }
54 }
55
56 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/binding_access_checker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698