• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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/net/client_hints.h"
6 
7 #include <locale.h>
8 
9 #include "base/logging.h"
10 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
11 #include "base/test/scoped_locale.h"
12 #endif
13 #include "testing/gtest/include/gtest/gtest.h"
14 
15 class ClientHintsTest : public testing::Test {
16  public:
UpdateScreenInfo(float pixel_ratio)17   void UpdateScreenInfo(float pixel_ratio) {
18     client_hints_.UpdateScreenInfo(pixel_ratio);
19   };
20 
21  protected:
22   ClientHints client_hints_;
23 };
24 
TEST_F(ClientHintsTest,HintsWellFormatted)25 TEST_F(ClientHintsTest, HintsWellFormatted) {
26   UpdateScreenInfo(1.567f);
27   std::string hint = client_hints_.GetDevicePixelRatioHeader();
28   EXPECT_EQ("1.57", hint);
29 }
30 
31 // Android and iOS do not support setLocale.
32 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
33 // TODO(bengr): Use ScopedLocal in Windows once it is supported.
TEST_F(ClientHintsTest,HintsWellFormattedWithNonEnLocale)34 TEST_F(ClientHintsTest, HintsWellFormattedWithNonEnLocale) {
35   base::ScopedLocale locale("fr_FR.UTF-8");
36   UpdateScreenInfo(1.567f);
37   std::string hint = client_hints_.GetDevicePixelRatioHeader();
38   EXPECT_EQ("1.57", hint);
39 }
40 #endif  // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_IOS)
41 
TEST_F(ClientHintsTest,HintsHaveNonbogusValues)42 TEST_F(ClientHintsTest, HintsHaveNonbogusValues) {
43   UpdateScreenInfo(-1.567f);
44   std::string hint = client_hints_.GetDevicePixelRatioHeader();
45   EXPECT_EQ("", hint);
46 
47   UpdateScreenInfo(1.567f);
48   hint = client_hints_.GetDevicePixelRatioHeader();
49   EXPECT_EQ("1.57", hint);
50 
51   UpdateScreenInfo(0.0f);
52   hint = client_hints_.GetDevicePixelRatioHeader();
53   // Hints should be last known good values.
54   EXPECT_EQ("1.57", hint);
55 }
56 
57