Search in sources :

Example 6 with WebView

use of android.webkit.WebView in project materialistic by hidroh.

the class WebFragmentLocalTest method testMenu.

@Test
public void testMenu() {
    TestWebItem item = new TestWebItem() {

        @NonNull
        @Override
        public String getType() {
            return STORY_TYPE;
        }

        @Override
        public String getId() {
            return "1";
        }

        @Override
        public String getUrl() {
            return String.format(HackerNewsClient.WEB_ITEM_PATH, "1");
        }

        @Override
        public String getDisplayedTitle() {
            return "Ask HN";
        }
    };
    Intent intent = new Intent();
    intent.putExtra(WebActivity.EXTRA_ITEM, item);
    controller.withIntent(intent).create().start().resume().visible();
    verify(itemManager).getItem(eq("1"), eq(ItemManager.MODE_DEFAULT), listener.capture());
    listener.getValue().onResponse(new TestItem() {

        @Override
        public String getText() {
            return "text";
        }
    });
    Fragment fragment = activity.getSupportFragmentManager().findFragmentByTag(WebFragment.class.getName());
    assertTrue(fragment.hasOptionsMenu());
    fragment.onOptionsItemSelected(new RoboMenuItem(R.id.menu_font_options));
    assertNotNull(ShadowDialog.getLatestDialog());
    PreferenceManager.getDefaultSharedPreferences(activity).edit().putString(activity.getString(R.string.pref_readability_font), "DroidSans.ttf").apply();
    WebView webView = (WebView) activity.findViewById(R.id.web_view);
    ShadowWebView shadowWebView = shadowOf(webView);
    shadowWebView.getWebViewClient().onPageFinished(webView, "about:blank");
    assertThat(shadowWebView.getLastLoadDataWithBaseURL().data).contains("text").contains("DroidSans.ttf");
}
Also used : ShadowWebView(org.robolectric.shadows.ShadowWebView) Intent(android.content.Intent) WebView(android.webkit.WebView) ShadowWebView(org.robolectric.shadows.ShadowWebView) Fragment(android.support.v4.app.Fragment) RoboMenuItem(org.robolectric.fakes.RoboMenuItem) TestWebItem(io.github.hidroh.materialistic.test.TestWebItem) TestItem(io.github.hidroh.materialistic.test.TestItem) Test(org.junit.Test)

Example 7 with WebView

use of android.webkit.WebView in project materialistic by hidroh.

the class WebFragmentLocalTest method testComment.

@Test
public void testComment() {
    TestItem item = new TestItem() {

        @NonNull
        @Override
        public String getType() {
            return COMMENT_TYPE;
        }

        @Override
        public String getId() {
            return "1";
        }

        @Override
        public String getUrl() {
            return String.format(HackerNewsClient.WEB_ITEM_PATH, "1");
        }

        @Override
        public String getText() {
            return "comment";
        }
    };
    Intent intent = new Intent();
    intent.putExtra(WebActivity.EXTRA_ITEM, item);
    controller.withIntent(intent).create().start().resume().visible();
    WebView webView = (WebView) activity.findViewById(R.id.web_view);
    ShadowWebView shadowWebView = shadowOf(webView);
    shadowWebView.getWebViewClient().onPageFinished(webView, "about:blank");
    assertThat(shadowWebView.getLastLoadDataWithBaseURL().data).contains("comment");
}
Also used : ShadowWebView(org.robolectric.shadows.ShadowWebView) Intent(android.content.Intent) WebView(android.webkit.WebView) ShadowWebView(org.robolectric.shadows.ShadowWebView) TestItem(io.github.hidroh.materialistic.test.TestItem) Test(org.junit.Test)

Example 8 with WebView

use of android.webkit.WebView in project materialistic by hidroh.

the class WebFragmentTest method testAdBlocker.

