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

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
« no previous file with comments | « chrome/renderer/page_click_tracker.cc ('k') | chrome/renderer/password_autocomplete_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
54 PageClickTracker* page_click_tracker = new PageClickTracker(view_);
55
52 TestPageClickListener test_listener1; 56 TestPageClickListener test_listener1;
53 TestPageClickListener test_listener2; 57 TestPageClickListener test_listener2;
54 view_->page_click_tracker()->AddListener(&test_listener1); 58 page_click_tracker->AddListener(&test_listener1);
55 view_->page_click_tracker()->AddListener(&test_listener2); 59 page_click_tracker->AddListener(&test_listener2);
56 60
57 LoadHTML("<form>" 61 LoadHTML("<form>"
58 " <input type='text' id='text'></input><br>" 62 " <input type='text' id='text'></input><br>"
59 " <input type='button' id='button'></input><br>" 63 " <input type='button' id='button'></input><br>"
60 "</form>"); 64 "</form>");
61 view_->webwidget()->resize(WebKit::WebSize(500, 500)); 65 view_->webwidget()->resize(WebKit::WebSize(500, 500));
62 view_->webwidget()->setFocus(true); 66 view_->webwidget()->setFocus(true);
63 WebKit::WebDocument document = view_->webview()->mainFrame()->document(); 67 WebKit::WebDocument document = view_->webview()->mainFrame()->document();
64 WebKit::WebElement text = document.getElementById("text"); 68 WebKit::WebElement text = document.getElementById("text");
65 ASSERT_FALSE(text.isNull()); 69 ASSERT_FALSE(text.isNull());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 103
100 // Make the first listener stop the event propagation, click the text field 104 // Make the first listener stop the event propagation, click the text field
101 // and make sure only the first listener is notified. 105 // and make sure only the first listener is notified.
102 test_listener1.notification_response_ = true; 106 test_listener1.notification_response_ = true;
103 EXPECT_TRUE(SimulateElementClick("text")); 107 EXPECT_TRUE(SimulateElementClick("text"));
104 EXPECT_TRUE(test_listener1.called_); 108 EXPECT_TRUE(test_listener1.called_);
105 EXPECT_FALSE(test_listener2.called_); 109 EXPECT_FALSE(test_listener2.called_);
106 test_listener1.ClearResults(); 110 test_listener1.ClearResults();
107 111
108 // Make sure removing a listener work. 112 // Make sure removing a listener work.
109 view_->page_click_tracker()->RemoveListener(&test_listener1); 113 page_click_tracker->RemoveListener(&test_listener1);
110 EXPECT_TRUE(SimulateElementClick("text")); 114 EXPECT_TRUE(SimulateElementClick("text"));
111 EXPECT_FALSE(test_listener1.called_); 115 EXPECT_FALSE(test_listener1.called_);
112 EXPECT_TRUE(test_listener2.called_); 116 EXPECT_TRUE(test_listener2.called_);
113 test_listener2.ClearResults(); 117 test_listener2.ClearResults();
114 118
115 // Make sure we don't choke when no listeners are registered. 119 // Make sure we don't choke when no listeners are registered.
116 view_->page_click_tracker()->RemoveListener(&test_listener2); 120 page_click_tracker->RemoveListener(&test_listener2);
117 EXPECT_TRUE(SimulateElementClick("text")); 121 EXPECT_TRUE(SimulateElementClick("text"));
118 EXPECT_FALSE(test_listener1.called_); 122 EXPECT_FALSE(test_listener1.called_);
119 EXPECT_FALSE(test_listener2.called_); 123 EXPECT_FALSE(test_listener2.called_);
120 } 124 }
OLDNEW
« no previous file with comments | « chrome/renderer/page_click_tracker.cc ('k') | chrome/renderer/password_autocomplete_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698