| Index: chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc
|
| diff --git a/chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc b/chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc
|
| index 8ddfdace5be0d5349d6e1681d628c21592d0cd2d..e499498ff375b88ac8310911b9dae83e3cac2bac 100644
|
| --- a/chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc
|
| +++ b/chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc
|
| @@ -28,10 +28,29 @@
|
| #include "net/url_request/test_url_fetcher_factory.h"
|
| #include "net/url_request/url_fetcher_delegate.h"
|
| #include "net/url_request/url_request_test_util.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace chromeos {
|
|
|
| +namespace {
|
| +
|
| +class MockOAuth2TokenServiceObserver : public OAuth2TokenService::Observer {
|
| + public:
|
| + MockOAuth2TokenServiceObserver();
|
| + ~MockOAuth2TokenServiceObserver() override;
|
| +
|
| + MOCK_METHOD1(OnRefreshTokenAvailable, void(const std::string&));
|
| +};
|
| +
|
| +MockOAuth2TokenServiceObserver::MockOAuth2TokenServiceObserver() {
|
| +}
|
| +
|
| +MockOAuth2TokenServiceObserver::~MockOAuth2TokenServiceObserver() {
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| static const int kOAuthTokenServiceUrlFetcherId = 0;
|
| static const int kValidatorUrlFetcherId = gaia::GaiaOAuthClient::kUrlFetcherId;
|
|
|
| @@ -96,6 +115,7 @@ class DeviceOAuth2TokenServiceTest : public testing::Test {
|
| }
|
|
|
| void TearDown() override {
|
| + oauth2_service_.reset();
|
| CrosSettings::Shutdown();
|
| TestingBrowserProcess::GetGlobal()->SetBrowserPolicyConnector(NULL);
|
| content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| @@ -430,4 +450,25 @@ TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Retry) {
|
| AssertConsumerTokensAndErrors(1, 1);
|
| }
|
|
|
| +TEST_F(DeviceOAuth2TokenServiceTest, DoNotAnnounceTokenWithoutAccountID) {
|
| + CreateService();
|
| +
|
| + testing::StrictMock<MockOAuth2TokenServiceObserver> observer;
|
| + oauth2_service_->AddObserver(&observer);
|
| +
|
| + // Make a token available during enrollment. Verify that the token is not
|
| + // announced yet.
|
| + oauth2_service_->SetAndSaveRefreshToken(
|
| + "test-token", DeviceOAuth2TokenService::StatusCallback());
|
| + testing::Mock::VerifyAndClearExpectations(&observer);
|
| +
|
| + // Also make the robot account ID available. Verify that the token is
|
| + // announced now.
|
| + EXPECT_CALL(observer, OnRefreshTokenAvailable("robot@example.com"));
|
| + SetRobotAccountId("robot@example.com");
|
| + testing::Mock::VerifyAndClearExpectations(&observer);
|
| +
|
| + oauth2_service_->RemoveObserver(&observer);
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|