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]); |
+} |