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

Side by Side Diff: chrome/renderer/page_click_tracker_unittest.cc

Issue 6151011: Introduce RenderView::Observer interface so that RenderView doesn't have to k... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/basictypes.h" 5 #include "base/basictypes.h"
6 6
7 #include "chrome/common/render_messages.h" 7 #include "chrome/common/render_messages.h"
8 #include "chrome/renderer/page_click_listener.h" 8 #include "chrome/renderer/page_click_listener.h"
9 #include "chrome/renderer/page_click_tracker.h" 9 #include "chrome/renderer/page_click_tracker.h"
10 #include "chrome/test/render_view_test.h" 10 #include "chrome/test/render_view_test.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 bool called_; 43 bool called_;
44 WebKit::WebInputElement element_clicked_; 44 WebKit::WebInputElement element_clicked_;
45 bool was_focused_; 45 bool was_focused_;
46 bool is_focused_; 46 bool is_focused_;
47 bool notification_response_; 47 bool notification_response_;
48 }; 48 };
49 49
50 // Tests that PageClickTracker does notify correctly when a node is clicked. 50 // Tests that PageClickTracker does notify correctly when a node is clicked.
51 TEST_F(RenderViewTest, PageClickTracker) { 51 TEST_F(RenderViewTest, PageClickTracker) {
52 // RenderView creates PageClickTracker but it doesn't keep it around. Rather
53 // than make it do so for the test, we create a new object and register it.
54 PageClickTracker* page_click_tracker = new PageClickTracker();
55 view_->AddObserver(page_click_tracker);
56
52 TestPageClickListener test_listener1; 57 TestPageClickListener test_listener1;
53 TestPageClickListener test_listener2; 58 TestPageClickListener test_listener2;
54 view_->page_click_tracker()->AddListener(&test_listener1); 59 page_click_tracker->AddListener(&test_listener1);
55 view_->page_click_tracker()->AddListener(&test_listener2); 60 page_click_tracker->AddListener(&test_listener2);
56 61
57 LoadHTML("<form>" 62 LoadHTML("<form>"
58 " <input type='text' id='text'></input><br>" 63 " <input type='text' id='text'></input><br>"
59 " <input type='button' id='button'></input><br>" 64 " <input type='button' id='button'></input><br>"
60 "</form>"); 65 "</form>");
61 view_->webwidget()->resize(WebKit::WebSize(500, 500)); 66 view_->webwidget()->resize(WebKit::WebSize(500, 500));
62 view_->webwidget()->setFocus(true); 67 view_->webwidget()->setFocus(true);
63 WebKit::WebDocument document = view_->webview()->mainFrame()->document(); 68 WebKit::WebDocument document = view_->webview()->mainFrame()->document();
64 WebKit::WebElement text = document.getElementById("text"); 69 WebKit::WebElement text = document.getElementById("text");
65 ASSERT_FALSE(text.isNull()); 70 ASSERT_FALSE(text.isNull());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 104
100 // Make the first listener stop the event propagation, click the text field 105 // Make the first listener stop the event propagation, click the text field
101 // and make sure only the first listener is notified. 106 // and make sure only the first listener is notified.
102 test_listener1.notification_response_ = true; 107 test_listener1.notification_response_ = true;
103 EXPECT_TRUE(SimulateElementClick("text")); 108 EXPECT_TRUE(SimulateElementClick("text"));
104 EXPECT_TRUE(test_listener1.called_); 109 EXPECT_TRUE(test_listener1.called_);
105 EXPECT_FALSE(test_listener2.called_); 110 EXPECT_FALSE(test_listener2.called_);
106 test_listener1.ClearResults(); 111 test_listener1.ClearResults();
107 112
108 // Make sure removing a listener work. 113 // Make sure removing a listener work.
109 view_->page_click_tracker()->RemoveListener(&test_listener1); 114 page_click_tracker->RemoveListener(&test_listener1);
110 EXPECT_TRUE(SimulateElementClick("text")); 115 EXPECT_TRUE(SimulateElementClick("text"));
111 EXPECT_FALSE(test_listener1.called_); 116 EXPECT_FALSE(test_listener1.called_);
112 EXPECT_TRUE(test_listener2.called_); 117 EXPECT_TRUE(test_listener2.called_);
113 test_listener2.ClearResults(); 118 test_listener2.ClearResults();
114 119
115 // Make sure we don't choke when no listeners are registered. 120 // Make sure we don't choke when no listeners are registered.
116 view_->page_click_tracker()->RemoveListener(&test_listener2); 121 page_click_tracker->RemoveListener(&test_listener2);
117 EXPECT_TRUE(SimulateElementClick("text")); 122 EXPECT_TRUE(SimulateElementClick("text"));
118 EXPECT_FALSE(test_listener1.called_); 123 EXPECT_FALSE(test_listener1.called_);
119 EXPECT_FALSE(test_listener2.called_); 124 EXPECT_FALSE(test_listener2.called_);
120 } 125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698