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

Side by Side Diff: ios/web/shell/test/pdf_egtest.mm

Issue 2448753002: Refactor wait_util so it isn't coupled to EarlGrey. (Closed)
Patch Set: cleanup Created 4 years, 1 month 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 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 <EarlGrey/EarlGrey.h> 5 #import <EarlGrey/EarlGrey.h>
6 6
7 #include "base/test/ios/wait_util.h" 7 #include "base/test/ios/wait_util.h"
8 #include "ios/testing/earl_grey/wait_util.h" 8 #include "ios/testing/wait_util.h"
9 #import "ios/web/public/test/earl_grey/web_view_matchers.h" 9 #import "ios/web/public/test/earl_grey/web_view_matchers.h"
10 #import "ios/web/public/test/http_server.h" 10 #import "ios/web/public/test/http_server.h"
11 #include "ios/web/public/test/http_server_util.h" 11 #include "ios/web/public/test/http_server_util.h"
12 #import "ios/web/shell/test/app/web_shell_test_util.h" 12 #import "ios/web/shell/test/app/web_shell_test_util.h"
13 #import "ios/web/shell/test/earl_grey/shell_base_test_case.h" 13 #import "ios/web/shell/test/earl_grey/shell_base_test_case.h"
14 #import "ios/web/shell/test/earl_grey/shell_earl_grey.h" 14 #import "ios/web/shell/test/earl_grey/shell_earl_grey.h"
15 15
16 #if !defined(__has_feature) || !__has_feature(objc_arc) 16 #if !defined(__has_feature) || !__has_feature(objc_arc)
17 #error "This file requires ARC support." 17 #error "This file requires ARC support."
18 #endif 18 #endif
19 19
20 namespace { 20 namespace {
21 // URL spec for test PDF page. 21 // URL spec for test PDF page.
22 const char kTestPDFURL[] = 22 const char kTestPDFURL[] =
23 "http://ios/web/shell/test/http_server_files/testpage.pdf"; 23 "http://ios/web/shell/test/http_server_files/testpage.pdf";
24 24
25 // Matcher for WKWebView displaying PDF. 25 // Matcher for WKWebView displaying PDF.
26 id<GREYMatcher> webViewWithPdf() { 26 id<GREYMatcher> webViewWithPdf() {
27 web::WebState* web_state = web::shell_test_util::GetCurrentWebState(); 27 web::WebState* web_state = web::shell_test_util::GetCurrentWebState();
28 MatchesBlock matches = ^BOOL(UIView* view) { 28 MatchesBlock matches = ^BOOL(UIView* view) {
29 __block BOOL did_succeed = NO; 29 return testing::WaitUntilConditionOrTimeout(
30 NSDate* deadline = 30 testing::kWaitForUIElementTimeout, ^bool() {
Eugene But (OOO till 7-30) 2016/10/25 14:43:39 Optional nit: You don't need |bool() |
baxley 2016/10/25 18:50:05 Done.
31 [NSDate dateWithTimeIntervalSinceNow:testing::kWaitForUIElementTimeout]; 31 return web_state->GetContentsMimeType() == "application/pdf";
32 while ([[NSDate date] compare:deadline] != NSOrderedDescending) { 32 });
33 if (web_state->GetContentsMimeType() == "application/pdf") {
34 did_succeed = YES;
35 break;
36 }
37 base::test::ios::SpinRunLoopWithMaxDelay(
38 base::TimeDelta::FromSecondsD(testing::kSpinDelaySeconds));
39 }
40 return did_succeed;
41 }; 33 };
42 34
43 DescribeToBlock describe = ^(id<GREYDescription> description) { 35 DescribeToBlock describe = ^(id<GREYDescription> description) {
44 [description appendText:@"web view with PDF"]; 36 [description appendText:@"web view with PDF"];
45 }; 37 };
46 38
47 return grey_allOf( 39 return grey_allOf(
48 webViewInWebState(web_state), 40 webViewInWebState(web_state),
49 [[GREYElementMatcherBlock alloc] initWithMatchesBlock:matches 41 [[GREYElementMatcherBlock alloc] initWithMatchesBlock:matches
50 descriptionBlock:describe], 42 descriptionBlock:describe],
(...skipping 12 matching lines...) Expand all
63 55
64 // Tests MIME type of the loaded PDF document. 56 // Tests MIME type of the loaded PDF document.
65 - (void)testMIMEType { 57 - (void)testMIMEType {
66 web::test::SetUpFileBasedHttpServer(); 58 web::test::SetUpFileBasedHttpServer();
67 [ShellEarlGrey loadURL:HttpServer::MakeUrl(kTestPDFURL)]; 59 [ShellEarlGrey loadURL:HttpServer::MakeUrl(kTestPDFURL)];
68 [[EarlGrey selectElementWithMatcher:webViewWithPdf()] 60 [[EarlGrey selectElementWithMatcher:webViewWithPdf()]
69 assertWithMatcher:grey_notNil()]; 61 assertWithMatcher:grey_notNil()];
70 } 62 }
71 63
72 @end 64 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698