OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "content/browser/accessibility/browser_accessibility_cocoa.h" | 10 #include "content/browser/accessibility/browser_accessibility_cocoa.h" |
11 #include "content/browser/accessibility/browser_accessibility_manager.h" | 11 #include "content/browser/accessibility/browser_accessibility_manager.h" |
12 #include "content/browser/accessibility/browser_accessibility_manager_mac.h" | 12 #include "content/browser/accessibility/browser_accessibility_manager_mac.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 #import "testing/gtest_mac.h" | 14 #import "testing/gtest_mac.h" |
15 #import "ui/gfx/test/ui_cocoa_test_helper.h" | 15 #import "ui/gfx/test/ui_cocoa_test_helper.h" |
16 | 16 |
17 @interface MockAccessibilityDelegate : | |
18 NSView<BrowserAccessibilityDelegateCocoa> | |
19 | |
20 - (NSPoint)accessibilityPointInScreen:(NSPoint)origin | |
21 size:(NSSize)size; | |
22 - (void)doDefaultAction:(int32)accessibilityObjectId; | |
23 - (void)accessibilitySetTextSelection:(int32)accId | |
24 startOffset:(int32)startOffset | |
25 endOffset:(int32)endOffset; | |
26 - (void)performShowMenuAction:(BrowserAccessibilityCocoa*)accessibility; | |
27 - (void)setAccessibilityFocus:(BOOL)focus | |
28 accessibilityId:(int32)accessibilityObjectId; | |
29 - (NSWindow*)window; | |
30 | |
31 @end | |
32 | |
33 @implementation MockAccessibilityDelegate | |
34 | |
35 - (NSPoint)accessibilityPointInScreen:(NSPoint)origin | |
36 size:(NSSize)size { | |
37 return NSZeroPoint; | |
38 } | |
39 - (void)doDefaultAction:(int32)accessibilityObjectId { | |
40 } | |
41 - (void)accessibilitySetTextSelection:(int32)accId | |
42 startOffset:(int32)startOffset | |
43 endOffset:(int32)endOffset { | |
44 } | |
45 - (void)performShowMenuAction:(BrowserAccessibilityCocoa*)accessibility { | |
46 } | |
47 - (void)setAccessibilityFocus:(BOOL)focus | |
48 accessibilityId:(int32)accessibilityObjectId { | |
49 } | |
50 - (NSWindow*)window { | |
51 return nil; | |
52 } | |
53 | |
54 @end | |
55 | |
56 namespace content { | 17 namespace content { |
57 | 18 |
58 class BrowserAccessibilityTest : public ui::CocoaTest { | 19 class BrowserAccessibilityTest : public ui::CocoaTest { |
59 public: | 20 public: |
60 virtual void SetUp() { | 21 virtual void SetUp() { |
61 CocoaTest::SetUp(); | 22 CocoaTest::SetUp(); |
62 RebuildAccessibilityTree(); | 23 RebuildAccessibilityTree(); |
63 } | 24 } |
64 | 25 |
65 protected: | 26 protected: |
(...skipping 14 matching lines...) Expand all Loading... |
80 child1.location.set_height(100); | 41 child1.location.set_height(100); |
81 child1.role = ui::AX_ROLE_BUTTON; | 42 child1.role = ui::AX_ROLE_BUTTON; |
82 | 43 |
83 ui::AXNodeData child2; | 44 ui::AXNodeData child2; |
84 child2.id = 1002; | 45 child2.id = 1002; |
85 child2.location.set_x(250); | 46 child2.location.set_x(250); |
86 child2.location.set_width(250); | 47 child2.location.set_width(250); |
87 child2.location.set_height(100); | 48 child2.location.set_height(100); |
88 child2.role = ui::AX_ROLE_HEADING; | 49 child2.role = ui::AX_ROLE_HEADING; |
89 | 50 |
90 delegate_.reset([[MockAccessibilityDelegate alloc] init]); | |
91 manager_.reset( | 51 manager_.reset( |
92 new BrowserAccessibilityManagerMac( | 52 new BrowserAccessibilityManagerMac( |
93 delegate_, | 53 nil, |
94 MakeAXTreeUpdate(root, child1, child2), | 54 MakeAXTreeUpdate(root, child1, child2), |
95 NULL)); | 55 NULL)); |
96 accessibility_.reset([manager_->GetRoot()->ToBrowserAccessibilityCocoa() | 56 accessibility_.reset([manager_->GetRoot()->ToBrowserAccessibilityCocoa() |
97 retain]); | 57 retain]); |
98 } | 58 } |
99 | 59 |
100 base::scoped_nsobject<MockAccessibilityDelegate> delegate_; | |
101 base::scoped_nsobject<BrowserAccessibilityCocoa> accessibility_; | 60 base::scoped_nsobject<BrowserAccessibilityCocoa> accessibility_; |
102 scoped_ptr<BrowserAccessibilityManager> manager_; | 61 scoped_ptr<BrowserAccessibilityManager> manager_; |
103 }; | 62 }; |
104 | 63 |
105 // Standard hit test. | 64 // Standard hit test. |
106 TEST_F(BrowserAccessibilityTest, HitTestTest) { | 65 TEST_F(BrowserAccessibilityTest, HitTestTest) { |
107 BrowserAccessibilityCocoa* firstChild = | 66 BrowserAccessibilityCocoa* firstChild = |
108 [accessibility_ accessibilityHitTest:NSMakePoint(50, 50)]; | 67 [accessibility_ accessibilityHitTest:NSMakePoint(50, 50)]; |
109 EXPECT_NSEQ(@"Child1", | 68 EXPECT_NSEQ(@"Child1", |
110 [firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute]); | 69 [firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute]); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 | 116 |
158 // Now any attributes we query should return nil. | 117 // Now any attributes we query should return nil. |
159 EXPECT_EQ(nil, [retainedFirstChild | 118 EXPECT_EQ(nil, [retainedFirstChild |
160 accessibilityAttributeValue:NSAccessibilityTitleAttribute]); | 119 accessibilityAttributeValue:NSAccessibilityTitleAttribute]); |
161 | 120 |
162 // Don't leak memory in the test. | 121 // Don't leak memory in the test. |
163 [retainedFirstChild release]; | 122 [retainedFirstChild release]; |
164 } | 123 } |
165 | 124 |
166 } // namespace content | 125 } // namespace content |
OLD | NEW |