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

Side by Side Diff: chrome/browser/chromeos/login/eula_browsertest.cc

Issue 60923002: [sync] Allow FakeURLFetcher to return an arbitrary URLRequestStatus (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 1 month 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 | « no previous file | chrome/browser/chromeos/policy/cloud_external_data_manager_base_unittest.cc » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/strings/utf_string_conversions.h" 5 #include "base/strings/utf_string_conversions.h"
6 #include "chrome/browser/ui/browser.h" 6 #include "chrome/browser/ui/browser.h"
7 #include "chrome/browser/ui/tabs/tab_strip_model.h" 7 #include "chrome/browser/ui/tabs/tab_strip_model.h"
8 #include "chrome/common/url_constants.h" 8 #include "chrome/common/url_constants.h"
9 #include "chrome/test/base/in_process_browser_test.h" 9 #include "chrome/test/base/in_process_browser_test.h"
10 #include "chrome/test/base/ui_test_utils.h" 10 #include "chrome/test/base/ui_test_utils.h"
11 #include "content/public/test/browser_test_utils.h" 11 #include "content/public/test/browser_test_utils.h"
12 #include "net/http/http_response_headers.h" 12 #include "net/http/http_response_headers.h"
13 #include "net/http/http_status_code.h" 13 #include "net/http/http_status_code.h"
14 #include "net/url_request/test_url_fetcher_factory.h" 14 #include "net/url_request/test_url_fetcher_factory.h"
15 #include "net/url_request/url_request_status.h"
15 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
16 17
17 using ::testing::Exactly; 18 using ::testing::Exactly;
18 using ::testing::Invoke; 19 using ::testing::Invoke;
19 using ::testing::_; 20 using ::testing::_;
20 21
21 namespace { 22 namespace {
22 23
23 const char kEULAURL[] = 24 const char kEULAURL[] =
24 "https://www.google.com/intl/en-US/chrome/eula_text.html"; 25 "https://www.google.com/intl/en-US/chrome/eula_text.html";
25 const char kFakeOnlineEULA[] = "No obligations at all"; 26 const char kFakeOnlineEULA[] = "No obligations at all";
26 #if defined(GOOGLE_CHROME_BUILD) 27 #if defined(GOOGLE_CHROME_BUILD)
27 const char kOfflineEULAWarning[] = "A copy of the Google Terms of Service"; 28 const char kOfflineEULAWarning[] = "A copy of the Google Terms of Service";
28 #endif 29 #endif
29 30
30 class TermsOfServiceProcessBrowserTest : public InProcessBrowserTest { 31 class TermsOfServiceProcessBrowserTest : public InProcessBrowserTest {
31 }; 32 };
32 33
33 class TestURLFetcherCallback { 34 class TestURLFetcherCallback {
34 public: 35 public:
35 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher( 36 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher(
36 const GURL& url, 37 const GURL& url,
37 net::URLFetcherDelegate* d, 38 net::URLFetcherDelegate* d,
38 const std::string& response_data, 39 const std::string& response_data,
39 net::HttpStatusCode response_code) { 40 net::HttpStatusCode response_code,
41 net::URLRequestStatus::Status status) {
40 scoped_ptr<net::FakeURLFetcher> fetcher( 42 scoped_ptr<net::FakeURLFetcher> fetcher(
41 new net::FakeURLFetcher(url, d, response_data, response_code)); 43 new net::FakeURLFetcher(url, d, response_data, response_code, status));
42 OnRequestCreate(url, fetcher.get()); 44 OnRequestCreate(url, fetcher.get());
43 return fetcher.Pass(); 45 return fetcher.Pass();
44 } 46 }
45 MOCK_METHOD2(OnRequestCreate, 47 MOCK_METHOD2(OnRequestCreate,
46 void(const GURL&, net::FakeURLFetcher*)); 48 void(const GURL&, net::FakeURLFetcher*));
47 }; 49 };
48 50
49 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) { 51 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) {
50 scoped_refptr<net::HttpResponseHeaders> download_headers = 52 scoped_refptr<net::HttpResponseHeaders> download_headers =
51 new net::HttpResponseHeaders(""); 53 new net::HttpResponseHeaders("");
52 download_headers->AddHeader("Content-Type: text/html"); 54 download_headers->AddHeader("Content-Type: text/html");
53 fetcher->set_response_headers(download_headers); 55 fetcher->set_response_headers(download_headers);
54 } 56 }
55 57
56 // Load chrome://terms. Make sure online version is shown. 58 // Load chrome://terms. Make sure online version is shown.
57 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOnline) { 59 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOnline) {
58 TestURLFetcherCallback url_callback; 60 TestURLFetcherCallback url_callback;
59 net::FakeURLFetcherFactory factory( 61 net::FakeURLFetcherFactory factory(
60 NULL, 62 NULL,
61 base::Bind(&TestURLFetcherCallback::CreateURLFetcher, 63 base::Bind(&TestURLFetcherCallback::CreateURLFetcher,
62 base::Unretained(&url_callback))); 64 base::Unretained(&url_callback)));
63 factory.SetFakeResponse(GURL(kEULAURL), kFakeOnlineEULA, net::HTTP_OK); 65 factory.SetFakeResponse(GURL(kEULAURL), kFakeOnlineEULA,
66 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
64 EXPECT_CALL(url_callback, OnRequestCreate(GURL(kEULAURL), _)) 67 EXPECT_CALL(url_callback, OnRequestCreate(GURL(kEULAURL), _))
65 .Times(Exactly(1)) 68 .Times(Exactly(1))
66 .WillRepeatedly(Invoke(AddMimeHeader)); 69 .WillRepeatedly(Invoke(AddMimeHeader));
67 70
68 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL)); 71 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL));
69 content::WebContents* web_contents = 72 content::WebContents* web_contents =
70 browser()->tab_strip_model()->GetActiveWebContents(); 73 browser()->tab_strip_model()->GetActiveWebContents();
71 EXPECT_EQ(1, ui_test_utils::FindInPage(web_contents, 74 EXPECT_EQ(1, ui_test_utils::FindInPage(web_contents,
72 ASCIIToUTF16(kFakeOnlineEULA), 75 ASCIIToUTF16(kFakeOnlineEULA),
73 true, 76 true,
74 true, 77 true,
75 NULL, 78 NULL,
76 NULL)); 79 NULL));
77 } 80 }
78 81
79 // Load chrome://terms with no internet connectivity. 82 // Load chrome://terms with no internet connectivity.
80 // Make sure offline version is shown. 83 // Make sure offline version is shown.
81 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOffline) { 84 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOffline) {
82 net::FakeURLFetcherFactory factory(NULL); 85 net::FakeURLFetcherFactory factory(NULL);
83 factory.SetFakeResponse(GURL(kEULAURL), "", net::HTTP_INTERNAL_SERVER_ERROR); 86 factory.SetFakeResponse(GURL(kEULAURL), "", net::HTTP_INTERNAL_SERVER_ERROR,
87 net::URLRequestStatus::FAILED);
84 88
85 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL)); 89 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL));
86 content::WebContents* web_contents = 90 content::WebContents* web_contents =
87 browser()->tab_strip_model()->GetActiveWebContents(); 91 browser()->tab_strip_model()->GetActiveWebContents();
88 92
89 #if defined(GOOGLE_CHROME_BUILD) 93 #if defined(GOOGLE_CHROME_BUILD)
90 EXPECT_NE(0, ui_test_utils::FindInPage(web_contents, 94 EXPECT_NE(0, ui_test_utils::FindInPage(web_contents,
91 ASCIIToUTF16(kOfflineEULAWarning), 95 ASCIIToUTF16(kOfflineEULAWarning),
92 true, 96 true,
93 true, 97 true,
94 NULL, 98 NULL,
95 NULL)); 99 NULL));
96 #else 100 #else
97 std::string body; 101 std::string body;
98 ASSERT_TRUE(content::ExecuteScriptAndExtractString( 102 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
99 web_contents, 103 web_contents,
100 "window.domAutomationController.send(document.body.textContent)", 104 "window.domAutomationController.send(document.body.textContent)",
101 &body)); 105 &body));
102 EXPECT_NE(std::string(), body); 106 EXPECT_NE(std::string(), body);
103 #endif 107 #endif
104 } 108 }
105 109
106 } // namespace 110 } // namespace
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/policy/cloud_external_data_manager_base_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698