Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Side by Side Diff: chrome/browser/chromeos/ui/accessibility_focus_ring_controller_unittest.cc

Issue 602813003: Animate the accessibility focus ring and fix some minor visual issues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@focus_ring_in_chromevox
Patch Set: Fix unit tests Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h" 5 #include "chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace chromeos { 9 namespace chromeos {
10 10
11 class TestableAccessibilityFocusRingController 11 class TestableAccessibilityFocusRingController
12 : public AccessibilityFocusRingController { 12 : public AccessibilityFocusRingController {
13 public: 13 public:
14 TestableAccessibilityFocusRingController() {} 14 TestableAccessibilityFocusRingController() {
15 // By default use an easy round number for testing.
16 margin_ = 10;
17 }
15 virtual ~TestableAccessibilityFocusRingController() {} 18 virtual ~TestableAccessibilityFocusRingController() {}
16 19
17 void RectsToRings(const std::vector<gfx::Rect>& rects, 20 void RectsToRings(const std::vector<gfx::Rect>& rects,
18 std::vector<AccessibilityFocusRing>* rings) const { 21 std::vector<AccessibilityFocusRing>* rings) const {
19 AccessibilityFocusRingController::RectsToRings(rects, rings); 22 AccessibilityFocusRingController::RectsToRings(rects, rings);
20 } 23 }
21 24
22 // Return an easy round number for testing.
23 virtual int GetMargin() const OVERRIDE { 25 virtual int GetMargin() const OVERRIDE {
24 return 10; 26 return margin_;
25 } 27 }
28
29 private:
30 int margin_;
26 }; 31 };
27 32
28 class AccessibilityFocusRingControllerTest : public testing::Test { 33 class AccessibilityFocusRingControllerTest : public testing::Test {
29 public: 34 public:
30 AccessibilityFocusRingControllerTest() {} 35 AccessibilityFocusRingControllerTest() {}
31 virtual ~AccessibilityFocusRingControllerTest() {} 36 virtual ~AccessibilityFocusRingControllerTest() {}
32 37
33 protected: 38 protected:
39 gfx::Rect AddMargin(gfx::Rect r) {
40 r.Inset(-controller_.GetMargin(), -controller_.GetMargin());
41 return r;
42 }
43
34 TestableAccessibilityFocusRingController controller_; 44 TestableAccessibilityFocusRingController controller_;
35 }; 45 };
36 46
37 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsSimpleBoundsCheck) { 47 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsSimpleBoundsCheck) {
38 // Easy sanity check. Given a single rectangle, make sure we get back 48 // Easy sanity check. Given a single rectangle, make sure we get back
39 // a focus ring with the same bounds. 49 // a focus ring with the same bounds.
40 std::vector<gfx::Rect> rects; 50 std::vector<gfx::Rect> rects;
41 rects.push_back(gfx::Rect(10, 30, 70, 150)); 51 rects.push_back(gfx::Rect(10, 30, 70, 150));
42 std::vector<AccessibilityFocusRing> rings; 52 std::vector<AccessibilityFocusRing> rings;
43 controller_.RectsToRings(rects, &rings); 53 controller_.RectsToRings(rects, &rings);
44 ASSERT_EQ(1U, rings.size()); 54 ASSERT_EQ(1U, rings.size());
45 ASSERT_EQ(rects[0], rings[0].GetBounds()); 55 ASSERT_EQ(AddMargin(rects[0]), rings[0].GetBounds());
46 } 56 }
47 57
48 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsVerticalStack) { 58 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsVerticalStack) {
49 // Given two rects, one on top of each other, we should get back a 59 // Given two rects, one on top of each other, we should get back a
50 // focus ring that surrounds them both. 60 // focus ring that surrounds them both.
51 std::vector<gfx::Rect> rects; 61 std::vector<gfx::Rect> rects;
52 rects.push_back(gfx::Rect(10, 10, 60, 30)); 62 rects.push_back(gfx::Rect(10, 10, 60, 30));
53 rects.push_back(gfx::Rect(10, 40, 60, 30)); 63 rects.push_back(gfx::Rect(10, 40, 60, 30));
54 std::vector<AccessibilityFocusRing> rings; 64 std::vector<AccessibilityFocusRing> rings;
55 controller_.RectsToRings(rects, &rings); 65 controller_.RectsToRings(rects, &rings);
56 ASSERT_EQ(1U, rings.size()); 66 ASSERT_EQ(1U, rings.size());
57 ASSERT_EQ(gfx::Rect(10, 10, 60, 60), rings[0].GetBounds()); 67 ASSERT_EQ(AddMargin(gfx::Rect(10, 10, 60, 60)), rings[0].GetBounds());
58 } 68 }
59 69
60 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsHorizontalStack) { 70 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsHorizontalStack) {
61 // Given two rects, one next to the other horizontally, we should get back a 71 // Given two rects, one next to the other horizontally, we should get back a
62 // focus ring that surrounds them both. 72 // focus ring that surrounds them both.
63 std::vector<gfx::Rect> rects; 73 std::vector<gfx::Rect> rects;
64 rects.push_back(gfx::Rect(10, 10, 60, 30)); 74 rects.push_back(gfx::Rect(10, 10, 60, 30));
65 rects.push_back(gfx::Rect(70, 10, 60, 30)); 75 rects.push_back(gfx::Rect(70, 10, 60, 30));
66 std::vector<AccessibilityFocusRing> rings; 76 std::vector<AccessibilityFocusRing> rings;
67 controller_.RectsToRings(rects, &rings); 77 controller_.RectsToRings(rects, &rings);
68 ASSERT_EQ(1U, rings.size()); 78 ASSERT_EQ(1U, rings.size());
69 ASSERT_EQ(gfx::Rect(10, 10, 120, 30), rings[0].GetBounds()); 79 ASSERT_EQ(AddMargin(gfx::Rect(10, 10, 120, 30)), rings[0].GetBounds());
70 } 80 }
71 81
72 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsParagraphShape) { 82 TEST_F(AccessibilityFocusRingControllerTest, RectsToRingsParagraphShape) {
73 // Given a simple paragraph shape, make sure we get something that 83 // Given a simple paragraph shape, make sure we get something that
74 // outlines it correctly. 84 // outlines it correctly.
75 std::vector<gfx::Rect> rects; 85 std::vector<gfx::Rect> rects;
76 rects.push_back(gfx::Rect(0, 0, 200, 100)); 86 rects.push_back(gfx::Rect(10, 10, 180, 80));
77 rects.push_back(gfx::Rect(0, 100, 600, 300)); 87 rects.push_back(gfx::Rect(10, 110, 580, 280));
78 rects.push_back(gfx::Rect(400, 400, 200, 100)); 88 rects.push_back(gfx::Rect(410, 410, 180, 80));
79 std::vector<AccessibilityFocusRing> rings; 89 std::vector<AccessibilityFocusRing> rings;
80 controller_.RectsToRings(rects, &rings); 90 controller_.RectsToRings(rects, &rings);
81 ASSERT_EQ(1U, rings.size()); 91 ASSERT_EQ(1U, rings.size());
82 ASSERT_EQ(gfx::Rect(0, 0, 600, 500), rings[0].GetBounds()); 92 EXPECT_EQ(gfx::Rect(0, 0, 600, 500), rings[0].GetBounds());
83 93
84 const gfx::Point* points = rings[0].points; 94 const gfx::Point* points = rings[0].points;
85 ASSERT_EQ(gfx::Point(0, 90), points[0]); 95 EXPECT_EQ(gfx::Point(0, 90), points[0]);
86 ASSERT_EQ(gfx::Point(0, 10), points[1]); 96 EXPECT_EQ(gfx::Point(0, 10), points[1]);
87 ASSERT_EQ(gfx::Point(0, 0), points[2]); 97 EXPECT_EQ(gfx::Point(0, 0), points[2]);
88 ASSERT_EQ(gfx::Point(10, 0), points[3]); 98 EXPECT_EQ(gfx::Point(10, 0), points[3]);
89 ASSERT_EQ(gfx::Point(190, 0), points[4]); 99 EXPECT_EQ(gfx::Point(190, 0), points[4]);
90 ASSERT_EQ(gfx::Point(200, 0), points[5]); 100 EXPECT_EQ(gfx::Point(200, 0), points[5]);
91 ASSERT_EQ(gfx::Point(200, 10), points[6]); 101 EXPECT_EQ(gfx::Point(200, 10), points[6]);
92 ASSERT_EQ(gfx::Point(200, 90), points[7]); 102 EXPECT_EQ(gfx::Point(200, 90), points[7]);
93 ASSERT_EQ(gfx::Point(200, 100), points[8]); 103 EXPECT_EQ(gfx::Point(200, 100), points[8]);
94 ASSERT_EQ(gfx::Point(210, 100), points[9]); 104 EXPECT_EQ(gfx::Point(210, 100), points[9]);
95 ASSERT_EQ(gfx::Point(590, 100), points[10]); 105 EXPECT_EQ(gfx::Point(590, 100), points[10]);
96 ASSERT_EQ(gfx::Point(600, 100), points[11]); 106 EXPECT_EQ(gfx::Point(600, 100), points[11]);
97 ASSERT_EQ(gfx::Point(600, 110), points[12]); 107 EXPECT_EQ(gfx::Point(600, 110), points[12]);
98 ASSERT_EQ(gfx::Point(600, 390), points[13]); 108 EXPECT_EQ(gfx::Point(600, 390), points[13]);
99 ASSERT_EQ(gfx::Point(600, 400), points[14]); 109 EXPECT_EQ(gfx::Point(600, 400), points[14]);
100 ASSERT_EQ(gfx::Point(600, 400), points[15]); 110 EXPECT_EQ(gfx::Point(600, 400), points[15]);
101 ASSERT_EQ(gfx::Point(600, 400), points[16]); 111 EXPECT_EQ(gfx::Point(600, 400), points[16]);
102 ASSERT_EQ(gfx::Point(600, 400), points[17]); 112 EXPECT_EQ(gfx::Point(600, 400), points[17]);
103 ASSERT_EQ(gfx::Point(600, 410), points[18]); 113 EXPECT_EQ(gfx::Point(600, 410), points[18]);
104 ASSERT_EQ(gfx::Point(600, 490), points[19]); 114 EXPECT_EQ(gfx::Point(600, 490), points[19]);
105 ASSERT_EQ(gfx::Point(600, 500), points[20]); 115 EXPECT_EQ(gfx::Point(600, 500), points[20]);
106 ASSERT_EQ(gfx::Point(590, 500), points[21]); 116 EXPECT_EQ(gfx::Point(590, 500), points[21]);
107 ASSERT_EQ(gfx::Point(410, 500), points[22]); 117 EXPECT_EQ(gfx::Point(410, 500), points[22]);
108 ASSERT_EQ(gfx::Point(400, 500), points[23]); 118 EXPECT_EQ(gfx::Point(400, 500), points[23]);
109 ASSERT_EQ(gfx::Point(400, 490), points[24]); 119 EXPECT_EQ(gfx::Point(400, 490), points[24]);
110 ASSERT_EQ(gfx::Point(400, 410), points[25]); 120 EXPECT_EQ(gfx::Point(400, 410), points[25]);
111 ASSERT_EQ(gfx::Point(400, 400), points[26]); 121 EXPECT_EQ(gfx::Point(400, 400), points[26]);
112 ASSERT_EQ(gfx::Point(390, 400), points[27]); 122 EXPECT_EQ(gfx::Point(390, 400), points[27]);
113 ASSERT_EQ(gfx::Point(10, 400), points[28]); 123 EXPECT_EQ(gfx::Point(10, 400), points[28]);
114 ASSERT_EQ(gfx::Point(0, 400), points[29]); 124 EXPECT_EQ(gfx::Point(0, 400), points[29]);
115 ASSERT_EQ(gfx::Point(0, 390), points[30]); 125 EXPECT_EQ(gfx::Point(0, 390), points[30]);
116 ASSERT_EQ(gfx::Point(0, 110), points[31]); 126 EXPECT_EQ(gfx::Point(0, 110), points[31]);
117 ASSERT_EQ(gfx::Point(0, 100), points[32]); 127 EXPECT_EQ(gfx::Point(0, 100), points[32]);
118 ASSERT_EQ(gfx::Point(0, 100), points[33]); 128 EXPECT_EQ(gfx::Point(0, 100), points[33]);
119 ASSERT_EQ(gfx::Point(0, 100), points[34]); 129 EXPECT_EQ(gfx::Point(0, 100), points[34]);
120 ASSERT_EQ(gfx::Point(0, 100), points[35]); 130 EXPECT_EQ(gfx::Point(0, 100), points[35]);
121 } 131 }
122 132
123 } // namespace chromeos 133 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698