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

Side by Side Diff: chrome/browser/autofill/content_autofill_driver_browsertest.cc

Issue 306053008: Rename AutofillManagerDelegate to AutofillClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "chrome/browser/browser_process.h" 6 #include "chrome/browser/browser_process.h"
7 #include "chrome/browser/ui/browser.h" 7 #include "chrome/browser/ui/browser.h"
8 #include "chrome/browser/ui/browser_tabstrip.h" 8 #include "chrome/browser/ui/browser_tabstrip.h"
9 #include "chrome/browser/ui/tabs/tab_strip_model.h" 9 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10 #include "chrome/common/url_constants.h" 10 #include "chrome/common/url_constants.h"
11 #include "chrome/test/base/in_process_browser_test.h" 11 #include "chrome/test/base/in_process_browser_test.h"
12 #include "chrome/test/base/testing_pref_service_syncable.h" 12 #include "chrome/test/base/testing_pref_service_syncable.h"
13 #include "components/autofill/content/browser/content_autofill_driver.h" 13 #include "components/autofill/content/browser/content_autofill_driver.h"
14 #include "components/autofill/core/browser/autofill_manager.h" 14 #include "components/autofill/core/browser/autofill_manager.h"
15 #include "components/autofill/core/browser/test_autofill_manager_delegate.h" 15 #include "components/autofill/core/browser/test_autofill_client.h"
16 #include "content/public/browser/navigation_controller.h" 16 #include "content/public/browser/navigation_controller.h"
17 #include "content/public/browser/page_navigator.h" 17 #include "content/public/browser/page_navigator.h"
18 #include "content/public/browser/web_contents.h" 18 #include "content/public/browser/web_contents.h"
19 #include "content/public/browser/web_contents_observer.h" 19 #include "content/public/browser/web_contents_observer.h"
20 #include "content/public/common/url_constants.h" 20 #include "content/public/common/url_constants.h"
21 #include "content/public/test/test_utils.h" 21 #include "content/public/test/test_utils.h"
22 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
23 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
24 #include "ui/gfx/rect.h" 24 #include "ui/gfx/rect.h"
25 25
26 namespace autofill { 26 namespace autofill {
27 namespace { 27 namespace {
28 28
29 class MockAutofillManagerDelegate 29 class MockAutofillClient : public TestAutofillClient {
30 : public autofill::TestAutofillManagerDelegate {
31 public: 30 public:
32 MockAutofillManagerDelegate() {} 31 MockAutofillClient() {}
33 virtual ~MockAutofillManagerDelegate() {} 32 virtual ~MockAutofillClient() {}
34 33
35 virtual PrefService* GetPrefs() { return &prefs_; } 34 virtual PrefService* GetPrefs() { return &prefs_; }
36 35
37 user_prefs::PrefRegistrySyncable* GetPrefRegistry() { 36 user_prefs::PrefRegistrySyncable* GetPrefRegistry() {
38 return prefs_.registry(); 37 return prefs_.registry();
39 } 38 }
40 39
41 MOCK_METHOD7(ShowAutofillPopup, 40 MOCK_METHOD7(ShowAutofillPopup,
42 void(const gfx::RectF& element_bounds, 41 void(const gfx::RectF& element_bounds,
43 base::i18n::TextDirection text_direction, 42 base::i18n::TextDirection text_direction,
44 const std::vector<base::string16>& values, 43 const std::vector<base::string16>& values,
45 const std::vector<base::string16>& labels, 44 const std::vector<base::string16>& labels,
46 const std::vector<base::string16>& icons, 45 const std::vector<base::string16>& icons,
47 const std::vector<int>& identifiers, 46 const std::vector<int>& identifiers,
48 base::WeakPtr<AutofillPopupDelegate> delegate)); 47 base::WeakPtr<AutofillPopupDelegate> delegate));
49 48
50 MOCK_METHOD0(HideAutofillPopup, void()); 49 MOCK_METHOD0(HideAutofillPopup, void());
51 50
52 private: 51 private:
53 TestingPrefServiceSyncable prefs_; 52 TestingPrefServiceSyncable prefs_;
54 53
55 DISALLOW_COPY_AND_ASSIGN(MockAutofillManagerDelegate); 54 DISALLOW_COPY_AND_ASSIGN(MockAutofillClient);
56 }; 55 };
57 56
58 // Subclass ContentAutofillDriver so we can create an ContentAutofillDriver 57 // Subclass ContentAutofillDriver so we can create an ContentAutofillDriver
59 // instance. 58 // instance.
60 class TestContentAutofillDriver : public ContentAutofillDriver { 59 class TestContentAutofillDriver : public ContentAutofillDriver {
61 public: 60 public:
62 TestContentAutofillDriver(content::WebContents* web_contents, 61 TestContentAutofillDriver(content::WebContents* web_contents,
63 AutofillManagerDelegate* delegate) 62 AutofillClient* client)
64 : ContentAutofillDriver( 63 : ContentAutofillDriver(
65 web_contents, 64 web_contents,
66 delegate, 65 client,
67 g_browser_process->GetApplicationLocale(), 66 g_browser_process->GetApplicationLocale(),
68 AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER) {} 67 AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER) {}
69 virtual ~TestContentAutofillDriver() {} 68 virtual ~TestContentAutofillDriver() {}
70 69
71 private: 70 private:
72 DISALLOW_COPY_AND_ASSIGN(TestContentAutofillDriver); 71 DISALLOW_COPY_AND_ASSIGN(TestContentAutofillDriver);
73 }; 72 };
74 73
75 } // namespace 74 } // namespace
76 75
77 class ContentAutofillDriverBrowserTest : public InProcessBrowserTest, 76 class ContentAutofillDriverBrowserTest : public InProcessBrowserTest,
78 public content::WebContentsObserver { 77 public content::WebContentsObserver {
79 public: 78 public:
80 ContentAutofillDriverBrowserTest() {} 79 ContentAutofillDriverBrowserTest() {}
81 virtual ~ContentAutofillDriverBrowserTest() {} 80 virtual ~ContentAutofillDriverBrowserTest() {}
82 81
83 virtual void SetUpOnMainThread() OVERRIDE { 82 virtual void SetUpOnMainThread() OVERRIDE {
84 content::WebContents* web_contents = 83 content::WebContents* web_contents =
85 browser()->tab_strip_model()->GetActiveWebContents(); 84 browser()->tab_strip_model()->GetActiveWebContents();
86 ASSERT_TRUE(web_contents != NULL); 85 ASSERT_TRUE(web_contents != NULL);
87 Observe(web_contents); 86 Observe(web_contents);
88 AutofillManager::RegisterProfilePrefs(manager_delegate_.GetPrefRegistry()); 87 AutofillManager::RegisterProfilePrefs(autofill_client_.GetPrefRegistry());
89 88
90 autofill_driver_.reset( 89 autofill_driver_.reset(
91 new TestContentAutofillDriver(web_contents, &manager_delegate_)); 90 new TestContentAutofillDriver(web_contents, &autofill_client_));
92 } 91 }
93 92
94 // Normally the WebContents will automatically delete the driver, but here 93 // Normally the WebContents will automatically delete the driver, but here
95 // the driver is owned by this test, so we have to manually destroy. 94 // the driver is owned by this test, so we have to manually destroy.
96 virtual void WebContentsDestroyed() OVERRIDE { 95 virtual void WebContentsDestroyed() OVERRIDE {
97 autofill_driver_.reset(); 96 autofill_driver_.reset();
98 } 97 }
99 98
100 virtual void WasHidden() OVERRIDE { 99 virtual void WasHidden() OVERRIDE {
101 if (!web_contents_hidden_callback_.is_null()) 100 if (!web_contents_hidden_callback_.is_null())
102 web_contents_hidden_callback_.Run(); 101 web_contents_hidden_callback_.Run();
103 } 102 }
104 103
105 virtual void NavigationEntryCommitted( 104 virtual void NavigationEntryCommitted(
106 const content::LoadCommittedDetails& load_details) OVERRIDE { 105 const content::LoadCommittedDetails& load_details) OVERRIDE {
107 if (!nav_entry_committed_callback_.is_null()) 106 if (!nav_entry_committed_callback_.is_null())
108 nav_entry_committed_callback_.Run(); 107 nav_entry_committed_callback_.Run();
109 } 108 }
110 109
111 protected: 110 protected:
112 content::WebContents* web_contents_; 111 content::WebContents* web_contents_;
113 112
114 base::Closure web_contents_hidden_callback_; 113 base::Closure web_contents_hidden_callback_;
115 base::Closure nav_entry_committed_callback_; 114 base::Closure nav_entry_committed_callback_;
116 115
117 testing::NiceMock<MockAutofillManagerDelegate> manager_delegate_; 116 testing::NiceMock<MockAutofillClient> autofill_client_;
118 scoped_ptr<TestContentAutofillDriver> autofill_driver_; 117 scoped_ptr<TestContentAutofillDriver> autofill_driver_;
119 }; 118 };
120 119
121 IN_PROC_BROWSER_TEST_F(ContentAutofillDriverBrowserTest, 120 IN_PROC_BROWSER_TEST_F(ContentAutofillDriverBrowserTest,
122 SwitchTabAndHideAutofillPopup) { 121 SwitchTabAndHideAutofillPopup) {
123 // Notification is different on platforms. On linux this will be called twice, 122 // Notification is different on platforms. On linux this will be called twice,
124 // while on windows only once. 123 // while on windows only once.
125 EXPECT_CALL(manager_delegate_, HideAutofillPopup()) 124 EXPECT_CALL(autofill_client_, HideAutofillPopup()).Times(testing::AtLeast(1));
126 .Times(testing::AtLeast(1));
127 125
128 scoped_refptr<content::MessageLoopRunner> runner = 126 scoped_refptr<content::MessageLoopRunner> runner =
129 new content::MessageLoopRunner; 127 new content::MessageLoopRunner;
130 web_contents_hidden_callback_ = runner->QuitClosure(); 128 web_contents_hidden_callback_ = runner->QuitClosure();
131 chrome::AddSelectedTabWithURL(browser(), 129 chrome::AddSelectedTabWithURL(browser(),
132 GURL(content::kAboutBlankURL), 130 GURL(content::kAboutBlankURL),
133 content::PAGE_TRANSITION_AUTO_TOPLEVEL); 131 content::PAGE_TRANSITION_AUTO_TOPLEVEL);
134 runner->Run(); 132 runner->Run();
135 web_contents_hidden_callback_.Reset(); 133 web_contents_hidden_callback_.Reset();
136 } 134 }
137 135
138 IN_PROC_BROWSER_TEST_F(ContentAutofillDriverBrowserTest, 136 IN_PROC_BROWSER_TEST_F(ContentAutofillDriverBrowserTest,
139 TestPageNavigationHidingAutofillPopup) { 137 TestPageNavigationHidingAutofillPopup) {
140 // Notification is different on platforms. On linux this will be called twice, 138 // Notification is different on platforms. On linux this will be called twice,
141 // while on windows only once. 139 // while on windows only once.
142 EXPECT_CALL(manager_delegate_, HideAutofillPopup()) 140 EXPECT_CALL(autofill_client_, HideAutofillPopup()).Times(testing::AtLeast(1));
143 .Times(testing::AtLeast(1));
144 141
145 scoped_refptr<content::MessageLoopRunner> runner = 142 scoped_refptr<content::MessageLoopRunner> runner =
146 new content::MessageLoopRunner; 143 new content::MessageLoopRunner;
147 nav_entry_committed_callback_ = runner->QuitClosure(); 144 nav_entry_committed_callback_ = runner->QuitClosure();
148 browser()->OpenURL(content::OpenURLParams(GURL(chrome::kChromeUIBookmarksURL), 145 browser()->OpenURL(content::OpenURLParams(GURL(chrome::kChromeUIBookmarksURL),
149 content::Referrer(), 146 content::Referrer(),
150 CURRENT_TAB, 147 CURRENT_TAB,
151 content::PAGE_TRANSITION_TYPED, 148 content::PAGE_TRANSITION_TYPED,
152 false)); 149 false));
153 browser()->OpenURL(content::OpenURLParams(GURL(chrome::kChromeUIAboutURL), 150 browser()->OpenURL(content::OpenURLParams(GURL(chrome::kChromeUIAboutURL),
154 content::Referrer(), 151 content::Referrer(),
155 CURRENT_TAB, 152 CURRENT_TAB,
156 content::PAGE_TRANSITION_TYPED, 153 content::PAGE_TRANSITION_TYPED,
157 false)); 154 false));
158 runner->Run(); 155 runner->Run();
159 nav_entry_committed_callback_.Reset(); 156 nav_entry_committed_callback_.Reset();
160 } 157 }
161 158
162 } // namespace autofill 159 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_interactive_uitest.cc ('k') | chrome/browser/chromeos/login/ui/simple_web_view_dialog.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698