1// Copyright (c) 2012 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 "ui/base/layout.h"
6
7#include "testing/gtest/include/gtest/gtest.h"
8
9#if defined(OS_CHROMEOS)
10#include "base/command_line.h"
11#include "ui/base/ui_base_switches.h"
12#endif
13
14namespace ui {
15
16TEST(LayoutTest, GetScaleFactorScale) {
17  EXPECT_FLOAT_EQ(1.0f, GetScaleForScaleFactor(SCALE_FACTOR_100P));
18  EXPECT_FLOAT_EQ(1.25f, GetScaleForScaleFactor(SCALE_FACTOR_125P));
19  EXPECT_FLOAT_EQ(1.33f, GetScaleForScaleFactor(SCALE_FACTOR_133P));
20  EXPECT_FLOAT_EQ(1.4f, GetScaleForScaleFactor(SCALE_FACTOR_140P));
21  EXPECT_FLOAT_EQ(1.5f, GetScaleForScaleFactor(SCALE_FACTOR_150P));
22  EXPECT_FLOAT_EQ(1.8f, GetScaleForScaleFactor(SCALE_FACTOR_180P));
23  EXPECT_FLOAT_EQ(2.0f, GetScaleForScaleFactor(SCALE_FACTOR_200P));
24  EXPECT_FLOAT_EQ(2.5f, GetScaleForScaleFactor(SCALE_FACTOR_250P));
25  EXPECT_FLOAT_EQ(3.0f, GetScaleForScaleFactor(SCALE_FACTOR_300P));
26}
27
28TEST(LayoutTest, GetScaleFactorFromScalePartlySupported) {
29  std::vector<ScaleFactor> supported_factors;
30  supported_factors.push_back(SCALE_FACTOR_100P);
31  supported_factors.push_back(SCALE_FACTOR_180P);
32  test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors);
33  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(0.1f));
34  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(0.9f));
35  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(1.0f));
36  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(1.39f));
37  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(1.41f));
38  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(1.8f));
39  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(2.0f));
40  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(999.0f));
41}
42
43TEST(LayoutTest, GetScaleFactorFromScaleAllSupported) {
44  std::vector<ScaleFactor> supported_factors;
45  for (int factor = SCALE_FACTOR_100P; factor < NUM_SCALE_FACTORS; ++factor) {
46    supported_factors.push_back(static_cast<ScaleFactor>(factor));
47  }
48  test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors);
49
50  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(0.1f));
51  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(0.9f));
52  EXPECT_EQ(SCALE_FACTOR_100P, GetSupportedScaleFactor(1.0f));
53  EXPECT_EQ(SCALE_FACTOR_125P, GetSupportedScaleFactor(1.19f));
54  EXPECT_EQ(SCALE_FACTOR_125P, GetSupportedScaleFactor(1.21f));
55  EXPECT_EQ(SCALE_FACTOR_133P, GetSupportedScaleFactor(1.291f));
56  EXPECT_EQ(SCALE_FACTOR_133P, GetSupportedScaleFactor(1.3f));
57  EXPECT_EQ(SCALE_FACTOR_140P, GetSupportedScaleFactor(1.4f));
58  EXPECT_EQ(SCALE_FACTOR_150P, GetSupportedScaleFactor(1.59f));
59  EXPECT_EQ(SCALE_FACTOR_150P, GetSupportedScaleFactor(1.61f));
60  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(1.7f));
61  EXPECT_EQ(SCALE_FACTOR_180P, GetSupportedScaleFactor(1.89f));
62  EXPECT_EQ(SCALE_FACTOR_200P, GetSupportedScaleFactor(1.91f));
63  EXPECT_EQ(SCALE_FACTOR_200P, GetSupportedScaleFactor(2.0f));
64  EXPECT_EQ(SCALE_FACTOR_200P, GetSupportedScaleFactor(2.1f));
65  EXPECT_EQ(SCALE_FACTOR_250P, GetSupportedScaleFactor(2.3f));
66  EXPECT_EQ(SCALE_FACTOR_250P, GetSupportedScaleFactor(2.5f));
67  EXPECT_EQ(SCALE_FACTOR_250P, GetSupportedScaleFactor(2.6f));
68  EXPECT_EQ(SCALE_FACTOR_300P, GetSupportedScaleFactor(2.9f));
69  EXPECT_EQ(SCALE_FACTOR_300P, GetSupportedScaleFactor(3.0f));
70  EXPECT_EQ(SCALE_FACTOR_300P, GetSupportedScaleFactor(3.1f));
71  EXPECT_EQ(SCALE_FACTOR_300P, GetSupportedScaleFactor(999.0f));
72}
73
74}  // namespace ui
75