OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |