• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 "chrome/browser/chrome_page_zoom.h"
6 #include "content/public/common/page_zoom.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8 
TEST(ChromePageZoomTest,PresetZoomFactors)9 TEST(ChromePageZoomTest, PresetZoomFactors) {
10   // Fetch a vector of preset zoom factors, including a custom value that we
11   // already know is not going to be in the list.
12   double custom_value = 1.05;  // 105%
13   std::vector<double> factors =
14       chrome_page_zoom::PresetZoomFactors(custom_value);
15 
16   // Expect at least 10 zoom factors.
17   EXPECT_GE(factors.size(), 10U);
18 
19   // Expect the first and last items to match the minimum and maximum values.
20   EXPECT_DOUBLE_EQ(factors.front(), content::kMinimumZoomFactor);
21   EXPECT_DOUBLE_EQ(factors.back(), content::kMaximumZoomFactor);
22 
23   // Iterate through the vector, with the following checks:
24   // 1. The values are in sorted order.
25   // 2. The custom value is exists.
26   // 3. The 100% value exists.
27   bool found_custom_value = false;
28   bool found_100_percent = false;
29   double last_value = 0;
30 
31   std::vector<double>::const_iterator i;
32   for (i = factors.begin(); i != factors.end(); ++i) {
33     double factor = *i;
34     EXPECT_GT(factor, last_value);
35     if (content::ZoomValuesEqual(factor, custom_value))
36       found_custom_value = true;
37     if (content::ZoomValuesEqual(factor, 1.0))
38       found_100_percent = true;
39     last_value = factor;
40   }
41 
42   EXPECT_TRUE(found_custom_value);
43   EXPECT_TRUE(found_100_percent);
44 }
45 
TEST(ChromePageZoomTest,PresetZoomLevels)46 TEST(ChromePageZoomTest, PresetZoomLevels) {
47   // Fetch a vector of preset zoom levels, including a custom value that we
48   // already know is not going to be in the list.
49   double custom_value = 0.1;
50   std::vector<double> levels = chrome_page_zoom::PresetZoomLevels(custom_value);
51 
52   // Expect at least 10 zoom levels.
53   EXPECT_GE(levels.size(), 10U);
54 
55   // Iterate through the vector, with the following checks:
56   // 1. The values are in sorted order.
57   // 2. The custom value is exists.
58   // 3. The 100% value exists.
59   bool found_custom_value = false;
60   bool found_100_percent = false;
61   double last_value = -99;
62 
63   std::vector<double>::const_iterator i;
64   for (i = levels.begin(); i != levels.end(); ++i) {
65     double level = *i;
66     EXPECT_GT(level, last_value);
67     if (content::ZoomValuesEqual(level, custom_value))
68       found_custom_value = true;
69     if (content::ZoomValuesEqual(level, 0))
70       found_100_percent = true;
71     last_value = level;
72   }
73 
74   EXPECT_TRUE(found_custom_value);
75   EXPECT_TRUE(found_100_percent);
76 }
77 
TEST(ChromePageZoomTest,InvalidCustomFactor)78 TEST(ChromePageZoomTest, InvalidCustomFactor) {
79   double too_low = 0.01;
80   std::vector<double> factors = chrome_page_zoom::PresetZoomFactors(too_low);
81   EXPECT_FALSE(content::ZoomValuesEqual(factors.front(), too_low));
82 
83   double too_high = 99.0;
84   factors = chrome_page_zoom::PresetZoomFactors(too_high);
85   EXPECT_FALSE(content::ZoomValuesEqual(factors.back(), too_high));
86 }
87 
TEST(ChromePageZoomTest,InvalidCustomLevel)88 TEST(ChromePageZoomTest, InvalidCustomLevel) {
89   double too_low = -99.0;
90   std::vector<double> levels = chrome_page_zoom::PresetZoomLevels(too_low);
91   EXPECT_FALSE(content::ZoomValuesEqual(levels.front(), too_low));
92 
93   double too_high = 99.0;
94   levels = chrome_page_zoom::PresetZoomLevels(too_high);
95   EXPECT_FALSE(content::ZoomValuesEqual(levels.back(), too_high));
96 }
97 
98