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.
5 #include "chrome/browser/chrome_page_zoom.h"
6 #include "content/public/common/page_zoom.h"
7 #include "testing/gtest/include/gtest/gtest.h"
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
);
16 // Expect at least 10 zoom factors.
17 EXPECT_GE(factors
.size(), 10U);
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
);
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;
31 std::vector
<double>::const_iterator i
;
32 for (i
= factors
.begin(); i
!= factors
.end(); ++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;
42 EXPECT_TRUE(found_custom_value
);
43 EXPECT_TRUE(found_100_percent
);
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
);
52 // Expect at least 10 zoom levels.
53 EXPECT_GE(levels
.size(), 10U);
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;
63 std::vector
<double>::const_iterator i
;
64 for (i
= levels
.begin(); i
!= levels
.end(); ++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;
74 EXPECT_TRUE(found_custom_value
);
75 EXPECT_TRUE(found_100_percent
);
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
));
83 double too_high
= 99.0;
84 factors
= chrome_page_zoom::PresetZoomFactors(too_high
);
85 EXPECT_FALSE(content::ZoomValuesEqual(factors
.back(), too_high
));
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
));
93 double too_high
= 99.0;
94 levels
= chrome_page_zoom::PresetZoomLevels(too_high
);
95 EXPECT_FALSE(content::ZoomValuesEqual(levels
.back(), too_high
));