Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / components / power / origin_power_map_unittest.cc
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