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

Side by Side Diff: chrome/browser/extensions/api/identity/identity_apitest.cc

Issue 666153002: Standardize usage of virtual/override/final in chrome/browser/extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 bool HasResponse() { 79 bool HasResponse() {
80 return response_.get() != NULL; 80 return response_.get() != NULL;
81 } 81 }
82 82
83 bool GetResponse() { 83 bool GetResponse() {
84 EXPECT_TRUE(HasResponse()); 84 EXPECT_TRUE(HasResponse());
85 return *response_.get(); 85 return *response_.get();
86 } 86 }
87 87
88 virtual void OnSendResponse(UIThreadExtensionFunction* function, 88 void OnSendResponse(UIThreadExtensionFunction* function,
89 bool success, 89 bool success,
90 bool bad_message) override { 90 bool bad_message) override {
91 ASSERT_FALSE(bad_message); 91 ASSERT_FALSE(bad_message);
92 ASSERT_FALSE(HasResponse()); 92 ASSERT_FALSE(HasResponse());
93 response_.reset(new bool); 93 response_.reset(new bool);
94 *response_ = success; 94 *response_ = success;
95 if (should_post_quit_) { 95 if (should_post_quit_) {
96 base::MessageLoopForUI::current()->Quit(); 96 base::MessageLoopForUI::current()->Quit();
97 } 97 }
98 } 98 }
99 99
100 private: 100 private:
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 } 157 }
158 158
159 scoped_ptr<SendResponseDelegate> response_delegate_; 159 scoped_ptr<SendResponseDelegate> response_delegate_;
160 }; 160 };
161 161
162 class TestHangOAuth2MintTokenFlow : public OAuth2MintTokenFlow { 162 class TestHangOAuth2MintTokenFlow : public OAuth2MintTokenFlow {
163 public: 163 public:
164 TestHangOAuth2MintTokenFlow() 164 TestHangOAuth2MintTokenFlow()
165 : OAuth2MintTokenFlow(NULL, OAuth2MintTokenFlow::Parameters()) {} 165 : OAuth2MintTokenFlow(NULL, OAuth2MintTokenFlow::Parameters()) {}
166 166
167 virtual void Start(net::URLRequestContextGetter* context, 167 void Start(net::URLRequestContextGetter* context,
168 const std::string& access_token) override { 168 const std::string& access_token) override {
169 // Do nothing, simulating a hanging network call. 169 // Do nothing, simulating a hanging network call.
170 } 170 }
171 }; 171 };
172 172
173 class TestOAuth2MintTokenFlow : public OAuth2MintTokenFlow { 173 class TestOAuth2MintTokenFlow : public OAuth2MintTokenFlow {
174 public: 174 public:
175 enum ResultType { 175 enum ResultType {
176 ISSUE_ADVICE_SUCCESS, 176 ISSUE_ADVICE_SUCCESS,
177 MINT_TOKEN_SUCCESS, 177 MINT_TOKEN_SUCCESS,
178 MINT_TOKEN_FAILURE, 178 MINT_TOKEN_FAILURE,
179 MINT_TOKEN_BAD_CREDENTIALS, 179 MINT_TOKEN_BAD_CREDENTIALS,
180 MINT_TOKEN_SERVICE_ERROR 180 MINT_TOKEN_SERVICE_ERROR
181 }; 181 };
182 182
183 TestOAuth2MintTokenFlow(ResultType result, 183 TestOAuth2MintTokenFlow(ResultType result,
184 OAuth2MintTokenFlow::Delegate* delegate) 184 OAuth2MintTokenFlow::Delegate* delegate)
185 : OAuth2MintTokenFlow(delegate, OAuth2MintTokenFlow::Parameters()), 185 : OAuth2MintTokenFlow(delegate, OAuth2MintTokenFlow::Parameters()),
186 result_(result), 186 result_(result),
187 delegate_(delegate) {} 187 delegate_(delegate) {}
188 188
189 virtual void Start(net::URLRequestContextGetter* context, 189 void Start(net::URLRequestContextGetter* context,
190 const std::string& access_token) override { 190 const std::string& access_token) override {
191 switch (result_) { 191 switch (result_) {
192 case ISSUE_ADVICE_SUCCESS: { 192 case ISSUE_ADVICE_SUCCESS: {
193 IssueAdviceInfo info; 193 IssueAdviceInfo info;
194 delegate_->OnIssueAdviceSuccess(info); 194 delegate_->OnIssueAdviceSuccess(info);
195 break; 195 break;
196 } 196 }
197 case MINT_TOKEN_SUCCESS: { 197 case MINT_TOKEN_SUCCESS: {
198 delegate_->OnMintTokenSuccess(kAccessToken, 3600); 198 delegate_->OnMintTokenSuccess(kAccessToken, 3600);
199 break; 199 break;
200 } 200 }
(...skipping 27 matching lines...) Expand all
228 // closed. 228 // closed.
229 class WaitForGURLAndCloseWindow : public content::WindowedNotificationObserver { 229 class WaitForGURLAndCloseWindow : public content::WindowedNotificationObserver {
230 public: 230 public:
231 explicit WaitForGURLAndCloseWindow(GURL url) 231 explicit WaitForGURLAndCloseWindow(GURL url)
232 : WindowedNotificationObserver( 232 : WindowedNotificationObserver(
233 content::NOTIFICATION_LOAD_STOP, 233 content::NOTIFICATION_LOAD_STOP,
234 content::NotificationService::AllSources()), 234 content::NotificationService::AllSources()),
235 url_(url) {} 235 url_(url) {}
236 236
237 // NotificationObserver: 237 // NotificationObserver:
238 virtual void Observe(int type, 238 void Observe(int type,
239 const content::NotificationSource& source, 239 const content::NotificationSource& source,
240 const content::NotificationDetails& details) override { 240 const content::NotificationDetails& details) override {
241 content::NavigationController* web_auth_flow_controller = 241 content::NavigationController* web_auth_flow_controller =
242 content::Source<content::NavigationController>(source).ptr(); 242 content::Source<content::NavigationController>(source).ptr();
243 content::WebContents* web_contents = 243 content::WebContents* web_contents =
244 web_auth_flow_controller->GetWebContents(); 244 web_auth_flow_controller->GetWebContents();
245 245
246 if (web_contents->GetURL() == url_) { 246 if (web_contents->GetURL() == url_) {
247 // It is safe to keep the pointer here, because we know in a test, that 247 // It is safe to keep the pointer here, because we know in a test, that
248 // the WebContents won't go away before CloseEmbedderWebContents is 248 // the WebContents won't go away before CloseEmbedderWebContents is
249 // called. Don't copy this code to production. 249 // called. Don't copy this code to production.
250 GuestViewBase* guest = GuestViewBase::FromWebContents(web_contents); 250 GuestViewBase* guest = GuestViewBase::FromWebContents(web_contents);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 scope_ui_failure_ = GaiaWebAuthFlow::OAUTH_ERROR; 309 scope_ui_failure_ = GaiaWebAuthFlow::OAUTH_ERROR;
310 scope_ui_oauth_error_ = oauth_error; 310 scope_ui_oauth_error_ = oauth_error;
311 } 311 }
312 312
313 bool login_ui_shown() const { return login_ui_shown_; } 313 bool login_ui_shown() const { return login_ui_shown_; }
314 314
315 bool scope_ui_shown() const { return scope_ui_shown_; } 315 bool scope_ui_shown() const { return scope_ui_shown_; }
316 316
317 std::string login_access_token() const { return login_access_token_; } 317 std::string login_access_token() const { return login_access_token_; }
318 318
319 virtual void StartLoginAccessTokenRequest() override { 319 void StartLoginAccessTokenRequest() override {
320 if (auto_login_access_token_) { 320 if (auto_login_access_token_) {
321 if (login_access_token_result_) { 321 if (login_access_token_result_) {
322 OnGetTokenSuccess(login_token_request_.get(), 322 OnGetTokenSuccess(login_token_request_.get(),
323 "access_token", 323 "access_token",
324 base::Time::Now() + base::TimeDelta::FromHours(1LL)); 324 base::Time::Now() + base::TimeDelta::FromHours(1LL));
325 } else { 325 } else {
326 GoogleServiceAuthError error( 326 GoogleServiceAuthError error(
327 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); 327 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
328 OnGetTokenFailure(login_token_request_.get(), error); 328 OnGetTokenFailure(login_token_request_.get(), error);
329 } 329 }
330 } else { 330 } else {
331 // Make a request to the token service. The test now must tell 331 // Make a request to the token service. The test now must tell
332 // the token service to issue an access token (or an error). 332 // the token service to issue an access token (or an error).
333 IdentityGetAuthTokenFunction::StartLoginAccessTokenRequest(); 333 IdentityGetAuthTokenFunction::StartLoginAccessTokenRequest();
334 } 334 }
335 } 335 }
336 336
337 virtual void ShowLoginPopup() override { 337 void ShowLoginPopup() override {
338 EXPECT_FALSE(login_ui_shown_); 338 EXPECT_FALSE(login_ui_shown_);
339 login_ui_shown_ = true; 339 login_ui_shown_ = true;
340 if (login_ui_result_) 340 if (login_ui_result_)
341 SigninSuccess(); 341 SigninSuccess();
342 else 342 else
343 SigninFailed(); 343 SigninFailed();
344 } 344 }
345 345
346 virtual void ShowOAuthApprovalDialog( 346 void ShowOAuthApprovalDialog(const IssueAdviceInfo& issue_advice) override {
347 const IssueAdviceInfo& issue_advice) override {
348 scope_ui_shown_ = true; 347 scope_ui_shown_ = true;
349 348
350 if (scope_ui_result_) { 349 if (scope_ui_result_) {
351 OnGaiaFlowCompleted(kAccessToken, "3600"); 350 OnGaiaFlowCompleted(kAccessToken, "3600");
352 } else if (scope_ui_failure_ == GaiaWebAuthFlow::SERVICE_AUTH_ERROR) { 351 } else if (scope_ui_failure_ == GaiaWebAuthFlow::SERVICE_AUTH_ERROR) {
353 GoogleServiceAuthError error(GoogleServiceAuthError::CONNECTION_FAILED); 352 GoogleServiceAuthError error(GoogleServiceAuthError::CONNECTION_FAILED);
354 OnGaiaFlowFailure(scope_ui_failure_, error, ""); 353 OnGaiaFlowFailure(scope_ui_failure_, error, "");
355 } else { 354 } else {
356 GoogleServiceAuthError error(GoogleServiceAuthError::NONE); 355 GoogleServiceAuthError error(GoogleServiceAuthError::NONE);
357 OnGaiaFlowFailure(scope_ui_failure_, error, scope_ui_oauth_error_); 356 OnGaiaFlowFailure(scope_ui_failure_, error, scope_ui_oauth_error_);
358 } 357 }
359 } 358 }
360 359
361 virtual void StartGaiaRequest( 360 void StartGaiaRequest(const std::string& login_access_token) override {
362 const std::string& login_access_token) override {
363 EXPECT_TRUE(login_access_token_.empty()); 361 EXPECT_TRUE(login_access_token_.empty());
364 // Save the login token used in the mint token flow so tests can see 362 // Save the login token used in the mint token flow so tests can see
365 // what account was used. 363 // what account was used.
366 login_access_token_ = login_access_token; 364 login_access_token_ = login_access_token;
367 IdentityGetAuthTokenFunction::StartGaiaRequest(login_access_token); 365 IdentityGetAuthTokenFunction::StartGaiaRequest(login_access_token);
368 } 366 }
369 367
370 virtual OAuth2MintTokenFlow* CreateMintTokenFlow() override { 368 OAuth2MintTokenFlow* CreateMintTokenFlow() override {
371 return flow_.release(); 369 return flow_.release();
372 } 370 }
373 371
374 private: 372 private:
375 virtual ~FakeGetAuthTokenFunction() {} 373 ~FakeGetAuthTokenFunction() override {}
376 bool login_access_token_result_; 374 bool login_access_token_result_;
377 bool auto_login_access_token_; 375 bool auto_login_access_token_;
378 bool login_ui_result_; 376 bool login_ui_result_;
379 bool scope_ui_result_; 377 bool scope_ui_result_;
380 GaiaWebAuthFlow::Failure scope_ui_failure_; 378 GaiaWebAuthFlow::Failure scope_ui_failure_;
381 std::string scope_ui_oauth_error_; 379 std::string scope_ui_oauth_error_;
382 bool login_ui_shown_; 380 bool login_ui_shown_;
383 bool scope_ui_shown_; 381 bool scope_ui_shown_;
384 382
385 scoped_ptr<OAuth2MintTokenFlow> flow_; 383 scoped_ptr<OAuth2MintTokenFlow> flow_;
386 384
387 std::string login_access_token_; 385 std::string login_access_token_;
388 }; 386 };
389 387
390 class MockQueuedMintRequest : public IdentityMintRequestQueue::Request { 388 class MockQueuedMintRequest : public IdentityMintRequestQueue::Request {
391 public: 389 public:
392 MOCK_METHOD1(StartMintToken, void(IdentityMintRequestQueue::MintType)); 390 MOCK_METHOD1(StartMintToken, void(IdentityMintRequestQueue::MintType));
393 }; 391 };
394 392
395 gaia::AccountIds CreateIds(std::string email, std::string obfid) { 393 gaia::AccountIds CreateIds(std::string email, std::string obfid) {
396 gaia::AccountIds ids; 394 gaia::AccountIds ids;
397 ids.account_key = email; 395 ids.account_key = email;
398 ids.email = email; 396 ids.email = email;
399 ids.gaia = obfid; 397 ids.gaia = obfid;
400 return ids; 398 return ids;
401 } 399 }
402 400
403 class IdentityGetAccountsFunctionTest : public ExtensionBrowserTest { 401 class IdentityGetAccountsFunctionTest : public ExtensionBrowserTest {
404 virtual void SetUpCommandLine(CommandLine* command_line) override { 402 void SetUpCommandLine(CommandLine* command_line) override {
405 ExtensionBrowserTest::SetUpCommandLine(command_line); 403 ExtensionBrowserTest::SetUpCommandLine(command_line);
406 command_line->AppendSwitch(switches::kExtensionsMultiAccount); 404 command_line->AppendSwitch(switches::kExtensionsMultiAccount);
407 } 405 }
408 406
409 protected: 407 protected:
410 void SetAccountState(gaia::AccountIds ids, bool is_signed_in) { 408 void SetAccountState(gaia::AccountIds ids, bool is_signed_in) {
411 IdentityAPI::GetFactoryInstance()->Get(profile())->SetAccountStateForTest( 409 IdentityAPI::GetFactoryInstance()->Get(profile())->SetAccountStateForTest(
412 ids, is_signed_in); 410 ids, is_signed_in);
413 } 411 }
414 412
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 SetAccountState(CreateIds("primary@example.com", "1"), true); 504 SetAccountState(CreateIds("primary@example.com", "1"), true);
507 SetAccountState(CreateIds("secondary@example.com", "2"), true); 505 SetAccountState(CreateIds("secondary@example.com", "2"), true);
508 std::vector<std::string> two_accounts; 506 std::vector<std::string> two_accounts;
509 two_accounts.push_back("1"); 507 two_accounts.push_back("1");
510 two_accounts.push_back("2"); 508 two_accounts.push_back("2");
511 EXPECT_TRUE(ExpectGetAccounts(two_accounts)); 509 EXPECT_TRUE(ExpectGetAccounts(two_accounts));
512 } 510 }
513 511
514 class IdentityOldProfilesGetAccountsFunctionTest 512 class IdentityOldProfilesGetAccountsFunctionTest
515 : public IdentityGetAccountsFunctionTest { 513 : public IdentityGetAccountsFunctionTest {
516 virtual void SetUpCommandLine(CommandLine* command_line) override { 514 void SetUpCommandLine(CommandLine* command_line) override {
517 // Don't add the multi-account switch that parent class would have. 515 // Don't add the multi-account switch that parent class would have.
518 } 516 }
519 }; 517 };
520 518
521 IN_PROC_BROWSER_TEST_F(IdentityOldProfilesGetAccountsFunctionTest, 519 IN_PROC_BROWSER_TEST_F(IdentityOldProfilesGetAccountsFunctionTest,
522 MultiAccountOff) { 520 MultiAccountOff) {
523 EXPECT_FALSE(switches::IsExtensionsMultiAccount()); 521 EXPECT_FALSE(switches::IsExtensionsMultiAccount());
524 } 522 }
525 523
526 IN_PROC_BROWSER_TEST_F(IdentityOldProfilesGetAccountsFunctionTest, 524 IN_PROC_BROWSER_TEST_F(IdentityOldProfilesGetAccountsFunctionTest,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 profile()->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId, 593 profile()->GetPrefs()->SetString(prefs::kGoogleServicesUserAccountId,
596 "12345"); 594 "12345");
597 595
598 scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo(); 596 scoped_ptr<api::identity::ProfileUserInfo> info = RunGetProfileUserInfo();
599 EXPECT_TRUE(info->email.empty()); 597 EXPECT_TRUE(info->email.empty());
600 EXPECT_EQ("12345", info->id); 598 EXPECT_EQ("12345", info->id);
601 } 599 }
602 600
603 class GetAuthTokenFunctionTest : public AsyncExtensionBrowserTest { 601 class GetAuthTokenFunctionTest : public AsyncExtensionBrowserTest {
604 public: 602 public:
605 virtual void SetUpCommandLine(CommandLine* command_line) override { 603 void SetUpCommandLine(CommandLine* command_line) override {
606 AsyncExtensionBrowserTest::SetUpCommandLine(command_line); 604 AsyncExtensionBrowserTest::SetUpCommandLine(command_line);
607 command_line->AppendSwitch(switches::kExtensionsMultiAccount); 605 command_line->AppendSwitch(switches::kExtensionsMultiAccount);
608 } 606 }
609 607
610 virtual void SetUpInProcessBrowserTestFixture() override { 608 void SetUpInProcessBrowserTestFixture() override {
611 AsyncExtensionBrowserTest::SetUpInProcessBrowserTestFixture(); 609 AsyncExtensionBrowserTest::SetUpInProcessBrowserTestFixture();
612 610
613 will_create_browser_context_services_subscription_ = 611 will_create_browser_context_services_subscription_ =
614 BrowserContextDependencyManager::GetInstance() 612 BrowserContextDependencyManager::GetInstance()
615 ->RegisterWillCreateBrowserContextServicesCallbackForTesting( 613 ->RegisterWillCreateBrowserContextServicesCallbackForTesting(
616 base::Bind(&GetAuthTokenFunctionTest:: 614 base::Bind(&GetAuthTokenFunctionTest::
617 OnWillCreateBrowserContextServices, 615 OnWillCreateBrowserContextServices,
618 base::Unretained(this))) 616 base::Unretained(this)))
619 .Pass(); 617 .Pass();
620 } 618 }
621 619
622 void OnWillCreateBrowserContextServices(content::BrowserContext* context) { 620 void OnWillCreateBrowserContextServices(content::BrowserContext* context) {
623 // Replace the signin manager and token service with fakes. Do this ahead of 621 // Replace the signin manager and token service with fakes. Do this ahead of
624 // creating the browser so that a bunch of classes don't register as 622 // creating the browser so that a bunch of classes don't register as
625 // observers and end up needing to unregister when the fake is substituted. 623 // observers and end up needing to unregister when the fake is substituted.
626 SigninManagerFactory::GetInstance()->SetTestingFactory( 624 SigninManagerFactory::GetInstance()->SetTestingFactory(
627 context, &FakeSigninManagerBase::Build); 625 context, &FakeSigninManagerBase::Build);
628 ProfileOAuth2TokenServiceFactory::GetInstance()->SetTestingFactory( 626 ProfileOAuth2TokenServiceFactory::GetInstance()->SetTestingFactory(
629 context, &BuildFakeProfileOAuth2TokenService); 627 context, &BuildFakeProfileOAuth2TokenService);
630 AccountReconcilorFactory::GetInstance()->SetTestingFactory( 628 AccountReconcilorFactory::GetInstance()->SetTestingFactory(
631 context, &FakeAccountReconcilor::Build); 629 context, &FakeAccountReconcilor::Build);
632 } 630 }
633 631
634 virtual void SetUpOnMainThread() override { 632 void SetUpOnMainThread() override {
635 AsyncExtensionBrowserTest::SetUpOnMainThread(); 633 AsyncExtensionBrowserTest::SetUpOnMainThread();
636 634
637 // Grab references to the fake signin manager and token service. 635 // Grab references to the fake signin manager and token service.
638 signin_manager_ = static_cast<FakeSigninManagerForTesting*>( 636 signin_manager_ = static_cast<FakeSigninManagerForTesting*>(
639 SigninManagerFactory::GetInstance()->GetForProfile(profile())); 637 SigninManagerFactory::GetInstance()->GetForProfile(profile()));
640 ASSERT_TRUE(signin_manager_); 638 ASSERT_TRUE(signin_manager_);
641 token_service_ = static_cast<FakeProfileOAuth2TokenService*>( 639 token_service_ = static_cast<FakeProfileOAuth2TokenService*>(
642 ProfileOAuth2TokenServiceFactory::GetInstance()->GetForProfile( 640 ProfileOAuth2TokenServiceFactory::GetInstance()->GetForProfile(
643 profile())); 641 profile()));
644 ASSERT_TRUE(token_service_); 642 ASSERT_TRUE(token_service_);
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after
1652 SetCachedToken(token); 1650 SetCachedToken(token);
1653 EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_TOKEN, 1651 EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_TOKEN,
1654 GetCachedToken().status()); 1652 GetCachedToken().status());
1655 EXPECT_TRUE(InvalidateDefaultToken()); 1653 EXPECT_TRUE(InvalidateDefaultToken());
1656 EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND, 1654 EXPECT_EQ(IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND,
1657 GetCachedToken().status()); 1655 GetCachedToken().status());
1658 } 1656 }
1659 1657
1660 class LaunchWebAuthFlowFunctionTest : public AsyncExtensionBrowserTest { 1658 class LaunchWebAuthFlowFunctionTest : public AsyncExtensionBrowserTest {
1661 public: 1659 public:
1662 virtual void SetUpCommandLine(CommandLine* command_line) override { 1660 void SetUpCommandLine(CommandLine* command_line) override {
1663 AsyncExtensionBrowserTest::SetUpCommandLine(command_line); 1661 AsyncExtensionBrowserTest::SetUpCommandLine(command_line);
1664 // Reduce performance test variance by disabling background networking. 1662 // Reduce performance test variance by disabling background networking.
1665 command_line->AppendSwitch(switches::kDisableBackgroundNetworking); 1663 command_line->AppendSwitch(switches::kDisableBackgroundNetworking);
1666 } 1664 }
1667 }; 1665 };
1668 1666
1669 IN_PROC_BROWSER_TEST_F(LaunchWebAuthFlowFunctionTest, UserCloseWindow) { 1667 IN_PROC_BROWSER_TEST_F(LaunchWebAuthFlowFunctionTest, UserCloseWindow) {
1670 net::SpawnedTestServer https_server( 1668 net::SpawnedTestServer https_server(
1671 net::SpawnedTestServer::TYPE_HTTPS, 1669 net::SpawnedTestServer::TYPE_HTTPS,
1672 net::SpawnedTestServer::kLocalhost, 1670 net::SpawnedTestServer::kLocalhost,
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1813 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"), 1811 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"),
1814 url); 1812 url);
1815 } 1813 }
1816 1814
1817 } // namespace extensions 1815 } // namespace extensions
1818 1816
1819 // Tests the chrome.identity API implemented by custom JS bindings . 1817 // Tests the chrome.identity API implemented by custom JS bindings .
1820 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeIdentityJsBindings) { 1818 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ChromeIdentityJsBindings) {
1821 ASSERT_TRUE(RunExtensionTest("identity/js_bindings")) << message_; 1819 ASSERT_TRUE(RunExtensionTest("identity/js_bindings")) << message_;
1822 } 1820 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/identity/identity_api.h ('k') | chrome/browser/extensions/api/identity/identity_signin_flow.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698