summaryrefslogtreecommitdiff
path: root/chromium/components/signin/core/browser/signin_header_helper_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/signin/core/browser/signin_header_helper_unittest.cc')
-rw-r--r--chromium/components/signin/core/browser/signin_header_helper_unittest.cc89
1 files changed, 67 insertions, 22 deletions
diff --git a/chromium/components/signin/core/browser/signin_header_helper_unittest.cc b/chromium/components/signin/core/browser/signin_header_helper_unittest.cc
index 870bd70ce0b..c64b21ed68e 100644
--- a/chromium/components/signin/core/browser/signin_header_helper_unittest.cc
+++ b/chromium/components/signin/core/browser/signin_header_helper_unittest.cc
@@ -26,6 +26,10 @@
#include "components/signin/core/browser/dice_header_helper.h"
#endif
+namespace {
+constexpr char kTestDeviceId[] = "DeviceID";
+}
+
namespace signin {
class SigninHeaderHelperTest : public testing::Test {
@@ -58,12 +62,14 @@ class SigninHeaderHelperTest : public testing::Test {
std::unique_ptr<net::URLRequest> url_request =
url_request_context_.CreateRequest(url, net::DEFAULT_PRIORITY, nullptr,
TRAFFIC_ANNOTATION_FOR_TESTS);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), GURL(), account_id, account_consistency_,
+ &request_adapter, GURL(), account_id, account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
- AppendOrRemoveDiceRequestHeader(
- url_request.get(), GURL(), account_id, sync_enabled_,
- sync_has_auth_error_, account_consistency_, cookie_settings_.get());
+ AppendOrRemoveDiceRequestHeader(&request_adapter, GURL(), account_id,
+ sync_enabled_, sync_has_auth_error_,
+ account_consistency_,
+ cookie_settings_.get(), device_id_);
return url_request;
}
@@ -109,6 +115,7 @@ class SigninHeaderHelperTest : public testing::Test {
bool sync_enabled_ = false;
bool sync_has_auth_error_ = false;
+ std::string device_id_ = kTestDeviceId;
AccountConsistencyMethod account_consistency_ =
AccountConsistencyMethod::kDisabled;
@@ -182,8 +189,9 @@ TEST_F(SigninHeaderHelperTest, TestMirrorRequestGoogleComNoProfileConsistency) {
url_request_context_.CreateRequest(GURL("https://www.google.com"),
net::DEFAULT_PRIORITY, nullptr,
TRAFFIC_ANNOTATION_FOR_TESTS);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), GURL(), "0123456789", account_consistency_,
+ &request_adapter, GURL(), "0123456789", account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
CheckAccountConsistencyHeaderRequest(url_request.get(),
kChromeConnectedHeader, "");
@@ -196,8 +204,9 @@ TEST_F(SigninHeaderHelperTest, TestMirrorRequestGoogleComProfileConsistency) {
url_request_context_.CreateRequest(GURL("https://www.google.com"),
net::DEFAULT_PRIORITY, nullptr,
TRAFFIC_ANNOTATION_FOR_TESTS);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), GURL(), "0123456789", account_consistency_,
+ &request_adapter, GURL(), "0123456789", account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
CheckAccountConsistencyHeaderRequest(
url_request.get(), kChromeConnectedHeader,
@@ -233,17 +242,18 @@ TEST_F(SigninHeaderHelperTest, TestDiceRequest) {
CheckDiceHeaderRequest(
GURL("https://accounts.google.com"), "0123456789",
"mode=0,enable_account_consistency=false",
- base::StringPrintf("version=%s,client_id=%s,signin_mode=all_accounts,"
- "signout_mode=show_confirmation",
- kDiceProtocolVersion, client_id.c_str()));
+ base::StringPrintf(
+ "version=%s,client_id=%s,device_id=DeviceID,signin_mode=all_accounts,"
+ "signout_mode=show_confirmation",
+ kDiceProtocolVersion, client_id.c_str()));
// Sync enabled: check that the Dice header has the Sync account ID and that
// the mirror header is not modified.
sync_enabled_ = true;
CheckDiceHeaderRequest(
GURL("https://accounts.google.com"), "0123456789",
"mode=0,enable_account_consistency=false",
- base::StringPrintf("version=%s,client_id=%s,sync_account_id=0123456789,"
- "signin_mode=all_accounts,"
+ base::StringPrintf("version=%s,client_id=%s,device_id=DeviceID,"
+ "sync_account_id=0123456789,signin_mode=all_accounts,"
"signout_mode=show_confirmation",
kDiceProtocolVersion, client_id.c_str()));
sync_enabled_ = false;
@@ -252,6 +262,21 @@ TEST_F(SigninHeaderHelperTest, TestDiceRequest) {
CheckDiceHeaderRequest(GURL("https://www.google.com"), "0123456789", "", "");
}
+// When cookies are blocked, only the Dice header is sent.
+TEST_F(SigninHeaderHelperTest, DiceCookiesBlocked) {
+ account_consistency_ = AccountConsistencyMethod::kDice;
+ cookie_settings_->SetDefaultCookieSetting(CONTENT_SETTING_BLOCK);
+
+ std::string client_id = GaiaUrls::GetInstance()->oauth2_chrome_client_id();
+ ASSERT_FALSE(client_id.empty());
+ CheckDiceHeaderRequest(
+ GURL("https://accounts.google.com"), "0123456789", "",
+ base::StringPrintf(
+ "version=%s,client_id=%s,device_id=DeviceID,signin_mode=all_accounts,"
+ "signout_mode=show_confirmation",
+ kDiceProtocolVersion, client_id.c_str()));
+}
+
// Tests that no Dice request is returned when Dice is not enabled.
TEST_F(SigninHeaderHelperTest, TestNoDiceRequestWhenDisabled) {
account_consistency_ = AccountConsistencyMethod::kMirror;
@@ -259,6 +284,21 @@ TEST_F(SigninHeaderHelperTest, TestNoDiceRequestWhenDisabled) {
"mode=0,enable_account_consistency=true", "");
}
+TEST_F(SigninHeaderHelperTest, TestDiceEmptyDeviceID) {
+ account_consistency_ = AccountConsistencyMethod::kDiceMigration;
+ std::string client_id = GaiaUrls::GetInstance()->oauth2_chrome_client_id();
+ ASSERT_FALSE(client_id.empty());
+
+ device_id_.clear();
+
+ CheckDiceHeaderRequest(
+ GURL("https://accounts.google.com"), "0123456789",
+ "mode=0,enable_account_consistency=false",
+ base::StringPrintf("version=%s,client_id=%s,signin_mode=all_accounts,"
+ "signout_mode=no_confirmation",
+ kDiceProtocolVersion, client_id.c_str()));
+}
+
// Tests that the signout confirmation is requested iff the Dice migration is
// complete.
TEST_F(SigninHeaderHelperTest, TestDiceMigration) {
@@ -270,18 +310,20 @@ TEST_F(SigninHeaderHelperTest, TestDiceMigration) {
CheckDiceHeaderRequest(
GURL("https://accounts.google.com"), "0123456789",
"mode=0,enable_account_consistency=false",
- base::StringPrintf("version=%s,client_id=%s,signin_mode=all_accounts,"
- "signout_mode=no_confirmation",
- kDiceProtocolVersion, client_id.c_str()));
+ base::StringPrintf(
+ "version=%s,client_id=%s,device_id=DeviceID,signin_mode=all_accounts,"
+ "signout_mode=no_confirmation",
+ kDiceProtocolVersion, client_id.c_str()));
// Signout confirmation after the migration is complete.
account_consistency_ = AccountConsistencyMethod::kDice;
CheckDiceHeaderRequest(
GURL("https://accounts.google.com"), "0123456789",
"mode=0,enable_account_consistency=false",
- base::StringPrintf("version=%s,client_id=%s,signin_mode=all_accounts,"
- "signout_mode=show_confirmation",
- kDiceProtocolVersion, client_id.c_str()));
+ base::StringPrintf(
+ "version=%s,client_id=%s,device_id=DeviceID,signin_mode=all_accounts,"
+ "signout_mode=show_confirmation",
+ kDiceProtocolVersion, client_id.c_str()));
}
// Tests that a Dice request is returned only when there is an authentication
@@ -309,8 +351,8 @@ TEST_F(SigninHeaderHelperTest, TestDiceFixAuthError) {
CheckDiceHeaderRequest(
GURL("https://accounts.google.com"), "0123456789",
"mode=0,enable_account_consistency=false",
- base::StringPrintf("version=%s,client_id=%s,sync_account_id=0123456789,"
- "signin_mode=sync_account,"
+ base::StringPrintf("version=%s,client_id=%s,device_id=DeviceID,"
+ "sync_account_id=0123456789,signin_mode=sync_account,"
"signout_mode=no_confirmation",
kDiceProtocolVersion, client_id.c_str()));
}
@@ -453,8 +495,9 @@ TEST_F(SigninHeaderHelperTest, TestMirrorHeaderEligibleRedirectURL) {
std::unique_ptr<net::URLRequest> url_request =
url_request_context_.CreateRequest(url, net::DEFAULT_PRIORITY, nullptr,
TRAFFIC_ANNOTATION_FOR_TESTS);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), redirect_url, account_id, account_consistency_,
+ &request_adapter, redirect_url, account_id, account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
EXPECT_TRUE(
url_request->extra_request_headers().HasHeader(kChromeConnectedHeader));
@@ -470,8 +513,9 @@ TEST_F(SigninHeaderHelperTest, TestMirrorHeaderNonEligibleRedirectURL) {
std::unique_ptr<net::URLRequest> url_request =
url_request_context_.CreateRequest(url, net::DEFAULT_PRIORITY, nullptr,
TRAFFIC_ANNOTATION_FOR_TESTS);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), redirect_url, account_id, account_consistency_,
+ &request_adapter, redirect_url, account_id, account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
EXPECT_FALSE(
url_request->extra_request_headers().HasHeader(kChromeConnectedHeader));
@@ -490,8 +534,9 @@ TEST_F(SigninHeaderHelperTest, TestIgnoreMirrorHeaderNonEligibleURLs) {
TRAFFIC_ANNOTATION_FOR_TESTS);
url_request->SetExtraRequestHeaderByName(kChromeConnectedHeader, fake_header,
false);
+ RequestAdapter request_adapter(url_request.get());
AppendOrRemoveMirrorRequestHeader(
- url_request.get(), redirect_url, account_id, account_consistency_,
+ &request_adapter, redirect_url, account_id, account_consistency_,
cookie_settings_.get(), PROFILE_MODE_DEFAULT);
std::string header;
EXPECT_TRUE(url_request->extra_request_headers().GetHeader(