OLD | NEW |
| (Empty) |
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 | |
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 | |
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 | |
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 | |
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 | |
OLD | NEW |