1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/power/origin_power_map.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace power { 10 11 TEST(OriginPowerMapTest, StartEmpty) { 12 OriginPowerMap origin_power_map; 13 EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); 14 } 15 16 TEST(OriginPowerMapTest, AddOneOriginNotInMap) { 17 OriginPowerMap origin_power_map; 18 GURL url("http://www.google.com"); 19 EXPECT_EQ(0, origin_power_map.GetPowerForOrigin(url)); 20 origin_power_map.AddPowerForOrigin(url, 10); 21 EXPECT_EQ(size_t(1), origin_power_map.GetPercentOriginMap().size()); 22 EXPECT_EQ(100, origin_power_map.GetPowerForOrigin(url)); 23 } 24 25 TEST(OriginPowerMapTest, AddMultiplesOrigins) { 26 OriginPowerMap origin_power_map; 27 GURL url1("http://www.google.com"); 28 EXPECT_EQ(0, origin_power_map.GetPowerForOrigin(url1)); 29 origin_power_map.AddPowerForOrigin(url1, 10); 30 EXPECT_EQ(size_t(1), origin_power_map.GetPercentOriginMap().size()); 31 EXPECT_EQ(100, origin_power_map.GetPowerForOrigin(url1)); 32 33 GURL url2("http://www.example.com"); 34 origin_power_map.AddPowerForOrigin(url2, 30); 35 EXPECT_EQ(25, origin_power_map.GetPowerForOrigin(url1)); 36 EXPECT_EQ(75, origin_power_map.GetPowerForOrigin(url2)); 37 origin_power_map.AddPowerForOrigin(url2, 10); 38 EXPECT_EQ(20, origin_power_map.GetPowerForOrigin(url1)); 39 EXPECT_EQ(80, origin_power_map.GetPowerForOrigin(url2)); 40 41 GURL url3("https://www.google.com"); 42 origin_power_map.AddPowerForOrigin(url3, 50); 43 EXPECT_EQ(10, origin_power_map.GetPowerForOrigin(url1)); 44 EXPECT_EQ(40, origin_power_map.GetPowerForOrigin(url2)); 45 EXPECT_EQ(50, origin_power_map.GetPowerForOrigin(url3)); 46 } 47 48 TEST(OriginPowerMapTest, PercentOriginMap) { 49 OriginPowerMap origin_power_map; 50 GURL url1("http://www.google.com"); 51 GURL url2("http://www.example.com"); 52 origin_power_map.AddPowerForOrigin(url1, 10); 53 origin_power_map.AddPowerForOrigin(url2, 40); 54 OriginPowerMap::PercentOriginMap origin_map = 55 origin_power_map.GetPercentOriginMap(); 56 EXPECT_EQ(20, origin_map.find(url1)->second); 57 EXPECT_EQ(80, origin_map.find(url2)->second); 58 } 59 60 TEST(OriginPowerMapTest, EmptyPercentOriginMapWhenZeroConsumed) { 61 OriginPowerMap origin_power_map; 62 EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); 63 GURL url("http://www.google.com"); 64 origin_power_map.AddPowerForOrigin(url, 0); 65 EXPECT_EQ(size_t(0), origin_power_map.GetPercentOriginMap().size()); 66 } 67 68 } // namespace power 69