Commit 455bf14a authored by Changwan Ryu's avatar Changwan Ryu Committed by Commit Bot

Add more tests around JsObjectName

Clarify that this is allowed.

Bug: 918065
Change-Id: Ibb593015218dbb391d2165bc724191a4654ac33d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1898476Reviewed-by: default avatarShimi Zhang <ctzsm@chromium.org>
Commit-Queue: Changwan Ryu <changwan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#712328}
parent e4b75039
...@@ -827,6 +827,40 @@ public class JsJavaInteractionTest { ...@@ -827,6 +827,40 @@ public class JsJavaInteractionTest {
Assert.assertTrue(mListener.hasNoMoreOnPostMessage()); Assert.assertTrue(mListener.hasNoMoreOnPostMessage());
} }
@Test
@SmallTest
@Feature({"AndroidWebView", "JsJavaInteraction"})
public void testPostMessage_JsObjectName_Number() throws Throwable {
checkInjectAndAccessJsObjectNameAsWindowProperty("123");
}
@Test
@SmallTest
@Feature({"AndroidWebView", "JsJavaInteraction"})
public void testPostMessage_JsObjectName_Keyword() throws Throwable {
checkInjectAndAccessJsObjectNameAsWindowProperty("var");
}
private void checkInjectAndAccessJsObjectNameAsWindowProperty(String jsObjName)
throws Throwable {
addWebMessageListenerOnUiThread(mAwContents, jsObjName, new String[] {"*"}, mListener);
String html = "<html><head><script>window['" + jsObjName + "'].postMessage('Hello');"
+ "</script></head><body><div>postMessage</div></body></html>";
mActivityTestRule.loadDataWithBaseUrlSync(mAwContents,
mContentsClient.getOnPageFinishedHelper(), html, "text/html", false,
"http://www.google.com", null);
TestWebMessageListener.Data data = mListener.waitForOnPostMessage();
Assert.assertEquals("http://www.google.com", data.mSourceOrigin.toString());
Assert.assertEquals(HELLO, data.mMessage);
Assert.assertTrue(data.mIsMainFrame);
Assert.assertEquals(0, data.mPorts.length);
Assert.assertTrue(mListener.hasNoMoreOnPostMessage());
}
private boolean isJsObjectInjectedWhenLoadingUrl( private boolean isJsObjectInjectedWhenLoadingUrl(
final String baseUrl, final String jsObjectName) throws Throwable { final String baseUrl, final String jsObjectName) throws Throwable {
mActivityTestRule.loadDataWithBaseUrlSync(mAwContents, mActivityTestRule.loadDataWithBaseUrlSync(mAwContents,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment