diff options
Diffstat (limited to 'components/power/origin_power_map_unittest.cc')
-rw-r--r-- | components/power/origin_power_map_unittest.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/components/power/origin_power_map_unittest.cc b/components/power/origin_power_map_unittest.cc new file mode 100644 index 0000000..0cf2981 --- /dev/null +++ b/components/power/origin_power_map_unittest.cc @@ -0,0 +1,68 @@ +// 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 |