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

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

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 | Annotate | Revision Log
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 "base/string_util.h" 5 #include "base/string_util.h"
6 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/browser/extensions/api/identity/experimental_identity_api.h" 8 #include "chrome/browser/extensions/api/identity/experimental_identity_api.h"
9 #include "chrome/browser/extensions/api/identity/identity_api.h" 9 #include "chrome/browser/extensions/api/identity/identity_api.h"
10 #include "chrome/browser/extensions/api/identity/web_auth_flow.h" 10 #include "chrome/browser/extensions/api/identity/web_auth_flow.h"
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false)); 312 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false));
313 EXPECT_FALSE(func->login_ui_shown()); 313 EXPECT_FALSE(func->login_ui_shown());
314 EXPECT_FALSE(func->install_ui_shown()); 314 EXPECT_FALSE(func->install_ui_shown());
315 } 315 }
316 316
317 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest, 317 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest,
318 NonInteractiveMintAdviceSuccess) { 318 NonInteractiveMintAdviceSuccess) {
319 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES)); 319 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES));
320 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func( 320 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func(
321 new ExperimentalMockGetAuthTokenFunction()); 321 new ExperimentalMockGetAuthTokenFunction());
322 func->set_extension(extension); 322 func->set_extension(extension.get());
323 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true)); 323 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true));
324 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow( 324 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow(
325 TestOAuth2MintTokenFlow::ISSUE_ADVICE_SUCCESS, func.get()); 325 TestOAuth2MintTokenFlow::ISSUE_ADVICE_SUCCESS, func.get());
326 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow)); 326 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow));
327 std::string error = 327 std::string error =
328 utils::RunFunctionAndReturnError(func.get(), "[{}]", browser()); 328 utils::RunFunctionAndReturnError(func.get(), "[{}]", browser());
329 EXPECT_EQ(std::string(errors::kNoGrant), error); 329 EXPECT_EQ(std::string(errors::kNoGrant), error);
330 EXPECT_FALSE(func->login_ui_shown()); 330 EXPECT_FALSE(func->login_ui_shown());
331 EXPECT_FALSE(func->install_ui_shown()); 331 EXPECT_FALSE(func->install_ui_shown());
332 332
333 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension); 333 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension.get());
334 EXPECT_EQ( 334 EXPECT_EQ(
335 IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND, 335 IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND,
336 id_api()->GetCachedToken(extension->id(), oauth2_info.scopes).status()); 336 id_api()->GetCachedToken(extension->id(), oauth2_info.scopes).status());
337 } 337 }
338 338
339 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest, 339 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest,
340 NonInteractiveMintBadCredentials) { 340 NonInteractiveMintBadCredentials) {
341 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func( 341 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func(
342 new ExperimentalMockGetAuthTokenFunction()); 342 new ExperimentalMockGetAuthTokenFunction());
343 func->set_extension(CreateExtension(CLIENT_ID | SCOPES)); 343 func->set_extension(CreateExtension(CLIENT_ID | SCOPES));
344 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true)); 344 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true));
345 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow( 345 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow(
346 TestOAuth2MintTokenFlow::MINT_TOKEN_BAD_CREDENTIALS, func.get()); 346 TestOAuth2MintTokenFlow::MINT_TOKEN_BAD_CREDENTIALS, func.get());
347 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow)); 347 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow));
348 std::string error = 348 std::string error =
349 utils::RunFunctionAndReturnError(func.get(), "[{}]", browser()); 349 utils::RunFunctionAndReturnError(func.get(), "[{}]", browser());
350 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false)); 350 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false));
351 EXPECT_FALSE(func->login_ui_shown()); 351 EXPECT_FALSE(func->login_ui_shown());
352 EXPECT_FALSE(func->install_ui_shown()); 352 EXPECT_FALSE(func->install_ui_shown());
353 } 353 }
354 354
355 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest, 355 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest,
356 NonInteractiveSuccess) { 356 NonInteractiveSuccess) {
357 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func( 357 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func(
358 new ExperimentalMockGetAuthTokenFunction()); 358 new ExperimentalMockGetAuthTokenFunction());
359 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES)); 359 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES));
360 func->set_extension(extension); 360 func->set_extension(extension.get());
361 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension); 361 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension.get());
362 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true)); 362 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(true));
363 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow( 363 TestOAuth2MintTokenFlow* flow = new TestOAuth2MintTokenFlow(
364 TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS, func.get()); 364 TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS, func.get());
365 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow)); 365 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow));
366 scoped_ptr<base::Value> value( 366 scoped_ptr<base::Value> value(
367 utils::RunFunctionAndReturnSingleResult(func.get(), "[{}]", browser())); 367 utils::RunFunctionAndReturnSingleResult(func.get(), "[{}]", browser()));
368 std::string access_token; 368 std::string access_token;
369 EXPECT_TRUE(value->GetAsString(&access_token)); 369 EXPECT_TRUE(value->GetAsString(&access_token));
370 EXPECT_EQ(std::string(kAccessToken), access_token); 370 EXPECT_EQ(std::string(kAccessToken), access_token);
371 EXPECT_FALSE(func->login_ui_shown()); 371 EXPECT_FALSE(func->login_ui_shown());
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false)); 494 EXPECT_TRUE(StartsWithASCII(error, errors::kAuthFailure, false));
495 EXPECT_TRUE(func->login_ui_shown()); 495 EXPECT_TRUE(func->login_ui_shown());
496 EXPECT_TRUE(func->install_ui_shown()); 496 EXPECT_TRUE(func->install_ui_shown());
497 } 497 }
498 498
499 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest, 499 IN_PROC_BROWSER_TEST_F(ExperimentalGetAuthTokenFunctionTest,
500 InteractiveLoginSuccessApprovalDoneMintSuccess) { 500 InteractiveLoginSuccessApprovalDoneMintSuccess) {
501 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func( 501 scoped_refptr<ExperimentalMockGetAuthTokenFunction> func(
502 new ExperimentalMockGetAuthTokenFunction()); 502 new ExperimentalMockGetAuthTokenFunction());
503 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES)); 503 scoped_refptr<const Extension> extension(CreateExtension(CLIENT_ID | SCOPES));
504 func->set_extension(extension); 504 func->set_extension(extension.get());
505 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension); 505 const OAuth2Info& oauth2_info = OAuth2Info::GetOAuth2Info(extension.get());
506 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(false)); 506 EXPECT_CALL(*func.get(), HasLoginToken()).WillOnce(Return(false));
507 func->set_login_ui_result(true); 507 func->set_login_ui_result(true);
508 TestOAuth2MintTokenFlow* flow1 = new TestOAuth2MintTokenFlow( 508 TestOAuth2MintTokenFlow* flow1 = new TestOAuth2MintTokenFlow(
509 TestOAuth2MintTokenFlow::ISSUE_ADVICE_SUCCESS, func.get()); 509 TestOAuth2MintTokenFlow::ISSUE_ADVICE_SUCCESS, func.get());
510 TestOAuth2MintTokenFlow* flow2 = new TestOAuth2MintTokenFlow( 510 TestOAuth2MintTokenFlow* flow2 = new TestOAuth2MintTokenFlow(
511 TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS, func.get()); 511 TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS, func.get());
512 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow1)) 512 EXPECT_CALL(*func.get(), CreateMintTokenFlow(_)).WillOnce(Return(flow1))
513 .WillOnce(Return(flow2)); 513 .WillOnce(Return(flow2));
514 514
515 func->set_install_ui_result(true); 515 func->set_install_ui_result(true);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 content::NotificationService::AllSources()); 599 content::NotificationService::AllSources());
600 600
601 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 601 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
602 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 602 new ExperimentalIdentityLaunchWebAuthFlowFunction());
603 603
604 std::string args = base::StringPrintf( 604 std::string args = base::StringPrintf(
605 "[{\"interactive\": true, \"url\": \"data:text/html,auth\"%s%s}]", 605 "[{\"interactive\": true, \"url\": \"data:text/html,auth\"%s%s}]",
606 extra_params.length() ? "," : "", 606 extra_params.length() ? "," : "",
607 extra_params.c_str()); 607 extra_params.c_str());
608 608
609 RunFunctionAsync(function, args); 609 RunFunctionAsync(function.get(), args);
610 610
611 observer.Wait(); 611 observer.Wait();
612 612
613 Browser* web_auth_flow_browser = 613 Browser* web_auth_flow_browser =
614 content::Source<Browser>(observer.source()).ptr(); 614 content::Source<Browser>(observer.source()).ptr();
615 EXPECT_EQ(expected_x, web_auth_flow_browser->override_bounds().x()); 615 EXPECT_EQ(expected_x, web_auth_flow_browser->override_bounds().x());
616 EXPECT_EQ(expected_y, web_auth_flow_browser->override_bounds().y()); 616 EXPECT_EQ(expected_y, web_auth_flow_browser->override_bounds().y());
617 EXPECT_EQ(expected_width, web_auth_flow_browser->override_bounds().width()); 617 EXPECT_EQ(expected_width, web_auth_flow_browser->override_bounds().width());
618 EXPECT_EQ(expected_height, 618 EXPECT_EQ(expected_height,
619 web_auth_flow_browser->override_bounds().height()); 619 web_auth_flow_browser->override_bounds().height());
(...skipping 17 matching lines...) Expand all
637 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest, 637 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest,
638 UserCloseWindow) { 638 UserCloseWindow) {
639 content::WindowedNotificationObserver observer( 639 content::WindowedNotificationObserver observer(
640 chrome::NOTIFICATION_BROWSER_WINDOW_READY, 640 chrome::NOTIFICATION_BROWSER_WINDOW_READY,
641 content::NotificationService::AllSources()); 641 content::NotificationService::AllSources());
642 642
643 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 643 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
644 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 644 new ExperimentalIdentityLaunchWebAuthFlowFunction());
645 645
646 RunFunctionAsync( 646 RunFunctionAsync(
647 function, "[{\"interactive\": true, \"url\": \"data:text/html,auth\"}]"); 647 function.get(),
648 "[{\"interactive\": true, \"url\": \"data:text/html,auth\"}]");
648 649
649 observer.Wait(); 650 observer.Wait();
650 Browser* web_auth_flow_browser = 651 Browser* web_auth_flow_browser =
651 content::Source<Browser>(observer.source()).ptr(); 652 content::Source<Browser>(observer.source()).ptr();
652 web_auth_flow_browser->window()->Close(); 653 web_auth_flow_browser->window()->Close();
653 654
654 EXPECT_EQ(std::string(errors::kUserRejected), WaitForError(function)); 655 EXPECT_EQ(std::string(errors::kUserRejected), WaitForError(function.get()));
655 } 656 }
656 657
657 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest, 658 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest,
658 InteractionRequired) { 659 InteractionRequired) {
659 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 660 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
660 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 661 new ExperimentalIdentityLaunchWebAuthFlowFunction());
661 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 662 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
662 function->set_extension(empty_extension.get()); 663 function->set_extension(empty_extension.get());
663 664
664 std::string error = utils::RunFunctionAndReturnError( 665 std::string error = utils::RunFunctionAndReturnError(
665 function, 666 function.get(),
666 "[{\"interactive\": false, \"url\": \"data:text/html,auth\"}]", 667 "[{\"interactive\": false, \"url\": \"data:text/html,auth\"}]",
667 browser()); 668 browser());
668 669
669 EXPECT_EQ(std::string(errors::kInteractionRequired), error); 670 EXPECT_EQ(std::string(errors::kInteractionRequired), error);
670 } 671 }
671 672
672 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest, 673 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest,
673 NonInteractiveSuccess) { 674 NonInteractiveSuccess) {
674 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 675 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
675 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 676 new ExperimentalIdentityLaunchWebAuthFlowFunction());
676 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 677 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
677 function->set_extension(empty_extension.get()); 678 function->set_extension(empty_extension.get());
678 679
679 function->InitFinalRedirectURLPrefixesForTest("abcdefghij"); 680 function->InitFinalRedirectURLPrefixesForTest("abcdefghij");
680 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( 681 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult(
681 function, 682 function.get(),
682 "[{\"interactive\": false," 683 "[{\"interactive\": false,"
683 "\"url\": \"https://abcdefghij.chromiumapp.org/callback#test\"}]", 684 "\"url\": \"https://abcdefghij.chromiumapp.org/callback#test\"}]",
684 browser())); 685 browser()));
685 686
686 std::string url; 687 std::string url;
687 EXPECT_TRUE(value->GetAsString(&url)); 688 EXPECT_TRUE(value->GetAsString(&url));
688 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"), 689 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"),
689 url); 690 url);
690 } 691 }
691 692
692 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest, 693 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest,
693 InteractiveFirstNavigationSuccess) { 694 InteractiveFirstNavigationSuccess) {
694 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 695 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
695 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 696 new ExperimentalIdentityLaunchWebAuthFlowFunction());
696 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 697 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
697 function->set_extension(empty_extension.get()); 698 function->set_extension(empty_extension.get());
698 699
699 function->InitFinalRedirectURLPrefixesForTest("abcdefghij"); 700 function->InitFinalRedirectURLPrefixesForTest("abcdefghij");
700 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( 701 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult(
701 function, 702 function.get(),
702 "[{\"interactive\": true," 703 "[{\"interactive\": true,"
703 "\"url\": \"https://abcdefghij.chromiumapp.org/callback#test\"}]", 704 "\"url\": \"https://abcdefghij.chromiumapp.org/callback#test\"}]",
704 browser())); 705 browser()));
705 706
706 std::string url; 707 std::string url;
707 EXPECT_TRUE(value->GetAsString(&url)); 708 EXPECT_TRUE(value->GetAsString(&url));
708 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"), 709 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"),
709 url); 710 url);
710 } 711 }
711 712
712 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest, 713 IN_PROC_BROWSER_TEST_F(ExperimentalLaunchWebAuthFlowFunctionTest,
713 InteractiveSecondNavigationSuccess) { 714 InteractiveSecondNavigationSuccess) {
714 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function( 715 scoped_refptr<ExperimentalIdentityLaunchWebAuthFlowFunction> function(
715 new ExperimentalIdentityLaunchWebAuthFlowFunction()); 716 new ExperimentalIdentityLaunchWebAuthFlowFunction());
716 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); 717 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension());
717 function->set_extension(empty_extension.get()); 718 function->set_extension(empty_extension.get());
718 719
719 function->InitFinalRedirectURLPrefixesForTest("abcdefghij"); 720 function->InitFinalRedirectURLPrefixesForTest("abcdefghij");
720 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( 721 scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult(
721 function, 722 function.get(),
722 "[{\"interactive\": true," 723 "[{\"interactive\": true,"
723 "\"url\": \"data:text/html,<script>window.location.replace('" 724 "\"url\": \"data:text/html,<script>window.location.replace('"
724 "https://abcdefghij.chromiumapp.org/callback#test')</script>\"}]", 725 "https://abcdefghij.chromiumapp.org/callback#test')</script>\"}]",
725 browser())); 726 browser()));
726 727
727 std::string url; 728 std::string url;
728 EXPECT_TRUE(value->GetAsString(&url)); 729 EXPECT_TRUE(value->GetAsString(&url));
729 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"), 730 EXPECT_EQ(std::string("https://abcdefghij.chromiumapp.org/callback#test"),
730 url); 731 url);
731 } 732 }
732 733
733 } // namespace extensions 734 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698