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

Side by Side Diff: ios/testing/earl_grey/matchers.mm

Issue 2275303004: Context menu egtests, plus related utilities. (Closed)
Patch Set: Reviewable. Created 4 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "ios/testing/earl_grey/matchers.h"
6
7 namespace testing {
8
9 id<GREYMatcher> contextMenuItemContainingText(NSString* text) {
10 // Both tablet and phone house context menu views inside an alert controller
11 // view (on tablet that view is itself inside a popover view).
12 id<GREYMatcher> context_menu_container =
13 grey_kindOfClass(NSClassFromString(@"_UIAlertControllerView"));
14
15 return grey_allOf(grey_ancestor(context_menu_container),
16 grey_interactable(),
17 grey_text(text),
18 nil);
19 }
20
21 id<GREYMatcher> elementToDismissContextMenu() {
22 UIUserInterfaceIdiom idiom = [[UIDevice currentDevice] userInterfaceIdiom];
23 if (idiom == UIUserInterfaceIdiomPad) {
24 // On iPad the context menu is dismissed by tapping on something
25 // that isn't the popover. The web controller container view is an easy
26 // choice, although it needs to be not-underneath the popover.
27 id<GREYMatcher> popover =
28 grey_kindOfClass(NSClassFromString(@"_UIPopoverView"));
29 return grey_allOf(grey_not(grey_ancestor(popover)),
30 grey_kindOfClass(
31 NSClassFromString(@"CRWWebControllerContainerView")),
Eugene But (OOO till 7-30) 2016/08/30 18:11:04 CRWWebControllerContainerView is a private web cla
baxley 2016/08/31 04:25:43 nit: grey_allOf is more efficient if the matchers
marq (ping after 24h) 2016/08/31 13:07:57 Done.
marq (ping after 24h) 2016/08/31 13:07:57 Yep, turns out UIKit makes this very easy by label
32 nil);
33 } else {
34 // On iPhone the context menu is dismissed by tapping on the "Cancel" item.
35 return contextMenuItemContainingText(@"Cancel");
Eugene But (OOO till 7-30) 2016/08/30 18:11:04 Can this string be localized somehow?
marq (ping after 24h) 2016/08/31 13:07:57 Yes, now callers pass in a string; if they use loc
36 }
37 }
38
39 } // namespace testing
40
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698