Chromium Code Reviews| Index: chrome/browser/power/origin_power_map_unittest.cc |
| diff --git a/chrome/browser/power/origin_power_map_unittest.cc b/chrome/browser/power/origin_power_map_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6ab40b2c68b5e481610c11c84f8bfd0a0d5632fb |
| --- /dev/null |
| +++ b/chrome/browser/power/origin_power_map_unittest.cc |
| @@ -0,0 +1,101 @@ |
| +// Copyright 2014 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 "base/prefs/scoped_user_pref_update.h" |
| +#include "chrome/browser/power/origin_power_map.h" |
|
sky
2014/08/06 23:59:23
nit: this should be your first include with a newl
Daniel Nishi
2014/08/07 21:15:08
Done.
|
| +#include "chrome/common/pref_names.h" |
| +#include "chrome/test/base/testing_profile.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +class OriginPowerMapTest : public testing::Test { |
| + public: |
| + OriginPowerMapTest() {}; |
| + virtual ~OriginPowerMapTest() {}; |
| + |
| + virtual void SetUp() OVERRIDE { |
| + profile_.reset(new TestingProfile); |
| + origin_power_map_.reset(new OriginPowerMap(profile_->GetPrefs())); |
| + } |
| + |
| + protected: |
| + void ReloadProfile() { |
| + origin_power_map_.reset(new OriginPowerMap(profile_->GetPrefs())); |
| + } |
| + |
| + scoped_ptr<TestingProfile> profile_; |
| + scoped_ptr<OriginPowerMap> origin_power_map_; |
| +}; |
| + |
| +TEST_F(OriginPowerMapTest, StartEmpty) { |
| + EXPECT_EQ(size_t(0), origin_power_map_->GetScaledOriginMap()->size()); |
| +} |
| + |
| +TEST_F(OriginPowerMapTest, AddOneOriginNotInMap) { |
| + GURL url("http://www.google.com"); |
| + EXPECT_EQ(-1, origin_power_map_->GetPowerForOrigin(url)); |
| + origin_power_map_->AddPowerForOrigin(url, 10); |
| + EXPECT_EQ(size_t(1), origin_power_map_->GetScaledOriginMap()->size()); |
| + EXPECT_EQ(100, origin_power_map_->GetPowerForOrigin(url)); |
| +} |
| + |
| +TEST_F(OriginPowerMapTest, AddMultiplesOrigins) { |
| + GURL url1("http://www.google.com"); |
| + EXPECT_EQ(-1, origin_power_map_->GetPowerForOrigin(url1)); |
| + origin_power_map_->AddPowerForOrigin(url1, 10); |
| + EXPECT_EQ(size_t(1), origin_power_map_->GetScaledOriginMap()->size()); |
| + EXPECT_EQ(100, origin_power_map_->GetPowerForOrigin(url1)); |
| + |
| + GURL url2("http://www.example.com"); |
| + origin_power_map_->AddPowerForOrigin(url2, 30); |
| + EXPECT_EQ(25, origin_power_map_->GetPowerForOrigin(url1)); |
| + EXPECT_EQ(75, origin_power_map_->GetPowerForOrigin(url2)); |
| + origin_power_map_->AddPowerForOrigin(url2, 10); |
| + EXPECT_EQ(20, origin_power_map_->GetPowerForOrigin(url1)); |
| + EXPECT_EQ(80, origin_power_map_->GetPowerForOrigin(url2)); |
| + |
| + GURL url3("https://www.google.com"); |
| + origin_power_map_->AddPowerForOrigin(url3, 50); |
| + EXPECT_EQ(10, origin_power_map_->GetPowerForOrigin(url1)); |
| + EXPECT_EQ(40, origin_power_map_->GetPowerForOrigin(url2)); |
| + EXPECT_EQ(50, origin_power_map_->GetPowerForOrigin(url3)); |
| +} |
| + |
| +TEST_F(OriginPowerMapTest, LoadExistingPowerInformationOnConstruction) { |
| + DictionaryPrefUpdate update(profile_->GetPrefs(), prefs::kBatteryOriginMap); |
| + base::DictionaryValue* origin_entries = update.Get(); |
| + |
| + GURL url1("http://www.google.com"); |
| + GURL url2("http://www.example.com"); |
| + origin_entries->SetDoubleWithoutPathExpansion(url1.spec(), 10.0); |
| + origin_entries->SetDoubleWithoutPathExpansion(url2.spec(), 40.0); |
| + |
| + ReloadProfile(); |
| + EXPECT_EQ(size_t(2), origin_power_map_->GetScaledOriginMap()->size()); |
| + EXPECT_EQ(20, origin_power_map_->GetPowerForOrigin(url1)); |
| + EXPECT_EQ(80, origin_power_map_->GetPowerForOrigin(url2)); |
| +} |
| + |
| +TEST_F(OriginPowerMapTest, SaveAndLoadExistingPowerInformation) { |
| + GURL url1("http://www.google.com"); |
| + GURL url2("http://www.example.com"); |
| + origin_power_map_->AddPowerForOrigin(url1, 10); |
| + origin_power_map_->AddPowerForOrigin(url2, 40); |
| + origin_power_map_->SavePrefs(); |
| + |
| + ReloadProfile(); |
| + EXPECT_EQ(size_t(2), origin_power_map_->GetScaledOriginMap()->size()); |
| + EXPECT_EQ(20, origin_power_map_->GetPowerForOrigin(url1)); |
| + EXPECT_EQ(80, origin_power_map_->GetPowerForOrigin(url2)); |
| +} |
| + |
| +TEST_F(OriginPowerMapTest, ScaledOriginMap) { |
| + GURL url1("http://www.google.com"); |
| + GURL url2("http://www.example.com"); |
| + origin_power_map_->AddPowerForOrigin(url1, 10); |
| + origin_power_map_->AddPowerForOrigin(url2, 40); |
| + scoped_ptr<OriginPowerMap::ScaledOriginMap> origin_map = |
| + origin_power_map_->GetScaledOriginMap(); |
| + EXPECT_EQ(20, (*origin_map)[url1]); |
| + EXPECT_EQ(80, (*origin_map)[url2]); |
| +} |