| OLD | NEW |
| 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
| 6 | 6 |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "chrome/browser/cocoa/browser_accessibility.h" | 8 #include "chrome/browser/cocoa/browser_accessibility.h" |
| 9 #include "chrome/browser/cocoa/cocoa_test_helper.h" | 9 #include "chrome/browser/cocoa/cocoa_test_helper.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 root.location.width = 500; | 46 root.location.width = 500; |
| 47 root.location.height = 100; | 47 root.location.height = 100; |
| 48 root.attributes[WebAccessibility::ATTR_HELP] = ASCIIToUTF16("HelpText"); | 48 root.attributes[WebAccessibility::ATTR_HELP] = ASCIIToUTF16("HelpText"); |
| 49 | 49 |
| 50 WebAccessibility child1; | 50 WebAccessibility child1; |
| 51 child1.name = ASCIIToUTF16("Child1"); | 51 child1.name = ASCIIToUTF16("Child1"); |
| 52 child1.location.x = 0; | 52 child1.location.x = 0; |
| 53 child1.location.y = 0; | 53 child1.location.y = 0; |
| 54 child1.location.width = 250; | 54 child1.location.width = 250; |
| 55 child1.location.height = 100; | 55 child1.location.height = 100; |
| 56 | 56 |
| 57 WebAccessibility child2; | 57 WebAccessibility child2; |
| 58 child2.location.x = 250; | 58 child2.location.x = 250; |
| 59 child2.location.y = 0; | 59 child2.location.y = 0; |
| 60 child2.location.width = 250; | 60 child2.location.width = 250; |
| 61 child2.location.height = 100; | 61 child2.location.height = 100; |
| 62 | 62 |
| 63 root.children.push_back(child1); | 63 root.children.push_back(child1); |
| 64 root.children.push_back(child2); | 64 root.children.push_back(child2); |
| 65 | 65 |
| 66 delegate_.reset([[MockAccessibilityDelegate alloc] init]); | 66 delegate_.reset([[MockAccessibilityDelegate alloc] init]); |
| 67 accessibility_.reset( | 67 accessibility_.reset( |
| 68 [[BrowserAccessibility alloc] initWithObject:root | 68 [[BrowserAccessibility alloc] initWithObject:root |
| 69 delegate:delegate_ | 69 delegate:delegate_ |
| 70 parent:delegate_]); | 70 parent:delegate_]); |
| 71 } | 71 } |
| 72 | 72 |
| 73 protected: | 73 protected: |
| 74 scoped_nsobject<MockAccessibilityDelegate> delegate_; | 74 scoped_nsobject<MockAccessibilityDelegate> delegate_; |
| 75 scoped_nsobject<BrowserAccessibility> accessibility_; | 75 scoped_nsobject<BrowserAccessibility> accessibility_; |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 // Standard hit test. |
| 78 TEST_F(BrowserAccessibilityTest, HitTestTest) { | 79 TEST_F(BrowserAccessibilityTest, HitTestTest) { |
| 79 BrowserAccessibility* firstChild = | 80 BrowserAccessibility* firstChild = |
| 80 [accessibility_ accessibilityHitTest:NSMakePoint(50, 50)]; | 81 [accessibility_ accessibilityHitTest:NSMakePoint(50, 50)]; |
| 81 EXPECT_TRUE( | 82 EXPECT_TRUE( |
| 82 [[firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute] | 83 [[firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute] |
| 83 isEqualToString:@"Child1"]); | 84 isEqualToString:@"Child1"]); |
| 84 } | 85 } |
| 85 | 86 |
| 87 // Test doing a hit test on the edge of a child. |
| 88 TEST_F(BrowserAccessibilityTest, EdgeHitTest) { |
| 89 BrowserAccessibility* firstChild = |
| 90 [accessibility_ accessibilityHitTest:NSMakePoint(0, 0)]; |
| 91 EXPECT_TRUE( |
| 92 [[firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute] |
| 93 isEqualToString:@"Child1"]); |
| 94 } |
| 95 |
| 96 // This will test a hit test with invalid coordinates. It is assumed that |
| 97 // the hit test has been narrowed down to this object or one of its children |
| 98 // so it should return itself since it has no better hit result. |
| 99 TEST_F(BrowserAccessibilityTest, InvalidHitTestCoordsTest) { |
| 100 BrowserAccessibility* hitTestResult = |
| 101 [accessibility_ accessibilityHitTest:NSMakePoint(-50, 50)]; |
| 102 EXPECT_TRUE([accessibility_ isEqualTo:hitTestResult]); |
| 103 } |
| 104 |
| 105 // Test to ensure querying standard attributes works. |
| 86 TEST_F(BrowserAccessibilityTest, BasicAttributeTest) { | 106 TEST_F(BrowserAccessibilityTest, BasicAttributeTest) { |
| 87 NSString* helpText = [accessibility_ | 107 NSString* helpText = [accessibility_ |
| 88 accessibilityAttributeValue:NSAccessibilityHelpAttribute]; | 108 accessibilityAttributeValue:NSAccessibilityHelpAttribute]; |
| 89 EXPECT_TRUE([helpText isEqualToString: @"HelpText"]); | 109 EXPECT_TRUE([helpText isEqualToString: @"HelpText"]); |
| 90 } | 110 } |
| 111 |
| 112 // Test querying for an invalid attribute to ensure it doesn't crash. |
| 113 TEST_F(BrowserAccessibilityTest, InvalidAttributeTest) { |
| 114 NSString* shouldBeNil = [accessibility_ |
| 115 accessibilityAttributeValue:@"NSAnInvalidAttribute"]; |
| 116 EXPECT_TRUE(shouldBeNil == nil); |
| 117 } |
| OLD | NEW |