| Index: chrome/browser/policy/policy_statistics_collector_unittest.cc
 | 
| diff --git a/chrome/browser/policy/policy_statistics_collector_unittest.cc b/chrome/browser/policy/policy_statistics_collector_unittest.cc
 | 
| deleted file mode 100644
 | 
| index dbffb0644c5f61d14c6d0e08452c352d72ae787b..0000000000000000000000000000000000000000
 | 
| --- a/chrome/browser/policy/policy_statistics_collector_unittest.cc
 | 
| +++ /dev/null
 | 
| @@ -1,191 +0,0 @@
 | 
| -// Copyright (c) 2012 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 <cstring>
 | 
| -#include <string>
 | 
| -
 | 
| -#include "base/callback.h"
 | 
| -#include "base/compiler_specific.h"
 | 
| -#include "base/memory/scoped_ptr.h"
 | 
| -#include "base/prefs/pref_registry_simple.h"
 | 
| -#include "base/prefs/testing_pref_service.h"
 | 
| -#include "base/test/test_simple_task_runner.h"
 | 
| -#include "base/values.h"
 | 
| -#include "chrome/browser/policy/mock_policy_service.h"
 | 
| -#include "chrome/browser/policy/policy_statistics_collector.h"
 | 
| -#include "chrome/browser/policy/test/policy_test_utils.h"
 | 
| -#include "components/policy/core/common/external_data_fetcher.h"
 | 
| -#include "components/policy/core/common/policy_map.h"
 | 
| -#include "components/policy/core/common/policy_pref_names.h"
 | 
| -#include "components/policy/core/common/policy_types.h"
 | 
| -#include "testing/gmock/include/gmock/gmock.h"
 | 
| -#include "testing/gtest/include/gtest/gtest.h"
 | 
| -
 | 
