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

Unified 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: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
index 3e5a1c1fe6ea8805440b7375bd9dfbe67d042830..f3ff7d13d3431a596894735ef8fdecb568b7f166 100644
--- a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
+++ b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
@@ -16,24 +16,29 @@ namespace {
class MockRequest : public PermissionBubbleRequest {
public:
- MockRequest() : granted_(false), cancelled_(false), finished_(false) {}
+ explicit MockRequest(const base::string16& message)
+ : message_(message),
+ granted_(false),
+ cancelled_(false),
+ finished_(false) {}
+
virtual ~MockRequest() {}
// PermissionBubbleRequest:
- virtual base::string16 GetMessageText() const OVERRIDE {
- return base::ASCIIToUTF16("test");
+ virtual int GetIconID() const OVERRIDE {
+ return 5;
}
- virtual base::string16 GetMessageTextFragment() const OVERRIDE {
- return base::ASCIIToUTF16("test");
+ virtual base::string16 GetMessageText() const OVERRIDE {
+ return message_;
}
- virtual base::string16 GetAlternateAcceptButtonText() const OVERRIDE {
- return base::ASCIIToUTF16("button");
+ virtual base::string16 GetMessageTextFragment() const OVERRIDE {
+ return message_;
}
- virtual base::string16 GetAlternateDenyButtonText() const OVERRIDE {
- return base::ASCIIToUTF16("button");
+ virtual bool HasUserGesture() const OVERRIDE {
+ return false;
}
virtual void PermissionGranted() OVERRIDE {
@@ -53,6 +58,7 @@ class MockRequest : public PermissionBubbleRequest {
finished_ = true;
}
+ base::string16 message_;
bool granted_;
bool cancelled_;
bool finished_;
@@ -88,6 +94,10 @@ class MockView : public PermissionBubbleView {
shown_ = false;
}
+ virtual bool CanAcceptRequestUpdate() OVERRIDE {
+ return true;
+ }
+
bool shown_;
Delegate* delegate_;
std::vector<PermissionBubbleRequest*> permission_requests_;
@@ -99,6 +109,11 @@ class MockView : public PermissionBubbleView {
class PermissionBubbleManagerTest : public testing::Test {
public:
PermissionBubbleManagerTest();
+ virtual ~PermissionBubbleManagerTest() {}
+
+ void TearDown() {
+ manager_.reset();
+ }
void ToggleAccept(int index, bool value) {
manager_->ToggleAccept(index, value);
@@ -123,7 +138,9 @@ class PermissionBubbleManagerTest : public testing::Test {
};
PermissionBubbleManagerTest::PermissionBubbleManagerTest()
- : manager_(new PermissionBubbleManager(NULL)),
+ : request1_(base::ASCIIToUTF16("test1")),
+ request2_(base::ASCIIToUTF16("test2")),
+ manager_(new PermissionBubbleManager(NULL)),
ui_thread_(content::BrowserThread::UI, &message_loop_) {
manager_->SetCoalesceIntervalForTesting(0);
}
@@ -302,3 +319,40 @@ TEST_F(PermissionBubbleManagerTest, SequentialRequests) {
EXPECT_FALSE(view_.shown_);
EXPECT_TRUE(request2_.granted_);
}
+
+TEST_F(PermissionBubbleManagerTest, SameRequestRejected) {
+ manager_->SetView(&view_);
+ manager_->AddRequest(&request1_);
+ manager_->AddRequest(&request1_);
groby-ooo-7-16 2014/02/25 22:27:36 I get why we can't do that in the current framewor
Greg Billock 2014/02/26 00:28:44 It shouldn't call RequestFinished, since the manag
groby-ooo-7-16 2014/02/26 02:28:11 FWIW, I think each JS request should simply genera
+
+ WaitForCoalescing();
+ EXPECT_TRUE(view_.shown_);
+ ASSERT_EQ(1u, view_.permission_requests_.size());
+ EXPECT_EQ(&request1_, view_.permission_requests_[0]);
+}
+
+TEST_F(PermissionBubbleManagerTest, DuplicateRequestRejected) {
+ manager_->SetView(&view_);
+ manager_->AddRequest(&request1_);
+ MockRequest dupe_request(base::ASCIIToUTF16("test1"));
+ manager_->AddRequest(&dupe_request);
+ EXPECT_TRUE(dupe_request.finished_);
+ EXPECT_FALSE(request1_.finished_);
+}
+
+TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) {
+ manager_->SetView(&view_);
+ manager_->AddRequest(&request1_);
+ WaitForCoalescing();
+ manager_->AddRequest(&request2_);
+
+ MockRequest dupe_request(base::ASCIIToUTF16("test1"));
+ manager_->AddRequest(&dupe_request);
+ EXPECT_TRUE(dupe_request.finished_);
+ EXPECT_FALSE(request1_.finished_);
+
+ MockRequest dupe_request2(base::ASCIIToUTF16("test2"));
+ manager_->AddRequest(&dupe_request2);
+ EXPECT_TRUE(dupe_request2.finished_);
+ EXPECT_FALSE(request2_.finished_);
+}

Powered by Google App Engine
This is Rietveld 408576698