• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/views/controls/slider.h"
6 
7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "ui/base/accessibility/accessible_view_state.h"
12 #include "ui/base/l10n/l10n_util.h"
13 #include "ui/views/view.h"
14 
15 namespace {
16 
ClickAt(views::View * view,int x,int y)17 void ClickAt(views::View* view, int x, int y) {
18   gfx::Point point(x, y);
19   ui::MouseEvent press(ui::ET_MOUSE_PRESSED, point, point,
20                        ui::EF_LEFT_MOUSE_BUTTON);
21   view->OnMousePressed(press);
22   ui::MouseEvent release(ui::ET_MOUSE_RELEASED, point, point,
23                          ui::EF_LEFT_MOUSE_BUTTON);
24   view->OnMouseReleased(release);
25 }
26 
27 }
28 
29 namespace views {
30 
TEST(SliderTest,UpdateFromClickHorizontal)31 TEST(SliderTest, UpdateFromClickHorizontal) {
32   scoped_ptr<Slider> slider(new Slider(NULL, Slider::HORIZONTAL));
33   View* view = slider.get();
34   gfx::Size size = view->GetPreferredSize();
35   view->SetSize(size);
36 
37   ClickAt(view, 0, 0);
38   EXPECT_EQ(0.0f, slider->value());
39 
40   ClickAt(view, view->width(), 0);
41   EXPECT_EQ(1.0f, slider->value());
42 }
43 
TEST(SliderTest,UpdateFromClickVertical)44 TEST(SliderTest, UpdateFromClickVertical) {
45   scoped_ptr<Slider> slider(new Slider(NULL, Slider::VERTICAL));
46   View* view = slider.get();
47   gfx::Size size = view->GetPreferredSize();
48   view->SetSize(size);
49 
50   ClickAt(view, 0, 0);
51   EXPECT_EQ(1.0f, slider->value());
52 
53   ClickAt(view, 0, view->height());
54   EXPECT_EQ(0.0f, slider->value());
55 }
56 
TEST(SliderTest,UpdateFromClickRTLHorizontal)57 TEST(SliderTest, UpdateFromClickRTLHorizontal) {
58   std::string locale = l10n_util::GetApplicationLocale("");
59   base::i18n::SetICUDefaultLocale("he");
60 
61   scoped_ptr<Slider> slider(new Slider(NULL, Slider::HORIZONTAL));
62   View* view = slider.get();
63   gfx::Size size = view->GetPreferredSize();
64   view->SetSize(size);
65 
66   ClickAt(view, 0, 0);
67   EXPECT_EQ(1.0f, slider->value());
68 
69   ClickAt(view, view->width(), 0);
70   EXPECT_EQ(0.0f, slider->value());
71 
72   // Reset locale.
73   base::i18n::SetICUDefaultLocale(locale);
74 }
75 
76 }  // namespace views
77