@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
@Test
public void testAdBlocker() {
    WebView webView = (WebView) activity.findViewById(R.id.web_view);
    WebViewClient client = shadowOf(webView).getWebViewClient();
    assertNull(client.shouldInterceptRequest(webView, "http://google.com"));
    assertNull(client.shouldInterceptRequest(webView, "http://google.com"));
    assertNotNull(client.shouldInterceptRequest(webView, "http://page2.g.doubleclick.net"));
    assertNotNull(client.shouldInterceptRequest(webView, "http://page2.g.doubleclick.net"));
}
Also used : WebView(android.webkit.WebView) ShadowWebView(io.github.hidroh.materialistic.test.shadow.ShadowWebView) WebViewClient(android.webkit.WebViewClient) Test(org.junit.Test) SuppressLint(android.annotation.SuppressLint)

Example 9 with WebView

use of android.webkit.WebView in project materialistic by hidroh.

the class WebFragmentTest method testProgressChanged.

@Test
public void testProgressChanged() {
    ProgressBar progressBar = (ProgressBar) activity.findViewById(R.id.progress);
    WebView webView = (WebView) activity.findViewById(R.id.web_view);
    shadowOf(webView).getWebChromeClient().onProgressChanged(webView, 50);
    assertThat(progressBar).isVisible();
    shadowOf(webView).getWebChromeClient().onProgressChanged(webView, 100);
    assertThat(progressBar).isNotVisible();
}
Also used : WebView(android.webkit.WebView) ShadowWebView(io.github.hidroh.materialistic.test.shadow.ShadowWebView) ProgressBar(android.widget.ProgressBar) Test(org.junit.Test)

Example 10 with WebView

use of android.webkit.WebView in project materialistic by hidroh.

the class OfflineWebActivityTest method testLoadUrl.

@Test
public void testLoadUrl() {
    activity = controller.withIntent(new Intent().putExtra(OfflineWebActivity.EXTRA_URL, "http://example.com")).create().get();
    assertThat(activity.getTitle()).contains("http://example.com");
    WebView webView = (WebView) activity.findViewById(R.id.web_view);
    View progress = activity.findViewById(R.id.progress);
    ShadowWebView shadowWebView = shadowOf(webView);
    assertThat(shadowWebView.getLastLoadedUrl()).contains("http://example.com");
    shadowWebView.getWebViewClient().onPageFinished(webView, "http://example.com");
    // web view title
    assertThat(activity.getTitle()).isNullOrEmpty();
    shadowWebView.getWebChromeClient().onProgressChanged(webView, 50);
    assertThat(progress).isVisible();
    shadowWebView.getWebChromeClient().onProgressChanged(webView, 100);
    assertThat(progress).isNotVisible();
}
Also used : ShadowWebView(org.robolectric.shadows.ShadowWebView) Intent(android.content.Intent) ShadowWebView(org.robolectric.shadows.ShadowWebView) WebView(android.webkit.WebView) ShadowNestedScrollView(io.github.hidroh.materialistic.test.shadow.ShadowNestedScrollView) ShadowWebView(org.robolectric.shadows.ShadowWebView) View(android.view.View) WebView(android.webkit.WebView) Test(org.junit.Test)

Aggregations

WebView (android.webkit.WebView)594 WebViewClient (android.webkit.WebViewClient)214 View (android.view.View)176 WebSettings (android.webkit.WebSettings)103 Intent (android.content.Intent)87 SuppressLint (android.annotation.SuppressLint)79 WebChromeClient (android.webkit.WebChromeClient)77 TextView (android.widget.TextView)61 Bitmap (android.graphics.Bitmap)55 LinearLayout (android.widget.LinearLayout)39 DialogInterface (android.content.DialogInterface)36 ImageView (android.widget.ImageView)35 WebResourceRequest (android.webkit.WebResourceRequest)32 Uri (android.net.Uri)31 Test (org.junit.Test)27 Bundle (android.os.Bundle)26 AlertDialog (android.app.AlertDialog)24 Activity (android.app.Activity)22 Handler (android.os.Handler)20 IOException (java.io.IOException)20