OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "chrome/test/base/testing_profile.h" | 8 #include "chrome/test/base/testing_profile.h" |
9 #include "components/autofill/browser/autocheckout/whitelist_manager.h" | 9 #include "components/autofill/browser/autocheckout/whitelist_manager.h" |
10 #include "components/autofill/browser/autofill_metrics.h" | 10 #include "components/autofill/browser/autofill_metrics.h" |
11 #include "components/autofill/common/autofill_switches.h" | 11 #include "components/autofill/common/autofill_switches.h" |
12 #include "content/public/test/test_browser_thread.h" | 12 #include "content/public/test/test_browser_thread_bundle.h" |
13 #include "googleurl/src/gurl.h" | 13 #include "googleurl/src/gurl.h" |
14 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
15 #include "net/http/http_status_code.h" | 15 #include "net/http/http_status_code.h" |
16 #include "net/url_request/test_url_fetcher_factory.h" | 16 #include "net/url_request/test_url_fetcher_factory.h" |
17 #include "net/url_request/url_fetcher_delegate.h" | 17 #include "net/url_request/url_fetcher_delegate.h" |
18 #include "net/url_request/url_request_status.h" | 18 #include "net/url_request/url_request_status.h" |
19 #include "testing/gmock/include/gmock/gmock.h" | 19 #include "testing/gmock/include/gmock/gmock.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
21 | 21 |
22 namespace { | 22 namespace { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 private: | 83 private: |
84 bool did_start_download_timer_; | 84 bool did_start_download_timer_; |
85 | 85 |
86 MockAutofillMetrics mock_metrics_logger_; | 86 MockAutofillMetrics mock_metrics_logger_; |
87 | 87 |
88 DISALLOW_COPY_AND_ASSIGN(TestWhitelistManager); | 88 DISALLOW_COPY_AND_ASSIGN(TestWhitelistManager); |
89 }; | 89 }; |
90 | 90 |
91 class WhitelistManagerTest : public testing::Test { | 91 class WhitelistManagerTest : public testing::Test { |
92 public: | 92 public: |
93 WhitelistManagerTest() : io_thread_(content::BrowserThread::IO) {} | 93 WhitelistManagerTest() |
| 94 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {} |
94 | 95 |
95 virtual void SetUp() { | 96 virtual void SetUp() { |
96 io_thread_.StartIOThread(); | |
97 profile_.CreateRequestContext(); | 97 profile_.CreateRequestContext(); |
98 } | 98 } |
99 | 99 |
100 virtual void TearDown() { | 100 virtual void TearDown() { |
101 profile_.ResetRequestContext(); | 101 profile_.ResetRequestContext(); |
102 io_thread_.Stop(); | |
103 } | 102 } |
104 | 103 |
105 protected: | 104 protected: |
106 void CreateWhitelistManager() { | 105 void CreateWhitelistManager() { |
107 if (!whitelist_manager_.get()) { | 106 if (!whitelist_manager_.get()) { |
108 whitelist_manager_.reset(new TestWhitelistManager()); | 107 whitelist_manager_.reset(new TestWhitelistManager()); |
109 } | 108 } |
110 } | 109 } |
111 | 110 |
112 void DownloadWhitelist(int response_code, const std::string& response) { | 111 void DownloadWhitelist(int response_code, const std::string& response) { |
(...skipping 26 matching lines...) Expand all Loading... |
139 | 138 |
140 const std::vector<std::string>& get_url_prefixes() const { | 139 const std::vector<std::string>& get_url_prefixes() const { |
141 return whitelist_manager_->url_prefixes(); | 140 return whitelist_manager_->url_prefixes(); |
142 } | 141 } |
143 | 142 |
144 protected: | 143 protected: |
145 TestingProfile profile_; | 144 TestingProfile profile_; |
146 scoped_ptr<TestWhitelistManager> whitelist_manager_; | 145 scoped_ptr<TestWhitelistManager> whitelist_manager_; |
147 | 146 |
148 private: | 147 private: |
149 base::MessageLoopForIO message_loop_; | 148 content::TestBrowserThreadBundle thread_bundle_; |
150 // The profile's request context must be released on the IO thread. | |
151 content::TestBrowserThread io_thread_; | |
152 }; | 149 }; |
153 | 150 |
154 TEST_F(WhitelistManagerTest, DownloadWhitelist) { | 151 TEST_F(WhitelistManagerTest, DownloadWhitelist) { |
155 CommandLine::ForCurrentProcess()->AppendSwitch( | 152 CommandLine::ForCurrentProcess()->AppendSwitch( |
156 switches::kEnableExperimentalFormFilling); | 153 switches::kEnableExperimentalFormFilling); |
157 DownloadWhitelist(net::HTTP_OK, kDownloadWhitelistResponse); | 154 DownloadWhitelist(net::HTTP_OK, kDownloadWhitelistResponse); |
158 ASSERT_EQ(2U, get_url_prefixes().size()); | 155 ASSERT_EQ(2U, get_url_prefixes().size()); |
159 EXPECT_EQ("https://www.merchant1.com/checkout/", | 156 EXPECT_EQ("https://www.merchant1.com/checkout/", |
160 get_url_prefixes()[0]); | 157 get_url_prefixes()[0]); |
161 EXPECT_EQ("https://cart.merchant2.com/", | 158 EXPECT_EQ("https://cart.merchant2.com/", |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 GURL("https://cart.merchant2.com/ShippingInfo?a=b&c=d"))); | 282 GURL("https://cart.merchant2.com/ShippingInfo?a=b&c=d"))); |
286 // Bypass other urls. | 283 // Bypass other urls. |
287 EXPECT_EQ(std::string("https://bypass.me/"), | 284 EXPECT_EQ(std::string("https://bypass.me/"), |
288 whitelist_manager_->GetMatchedURLPrefix( | 285 whitelist_manager_->GetMatchedURLPrefix( |
289 GURL("https://bypass.me/"))); | 286 GURL("https://bypass.me/"))); |
290 } | 287 } |
291 | 288 |
292 } // namespace autocheckout | 289 } // namespace autocheckout |
293 } // namespace autofill | 290 } // namespace autofill |
294 | 291 |
OLD | NEW |