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

Unified Diff: chrome/common/net/gaia/oauth2_mint_token_flow_unittest.cc

Issue 10928017: Moving google_apis and GaiaClient to src/google_apis. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/net/gaia/oauth2_mint_token_flow_unittest.cc
diff --git a/chrome/common/net/gaia/oauth2_mint_token_flow_unittest.cc b/chrome/common/net/gaia/oauth2_mint_token_flow_unittest.cc
deleted file mode 100644
index 4ccb00a0381adb84caecaca8411b9f2781614019..0000000000000000000000000000000000000000
--- a/chrome/common/net/gaia/oauth2_mint_token_flow_unittest.cc
+++ /dev/null
@@ -1,358 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// A complete set of unit tests for OAuth2MintTokenFlow.
-
-#include <string>
-#include <vector>
-
-#include "base/json/json_reader.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/values.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/common/net/gaia/google_service_auth_error.h"
-#include "chrome/common/net/gaia/oauth2_mint_token_flow.h"
-#include "net/url_request/test_url_fetcher_factory.h"
-#include "net/url_request/url_request_status.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using net::TestURLFetcher;
-using net::URLFetcher;
-using net::URLRequestStatus;
-using testing::_;
-using testing::StrictMock;
-
-namespace {
-
-static const char kValidTokenResponse[] =
- "{"
- " \"token\": \"at1\","
- " \"issueAdvice\": \"Auto\""
- "}";
-static const char kTokenResponseNoAccessToken[] =
- "{"
- " \"issueAdvice\": \"Auto\""
- "}";
-
-static const char kValidIssueAdviceResponse[] =
- "{"
- " \"issueAdvice\": \"consent\","
- " \"consent\": {"
- " \"oauthClient\": {"
- " \"name\": \"Test app\","
- " \"iconUri\": \"\","
- " \"developerEmail\": \"munjal@chromium.org\""
- " },"
- " \"scopes\": ["
- " {"
- " \"description\": \"Manage your calendars\","
- " \"detail\": \"\nView and manage your calendars\n\""
- " },"
- " {"
- " \"description\": \"Manage your documents\","
- " \"detail\": \"\nView your documents\nUpload new documents\n\""
- " }"
- " ]"
- " }"
- "}";
-
-static const char kIssueAdviceResponseNoDescription[] =
- "{"
- " \"issueAdvice\": \"consent\","
- " \"consent\": {"
- " \"oauthClient\": {"
- " \"name\": \"Test app\","
- " \"iconUri\": \"\","
- " \"developerEmail\": \"munjal@chromium.org\""
- " },"
- " \"scopes\": ["
- " {"
- " \"description\": \"Manage your calendars\","
- " \"detail\": \"\nView and manage your calendars\n\""
- " },"
- " {"
- " \"detail\": \"\nView your documents\nUpload new documents\n\""
- " }"
- " ]"
- " }"
- "}";
-
-static const char kIssueAdviceResponseNoDetail[] =
- "{"
- " \"issueAdvice\": \"consent\","
- " \"consent\": {"
- " \"oauthClient\": {"
- " \"name\": \"Test app\","
- " \"iconUri\": \"\","
- " \"developerEmail\": \"munjal@chromium.org\""
- " },"
- " \"scopes\": ["
- " {"
- " \"description\": \"Manage your calendars\","
- " \"detail\": \"\nView and manage your calendars\n\""
- " },"
- " {"
- " \"description\": \"Manage your documents\""
- " }"
- " ]"
- " }"
- "}";
-
-std::vector<std::string> CreateTestScopes() {
- std::vector<std::string> scopes;
- scopes.push_back("http://scope1");
- scopes.push_back("http://scope2");
- return scopes;
-}
-
-static IssueAdviceInfo CreateIssueAdvice() {
- IssueAdviceInfo ia;
- IssueAdviceInfoEntry e1;
- e1.description = ASCIIToUTF16("Manage your calendars");
- e1.details.push_back(ASCIIToUTF16("View and manage your calendars"));
- ia.push_back(e1);
- IssueAdviceInfoEntry e2;
- e2.description = ASCIIToUTF16("Manage your documents");
- e2.details.push_back(ASCIIToUTF16("View your documents"));
- e2.details.push_back(ASCIIToUTF16("Upload new documents"));
- ia.push_back(e2);
- return ia;
-}
-
-class MockDelegate : public OAuth2MintTokenFlow::Delegate {
- public:
- MockDelegate() {}
- ~MockDelegate() {}
-
- MOCK_METHOD1(OnMintTokenSuccess, void(const std::string& access_token));
- MOCK_METHOD1(OnIssueAdviceSuccess,
- void (const IssueAdviceInfo& issue_advice));
- MOCK_METHOD1(OnMintTokenFailure,
- void(const GoogleServiceAuthError& error));
-};
-
-class MockMintTokenFlow : public OAuth2MintTokenFlow {
- public:
- explicit MockMintTokenFlow(MockDelegate* delegate,
- const OAuth2MintTokenFlow::Parameters& parameters )
- : OAuth2MintTokenFlow(NULL, delegate, parameters) {}
- ~MockMintTokenFlow() {}
-
- MOCK_METHOD0(CreateAccessTokenFetcher, OAuth2AccessTokenFetcher*());
- MOCK_METHOD0(CreateMintTokenFetcher, OAuth2MintTokenFetcher*());
-};
-
-} // namespace
-
-class OAuth2MintTokenFlowTest : public testing::Test {
- public:
- OAuth2MintTokenFlowTest() {}
- virtual ~OAuth2MintTokenFlowTest() { }
-
- protected:
- void CreateFlow(OAuth2MintTokenFlow::Mode mode) {
- return CreateFlow(&delegate_, mode);
- }
-
- void CreateFlow(MockDelegate* delegate,
- OAuth2MintTokenFlow::Mode mode) {
- std::string rt = "refresh_token";
- std::string ext_id = "ext1";
- std::string client_id = "client1";
- std::vector<std::string> scopes(CreateTestScopes());
- flow_.reset(new MockMintTokenFlow(
- delegate,
- OAuth2MintTokenFlow::Parameters(rt, ext_id, client_id, scopes, mode)));
- }
-
- // Helper to parse the given string to DictionaryValue.
- static base::DictionaryValue* ParseJson(const std::string& str) {
- scoped_ptr<Value> value(base::JSONReader::Read(str));
- EXPECT_TRUE(value.get());
- EXPECT_EQ(Value::TYPE_DICTIONARY, value->GetType());
- return static_cast<base::DictionaryValue*>(value.release());
- }
-
- scoped_ptr<MockMintTokenFlow> flow_;
- StrictMock<MockDelegate> delegate_;
-};
-
-TEST_F(OAuth2MintTokenFlowTest, CreateApiCallBody) {
- { // Issue advice mode.
- CreateFlow(OAuth2MintTokenFlow::MODE_ISSUE_ADVICE);
- std::string body = flow_->CreateApiCallBody();
- std::string expected_body(
- "force=false"
- "&response_type=none"
- "&scope=http://scope1+http://scope2"
- "&client_id=client1"
- "&origin=ext1");
- EXPECT_EQ(expected_body, body);
- }
- { // Record grant mode.
- CreateFlow(OAuth2MintTokenFlow::MODE_RECORD_GRANT);
- std::string body = flow_->CreateApiCallBody();
- std::string expected_body(
- "force=true"
- "&response_type=none"
- "&scope=http://scope1+http://scope2"
- "&client_id=client1"
- "&origin=ext1");
- EXPECT_EQ(expected_body, body);
- }
- { // Mint token no force mode.
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- std::string body = flow_->CreateApiCallBody();
- std::string expected_body(
- "force=false"
- "&response_type=token"
- "&scope=http://scope1+http://scope2"
- "&client_id=client1"
- "&origin=ext1");
- EXPECT_EQ(expected_body, body);
- }
- { // Mint token force mode.
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_FORCE);
- std::string body = flow_->CreateApiCallBody();
- std::string expected_body(
- "force=true"
- "&response_type=token"
- "&scope=http://scope1+http://scope2"
- "&client_id=client1"
- "&origin=ext1");
- EXPECT_EQ(expected_body, body);
- }
-}
-
-TEST_F(OAuth2MintTokenFlowTest, ParseMintTokenResponse) {
- { // Access token missing.
- scoped_ptr<base::DictionaryValue> json(
- ParseJson(kTokenResponseNoAccessToken));
- std::string at;
- EXPECT_FALSE(OAuth2MintTokenFlow::ParseMintTokenResponse(json.get(), &at));
- EXPECT_TRUE(at.empty());
- }
- { // All good.
- scoped_ptr<base::DictionaryValue> json(ParseJson(kValidTokenResponse));
- std::string at;
- EXPECT_TRUE(OAuth2MintTokenFlow::ParseMintTokenResponse(json.get(), &at));
- EXPECT_EQ("at1", at);
- }
-}
-
-TEST_F(OAuth2MintTokenFlowTest, ParseIssueAdviceResponse) {
- { // Description missing.
- scoped_ptr<base::DictionaryValue> json(
- ParseJson(kIssueAdviceResponseNoDescription));
- IssueAdviceInfo ia;
- EXPECT_FALSE(OAuth2MintTokenFlow::ParseIssueAdviceResponse(
- json.get(), &ia));
- EXPECT_TRUE(ia.empty());
- }
- { // Detail missing.
- scoped_ptr<base::DictionaryValue> json(
- ParseJson(kIssueAdviceResponseNoDetail));
- IssueAdviceInfo ia;
- EXPECT_FALSE(OAuth2MintTokenFlow::ParseIssueAdviceResponse(
- json.get(), &ia));
- EXPECT_TRUE(ia.empty());
- }
- { // All good.
- scoped_ptr<base::DictionaryValue> json(
- ParseJson(kValidIssueAdviceResponse));
- IssueAdviceInfo ia;
- EXPECT_TRUE(OAuth2MintTokenFlow::ParseIssueAdviceResponse(
- json.get(), &ia));
- IssueAdviceInfo ia_expected(CreateIssueAdvice());
- EXPECT_EQ(ia_expected, ia);
- }
-}
-
-TEST_F(OAuth2MintTokenFlowTest, ProcessApiCallSuccess) {
- { // No body.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString("");
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Bad json.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString("foo");
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Valid json: no access token.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString(kTokenResponseNoAccessToken);
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Valid json: good token response.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString(kValidTokenResponse);
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenSuccess("at1"));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Valid json: no description.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString(kIssueAdviceResponseNoDescription);
- CreateFlow(OAuth2MintTokenFlow::MODE_ISSUE_ADVICE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Valid json: no detail.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString(kIssueAdviceResponseNoDetail);
- CreateFlow(OAuth2MintTokenFlow::MODE_ISSUE_ADVICE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
- { // Valid json: good issue advice response.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.SetResponseString(kValidIssueAdviceResponse);
- CreateFlow(OAuth2MintTokenFlow::MODE_ISSUE_ADVICE);
- IssueAdviceInfo ia(CreateIssueAdvice());
- EXPECT_CALL(delegate_, OnIssueAdviceSuccess(ia));
- flow_->ProcessApiCallSuccess(&url_fetcher);
- }
-}
-
-TEST_F(OAuth2MintTokenFlowTest, ProcessApiCallFailure) {
- { // Null delegate should work fine.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.set_status(URLRequestStatus(URLRequestStatus::FAILED, 101));
- CreateFlow(NULL, OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- flow_->ProcessApiCallFailure(&url_fetcher);
- }
-
- { // Non-null delegate.
- TestURLFetcher url_fetcher(1, GURL("http://www.google.com"), NULL);
- url_fetcher.set_status(URLRequestStatus(URLRequestStatus::FAILED, 101));
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(_));
- flow_->ProcessApiCallFailure(&url_fetcher);
- }
-}
-
-TEST_F(OAuth2MintTokenFlowTest, ProcessMintAccessTokenFailure) {
- { // Null delegate should work fine.
- GoogleServiceAuthError error(
- GoogleServiceAuthError::FromConnectionError(101));
- CreateFlow(NULL, OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- flow_->ProcessMintAccessTokenFailure(error);
- }
-
- { // Non-null delegate.
- GoogleServiceAuthError error(
- GoogleServiceAuthError::FromConnectionError(101));
- CreateFlow(OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE);
- EXPECT_CALL(delegate_, OnMintTokenFailure(error));
- flow_->ProcessMintAccessTokenFailure(error);
- }
-}
« no previous file with comments | « chrome/common/net/gaia/oauth2_mint_token_flow.cc ('k') | chrome/common/net/gaia/oauth2_revocation_consumer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698