Chromium Code Reviews| Index: android_webview/javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java |
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..eb0b52fdf4508b1b5e0ca8d5f1c9d16ed198cdcf |
| --- /dev/null |
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwServiceWorkerClientTest.java |
| @@ -0,0 +1,82 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.android_webview.test; |
| + |
| +import android.test.suitebuilder.annotation.SmallTest; |
| + |
| +import org.chromium.android_webview.AwContents; |
| +import org.chromium.android_webview.AwContentsStatics; |
| +import org.chromium.content.browser.test.util.TestCallbackHelperContainer; |
| +import org.chromium.net.test.util.TestWebServer; |
| + |
| +/** |
| + * Tests Service Worker Client related APIs. |
| + */ |
| +public class AwServiceWorkerClientTest extends AwTestBase { |
| + |
| + private TestAwContentsClient mContentsClient; |
| + private AwContents mAwContents; |
| + private TestWebServer mWebServer; |
| + private AwTestContainerView mTestContainerView; |
| + private TestAwServiceWorkerClient mServiceWorkerClient; |
| + |
| + private static final String INDEX_HTML = |
| + "<!DOCTYPE html>\n" |
| + + "<html>\n" |
| + + " <body>\n" |
| + + " <script>\n" |
| + + " navigator.serviceWorker.register('sw.js');\n" |
| + + " </script>\n" |
| + + " </body>\n" |
| + + "</html>\n"; |
| + |
| + private static final String SW_HTML = |
| + "fetch('/sec-breach-nonexist.html').then(function(res) {\n" |
| + + " console.log(res);\n" |
| + + " res.text().then(function(res2) {\n" |
| + + " sometext = res2;\n" |
| + + " });\n" |
| + + "});\n"; |
| + |
| + @Override |
| + public void setUp() throws Exception { |
| + super.setUp(); |
| + mWebServer = TestWebServer.startSsl(); |
| + mContentsClient = new TestAwContentsClient(); |
| + mTestContainerView = createAwTestContainerViewOnMainSync(mContentsClient); |
| + mServiceWorkerClient = new TestAwServiceWorkerClient(); |
| + AwContentsStatics.setServiceWorkerClient(mServiceWorkerClient); |
| + |
| + mAwContents = mTestContainerView.getAwContents(); |
| + enableJavaScriptOnUiThread(mAwContents); |
| + } |
| + |
| + @Override |
| + protected void tearDown() throws Exception { |
| + if (mWebServer != null) mWebServer.shutdown(); |
| + super.tearDown(); |
| + } |
| + |
| + @SmallTest |
| + public void testInvokeInterceptCallback() throws Throwable { |
| + final String indexUrl = "/index.html"; |
| + final String indexHtml = INDEX_HTML; |
| + final String fullIndexUrl = mWebServer.setResponse(indexUrl, indexHtml, null); |
| + |
| + final String swUrl = "/sw.js"; |
| + final String swHtml = SW_HTML; |
| + final String fullSwUrl = mWebServer.setResponse(swUrl, swHtml, null); |
| + |
| + TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = |
| + mContentsClient.getOnPageFinishedHelper(); |
| + loadUrlSync(mAwContents, onPageFinishedHelper, fullIndexUrl); |
| + assertEquals(fullIndexUrl, onPageFinishedHelper.getUrl()); |
| + |
| + TestAwServiceWorkerClient.ShouldInterceptRequestHelper helper = |
| + mServiceWorkerClient.getShouldInterceptRequestHelper(); |
| + helper.waitForCallback(0); |
| + assertEquals(fullSwUrl, helper.getAwWebResourceRequest().url); |
|
mnaganov (inactive)
2016/01/12 00:42:03
What is ShouldInterceptRequest for a service worke
timvolodine
2016/01/13 17:07:58
In my view it should intercept all service worker
mnaganov (inactive)
2016/01/13 17:55:27
Perhaps JS is not enabled for service worker? JS e
timvolodine
2016/01/14 19:43:55
Did some more debugging today regarding the servic
|
| + } |
| +} |