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.
5 #include "ui/base/layout.h"
7 #include "testing/gtest/include/gtest/gtest.h"
9 #if defined(OS_CHROMEOS)
10 #include "base/chromeos/chromeos_version.h"
11 #include "base/command_line.h"
12 #include "ui/base/ui_base_switches.h"
17 TEST(LayoutTest
, GetScaleFactorScale
) {
18 EXPECT_FLOAT_EQ(1.0f
, GetScaleFactorScale(SCALE_FACTOR_100P
));
19 EXPECT_FLOAT_EQ(1.33f
, GetScaleFactorScale(SCALE_FACTOR_133P
));
20 EXPECT_FLOAT_EQ(1.4f
, GetScaleFactorScale(SCALE_FACTOR_140P
));
21 EXPECT_FLOAT_EQ(1.5f
, GetScaleFactorScale(SCALE_FACTOR_150P
));
22 EXPECT_FLOAT_EQ(1.8f
, GetScaleFactorScale(SCALE_FACTOR_180P
));
23 EXPECT_FLOAT_EQ(2.0f
, GetScaleFactorScale(SCALE_FACTOR_200P
));
26 TEST(LayoutTest
, GetScaleFactorFromScalePartlySupported
) {
27 std::vector
<ScaleFactor
> supported_factors
;
28 supported_factors
.push_back(SCALE_FACTOR_100P
);
29 supported_factors
.push_back(SCALE_FACTOR_180P
);
30 test::ScopedSetSupportedScaleFactors
scoped_supported(supported_factors
);
31 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(0.1f
));
32 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(0.9f
));
33 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(1.0f
));
34 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(1.39f
));
35 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(1.41f
));
36 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(1.8f
));
37 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(2.0f
));
38 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(999.0f
));
41 TEST(LayoutTest
, GetScaleFactorFromScaleAllSupported
) {
42 std::vector
<ScaleFactor
> supported_factors
;
43 for (int factor
= SCALE_FACTOR_100P
; factor
< NUM_SCALE_FACTORS
; ++factor
) {
44 supported_factors
.push_back(static_cast<ScaleFactor
>(factor
));
46 test::ScopedSetSupportedScaleFactors
scoped_supported(supported_factors
);
48 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(0.1f
));
49 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(0.9f
));
50 EXPECT_EQ(SCALE_FACTOR_100P
, GetScaleFactorFromScale(1.0f
));
51 EXPECT_EQ(SCALE_FACTOR_133P
, GetScaleFactorFromScale(1.19f
));
52 EXPECT_EQ(SCALE_FACTOR_133P
, GetScaleFactorFromScale(1.21f
));
53 EXPECT_EQ(SCALE_FACTOR_133P
, GetScaleFactorFromScale(1.3f
));
54 EXPECT_EQ(SCALE_FACTOR_140P
, GetScaleFactorFromScale(1.4f
));
55 EXPECT_EQ(SCALE_FACTOR_150P
, GetScaleFactorFromScale(1.59f
));
56 EXPECT_EQ(SCALE_FACTOR_150P
, GetScaleFactorFromScale(1.61f
));
57 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(1.7f
));
58 EXPECT_EQ(SCALE_FACTOR_180P
, GetScaleFactorFromScale(1.89f
));
59 EXPECT_EQ(SCALE_FACTOR_200P
, GetScaleFactorFromScale(1.91f
));
60 EXPECT_EQ(SCALE_FACTOR_200P
, GetScaleFactorFromScale(2.0f
));
61 EXPECT_EQ(SCALE_FACTOR_200P
, GetScaleFactorFromScale(2.1f
));
62 EXPECT_EQ(SCALE_FACTOR_200P
, GetScaleFactorFromScale(999.0f
));
65 TEST(LayoutTest
, GetMaxScaleFactor
) {
66 #if defined(OS_CHROMEOS)
67 // On Chrome OS, the maximum scale factor is based on
68 // the available resource pack. In testing environment,
69 // we always have 200P.
70 EXPECT_EQ(SCALE_FACTOR_200P
, GetMaxScaleFactor());
73 ScaleFactor scale_factors
[] = { SCALE_FACTOR_100P
};
74 std::vector
<ScaleFactor
> supported_factors(
75 scale_factors
, scale_factors
+ arraysize(scale_factors
));
76 test::ScopedSetSupportedScaleFactors
scoped_supported(supported_factors
);
77 EXPECT_EQ(SCALE_FACTOR_100P
, GetMaxScaleFactor());
81 ScaleFactor scale_factors
[] = { SCALE_FACTOR_100P
,
83 std::vector
<ScaleFactor
> supported_factors(
84 scale_factors
, scale_factors
+ arraysize(scale_factors
));
85 test::ScopedSetSupportedScaleFactors
scoped_supported(supported_factors
);
86 EXPECT_EQ(SCALE_FACTOR_140P
, GetMaxScaleFactor());
90 ScaleFactor scale_factors
[] = { SCALE_FACTOR_200P
,
94 std::vector
<ScaleFactor
> supported_factors(
95 scale_factors
, scale_factors
+ arraysize(scale_factors
));
96 test::ScopedSetSupportedScaleFactors
scoped_supported(supported_factors
);
97 EXPECT_EQ(SCALE_FACTOR_200P
, GetMaxScaleFactor());