| -namespace policy {
 | 
| -
 | 
| -namespace {
 | 
| -
 | 
| -using testing::ReturnRef;
 | 
| -
 | 
| -// Arbitrary policy names used for testing.
 | 
| -const char kTestPolicy1[] = "Test Policy 1";
 | 
| -const char kTestPolicy2[] = "Test Policy 2";
 | 
| -
 | 
| -const int kTestPolicy1Id = 42;
 | 
| -const int kTestPolicy2Id = 123;
 | 
| -
 | 
| -const char kTestChromeSchema[] =
 | 
| -    "{"
 | 
| -    "  \"type\": \"object\","
 | 
| -    "  \"properties\": {"
 | 
| -    "    \"Test Policy 1\": { \"type\": \"string\" },"
 | 
| -    "    \"Test Policy 2\": { \"type\": \"string\" }"
 | 
| -    "  }"
 | 
| -    "}";
 | 
| -
 | 
| -const PolicyDetails kTestPolicyDetails[] = {
 | 
| -  // is_deprecated  is_device_policy              id  max_external_data_size
 | 
| -  {          false,            false, kTestPolicy1Id,                      0 },
 | 
| -  {          false,            false, kTestPolicy2Id,                      0 },
 | 
| -};
 | 
| -
 | 
| -class TestPolicyStatisticsCollector : public PolicyStatisticsCollector {
 | 
| - public:
 | 
| -  TestPolicyStatisticsCollector(
 | 
| -      const GetChromePolicyDetailsCallback& get_details,
 | 
| -      const Schema& chrome_schema,
 | 
| -      PolicyService* policy_service,
 | 
| -      PrefService* prefs,
 | 
| -      const scoped_refptr<base::TaskRunner>& task_runner)
 | 
| -      : PolicyStatisticsCollector(get_details,
 | 
| -                                  chrome_schema,
 | 
| -                                  policy_service,
 | 
| -                                  prefs,
 | 
| -                                  task_runner) {}
 | 
| -
 | 
| -  MOCK_METHOD1(RecordPolicyUse, void(int));
 | 
| -};
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -class PolicyStatisticsCollectorTest : public testing::Test {
 | 
| - protected:
 | 
| -  PolicyStatisticsCollectorTest()
 | 
| -      : update_delay_(base::TimeDelta::FromMilliseconds(
 | 
| -            PolicyStatisticsCollector::kStatisticsUpdateRate)),
 | 
| -        task_runner_(new base::TestSimpleTaskRunner()) {
 | 
| -  }
 | 
| -
 | 
| -  virtual void SetUp() OVERRIDE {
 | 
| -    std::string error;
 | 
| -    chrome_schema_ = Schema::Parse(kTestChromeSchema, &error);
 | 
| -    ASSERT_TRUE(chrome_schema_.valid()) << error;
 | 
| -
 | 
| -    policy_details_.SetDetails(kTestPolicy1, &kTestPolicyDetails[0]);
 | 
| -    policy_details_.SetDetails(kTestPolicy2, &kTestPolicyDetails[1]);
 | 
| -
 | 
| -    prefs_.registry()->RegisterInt64Pref(
 | 
| -        policy_prefs::kLastPolicyStatisticsUpdate, 0);
 | 
| -
 | 
| -    // Set up default function behaviour.
 | 
| -    EXPECT_CALL(policy_service_,
 | 
| -                GetPolicies(PolicyNamespace(POLICY_DOMAIN_CHROME,
 | 
| -                                            std::string())))
 | 
| -        .WillRepeatedly(ReturnRef(policy_map_));
 | 
| -
 | 
| -    // Arbitrary negative value (so it'll be different from |update_delay_|).
 | 
| -    last_delay_ = base::TimeDelta::FromDays(-1);
 | 
| -    policy_map_.Clear();
 | 
| -    policy_statistics_collector_.reset(new TestPolicyStatisticsCollector(
 | 
| -        policy_details_.GetCallback(),
 | 
| -        chrome_schema_,
 | 
| -        &policy_service_,
 | 
| -        &prefs_,
 | 
| -        task_runner_));
 | 
| -  }
 | 
| -
 | 
| -  void SetPolicy(const std::string& name) {
 | 
| -    policy_map_.Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                    base::Value::CreateBooleanValue(true), NULL);
 | 
| -  }
 | 
| -
 | 
| -  base::TimeDelta GetFirstDelay() const {
 | 
| -    if (task_runner_->GetPendingTasks().empty()) {
 | 
| -      ADD_FAILURE();
 | 
| -      return base::TimeDelta();
 | 
| -    }
 | 
| -    return task_runner_->GetPendingTasks().front().delay;
 | 
| -  }
 | 
| -
 | 
| -  const base::TimeDelta update_delay_;
 | 
| -
 | 
| -  base::TimeDelta last_delay_;
 | 
| -
 | 
| -  PolicyDetailsMap policy_details_;
 | 
| -  Schema chrome_schema_;
 | 
| -  TestingPrefServiceSimple prefs_;
 | 
| -  MockPolicyService policy_service_;
 | 
| -  PolicyMap policy_map_;
 | 
| -
 | 
| -  scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
 | 
| -  scoped_ptr<TestPolicyStatisticsCollector> policy_statistics_collector_;
 | 
| -};
 | 
| -
 | 
| -TEST_F(PolicyStatisticsCollectorTest, CollectPending) {
 | 
| -  SetPolicy(kTestPolicy1);
 | 
| -
 | 
| -  prefs_.SetInt64(policy_prefs::kLastPolicyStatisticsUpdate,
 | 
| -                  (base::Time::Now() - update_delay_).ToInternalValue());
 | 
| -
 | 
| -  EXPECT_CALL(*policy_statistics_collector_.get(),
 | 
| -              RecordPolicyUse(kTestPolicy1Id));
 | 
| -
 | 
| -  policy_statistics_collector_->Initialize();
 | 
| -  EXPECT_EQ(1u, task_runner_->GetPendingTasks().size());
 | 
| -  EXPECT_EQ(update_delay_, GetFirstDelay());
 | 
| -}
 | 
| -
 | 
| -TEST_F(PolicyStatisticsCollectorTest, CollectPendingVeryOld) {
 | 
| -  SetPolicy(kTestPolicy1);
 | 
| -
 | 
| -  // Must not be 0.0 (read comment for Time::FromDoubleT).
 | 
| -  prefs_.SetInt64(policy_prefs::kLastPolicyStatisticsUpdate,
 | 
| -                  base::Time::FromDoubleT(1.0).ToInternalValue());
 | 
| -
 | 
| -  EXPECT_CALL(*policy_statistics_collector_.get(),
 | 
| -              RecordPolicyUse(kTestPolicy1Id));
 | 
| -
 | 
| -  policy_statistics_collector_->Initialize();
 | 
| -  EXPECT_EQ(1u, task_runner_->GetPendingTasks().size());
 | 
| -  EXPECT_EQ(update_delay_, GetFirstDelay());
 | 
| -}
 | 
| -
 | 
| -TEST_F(PolicyStatisticsCollectorTest, CollectLater) {
 | 
| -  SetPolicy(kTestPolicy1);
 | 
| -
 | 
| -  prefs_.SetInt64(policy_prefs::kLastPolicyStatisticsUpdate,
 | 
| -                  (base::Time::Now() - update_delay_ / 2).ToInternalValue());
 | 
| -
 | 
| -  policy_statistics_collector_->Initialize();
 | 
| -  EXPECT_EQ(1u, task_runner_->GetPendingTasks().size());
 | 
| -  EXPECT_LT(GetFirstDelay(), update_delay_);
 | 
| -}
 | 
| -
 | 
| -TEST_F(PolicyStatisticsCollectorTest, MultiplePolicies) {
 | 
| -  SetPolicy(kTestPolicy1);
 | 
| -  SetPolicy(kTestPolicy2);
 | 
| -
 | 
| -  prefs_.SetInt64(policy_prefs::kLastPolicyStatisticsUpdate,
 | 
| -                  (base::Time::Now() - update_delay_).ToInternalValue());
 | 
| -
 | 
| -  EXPECT_CALL(*policy_statistics_collector_.get(),
 | 
| -              RecordPolicyUse(kTestPolicy1Id));
 | 
| -  EXPECT_CALL(*policy_statistics_collector_.get(),
 | 
| -              RecordPolicyUse(kTestPolicy2Id));
 | 
| -
 | 
| -  policy_statistics_collector_->Initialize();
 | 
| -  EXPECT_EQ(1u, task_runner_->GetPendingTasks().size());
 | 
| -}
 | 
| -
 | 
| -}  // namespace policy
 | 
| 
 |