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

Side by Side Diff: chrome/browser/policy/policy_network_browsertest.cc

Issue 2546533003: Respect QuicAllowed policy for new streams (Closed)
Patch Set: Improve enable_quic_for_new_streams comment Created 4 years 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
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 10 matching lines...) Expand all
21 #include "net/http/http_transaction_factory.h" 21 #include "net/http/http_transaction_factory.h"
22 #include "net/url_request/url_request_context.h" 22 #include "net/url_request/url_request_context.h"
23 #include "net/url_request/url_request_context_getter.h" 23 #include "net/url_request/url_request_context_getter.h"
24 24
25 namespace { 25 namespace {
26 26
27 void VerifyQuicEnabledStatus(net::URLRequestContextGetter* getter, 27 void VerifyQuicEnabledStatus(net::URLRequestContextGetter* getter,
28 bool quic_enabled_expected, 28 bool quic_enabled_expected,
29 const base::Closure& done_callback) { 29 const base::Closure& done_callback) {
30 net::URLRequestContext* context = getter->GetURLRequestContext(); 30 net::URLRequestContext* context = getter->GetURLRequestContext();
31 bool quic_enabled = context->http_transaction_factory()->GetSession()-> 31 bool quic_enabled_for_new_streams = context->http_transaction_factory()
32 params().enable_quic; 32 ->GetSession()
33 EXPECT_EQ(quic_enabled_expected, quic_enabled); 33 ->params()
34 .enable_quic_for_new_streams();
35 EXPECT_EQ(quic_enabled_expected, quic_enabled_for_new_streams);
34 36
35 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, 37 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
36 done_callback); 38 done_callback);
37 } 39 }
38 40
39 void VerifyQuicEnabledStatusInIOThread(bool quic_enabled_expected) { 41 void VerifyQuicEnabledStatusInIOThread(bool quic_enabled_expected) {
40 base::RunLoop run_loop; 42 base::RunLoop run_loop;
41 content::BrowserThread::PostTask( 43 content::BrowserThread::PostTask(
42 content::BrowserThread::IO, FROM_HERE, 44 content::BrowserThread::IO, FROM_HERE,
43 base::Bind(VerifyQuicEnabledStatus, 45 base::Bind(VerifyQuicEnabledStatus,
44 base::RetainedRef(g_browser_process->system_request_context()), 46 base::RetainedRef(g_browser_process->system_request_context()),
45 quic_enabled_expected, run_loop.QuitClosure())); 47 quic_enabled_expected, run_loop.QuitClosure()));
46 run_loop.Run(); 48 run_loop.Run();
47 } 49 }
48 50
49 } // namespace 51 } // namespace
50 52
51 namespace policy { 53 namespace policy {
52 54
53 // The tests are based on the assumption that command line flag kEnableQuic 55 // The tests are based on the assumption that command line flag kEnableQuic
54 // guarantees that QUIC protocol is enabled which is the case at the moment 56 // guarantees that QUIC protocol is enabled which is the case at the moment
55 // when these are being written. 57 // when these are being written.
56 class QuicAllowedPolicyTestBase: public InProcessBrowserTest { 58 class QuicAllowedPolicyTestBase: public InProcessBrowserTest {
57 public: 59 public:
58 QuicAllowedPolicyTestBase() : InProcessBrowserTest(){} 60 QuicAllowedPolicyTestBase() : InProcessBrowserTest() {}
59 61
60 protected: 62 protected:
61 void SetUpInProcessBrowserTestFixture() override { 63 void SetUpInProcessBrowserTestFixture() override {
62 base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableQuic); 64 base::CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableQuic);
63 EXPECT_CALL(provider_, IsInitializationComplete(testing::_)) 65 EXPECT_CALL(provider_, IsInitializationComplete(testing::_))
64 .WillRepeatedly(testing::Return(true)); 66 .WillRepeatedly(testing::Return(true));
65 67
66 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); 68 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
67 PolicyMap values; 69 PolicyMap values;
68 GetQuicAllowedPolicy(&values); 70 GetQuicAllowedPolicy(&values);
69 provider_.UpdateChromePolicy(values); 71 provider_.UpdateChromePolicy(values);
70 } 72 }
71 73
72 virtual void GetQuicAllowedPolicy(PolicyMap* values) = 0; 74 virtual void GetQuicAllowedPolicy(PolicyMap* values) = 0;
73 75
76 MockConfigurationPolicyProvider provider_;
77
74 private: 78 private:
75 MockConfigurationPolicyProvider provider_;
76 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyTestBase); 79 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyTestBase);
77 }; 80 };
78 81
79 // Policy QuicAllowed set to false. 82 // Policy QuicAllowed set to false.
80 class QuicAllowedPolicyIsFalse: public QuicAllowedPolicyTestBase { 83 class QuicAllowedPolicyIsFalse: public QuicAllowedPolicyTestBase {
81 public: 84 public:
82 QuicAllowedPolicyIsFalse() : QuicAllowedPolicyTestBase(){} 85 QuicAllowedPolicyIsFalse() : QuicAllowedPolicyTestBase() {}
83 86
84 protected: 87 protected:
85 void GetQuicAllowedPolicy(PolicyMap* values) override { 88 void GetQuicAllowedPolicy(PolicyMap* values) override {
86 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 89 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
87 POLICY_SOURCE_CLOUD, 90 POLICY_SOURCE_CLOUD,
88 base::MakeUnique<base::FundamentalValue>(false), nullptr); 91 base::MakeUnique<base::FundamentalValue>(false), nullptr);
89 } 92 }
90 93
91 private: 94 private:
92 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsFalse); 95 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsFalse);
93 }; 96 };
94 97
95 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsFalse, QuicDisallowed) { 98 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsFalse, QuicDisallowed) {
96 VerifyQuicEnabledStatusInIOThread(false); 99 VerifyQuicEnabledStatusInIOThread(false);
97 } 100 }
98 101
99 // Policy QuicAllowed set to true. 102 // Policy QuicAllowed set to true.
100 class QuicAllowedPolicyIsTrue: public QuicAllowedPolicyTestBase { 103 class QuicAllowedPolicyIsTrue: public QuicAllowedPolicyTestBase {
101 public: 104 public:
102 QuicAllowedPolicyIsTrue() : QuicAllowedPolicyTestBase(){} 105 QuicAllowedPolicyIsTrue() : QuicAllowedPolicyTestBase() {}
103 106
104 protected: 107 protected:
105 void GetQuicAllowedPolicy(PolicyMap* values) override { 108 void GetQuicAllowedPolicy(PolicyMap* values) override {
106 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 109 values->Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
107 POLICY_SOURCE_CLOUD, 110 POLICY_SOURCE_CLOUD,
108 base::MakeUnique<base::FundamentalValue>(true), nullptr); 111 base::MakeUnique<base::FundamentalValue>(true), nullptr);
109 } 112 }
110 113
111 private: 114 private:
112 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsTrue); 115 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsTrue);
113 }; 116 };
114 117
115 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsTrue, QuicAllowed) { 118 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsTrue, QuicAllowed) {
116 VerifyQuicEnabledStatusInIOThread(true); 119 VerifyQuicEnabledStatusInIOThread(true);
117 } 120 }
118 121
119 // Policy QuicAllowed is not set. 122 // Policy QuicAllowed is not set.
120 class QuicAllowedPolicyIsNotSet: public QuicAllowedPolicyTestBase { 123 class QuicAllowedPolicyIsNotSet: public QuicAllowedPolicyTestBase {
121 public: 124 public:
122 QuicAllowedPolicyIsNotSet() : QuicAllowedPolicyTestBase(){} 125 QuicAllowedPolicyIsNotSet() : QuicAllowedPolicyTestBase() {}
123 126
124 protected: 127 protected:
125 void GetQuicAllowedPolicy(PolicyMap* values) override { 128 void GetQuicAllowedPolicy(PolicyMap* values) override {
126 } 129 }
127 130
128 private: 131 private:
129 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsNotSet); 132 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsNotSet);
130 }; 133 };
131 134
132 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsNotSet, NoQuicRegulations) { 135 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsNotSet, NoQuicRegulations) {
133 VerifyQuicEnabledStatusInIOThread(true); 136 VerifyQuicEnabledStatusInIOThread(true);
134 } 137 }
135 138
139 // Policy QuicAllowed is set after IOThread initialization.
140 class QuicAllowedPolicyIsSetToFalseAfterInit
141 : public QuicAllowedPolicyTestBase {
142 public:
143 QuicAllowedPolicyIsSetToFalseAfterInit() : QuicAllowedPolicyTestBase() {}
144
145 protected:
146 void GetQuicAllowedPolicy(PolicyMap* values) override {}
147
148 void SetUpOnMainThread() override {
149 PolicyMap values;
150 values.Set(key::kQuicAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
151 POLICY_SOURCE_CLOUD,
152 base::MakeUnique<base::FundamentalValue>(false), nullptr);
153 provider_.UpdateChromePolicy(values);
154 base::RunLoop().RunUntilIdle();
155 }
156
157 private:
158 DISALLOW_COPY_AND_ASSIGN(QuicAllowedPolicyIsSetToFalseAfterInit);
159 };
160
161 IN_PROC_BROWSER_TEST_F(QuicAllowedPolicyIsSetToFalseAfterInit, QuicDisallowed) {
162 VerifyQuicEnabledStatusInIOThread(false);
163 }
136 } // namespace policy 164 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698