| 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 |