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

Side by Side Diff: chrome/browser/data_saver/data_saver_browsertest.cc

Issue 1783653002: save-data header value gets appended on page refreshes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed japhet comments Created 4 years, 9 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/loader/FrameFetchContext.cpp » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <string> 5 #include <string>
6 6
7 #include "chrome/browser/profiles/profile.h" 7 #include "chrome/browser/profiles/profile.h"
8 #include "chrome/browser/ui/browser.h" 8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/browser_commands.h"
9 #include "chrome/browser/ui/tabs/tab_strip_model.h" 10 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10 #include "chrome/common/pref_names.h" 11 #include "chrome/common/pref_names.h"
11 #include "chrome/test/base/in_process_browser_test.h" 12 #include "chrome/test/base/in_process_browser_test.h"
12 #include "chrome/test/base/ui_test_utils.h" 13 #include "chrome/test/base/ui_test_utils.h"
13 #include "components/prefs/pref_service.h" 14 #include "components/prefs/pref_service.h"
14 #include "content/public/test/browser_test_base.h" 15 #include "content/public/test/browser_test_base.h"
15 #include "content/public/test/browser_test_utils.h" 16 #include "content/public/test/browser_test_utils.h"
16 #include "net/test/embedded_test_server/embedded_test_server.h" 17 #include "net/test/embedded_test_server/embedded_test_server.h"
18 #include "net/test/embedded_test_server/http_request.h"
19 #include "net/test/embedded_test_server/http_response.h"
17 20
18 class DataSaverBrowserTest : public InProcessBrowserTest { 21 class DataSaverBrowserTest : public InProcessBrowserTest {
19 protected: 22 protected:
20 void EnableDataSaver(bool enabled) { 23 void EnableDataSaver(bool enabled) {
21 PrefService* prefs = browser()->profile()->GetPrefs(); 24 PrefService* prefs = browser()->profile()->GetPrefs();
22 prefs->SetBoolean(prefs::kDataSaverEnabled, enabled); 25 prefs->SetBoolean(prefs::kDataSaverEnabled, enabled);
23 } 26 }
24 27
25 void VerifySaveDataHeader(const std::string& expected_header_value) { 28 void VerifySaveDataHeader(const std::string& expected_header_value) {
26 ui_test_utils::NavigateToURL( 29 ui_test_utils::NavigateToURL(
(...skipping 11 matching lines...) Expand all
38 ASSERT_TRUE(embedded_test_server()->Start()); 41 ASSERT_TRUE(embedded_test_server()->Start());
39 EnableDataSaver(true); 42 EnableDataSaver(true);
40 VerifySaveDataHeader("on"); 43 VerifySaveDataHeader("on");
41 } 44 }
42 45
43 IN_PROC_BROWSER_TEST_F(DataSaverBrowserTest, DataSaverDisabled) { 46 IN_PROC_BROWSER_TEST_F(DataSaverBrowserTest, DataSaverDisabled) {
44 ASSERT_TRUE(embedded_test_server()->Start()); 47 ASSERT_TRUE(embedded_test_server()->Start());
45 EnableDataSaver(false); 48 EnableDataSaver(false);
46 VerifySaveDataHeader("None"); 49 VerifySaveDataHeader("None");
47 } 50 }
51
52 class DataSaverWithServerBrowserTest : public InProcessBrowserTest {
53 protected:
54 void Init() {
55 test_server_.reset(new net::EmbeddedTestServer());
56 test_server_->RegisterRequestHandler(
57 base::Bind(&DataSaverWithServerBrowserTest::VerifySaveDataHeader,
58 base::Unretained(this)));
59 test_server_->ServeFilesFromSourceDirectory("chrome/test/data");
60 }
61 void EnableDataSaver(bool enabled) {
62 PrefService* prefs = browser()->profile()->GetPrefs();
63 prefs->SetBoolean(prefs::kDataSaverEnabled, enabled);
64 }
65
66 scoped_ptr<net::test_server::HttpResponse> VerifySaveDataHeader(
67 const net::test_server::HttpRequest& request) {
68 auto save_data_header = request.headers.find("save-data");
sclittle 2016/03/10 21:57:27 nit: For clarity, could you rename |save_data_head
Raj 2016/03/10 23:30:39 Done.
69
70 if (!expected_save_data_header_.empty()) {
71 EXPECT_TRUE(save_data_header != request.headers.end());
72 EXPECT_EQ(expected_save_data_header_, save_data_header->second);
73 }
sclittle 2016/03/10 21:57:27 Should you also check that if |expected_save_data_
Raj 2016/03/10 23:30:39 Done.
74 return scoped_ptr<net::test_server::HttpResponse>();
75 }
76
77 scoped_ptr<net::EmbeddedTestServer> test_server_;
78 std::string expected_save_data_header_;
79 };
80
81 IN_PROC_BROWSER_TEST_F(DataSaverWithServerBrowserTest,
sclittle 2016/03/10 21:57:27 Should there also be a test that the save-data hea
Raj 2016/03/10 23:30:39 Done.
82 DataSaverEnabledReloadPage) {
83 Init();
84 ASSERT_TRUE(test_server_->Start());
85 EnableDataSaver(true);
86
87 ui_test_utils::NavigateToURL(browser(),
88 test_server_->GetURL("/google/google.html"));
89
90 // Reload the webpage and expect all the subresources will get the corect
sclittle 2016/03/10 21:57:27 nit: spelling of "correct"
Raj 2016/03/10 23:30:39 Done.
91 // save-data header.
92 expected_save_data_header_ = "on";
93 chrome::Reload(browser(), CURRENT_TAB);
94 content::WebContents* tab =
95 browser()->tab_strip_model()->GetActiveWebContents();
96 content::WaitForLoadStop(tab);
97 }
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/loader/FrameFetchContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698