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 98