@Test public void shouldRecordWebViewClient() { WebViewClient webViewClient = new WebViewClient(); assertThat(shadowOf(webView).getWebViewClient()).isNull(); webView.setWebViewClient(webViewClient); assertThat(shadowOf(webView).getWebViewClient()).isSameAs(webViewClient); }
@Test public void testFontMenu() { verify(readabilityClient).parse(eq("1"), eq("http://example.com/article.html"), callback.capture()); callback.getValue().onResponse("<div>content</div>"); PreferenceManager.getDefaultSharedPreferences(activity) .edit() .putString(activity.getString(R.string.pref_readability_font), "DroidSans.ttf") .apply(); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowOf(webView).getLastLoadDataWithBaseURL().data).contains("DroidSans.ttf"); assertEquals("DroidSans.ttf", Preferences.Theme.getReadabilityTypeface(activity)); controller.pause().stop().destroy(); }
@Test public void testFontSizeMenu() { verify(readabilityClient).parse(eq("1"), eq("http://example.com/article.html"), callback.capture()); callback.getValue().onResponse("<div>content</div>"); fragment.onOptionsItemSelected(new RoboMenuItem(R.id.menu_font_options)); assertThat(fragment.getFragmentManager()) .hasFragmentWithTag(PopupSettingsFragment.class.getName()); PreferenceManager.getDefaultSharedPreferences(activity) .edit() .putString(activity.getString(R.string.pref_readability_text_size), "3") .apply(); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowOf(webView).getLastLoadDataWithBaseURL().data).contains("20"); assertEquals(R.style.AppTextSize_XLarge, Preferences.Theme.resolvePreferredReadabilityTextSize(activity)); controller.pause().stop().destroy(); }
@Test public void testWebToggle() { fragment.onOptionsItemSelected(new RoboMenuItem(R.id.menu_readability)); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowOf(webView).getLastLoadedUrl()).isEqualTo("http://example.com/article.html"); }
@Test public void testParseAndBind() { assertThat((View) activity.findViewById(R.id.progress)).isVisible(); verify(readabilityClient).parse(eq("1"), eq("http://example.com/article.html"), callback.capture()); callback.getValue().onResponse("<div>content</div>"); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowOf(webView).getLastLoadDataWithBaseURL().data).contains("content"); shadowOf(activity).recreate(); webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowOf(webView).getLastLoadDataWithBaseURL().data).contains("content"); controller.pause().stop().destroy(); }
@Test public void testParseFailed() { assertThat(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_font_options)).isNotVisible(); assertThat((View) activity.findViewById(R.id.progress)).isVisible(); verify(readabilityClient).parse(eq("1"), eq("http://example.com/article.html"), callback.capture()); callback.getValue().onResponse(null); reset(readabilityClient); assertThat(ShadowToast.getTextOfLatestToast()) .contains(activity.getString(R.string.readability_failed)); WebView webView = (WebView) activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(ShadowWebView.getLastGlobalLoadedUrl()) .contains("http://example.com/article.html"); assertThat(shadowOf(activity).getOptionsMenu().findItem(R.id.menu_font_options)).isNotVisible(); controller.pause().stop().destroy(); }
WebView webView = activity.findViewById(R.id.web_view); ShadowWebView shadowWebView = shadowOf(webView); shadowWebView.getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowWebView.getLastLoadDataWithBaseURL().data) .contains("text")
@Test public void testBackPressed() { WebView webView = activity.findViewById(R.id.web_view); shadowOf(webView).getWebViewClient().onPageFinished(webView, "http://example.com"); shadowOf(webView).setCanGoBack(true); assertTrue(activity.fragment.onBackPressed()); shadowOf(webView).setCanGoBack(false); assertFalse(activity.fragment.onBackPressed()); }
WebView webView = activity.findViewById(R.id.web_view); ShadowWebView shadowWebView = shadowOf(webView); shadowWebView.getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowWebView.getLastLoadDataWithBaseURL().data).contains("text");
WebView webView = activity.findViewById(R.id.web_view); ShadowWebView shadowWebView = shadowOf(webView); shadowWebView.getWebViewClient().onPageFinished(webView, "about:blank"); assertThat(shadowWebView.getLastLoadDataWithBaseURL().data).contains("comment");
@Test public void testLoadUrl() { controller = Robolectric.buildActivity(OfflineWebActivity.class, new Intent() .putExtra(OfflineWebActivity.EXTRA_URL, "http://example.com")); activity = controller .create() .get(); assertThat(activity.getTitle()).contains("http://example.com"); 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"); assertThat(activity.getTitle()).isNullOrEmpty(); // web view title shadowWebView.getWebChromeClient().onProgressChanged(webView, 50); assertThat(progress).isVisible(); shadowWebView.getWebChromeClient().onProgressChanged(webView, 100); assertThat(progress).isNotVisible(); }
@Test public void testLoadUrl() throws Exception { String url = "http://www.taobao.com"; view.loadUrl(url); WebViewClient client = shadow.getWebViewClient(); client.onPageStarted(webView,url,null); client.onPageFinished(webView,url); WebChromeClient chromeClient = shadow.getWebChromeClient(); chromeClient.onProgressChanged(webView,10); chromeClient.onProgressChanged(webView,100); chromeClient.onReceivedTitle(webView,"test"); }