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

Side by Side Diff: chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc

Issue 176053002: [WebsiteSettings] Change permission bubble API to adapt to new mocks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tweaks Created 6 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 | Annotate | Revision Log
OLDNEW
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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" 8 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
9 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" 9 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
10 #include "chrome/browser/ui/website_settings/permission_bubble_view.h" 10 #include "chrome/browser/ui/website_settings/permission_bubble_view.h"
11 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
12 #include "content/public/test/test_browser_thread.h" 12 #include "content/public/test/test_browser_thread.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace { 15 namespace {
16 16
17 class MockRequest : public PermissionBubbleRequest { 17 class MockRequest : public PermissionBubbleRequest {
18 public: 18 public:
19 MockRequest() : granted_(false), cancelled_(false), finished_(false) {} 19 explicit MockRequest(const base::string16& message)
20 : message_(message),
21 granted_(false),
22 cancelled_(false),
23 finished_(false) {}
24
20 virtual ~MockRequest() {} 25 virtual ~MockRequest() {}
21 26
22 // PermissionBubbleRequest: 27 // PermissionBubbleRequest:
28 virtual int GetIconID() const OVERRIDE {
29 return 5;
30 }
31
23 virtual base::string16 GetMessageText() const OVERRIDE { 32 virtual base::string16 GetMessageText() const OVERRIDE {
24 return base::ASCIIToUTF16("test"); 33 return message_;
25 } 34 }
26 35
27 virtual base::string16 GetMessageTextFragment() const OVERRIDE { 36 virtual base::string16 GetMessageTextFragment() const OVERRIDE {
28 return base::ASCIIToUTF16("test"); 37 return message_;
29 } 38 }
30 39
31 virtual base::string16 GetAlternateAcceptButtonText() const OVERRIDE { 40 virtual bool HasUserGesture() const OVERRIDE {
32 return base::ASCIIToUTF16("button"); 41 return false;
33 } 42 }
34 43
35 virtual base::string16 GetAlternateDenyButtonText() const OVERRIDE { 44 virtual GURL GetRequestingHostname() const OVERRIDE {
36 return base::ASCIIToUTF16("button"); 45 return GURL("http://www.google.com/");
37 } 46 }
38 47
39 virtual void PermissionGranted() OVERRIDE { 48 virtual void PermissionGranted() OVERRIDE {
40 granted_ = true; 49 granted_ = true;
41 } 50 }
42 51
43 virtual void PermissionDenied() OVERRIDE { 52 virtual void PermissionDenied() OVERRIDE {
44 granted_ = false; 53 granted_ = false;
45 } 54 }
46 55
47 virtual void Cancelled() OVERRIDE { 56 virtual void Cancelled() OVERRIDE {
48 granted_ = false; 57 granted_ = false;
49 cancelled_ = true; 58 cancelled_ = true;
50 } 59 }
51 60
52 virtual void RequestFinished() OVERRIDE { 61 virtual void RequestFinished() OVERRIDE {
53 finished_ = true; 62 finished_ = true;
54 } 63 }
55 64
65 base::string16 message_;
56 bool granted_; 66 bool granted_;
57 bool cancelled_; 67 bool cancelled_;
58 bool finished_; 68 bool finished_;
59 }; 69 };
60 70
61 class MockView : public PermissionBubbleView { 71 class MockView : public PermissionBubbleView {
62 public: 72 public:
63 MockView() : shown_(false), delegate_(NULL) {} 73 MockView() : shown_(false), delegate_(NULL) {}
64 ~MockView() {} 74 ~MockView() {}
65 75
(...skipping 15 matching lines...) Expand all
81 bool customization_state_) OVERRIDE { 91 bool customization_state_) OVERRIDE {
82 shown_ = true; 92 shown_ = true;
83 permission_requests_ = requests; 93 permission_requests_ = requests;
84 permission_states_ = accept_state; 94 permission_states_ = accept_state;
85 } 95 }
86 96
87 virtual void Hide() OVERRIDE { 97 virtual void Hide() OVERRIDE {
88 shown_ = false; 98 shown_ = false;
89 } 99 }
90 100
101 virtual bool CanAcceptRequestUpdate() OVERRIDE {
102 return true;
103 }
104
91 bool shown_; 105 bool shown_;
92 Delegate* delegate_; 106 Delegate* delegate_;
93 std::vector<PermissionBubbleRequest*> permission_requests_; 107 std::vector<PermissionBubbleRequest*> permission_requests_;
94 std::vector<bool> permission_states_; 108 std::vector<bool> permission_states_;
95 }; 109 };
96 110
97 } // namespace 111 } // namespace
98 112
99 class PermissionBubbleManagerTest : public testing::Test { 113 class PermissionBubbleManagerTest : public testing::Test {
100 public: 114 public:
101 PermissionBubbleManagerTest(); 115 PermissionBubbleManagerTest();
116 virtual ~PermissionBubbleManagerTest() {}
117
118 void TearDown() {
119 manager_.reset();
120 }
102 121
103 void ToggleAccept(int index, bool value) { 122 void ToggleAccept(int index, bool value) {
104 manager_->ToggleAccept(index, value); 123 manager_->ToggleAccept(index, value);
105 } 124 }
106 125
107 void Accept() { 126 void Accept() {
108 manager_->Accept(); 127 manager_->Accept();
109 } 128 }
110 129
111 void WaitForCoalescing() { 130 void WaitForCoalescing() {
112 base::MessageLoop::current()->RunUntilIdle(); 131 base::MessageLoop::current()->RunUntilIdle();
113 } 132 }
114 133
115 protected: 134 protected:
116 MockRequest request1_; 135 MockRequest request1_;
117 MockRequest request2_; 136 MockRequest request2_;
118 MockView view_; 137 MockView view_;
119 scoped_ptr<PermissionBubbleManager> manager_; 138 scoped_ptr<PermissionBubbleManager> manager_;
120 139
121 base::MessageLoop message_loop_; 140 base::MessageLoop message_loop_;
122 content::TestBrowserThread ui_thread_; 141 content::TestBrowserThread ui_thread_;
123 }; 142 };
124 143
125 PermissionBubbleManagerTest::PermissionBubbleManagerTest() 144 PermissionBubbleManagerTest::PermissionBubbleManagerTest()
126 : manager_(new PermissionBubbleManager(NULL)), 145 : request1_(base::ASCIIToUTF16("test1")),
146 request2_(base::ASCIIToUTF16("test2")),
147 manager_(new PermissionBubbleManager(NULL)),
127 ui_thread_(content::BrowserThread::UI, &message_loop_) { 148 ui_thread_(content::BrowserThread::UI, &message_loop_) {
128 manager_->SetCoalesceIntervalForTesting(0); 149 manager_->SetCoalesceIntervalForTesting(0);
129 } 150 }
130 151
131 TEST_F(PermissionBubbleManagerTest, TestFlag) { 152 TEST_F(PermissionBubbleManagerTest, TestFlag) {
132 EXPECT_FALSE(PermissionBubbleManager::Enabled()); 153 EXPECT_FALSE(PermissionBubbleManager::Enabled());
133 CommandLine::ForCurrentProcess()->AppendSwitch( 154 CommandLine::ForCurrentProcess()->AppendSwitch(
134 switches::kEnablePermissionsBubbles); 155 switches::kEnablePermissionsBubbles);
135 EXPECT_TRUE(PermissionBubbleManager::Enabled()); 156 EXPECT_TRUE(PermissionBubbleManager::Enabled());
136 } 157 }
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 316
296 EXPECT_FALSE(view_.shown_); 317 EXPECT_FALSE(view_.shown_);
297 318
298 manager_->AddRequest(&request2_); 319 manager_->AddRequest(&request2_);
299 WaitForCoalescing(); 320 WaitForCoalescing();
300 EXPECT_TRUE(view_.shown_); 321 EXPECT_TRUE(view_.shown_);
301 Accept(); 322 Accept();
302 EXPECT_FALSE(view_.shown_); 323 EXPECT_FALSE(view_.shown_);
303 EXPECT_TRUE(request2_.granted_); 324 EXPECT_TRUE(request2_.granted_);
304 } 325 }
326
327 TEST_F(PermissionBubbleManagerTest, SameRequestRejected) {
328 manager_->SetView(&view_);
329 manager_->AddRequest(&request1_);
330 manager_->AddRequest(&request1_);
331 EXPECT_FALSE(request1_.finished_);
332
333 WaitForCoalescing();
334 EXPECT_TRUE(view_.shown_);
335 ASSERT_EQ(1u, view_.permission_requests_.size());
336 EXPECT_EQ(&request1_, view_.permission_requests_[0]);
337 }
338
339 TEST_F(PermissionBubbleManagerTest, DuplicateRequestRejected) {
340 manager_->SetView(&view_);
341 manager_->AddRequest(&request1_);
342 MockRequest dupe_request(base::ASCIIToUTF16("test1"));
343 manager_->AddRequest(&dupe_request);
344 EXPECT_TRUE(dupe_request.finished_);
345 EXPECT_FALSE(request1_.finished_);
346 }
347
348 TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) {
349 manager_->SetView(&view_);
350 manager_->AddRequest(&request1_);
351 WaitForCoalescing();
352 manager_->AddRequest(&request2_);
353
354 MockRequest dupe_request(base::ASCIIToUTF16("test1"));
355 manager_->AddRequest(&dupe_request);
356 EXPECT_TRUE(dupe_request.finished_);
357 EXPECT_FALSE(request1_.finished_);
358
359 MockRequest dupe_request2(base::ASCIIToUTF16("test2"));
360 manager_->AddRequest(&dupe_request2);
361 EXPECT_TRUE(dupe_request2.finished_);
362 EXPECT_FALSE(request2_.finished_);
363 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698