| Index: chrome/browser/policy/device_token_fetcher_unittest.cc
|
| diff --git a/chrome/browser/policy/device_token_fetcher_unittest.cc b/chrome/browser/policy/device_token_fetcher_unittest.cc
|
| index 7e2a00e5b1ae5ccdf1b43eb903d2f02a2a4d1ac4..e8c2c9252cc7209173065643c7cf85a0d6e60a97 100644
|
| --- a/chrome/browser/policy/device_token_fetcher_unittest.cc
|
| +++ b/chrome/browser/policy/device_token_fetcher_unittest.cc
|
| @@ -13,6 +13,8 @@
|
| #include "chrome/browser/policy/mock_device_management_backend.h"
|
| #include "chrome/common/net/gaia/gaia_constants.h"
|
| #include "chrome/common/notification_service.h"
|
| +#include "chrome/test/testing_device_token_fetcher.h"
|
| +#include "chrome/test/testing_profile.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -48,23 +50,24 @@ class DeviceTokenFetcherTest : public testing::Test {
|
|
|
| virtual void TearDown() {
|
| backend_.reset();
|
| - token_service_.reset();
|
| + profile_.reset();
|
| loop_.RunAllPending();
|
| }
|
|
|
| - void SimulateSuccessfulLoginAndRunPending() {
|
| + void SimulateSuccessfulLoginAndRunPending(const std::string& username) {
|
| loop_.RunAllPending();
|
| - token_service_->IssueAuthTokenForTest(
|
| + profile_->GetTokenService()->IssueAuthTokenForTest(
|
| GaiaConstants::kDeviceManagementService, kTestToken);
|
| + fetcher_->SimulateLogin(username);
|
| loop_.RunAllPending();
|
| }
|
|
|
| - DeviceTokenFetcher* NewTestFetcher(const FilePath& token_dir) {
|
| - token_service_.reset(new TokenService);
|
| + TestingDeviceTokenFetcher* NewTestFetcher(const FilePath& token_dir) {
|
| + profile_.reset(new TestingProfile());
|
| backend_.reset(new MockDeviceManagementBackend());
|
| - return new DeviceTokenFetcher(
|
| + return new TestingDeviceTokenFetcher(
|
| backend_.get(),
|
| - token_service_.get(),
|
| + profile_.get(),
|
| token_dir.Append(FILE_PATH_LITERAL("test-token-file.txt")));
|
| }
|
|
|
| @@ -78,10 +81,10 @@ class DeviceTokenFetcherTest : public testing::Test {
|
| }
|
|
|
| MessageLoop loop_;
|
| - scoped_ptr<TokenService> token_service_;
|
| scoped_ptr<MockDeviceManagementBackend> backend_;
|
| ScopedTempDir temp_user_data_dir_;
|
| - scoped_refptr<DeviceTokenFetcher> fetcher_;
|
| + scoped_refptr<TestingDeviceTokenFetcher> fetcher_;
|
| + scoped_ptr<Profile> profile_;
|
|
|
| private:
|
| BrowserThread ui_thread_;
|
| @@ -92,14 +95,14 @@ TEST_F(DeviceTokenFetcherTest, IsPending) {
|
| ASSERT_TRUE(fetcher_->IsTokenPending());
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| }
|
|
|
| TEST_F(DeviceTokenFetcherTest, StoreAndLoad) {
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| std::string device_token = fetcher_->GetDeviceToken();
|
| std::string device_id = fetcher_->GetDeviceID();
|
| @@ -108,7 +111,8 @@ TEST_F(DeviceTokenFetcherTest, StoreAndLoad) {
|
| FilePath token_path;
|
| GetDeviceTokenPath(fetcher_, &token_path);
|
| scoped_refptr<DeviceTokenFetcher> fetcher2(
|
| - new DeviceTokenFetcher(backend_.get(), token_service_.get(), token_path));
|
| + new TestingDeviceTokenFetcher(
|
| + backend_.get(), profile_.get(), token_path));
|
| fetcher2->StartFetching();
|
| loop_.RunAllPending();
|
| ASSERT_EQ(device_id, fetcher2->GetDeviceID());
|
| @@ -118,7 +122,7 @@ TEST_F(DeviceTokenFetcherTest, StoreAndLoad) {
|
| TEST_F(DeviceTokenFetcherTest, SimpleFetchSingleLogin) {
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| ASSERT_TRUE(fetcher_->IsTokenValid());
|
| const std::string token(fetcher_->GetDeviceToken());
|
| @@ -128,12 +132,12 @@ TEST_F(DeviceTokenFetcherTest, SimpleFetchSingleLogin) {
|
| TEST_F(DeviceTokenFetcherTest, SimpleFetchDoubleLogin) {
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| const std::string token(fetcher_->GetDeviceToken());
|
| EXPECT_NE("", token);
|
|
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| const std::string token2(fetcher_->GetDeviceToken());
|
| EXPECT_NE("", token2);
|
| @@ -149,7 +153,7 @@ TEST_F(DeviceTokenFetcherTest, FetchBetweenBrowserLaunchAndNotify) {
|
| EXPECT_CALL(observer, OnTokenError()).Times(0);
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendSucceedRegister());
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| const std::string token(fetcher_->GetDeviceToken());
|
| EXPECT_NE("", token);
|
| @@ -179,7 +183,7 @@ TEST_F(DeviceTokenFetcherTest, FailedServerRequest) {
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailRegister(
|
| DeviceManagementBackend::kErrorRequestFailed));
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| const std::string token(fetcher_->GetDeviceToken());
|
| EXPECT_EQ("", token);
|
| @@ -193,11 +197,32 @@ TEST_F(DeviceTokenFetcherTest, UnmanagedDevice) {
|
| EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).WillOnce(
|
| MockDeviceManagementBackendFailRegister(
|
| DeviceManagementBackend::kErrorServiceManagementNotSupported));
|
| - SimulateSuccessfulLoginAndRunPending();
|
| + SimulateSuccessfulLoginAndRunPending(kTestManagedDomainUsername);
|
| ASSERT_FALSE(fetcher_->IsTokenPending());
|
| ASSERT_EQ("", fetcher_->GetDeviceToken());
|
| ASSERT_EQ("", device_id(fetcher_));
|
| ASSERT_FALSE(file_util::PathExists(token_path));
|
| }
|
|
|
| +
|
| +TEST_F(DeviceTokenFetcherTest, FetchBetweenTokenNotifyAndLoginNotify) {
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(0);
|
| +
|
| + // Simulate an available token, but without available user name.
|
| + loop_.RunAllPending();
|
| + profile_->GetTokenService()->IssueAuthTokenForTest(
|
| + GaiaConstants::kDeviceManagementService, kTestToken);
|
| + loop_.RunAllPending();
|
| +
|
| + ASSERT_TRUE(fetcher_->IsTokenPending());
|
| + ASSERT_FALSE(fetcher_->IsTokenValid());
|
| +}
|
| +
|
| +TEST_F(DeviceTokenFetcherTest, FetchWithNonManagedUsername) {
|
| + EXPECT_CALL(*backend_, ProcessRegisterRequest(_, _, _, _)).Times(0);
|
| + SimulateSuccessfulLoginAndRunPending("___@gmail.com");
|
| + ASSERT_FALSE(fetcher_->IsTokenPending());
|
| + ASSERT_FALSE(fetcher_->IsTokenValid());
|
| +}
|
| +
|
| } // namespace policy
|
|
|