| Index: chrome/common/net/gaia/oauth_request_signer_unittest.cc
|
| diff --git a/chrome/common/net/gaia/oauth_request_signer_unittest.cc b/chrome/common/net/gaia/oauth_request_signer_unittest.cc
|
| deleted file mode 100644
|
| index 4b4077eac23943eb7640711befea240b25e5f849..0000000000000000000000000000000000000000
|
| --- a/chrome/common/net/gaia/oauth_request_signer_unittest.cc
|
| +++ /dev/null
|
| @@ -1,323 +0,0 @@
|
| -// Copyright (c) 2011 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.
|
| -
|
| -#include "chrome/common/net/gaia/oauth_request_signer.h"
|
| -
|
| -#include "googleurl/src/gurl.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -// This value is used to seed the PRNG at the beginning of a sequence of
|
| -// operations to produce a repeatable sequence.
|
| -#define RANDOM_SEED (0x69E3C47D)
|
| -
|
| -TEST(OAuthRequestSignerTest, Encode) {
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
| - "abcdefghijklmnopqrstuvwxyz"
|
| - "0123456789"
|
| - "-._~"),
|
| - "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
| - "abcdefghijklmnopqrstuvwxyz"
|
| - "0123456789"
|
| - "-._~");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode(
|
| - "https://accounts.google.com/OAuthLogin"),
|
| - "https%3A%2F%2Faccounts.google.com%2FOAuthLogin");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("%"), "%25");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("%25"), "%2525");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode(
|
| - "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed "
|
| - "do eiusmod tempor incididunt ut labore et dolore magna "
|
| - "aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
|
| - "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis "
|
| - "aute irure dolor in reprehenderit in voluptate velit esse "
|
| - "cillum dolore eu fugiat nulla pariatur. Excepteur sint "
|
| - "occaecat cupidatat non proident, sunt in culpa qui officia "
|
| - "deserunt mollit anim id est laborum."),
|
| - "Lorem%20ipsum%20dolor%20sit%20amet%2C%20consectetur%20"
|
| - "adipisicing%20elit%2C%20sed%20do%20eiusmod%20tempor%20"
|
| - "incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20"
|
| - "enim%20ad%20minim%20veniam%2C%20quis%20nostrud%20exercitation%20"
|
| - "ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20"
|
| - "consequat.%20Duis%20aute%20irure%20dolor%20in%20reprehenderit%20"
|
| - "in%20voluptate%20velit%20esse%20cillum%20dolore%20eu%20fugiat%20"
|
| - "nulla%20pariatur.%20Excepteur%20sint%20occaecat%20cupidatat%20"
|
| - "non%20proident%2C%20sunt%20in%20culpa%20qui%20officia%20"
|
| - "deserunt%20mollit%20anim%20id%20est%20laborum.");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("!5}&QF~0R-Ecy[?2Cig>6g=;hH!\\Ju4K%UK;"),
|
| - "%215%7D%26QF~0R-Ecy%5B%3F2Cig%3E6g%3D%3BhH%21%5CJu4K%25UK%3B");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("1UgHf(r)SkMRS`fRZ/8PsTcXT0:\\<9I=6{|:"),
|
| - "1UgHf%28r%29SkMRS%60fRZ%2F8PsTcXT0%3A%5C%3C9I%3D6%7B%7C%3A");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("|<XIy1?o`r\"RuGSX#!:MeP&RLZQM@:\\';2X"),
|
| - "%7C%3CXIy1%3Fo%60r%22RuGSX%23%21%3AMeP%26RLZQM%40%3A%5C%27%3B2X");
|
| - ASSERT_EQ(OAuthRequestSigner::Encode("#a@A>ZtcQ/yb.~^Q_]daRT?ffK>@A:afWuZL"),
|
| - "%23a%40A%3EZtcQ%2Fyb.~%5EQ_%5DdaRT%3FffK%3E%40A%3AafWuZL");
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, DecodeEncoded) {
|
| - srand(RANDOM_SEED);
|
| - static const int kIterations = 500;
|
| - static const int kLengthLimit = 500;
|
| - for (int iteration = 0; iteration < kIterations; ++iteration) {
|
| - std::string text;
|
| - int length = rand() % kLengthLimit;
|
| - for (int position = 0; position < length; ++position) {
|
| - text += static_cast<char>(rand() % 256);
|
| - }
|
| - std::string encoded = OAuthRequestSigner::Encode(text);
|
| - std::string decoded;
|
| - ASSERT_TRUE(OAuthRequestSigner::Decode(encoded, &decoded));
|
| - ASSERT_EQ(decoded, text);
|
| - }
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, SignGet1) {
|
| - GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
|
| - OAuthRequestSigner::Parameters parameters;
|
| - parameters["scope"] = "https://accounts.google.com/OAuthLogin";
|
| - parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
|
| - parameters["xaouth_display_name"] = "Chromium";
|
| - parameters["oauth_timestamp"] = "1308152953";
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::SignURL(
|
| - request_url,
|
| - parameters,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::GET_METHOD,
|
| - "johndoe", // oauth_consumer_key
|
| - "53cR3t", // consumer secret
|
| - "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token
|
| - "c5e0531ff55dfbb4054e", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken"
|
| - "?oauth_consumer_key=johndoe"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&oauth_signature=PFqDTaiyey1UObcvOyI4Ng2HXW0%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308152953"
|
| - "&oauth_token=4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v"
|
| - "&oauth_version=1.0"
|
| - "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
|
| - "&xaouth_display_name=Chromium",
|
| - signed_text);
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, SignGet2) {
|
| - GURL request_url("https://accounts.google.com/OAuthGetAccessToken");
|
| - OAuthRequestSigner::Parameters parameters;
|
| - parameters["oauth_timestamp"] = "1308147831";
|
| - parameters["oauth_nonce"] = "4d4hZW9DygWQujP2tz06UN";
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::SignURL(
|
| - request_url,
|
| - parameters,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::GET_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token
|
| - "", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ(signed_text,
|
| - "https://accounts.google.com/OAuthGetAccessToken"
|
| - "?oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=4d4hZW9DygWQujP2tz06UN"
|
| - "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308147831"
|
| - "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
|
| - "&oauth_version=1.0");
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, ParseAndSignGet1) {
|
| - GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"
|
| - "?scope=https://accounts.google.com/OAuthLogin"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&xaouth_display_name=Chromium"
|
| - "&oauth_timestamp=1308152953");
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::ParseAndSign(
|
| - request_url,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::GET_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token
|
| - "", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ("https://www.google.com/accounts/o8/GetOAuthToken"
|
| - "?oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&oauth_signature=PH7KP6cP%2BzZ1SJ6WGqBgXwQP9Mc%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308152953"
|
| - "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
|
| - "&oauth_version=1.0"
|
| - "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
|
| - "&xaouth_display_name=Chromium",
|
| - signed_text);
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, ParseAndSignGet2) {
|
| - GURL request_url("https://accounts.google.com/OAuthGetAccessToken"
|
| - "?oauth_timestamp=1308147831"
|
| - "&oauth_nonce=4d4hZW9DygWQujP2tz06UN");
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::ParseAndSign(
|
| - request_url,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::GET_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token
|
| - "", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ(signed_text,
|
| - "https://accounts.google.com/OAuthGetAccessToken"
|
| - "?oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=4d4hZW9DygWQujP2tz06UN"
|
| - "&oauth_signature=YiJv%2BEOWsvCDCi13%2FhQBFrr0J7c%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308147831"
|
| - "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
|
| - "&oauth_version=1.0");
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, SignPost1) {
|
| - GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
|
| - OAuthRequestSigner::Parameters parameters;
|
| - parameters["scope"] = "https://accounts.google.com/OAuthLogin";
|
| - parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
|
| - parameters["xaouth_display_name"] = "Chromium";
|
| - parameters["oauth_timestamp"] = "1308152953";
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::SignURL(
|
| - request_url,
|
| - parameters,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::POST_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token
|
| - "b7120598d47594bd3522", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ("oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308152953"
|
| - "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d"
|
| - "&oauth_version=1.0"
|
| - "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
|
| - "&xaouth_display_name=Chromium",
|
| - signed_text);
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, SignPost2) {
|
| - GURL request_url("https://accounts.google.com/OAuthGetAccessToken");
|
| - OAuthRequestSigner::Parameters parameters;
|
| - parameters["oauth_timestamp"] = "1234567890";
|
| - parameters["oauth_nonce"] = "17171717171717171";
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::SignURL(
|
| - request_url,
|
| - parameters,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::POST_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token
|
| - "", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ(signed_text,
|
| - "oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=17171717171717171"
|
| - "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1234567890"
|
| - "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
|
| - "&oauth_version=1.0");
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, ParseAndSignPost1) {
|
| - GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken"
|
| - "?scope=https://accounts.google.com/OAuthLogin"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&xaouth_display_name=Chromium"
|
| - "&oauth_timestamp=1308152953");
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::ParseAndSign(
|
| - request_url,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::POST_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/X8x0r7bHif_VNCLjUMutxGkzo13d", // oauth_token
|
| - "b7120598d47594bd3522", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ("oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=2oiE_aHdk5qRTz0L9C8Lq0g"
|
| - "&oauth_signature=vVlfv6dnV2%2Fx7TozS0Gf83zS2%2BQ%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1308152953"
|
| - "&oauth_token=4%2FX8x0r7bHif_VNCLjUMutxGkzo13d"
|
| - "&oauth_version=1.0"
|
| - "&scope=https%3A%2F%2Faccounts.google.com%2FOAuthLogin"
|
| - "&xaouth_display_name=Chromium",
|
| - signed_text);
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, ParseAndSignPost2) {
|
| - GURL request_url("https://accounts.google.com/OAuthGetAccessToken"
|
| - "?oauth_timestamp=1234567890"
|
| - "&oauth_nonce=17171717171717171");
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::ParseAndSign(
|
| - request_url,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::POST_METHOD,
|
| - "anonymous", // oauth_consumer_key
|
| - "anonymous", // consumer secret
|
| - "4/CcC-hgdj1TNnWaX8NTQ76YDXCBEK", // oauth_token
|
| - "", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ(signed_text,
|
| - "oauth_consumer_key=anonymous"
|
| - "&oauth_nonce=17171717171717171"
|
| - "&oauth_signature=tPX2XqKQICWzopZ80CFGX%2F53DLo%3D"
|
| - "&oauth_signature_method=HMAC-SHA1"
|
| - "&oauth_timestamp=1234567890"
|
| - "&oauth_token=4%2FCcC-hgdj1TNnWaX8NTQ76YDXCBEK"
|
| - "&oauth_version=1.0");
|
| -}
|
| -
|
| -TEST(OAuthRequestSignerTest, SignAuthHeader) {
|
| - GURL request_url("https://www.google.com/accounts/o8/GetOAuthToken");
|
| - OAuthRequestSigner::Parameters parameters;
|
| - parameters["scope"] = "https://accounts.google.com/OAuthLogin";
|
| - parameters["oauth_nonce"] = "2oiE_aHdk5qRTz0L9C8Lq0g";
|
| - parameters["xaouth_display_name"] = "Chromium";
|
| - parameters["oauth_timestamp"] = "1308152953";
|
| - std::string signed_text;
|
| - ASSERT_TRUE(OAuthRequestSigner::SignAuthHeader(
|
| - request_url,
|
| - parameters,
|
| - OAuthRequestSigner::HMAC_SHA1_SIGNATURE,
|
| - OAuthRequestSigner::GET_METHOD,
|
| - "johndoe", // oauth_consumer_key
|
| - "53cR3t", // consumer secret
|
| - "4/VGY0MsQadcmO8VnCv9gnhoEooq1v", // oauth_token
|
| - "c5e0531ff55dfbb4054e", // token secret
|
| - &signed_text));
|
| - ASSERT_EQ("OAuth "
|
| - "oauth_consumer_key=\"johndoe\", "
|
| - "oauth_nonce=\"2oiE_aHdk5qRTz0L9C8Lq0g\", "
|
| - "oauth_signature=\"PFqDTaiyey1UObcvOyI4Ng2HXW0%3D\", "
|
| - "oauth_signature_method=\"HMAC-SHA1\", "
|
| - "oauth_timestamp=\"1308152953\", "
|
| - "oauth_token=\"4%2FVGY0MsQadcmO8VnCv9gnhoEooq1v\", "
|
| - "oauth_version=\"1.0\", "
|
| - "scope=\"https%3A%2F%2Faccounts.google.com%2FOAuthLogin\", "
|
| - "xaouth_display_name=\"Chromium\"",
|
| - signed_text);
|
| -}
|
|
|