| // 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 "components/power/origin_power_map.h" |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace power { |
| |
| TEST(OriginPowerMapTest, StartEmpty) { |
| OriginPowerMap origin_power_map; |
| EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); |
| } |
| |
| TEST(OriginPowerMapTest, AddOneOriginNotInMap) { |
| OriginPowerMap origin_power_map; |
| GURL url("http://www.google.com"); |
| EXPECT_EQ(0, origin_power_map.GetPowerForOrigin(url)); |
| origin_power_map.AddPowerForOrigin(url, 10); |
| EXPECT_EQ(size_t(1), origin_power_map.GetPercentOriginMap().size()); |
| EXPECT_EQ(100, origin_power_map.GetPowerForOrigin(url)); |
| } |
| |
| TEST(OriginPowerMapTest, AddMultiplesOrigins) { |
| OriginPowerMap origin_power_map; |
| GURL url1("http://www.google.com"); |
| EXPECT_EQ(0, origin_power_map.GetPowerForOrigin(url1)); |
| origin_power_map.AddPowerForOrigin(url1, 10); |
| EXPECT_EQ(size_t(1), origin_power_map.GetPercentOriginMap().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(OriginPowerMapTest, PercentOriginMap) { |
| OriginPowerMap origin_power_map; |
| GURL url1("http://www.google.com"); |
| GURL url2("http://www.example.com"); |
| origin_power_map.AddPowerForOrigin(url1, 10); |
| origin_power_map.AddPowerForOrigin(url2, 40); |
| OriginPowerMap::PercentOriginMap origin_map = |
| origin_power_map.GetPercentOriginMap(); |
| EXPECT_EQ(20, origin_map.find(url1)->second); |
| EXPECT_EQ(80, origin_map.find(url2)->second); |
| } |
| |
| TEST(OriginPowerMapTest, EmptyPercentOriginMapWhenZeroConsumed) { |
| OriginPowerMap origin_power_map; |
| EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); |
| GURL url("http://www.google.com"); |
| origin_power_map.AddPowerForOrigin(url, 0); |
| EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); |
| } |
| |
| } // namespace power |