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

Unified Diff: chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm

Issue 124383010: [rAC] Allow clickthrough for SuggestionView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added unit test. Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/cocoa/autofill/autofill_suggestion_container.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm b/chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm
index 9ab03180ff4d881a83d047d9891b373287e6cdeb..fef2fdceef416c910388839f06d2e1ebd244596b 100644
--- a/chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm
+++ b/chrome/browser/ui/cocoa/autofill/autofill_suggestion_container_unittest.mm
@@ -16,10 +16,12 @@ class AutofillSuggestionContainerTest : public ui::CocoaTest {
CocoaTest::SetUp();
container_.reset([[AutofillSuggestionContainer alloc] init]);
[[test_window() contentView] addSubview:[container_ view]];
+ view_ = [container_ view];
}
protected:
base::scoped_nsobject<AutofillSuggestionContainer> container_;
+ NSView* view_;
};
} // namespace
@@ -44,3 +46,51 @@ TEST_F(AutofillSuggestionContainerTest, HasSubviews) {
EXPECT_TRUE(has_text_view);
EXPECT_TRUE(has_edit_field);
}
+
+// Test that mouse events outside the input field are ignored.
+TEST_F(AutofillSuggestionContainerTest, HitTestInputField) {
+ base::scoped_nsobject<NSImage> icon(
+ [[NSImage alloc] initWithSize:NSMakeSize(16, 16)]);
+ [container_ setSuggestionWithVerticallyCompactText:@"suggest"
+ horizontallyCompactText:@"suggest"
+ icon:nil
+ maxWidth:200];
+ [container_ showInputField:@"input" withIcon:icon];
+ [view_ setFrameSize:[container_ preferredSize]];
+ [container_ performLayout];
+
+ // Point not touching any subviews, in |view_|'s coordinate system.
+ NSPoint pointOutsideSubviews =
Robert Sesek 2014/01/08 14:50:19 naming: under_scores (also update the comments)
groby-ooo-7-16 2014/01/08 19:20:58 Done.
+ NSMakePoint(NSMinX([view_ bounds]), NSMaxY([view_ bounds]) - 1);
+ NSPoint pointInsideTextView = NSZeroPoint;
+
+ // hitTests on all inputs should be false, except for the inputField.
+ for (id fieldView in [view_ subviews]) {
Robert Sesek 2014/01/08 14:50:19 naming: field_view
groby-ooo-7-16 2014/01/08 19:20:58 Done.
+ // Ensure |pointOutsideSubviews| really is outside subviews.
+ ASSERT_FALSE([fieldView hitTest:pointOutsideSubviews]);
+
+ // Compute center of |fieldView| in |view_|'s parent coordinate system.
+ NSPoint point =
+ [view_ convertPoint:NSMakePoint(NSMidX([fieldView frame]),
+ NSMidY([fieldView frame]))
+ toView:[view_ superview]];
+ if (fieldView == [container_ inputField]) {
+ pointInsideTextView = point;
+ EXPECT_TRUE([view_ hitTest:point]);
+ } else {
+ EXPECT_FALSE([view_ hitTest:point]);
+ }
+ }
+
+ // Mouse events directly on the main view should be ignored.
+ EXPECT_FALSE([view_ hitTest:
+ [view_ convertPoint:pointOutsideSubviews
+ toView:[view_ superview]]]);
+
+ // Mouse events on the text view's editor should propagate.
+ [[view_ window] makeFirstResponder:[container_ inputField]];
+ NSView* editorView = [view_ hitTest:pointInsideTextView];
+ ASSERT_NE(editorView, [container_ inputField]);
Robert Sesek 2014/01/08 14:50:19 Generally stick with EXPECT_ unless you need to st
groby-ooo-7-16 2014/01/08 19:20:58 This was intentional - it confirms a precondition
+ ASSERT_TRUE([editorView isDescendantOf:[container_ inputField]]);
+ EXPECT_TRUE(editorView);
+}
« no previous file with comments | « chrome/browser/ui/cocoa/autofill/autofill_suggestion_container.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698