diff options
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.cc | 89 |
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( |