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

Side by Side Diff: chrome/browser/chromeos/arc/arc_auth_service_unittest.cc

Issue 1681813003: arc: Use incognito profile for OptIn and cookie fetcher (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased, added reseting windowClosedInternally before window creation Created 4 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 EXPECT_EQ(ArcBridgeService::State::STOPPED, 64 EXPECT_EQ(ArcBridgeService::State::STOPPED,
65 ArcBridgeService::Get()->state()); 65 ArcBridgeService::Get()->state());
66 } 66 }
67 67
68 void TearDown() override {} 68 void TearDown() override {}
69 69
70 protected: 70 protected:
71 Profile* profile() { return profile_.get(); } 71 Profile* profile() { return profile_.get(); }
72 FakeArcBridgeService* bridge_service() { return bridge_service_.get(); } 72 FakeArcBridgeService* bridge_service() { return bridge_service_.get(); }
73 ArcAuthService* auth_service() { return auth_service_.get(); } 73 ArcAuthService* auth_service() { return auth_service_.get(); }
74 net::FakeURLFetcherFactory& url_fetcher_factory() { 74
75 return url_fetcher_factory_; 75 void PrepareURLResponse(net::HttpStatusCode code, bool enable_auth_code) {
76 const GURL gaia_gurl = ArcAuthFetcher::CreateURL();
77 url_fetcher_factory_.SetFakeResponse(gaia_gurl, std::string(), code,
78 net::URLRequestStatus::SUCCESS);
79 if (enable_auth_code) {
80 std::string cookie = "oauth_code=";
81 cookie += kTestAuthCode;
82 cookie += "; Path=/o/oauth2/programmatic_auth; Secure; HttpOnly";
83 rt_cookie_ = cookie;
84 }
76 } 85 }
77 void set_cookie(const std::string& cookie) { rt_cookie_ = cookie; }
78 86
79 private: 87 private:
80 scoped_ptr<net::FakeURLFetcher> FakeURLFetcherCreator( 88 scoped_ptr<net::FakeURLFetcher> FakeURLFetcherCreator(
81 const GURL& url, 89 const GURL& url,
82 net::URLFetcherDelegate* delegate, 90 net::URLFetcherDelegate* delegate,
83 const std::string& response_data, 91 const std::string& response_data,
84 net::HttpStatusCode response_code, 92 net::HttpStatusCode response_code,
85 net::URLRequestStatus::Status status) { 93 net::URLRequestStatus::Status status) {
86 scoped_ptr<net::FakeURLFetcher> fetcher(new net::FakeURLFetcher( 94 scoped_ptr<net::FakeURLFetcher> fetcher(new net::FakeURLFetcher(
87 url, delegate, response_data, response_code, status)); 95 url, delegate, response_data, response_code, status));
(...skipping 20 matching lines...) Expand all
108 116
109 TEST_F(ArcAuthServiceTest, PrefChangeTriggersService) { 117 TEST_F(ArcAuthServiceTest, PrefChangeTriggersService) {
110 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 118 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
111 119
112 PrefService* pref = profile()->GetPrefs(); 120 PrefService* pref = profile()->GetPrefs();
113 DCHECK_EQ(false, pref->GetBoolean(prefs::kArcEnabled)); 121 DCHECK_EQ(false, pref->GetBoolean(prefs::kArcEnabled));
114 122
115 auth_service()->OnPrimaryUserProfilePrepared(profile()); 123 auth_service()->OnPrimaryUserProfilePrepared(profile());
116 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 124 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
117 125
118 // Need to initialize URLFetcher for test framework. 126 PrepareURLResponse(net::HTTP_OK, false);
119 const GURL gaia_gurl = ArcAuthFetcher::CreateURL();
120 url_fetcher_factory().SetFakeResponse(gaia_gurl, std::string(), net::HTTP_OK,
121 net::URLRequestStatus::SUCCESS);
122
123 pref->SetBoolean(prefs::kArcEnabled, true); 127 pref->SetBoolean(prefs::kArcEnabled, true);
124 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state()); 128 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
125 129
126 pref->SetBoolean(prefs::kArcEnabled, false); 130 pref->SetBoolean(prefs::kArcEnabled, false);
127 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 131 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
128 132
129 // Correctly stop service. 133 // Correctly stop service.
130 auth_service()->Shutdown(); 134 auth_service()->Shutdown();
131 } 135 }
132 136
133 TEST_F(ArcAuthServiceTest, BaseWorkflow) { 137 TEST_F(ArcAuthServiceTest, BaseWorkflow) {
134 ASSERT_EQ(ArcBridgeService::State::STOPPED, bridge_service()->state()); 138 ASSERT_EQ(ArcBridgeService::State::STOPPED, bridge_service()->state());
135 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 139 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
136 ASSERT_EQ(std::string(), auth_service()->GetAndResetAuthCode()); 140 ASSERT_EQ(std::string(), auth_service()->GetAndResetAuthCode());
137 141
138 const GURL gaia_gurl = ArcAuthFetcher::CreateURL(); 142 PrepareURLResponse(net::HTTP_OK, true);
139 url_fetcher_factory().SetFakeResponse(gaia_gurl, std::string(), net::HTTP_OK,
140 net::URLRequestStatus::SUCCESS);
141 std::string cookie = "oauth_code=";
142 cookie += kTestAuthCode;
143 cookie += "; Path=/o/oauth2/programmatic_auth; Secure; HttpOnly";
144 set_cookie(cookie);
145 auth_service()->OnPrimaryUserProfilePrepared(profile()); 143 auth_service()->OnPrimaryUserProfilePrepared(profile());
146 144
147 // By default ARC is not enabled. 145 // By default ARC is not enabled.
148 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 146 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
149 147
150 profile()->GetPrefs()->SetBoolean(prefs::kArcEnabled, true); 148 profile()->GetPrefs()->SetBoolean(prefs::kArcEnabled, true);
151 149
152 // Setting profile and pref initiates a code fetching process. 150 // Setting profile and pref initiates a code fetching process.
153 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state()); 151 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
154 152
(...skipping 17 matching lines...) Expand all
172 // Setting profile initiates a code fetching process. 170 // Setting profile initiates a code fetching process.
173 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state()); 171 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
174 172
175 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 173 content::BrowserThread::GetBlockingPool()->FlushForTesting();
176 base::RunLoop().RunUntilIdle(); 174 base::RunLoop().RunUntilIdle();
177 175
178 // UI is disabled in unit tests and this code is unchanged. 176 // UI is disabled in unit tests and this code is unchanged.
179 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state()); 177 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
180 178
181 // Send error response. 179 // Send error response.
182 url_fetcher_factory().SetFakeResponse(gaia_gurl, std::string(), 180 PrepareURLResponse(net::HTTP_BAD_REQUEST, false);
183 net::HTTP_BAD_REQUEST,
184 net::URLRequestStatus::SUCCESS);
185 auth_service()->Shutdown(); 181 auth_service()->Shutdown();
186 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state()); 182 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
187 auth_service()->OnPrimaryUserProfilePrepared(profile()); 183 auth_service()->OnPrimaryUserProfilePrepared(profile());
188 184
189 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state()); 185 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
190 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 186 content::BrowserThread::GetBlockingPool()->FlushForTesting();
191 base::RunLoop().RunUntilIdle(); 187 base::RunLoop().RunUntilIdle();
192 188
193 ASSERT_EQ(ArcAuthService::State::NO_CODE, auth_service()->state()); 189 ASSERT_EQ(ArcAuthService::State::NO_CODE, auth_service()->state());
194 190
195 // Correctly stop service. 191 // Correctly stop service.
196 auth_service()->Shutdown(); 192 auth_service()->Shutdown();
197 } 193 }
198 194
195 TEST_F(ArcAuthServiceTest, CancelFetchingDisablesArc) {
196 PrepareURLResponse(net::HTTP_OK, false);
197 PrefService* pref = profile()->GetPrefs();
198
199 auth_service()->OnPrimaryUserProfilePrepared(profile());
200 pref->SetBoolean(prefs::kArcEnabled, true);
201 ASSERT_EQ(ArcAuthService::State::FETCHING_CODE, auth_service()->state());
202
203 auth_service()->CancelAuthCode();
204 ASSERT_EQ(ArcAuthService::State::DISABLE, auth_service()->state());
205 ASSERT_EQ(false, pref->GetBoolean(prefs::kArcEnabled));
206
207 // Correctly stop service.
208 auth_service()->Shutdown();
209 }
210
211 TEST_F(ArcAuthServiceTest, CloseUIKeepsArcEnabled) {
212 PrepareURLResponse(net::HTTP_OK, true);
213 PrefService* pref = profile()->GetPrefs();
214
215 auth_service()->OnPrimaryUserProfilePrepared(profile());
216 pref->SetBoolean(prefs::kArcEnabled, true);
217
218 content::BrowserThread::GetBlockingPool()->FlushForTesting();
219 base::RunLoop().RunUntilIdle();
220
221 ASSERT_EQ(ArcAuthService::State::ENABLE, auth_service()->state());
222
223 auth_service()->CancelAuthCode();
224 ASSERT_EQ(ArcAuthService::State::ENABLE, auth_service()->state());
225 ASSERT_EQ(true, pref->GetBoolean(prefs::kArcEnabled));
226
227 // Correctly stop service.
228 auth_service()->Shutdown();
229 }
230
199 } // namespace arc 231 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698