| Index: chrome/renderer/autofill/page_click_tracker_browsertest.cc
|
| diff --git a/chrome/renderer/autofill/page_click_tracker_browsertest.cc b/chrome/renderer/autofill/page_click_tracker_browsertest.cc
|
| index 9a498c9e202e0f286a83cbfd06684ef784b97202..28497fb4ae2fdbd017cf9bd99aebc43271c1ac42 100644
|
| --- a/chrome/renderer/autofill/page_click_tracker_browsertest.cc
|
| +++ b/chrome/renderer/autofill/page_click_tracker_browsertest.cc
|
| @@ -2,11 +2,13 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "components/autofill/content/renderer/page_click_tracker.h"
|
| +
|
| #include "base/basictypes.h"
|
| #include "chrome/test/base/chrome_render_view_test.h"
|
| #include "components/autofill/content/renderer/page_click_listener.h"
|
| -#include "components/autofill/content/renderer/page_click_tracker.h"
|
| #include "content/public/renderer/render_view.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/WebKit/public/platform/WebFloatPoint.h"
|
| #include "third_party/WebKit/public/platform/WebSize.h"
|
| @@ -19,6 +21,26 @@
|
|
|
| namespace autofill {
|
|
|
| +using testing::Return;
|
| +
|
| +class MockPageClickTracker : public PageClickTracker {
|
| + public:
|
| + MockPageClickTracker(content::RenderFrame* render_frame,
|
| + PageClickListener* listener)
|
| + : PageClickTracker(render_frame, listener) {
|
| + ON_CALL(*this, IsUserGesture()).WillByDefault(Return(true));
|
| + ON_CALL(*this, IsKeyboardAccessory()).WillByDefault(Return(false));
|
| + }
|
| +
|
| + ~MockPageClickTracker() override {}
|
| +
|
| + MOCK_CONST_METHOD0(IsUserGesture, bool());
|
| + MOCK_CONST_METHOD0(IsKeyboardAccessory, bool());
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(MockPageClickTracker);
|
| +};
|
| +
|
| class TestPageClickListener : public PageClickListener {
|
| public:
|
| TestPageClickListener()
|
| @@ -50,8 +72,8 @@ class PageClickTrackerTest : public ChromeRenderViewTest {
|
|
|
| // RenderView creates PageClickTracker but it doesn't keep it around.
|
| // Rather than make it do so for the test, we create a new object.
|
| - page_click_tracker_.reset(new PageClickTracker(view_->GetMainRenderFrame(),
|
| - &test_listener_));
|
| + page_click_tracker_.reset(new testing::NiceMock<MockPageClickTracker>(
|
| + view_->GetMainRenderFrame(), &test_listener_));
|
|
|
| // Must be set before loading HTML.
|
| view_->GetWebView()->setDefaultPageScaleLimits(1, 4);
|
| @@ -85,7 +107,7 @@ class PageClickTrackerTest : public ChromeRenderViewTest {
|
| ChromeRenderViewTest::TearDown();
|
| }
|
|
|
| - scoped_ptr<PageClickTracker> page_click_tracker_;
|
| + scoped_ptr<MockPageClickTracker> page_click_tracker_;
|
| TestPageClickListener test_listener_;
|
| blink::WebElement text_;
|
| blink::WebElement textarea_;
|
| @@ -245,4 +267,35 @@ TEST_F(PageClickTrackerTest, PageClickTrackerTapNearEdgeIsPageClick) {
|
| EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_);
|
| }
|
|
|
| +TEST_F(PageClickTrackerTest, KeyboardAccessoryForMouseDown) {
|
| + LOG(ERROR) << "Starting the test...";
|
| + EXPECT_CALL(*page_click_tracker_, IsKeyboardAccessory())
|
| + .WillOnce(Return(true));
|
| + page_click_tracker_->OnMouseDown(text_);
|
| + EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
|
| +}
|
| +
|
| +TEST_F(PageClickTrackerTest, KeyboardAccessoryForUserGestureFocusedNodeChange) {
|
| + EXPECT_CALL(*page_click_tracker_, IsKeyboardAccessory())
|
| + .WillOnce(Return(true));
|
| + page_click_tracker_->FocusedNodeChanged(blink::WebNode());
|
| + EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
|
| +}
|
| +
|
| +TEST_F(PageClickTrackerTest,
|
| + NoKeyboardAccessoryForNonUserGestureFocusedNodeChange) {
|
| + EXPECT_CALL(*page_click_tracker_, IsUserGesture()).WillOnce(Return(false));
|
| + EXPECT_CALL(*page_click_tracker_, IsKeyboardAccessory())
|
| + .WillOnce(Return(true));
|
| + page_click_tracker_->FocusedNodeChanged(blink::WebNode());
|
| + EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
|
| +}
|
| +
|
| +TEST_F(PageClickTrackerTest, NoKeyboardAccessoryForFocusChangeComplete) {
|
| + EXPECT_CALL(*page_click_tracker_, IsKeyboardAccessory())
|
| + .WillOnce(Return(true));
|
| + page_click_tracker_->FocusChangeComplete();
|
| + EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|