Index: chrome/browser/cocoa/browser_accessibility_unittest.mm |
diff --git a/chrome/browser/cocoa/browser_accessibility_unittest.mm b/chrome/browser/cocoa/browser_accessibility_unittest.mm |
index 2fa93e0e3303d0bfade8d33d3a9d20f30b72a421..a44942e19dd507a5584a92c93c6d736ca2e04f24 100644 |
--- a/chrome/browser/cocoa/browser_accessibility_unittest.mm |
+++ b/chrome/browser/cocoa/browser_accessibility_unittest.mm |
@@ -53,28 +53,29 @@ class BrowserAccessibilityTest : public CocoaTest { |
child1.location.y = 0; |
child1.location.width = 250; |
child1.location.height = 100; |
- |
+ |
WebAccessibility child2; |
child2.location.x = 250; |
child2.location.y = 0; |
child2.location.width = 250; |
child2.location.height = 100; |
- |
+ |
root.children.push_back(child1); |
- root.children.push_back(child2); |
- |
+ root.children.push_back(child2); |
+ |
delegate_.reset([[MockAccessibilityDelegate alloc] init]); |
accessibility_.reset( |
[[BrowserAccessibility alloc] initWithObject:root |
delegate:delegate_ |
parent:delegate_]); |
} |
- |
+ |
protected: |
scoped_nsobject<MockAccessibilityDelegate> delegate_; |
scoped_nsobject<BrowserAccessibility> accessibility_; |
}; |
+// Standard hit test. |
TEST_F(BrowserAccessibilityTest, HitTestTest) { |
BrowserAccessibility* firstChild = |
[accessibility_ accessibilityHitTest:NSMakePoint(50, 50)]; |
@@ -83,8 +84,34 @@ TEST_F(BrowserAccessibilityTest, HitTestTest) { |
isEqualToString:@"Child1"]); |
} |
+// Test doing a hit test on the edge of a child. |
+TEST_F(BrowserAccessibilityTest, EdgeHitTest) { |
+ BrowserAccessibility* firstChild = |
+ [accessibility_ accessibilityHitTest:NSMakePoint(0, 0)]; |
+ EXPECT_TRUE( |
+ [[firstChild accessibilityAttributeValue:NSAccessibilityTitleAttribute] |
+ isEqualToString:@"Child1"]); |
+} |
+ |
+// This will test a hit test with invalid coordinates. It is assumed that |
+// the hit test has been narrowed down to this object or one of its children |
+// so it should return itself since it has no better hit result. |
+TEST_F(BrowserAccessibilityTest, InvalidHitTestCoordsTest) { |
+ BrowserAccessibility* hitTestResult = |
+ [accessibility_ accessibilityHitTest:NSMakePoint(-50, 50)]; |
+ EXPECT_TRUE([accessibility_ isEqualTo:hitTestResult]); |
+} |
+ |
+// Test to ensure querying standard attributes works. |
TEST_F(BrowserAccessibilityTest, BasicAttributeTest) { |
NSString* helpText = [accessibility_ |
accessibilityAttributeValue:NSAccessibilityHelpAttribute]; |
EXPECT_TRUE([helpText isEqualToString: @"HelpText"]); |
} |
+ |
+// Test querying for an invalid attribute to ensure it doesn't crash. |
+TEST_F(BrowserAccessibilityTest, InvalidAttributeTest) { |
+ NSString* shouldBeNil = [accessibility_ |
+ accessibilityAttributeValue:@"NSAnInvalidAttribute"]; |
+ EXPECT_TRUE(shouldBeNil == nil); |
+} |