Index: ios/web/public/test/earl_grey/web_view_matchers.mm |
diff --git a/ios/web/public/test/earl_grey/web_view_matchers.mm b/ios/web/public/test/earl_grey/web_view_matchers.mm |
index 24504095af9b1001ec0e0f6e5796bf116f43ac1f..116dde759392b543582665393df321f738245f6c 100644 |
--- a/ios/web/public/test/earl_grey/web_view_matchers.mm |
+++ b/ios/web/public/test/earl_grey/web_view_matchers.mm |
@@ -4,8 +4,6 @@ |
#import "ios/web/public/test/earl_grey/web_view_matchers.h" |
-#include <memory> |
- |
#import <WebKit/WebKit.h> |
#include "base/mac/bind_objc_block.h" |
@@ -15,6 +13,9 @@ |
#include "base/test/ios/wait_util.h" |
#include "base/values.h" |
#include "ios/testing/earl_grey/wait_util.h" |
+#import "ios/web/public/test/web_view_interaction_test_util.h" |
+ |
+using web::test::ExecuteJavaScript; |
namespace { |
@@ -24,34 +25,6 @@ char kGetDocumentBodyJavaScript[] = |
// Script that tests presence of css selector. |
char kTestCssSelectorJavaScriptTemplate[] = "!!document.querySelector(\"%s\");"; |
-// Synchronously returns the result of executed JavaScript. |
-std::unique_ptr<base::Value> ExecuteScript(web::WebState* web_state, |
- const std::string& script) { |
- __block std::unique_ptr<base::Value> result; |
- __block bool did_finish = false; |
- web_state->ExecuteJavaScript(base::UTF8ToUTF16(script), |
- base::BindBlock(^(const base::Value* value) { |
- if (value) |
- result = value->CreateDeepCopy(); |
- did_finish = true; |
- })); |
- |
- testing::WaitUntilCondition(testing::kWaitForJSCompletionTimeout, ^{ |
- return did_finish; |
- }); |
- |
- // As result is marked __block, this return call does a copy and not a move |
- // (marking the variable as __block mean it is allocated in the block object |
- // and not the stack). Since the "return std::move()" pattern is discouraged |
- // use a local variable. |
- // |
- // Fixes the following compilation failure: |
- // ../web_view_matchers.mm:ll:cc: error: call to implicitly-deleted copy |
- // constructor of 'std::unique_ptr<base::Value>' |
- std::unique_ptr<base::Value> stack_result = std::move(result); |
- return stack_result; |
-} |
- |
} // namespace |
namespace web { |
@@ -71,7 +44,8 @@ id<GREYMatcher> webViewInWebState(WebState* web_state) { |
autorelease]; |
} |
-id<GREYMatcher> webViewContainingText(std::string text, WebState* web_state) { |
+id<GREYMatcher> webViewContainingText(const std::string& text, |
Eugene But (OOO till 7-30)
2016/08/31 15:27:59
This should be string by value or local variable (
|
+ WebState* web_state) { |
MatchesBlock matches = ^BOOL(WKWebView*) { |
__block BOOL did_succeed = NO; |
NSDate* deadline = |
@@ -79,7 +53,7 @@ id<GREYMatcher> webViewContainingText(std::string text, WebState* web_state) { |
while (([[NSDate date] compare:deadline] != NSOrderedDescending) && |
!did_succeed) { |
std::unique_ptr<base::Value> value = |
- ExecuteScript(web_state, kGetDocumentBodyJavaScript); |
+ ExecuteJavaScript(web_state, kGetDocumentBodyJavaScript); |
std::string body; |
if (value && value->GetAsString(&body)) { |
did_succeed = body.find(text) != std::string::npos; |
@@ -102,7 +76,7 @@ id<GREYMatcher> webViewContainingText(std::string text, WebState* web_state) { |
nil); |
} |
-id<GREYMatcher> webViewContainingBlockedImage(std::string image_id, |
+id<GREYMatcher> webViewContainingBlockedImage(const std::string& image_id, |
Eugene But (OOO till 7-30)
2016/08/31 15:27:59
ditto
|
CGSize expected_size, |
WebState* web_state) { |
MatchesBlock matches = ^BOOL(WKWebView*) { |
@@ -120,7 +94,7 @@ id<GREYMatcher> webViewContainingBlockedImage(std::string image_id, |
@" width:imageWidth" |
@"});", |
base::SysUTF8ToNSString(image_id)]; |
- std::unique_ptr<base::Value> value = ExecuteScript( |
+ std::unique_ptr<base::Value> value = ExecuteJavaScript( |
web_state, base::SysNSStringToUTF8(kGetElementAttributesScript)); |
std::string result; |
if (value && value->GetAsString(&result)) { |
@@ -154,7 +128,8 @@ id<GREYMatcher> webViewContainingBlockedImage(std::string image_id, |
nil); |
} |
-id<GREYMatcher> webViewCssSelector(std::string selector, WebState* web_state) { |
+id<GREYMatcher> webViewCssSelector(const std::string& selector, |
Eugene But (OOO till 7-30)
2016/08/31 15:27:59
ditto
|
+ WebState* web_state) { |
MatchesBlock matches = ^BOOL(WKWebView*) { |
std::string script = base::StringPrintf(kTestCssSelectorJavaScriptTemplate, |
selector.c_str()); |
@@ -163,7 +138,7 @@ id<GREYMatcher> webViewCssSelector(std::string selector, WebState* web_state) { |
[NSDate dateWithTimeIntervalSinceNow:testing::kWaitForUIElementTimeout]; |
while (([[NSDate date] compare:deadline] != NSOrderedDescending) && |
!did_succeed) { |
- std::unique_ptr<base::Value> value = ExecuteScript(web_state, script); |
+ std::unique_ptr<base::Value> value = ExecuteJavaScript(web_state, script); |
if (value) |
value->GetAsBoolean(&did_succeed); |
base::test::ios::SpinRunLoopWithMaxDelay( |