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

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

Issue 48713008: [sync] Allow FakeURLFetcher to return arbitrary HTTP response codes (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/url_request/test_url_fetcher_factory.h" 14 #include "net/url_request/test_url_fetcher_factory.h"
14 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
15 16
16 using ::testing::Exactly; 17 using ::testing::Exactly;
17 using ::testing::Invoke; 18 using ::testing::Invoke;
18 using ::testing::_; 19 using ::testing::_;
19 20
20 namespace { 21 namespace {
21 22
22 const char kEULAURL[] = 23 const char kEULAURL[] =
23 "https://www.google.com/intl/en-US/chrome/eula_text.html"; 24 "https://www.google.com/intl/en-US/chrome/eula_text.html";
24 const char kFakeOnlineEULA[] = "No obligations at all"; 25 const char kFakeOnlineEULA[] = "No obligations at all";
25 #if defined(GOOGLE_CHROME_BUILD) 26 #if defined(GOOGLE_CHROME_BUILD)
26 const char kOfflineEULAWarning[] = "A copy of the Google Terms of Service"; 27 const char kOfflineEULAWarning[] = "A copy of the Google Terms of Service";
27 #endif 28 #endif
28 29
29 class TermsOfServiceProcessBrowserTest : public InProcessBrowserTest { 30 class TermsOfServiceProcessBrowserTest : public InProcessBrowserTest {
30 }; 31 };
31 32
32 class TestURLFetcherCallback { 33 class TestURLFetcherCallback {
33 public: 34 public:
34 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher( 35 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher(
35 const GURL& url, 36 const GURL& url,
36 net::URLFetcherDelegate* d, 37 net::URLFetcherDelegate* d,
37 const std::string& response_data, 38 const std::string& response_data,
38 bool success) { 39 net::HttpStatusCode response_code) {
39 scoped_ptr<net::FakeURLFetcher> fetcher( 40 scoped_ptr<net::FakeURLFetcher> fetcher(
40 new net::FakeURLFetcher(url, d, response_data, success)); 41 new net::FakeURLFetcher(url, d, response_data, response_code));
41 OnRequestCreate(url, fetcher.get()); 42 OnRequestCreate(url, fetcher.get());
42 return fetcher.Pass(); 43 return fetcher.Pass();
43 } 44 }
44 MOCK_METHOD2(OnRequestCreate, 45 MOCK_METHOD2(OnRequestCreate,
45 void(const GURL&, net::FakeURLFetcher*)); 46 void(const GURL&, net::FakeURLFetcher*));
46 }; 47 };
47 48
48 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) { 49 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) {
49 scoped_refptr<net::HttpResponseHeaders> download_headers = 50 scoped_refptr<net::HttpResponseHeaders> download_headers =
50 new net::HttpResponseHeaders(""); 51 new net::HttpResponseHeaders("");
51 download_headers->AddHeader("Content-Type: text/html"); 52 download_headers->AddHeader("Content-Type: text/html");
52 fetcher->set_response_headers(download_headers); 53 fetcher->set_response_headers(download_headers);
53 } 54 }
54 55
55 // Load chrome://terms. Make sure online version is shown. 56 // Load chrome://terms. Make sure online version is shown.
56 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOnline) { 57 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOnline) {
57 TestURLFetcherCallback url_callback; 58 TestURLFetcherCallback url_callback;
58 net::FakeURLFetcherFactory factory( 59 net::FakeURLFetcherFactory factory(
59 NULL, 60 NULL,
60 base::Bind(&TestURLFetcherCallback::CreateURLFetcher, 61 base::Bind(&TestURLFetcherCallback::CreateURLFetcher,
61 base::Unretained(&url_callback))); 62 base::Unretained(&url_callback)));
62 factory.SetFakeResponse(GURL(kEULAURL), kFakeOnlineEULA, true); 63 factory.SetFakeResponse(GURL(kEULAURL), kFakeOnlineEULA, net::HTTP_OK);
63 EXPECT_CALL(url_callback, OnRequestCreate(GURL(kEULAURL), _)) 64 EXPECT_CALL(url_callback, OnRequestCreate(GURL(kEULAURL), _))
64 .Times(Exactly(1)) 65 .Times(Exactly(1))
65 .WillRepeatedly(Invoke(AddMimeHeader)); 66 .WillRepeatedly(Invoke(AddMimeHeader));
66 67
67 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL)); 68 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL));
68 content::WebContents* web_contents = 69 content::WebContents* web_contents =
69 browser()->tab_strip_model()->GetActiveWebContents(); 70 browser()->tab_strip_model()->GetActiveWebContents();
70 EXPECT_EQ(1, ui_test_utils::FindInPage(web_contents, 71 EXPECT_EQ(1, ui_test_utils::FindInPage(web_contents,
71 ASCIIToUTF16(kFakeOnlineEULA), 72 ASCIIToUTF16(kFakeOnlineEULA),
72 true, 73 true,
73 true, 74 true,
74 NULL, 75 NULL,
75 NULL)); 76 NULL));
76 } 77 }
77 78
78 // Load chrome://terms with no internet connectivity. 79 // Load chrome://terms with no internet connectivity.
79 // Make sure offline version is shown. 80 // Make sure offline version is shown.
80 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOffline) { 81 IN_PROC_BROWSER_TEST_F(TermsOfServiceProcessBrowserTest, LoadOffline) {
81 net::FakeURLFetcherFactory factory(NULL); 82 net::FakeURLFetcherFactory factory(NULL);
82 factory.SetFakeResponse(GURL(kEULAURL), "", false); 83 factory.SetFakeResponse(GURL(kEULAURL), "", net::HTTP_INTERNAL_SERVER_ERROR);
83 84
84 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL)); 85 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUITermsURL));
85 content::WebContents* web_contents = 86 content::WebContents* web_contents =
86 browser()->tab_strip_model()->GetActiveWebContents(); 87 browser()->tab_strip_model()->GetActiveWebContents();
87 88
88 #if defined(GOOGLE_CHROME_BUILD) 89 #if defined(GOOGLE_CHROME_BUILD)
89 EXPECT_NE(0, ui_test_utils::FindInPage(web_contents, 90 EXPECT_NE(0, ui_test_utils::FindInPage(web_contents,
90 ASCIIToUTF16(kOfflineEULAWarning), 91 ASCIIToUTF16(kOfflineEULAWarning),
91 true, 92 true,
92 true, 93 true,
93 NULL, 94 NULL,
94 NULL)); 95 NULL));
95 #else 96 #else
96 std::string body; 97 std::string body;
97 ASSERT_TRUE(content::ExecuteScriptAndExtractString( 98 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
98 web_contents, 99 web_contents,
99 "window.domAutomationController.send(document.body.textContent)", 100 "window.domAutomationController.send(document.body.textContent)",
100 &body)); 101 &body));
101 EXPECT_NE(std::string(), body); 102 EXPECT_NE(std::string(), body);
102 #endif 103 #endif
103 } 104 }
104 105
105 } // namespace 106 } // 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