Class ShadowWebView
- java.lang.Object
-
- org.robolectric.shadows.ShadowView
-
- org.robolectric.shadows.ShadowViewGroup
-
- org.robolectric.shadows.ShadowWebView
-
@Implements(android.webkit.WebView.class) public class ShadowWebView extends ShadowViewGroup
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classShadowWebView.LoadDatastatic classShadowWebView.LoadDataWithBaseURL-
Nested classes/interfaces inherited from class org.robolectric.shadows.ShadowView
ShadowView.WindowIdHelper
-
-
Field Summary
-
Fields inherited from class org.robolectric.shadows.ShadowViewGroup
realViewGroup
-
Fields inherited from class org.robolectric.shadows.ShadowView
attributeSet, realView, scrollToCoordinates
-
-
Constructor Summary
Constructors Constructor Description ShadowWebView()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected voidaddJavascriptInterface(java.lang.Object obj, java.lang.String interfaceName)protected booleancanGoBack()protected booleancanGoForward()protected voidclearCache(boolean includeDiskFiles)protected voidclearFormData()protected voidclearHistory()protected voidclearView()protected android.webkit.WebBackForwardListcopyBackForwardList()static android.webkit.WebView.HitTestResultcreateHitTestResult(int type, java.lang.String extra)Creates an instance ofWebView.HitTestResult.protected voiddestroy()booleandidClearCacheIncludeDiskFiles()voidensureProviderCreated()protected voidevaluateJavascript(java.lang.String script, android.webkit.ValueCallback<java.lang.String> callback)protected static java.lang.StringfindAddress(java.lang.String addr)protected static android.content.pm.PackageInfogetCurrentWebViewPackage()Overrides the system implementation for getting the WebView package.intgetGoBackInvocations()Returns the number of timesandroid.webkit.WebView#goBack()was invoked.intgetGoForwardInvocations()Returns the number of timesandroid.webkit.WebView#goForward()was invoked.protected android.webkit.WebView.HitTestResultgetHitTestResult()java.lang.ObjectgetJavascriptInterface(java.lang.String interfaceName)java.util.Map<java.lang.String,java.lang.String>getLastAdditionalHttpHeaders()java.lang.StringgetLastEvaluatedJavascript()ShadowWebView.LoadDatagetLastLoadData()ShadowWebView.LoadDataWithBaseURLgetLastLoadDataWithBaseURL()java.lang.StringgetLastLoadedUrl()protected java.lang.StringgetOriginalUrl()intgetReloadInvocations()Returns the number of timesandroid.webkit.WebView#reload()was invokedprotected android.webkit.WebSettingsgetSettings()protected java.lang.StringgetTitle()protected java.lang.StringgetUrl()android.webkit.WebChromeClientgetWebChromeClient()android.webkit.WebViewClientgetWebViewClient()protected voidgoBack()protected voidgoBackOrForward(int steps)protected voidgoForward()protected voidloadData(java.lang.String data, java.lang.String mimeType, java.lang.String encoding)protected voidloadDataWithBaseURL(java.lang.String baseUrl, java.lang.String data, java.lang.String mimeType, java.lang.String encoding, java.lang.String historyUrl)protected voidloadUrl(java.lang.String url)protected voidloadUrl(java.lang.String url, java.util.Map<java.lang.String,java.lang.String> additionalHttpHeaders)Fires a request to load the givenurlin WebView.protected voidonPause()protected voidonResume()voidperformNoPageLoadClientCallbacks()Performs no callbacks onWebViewClientandWebChromeClientwhen any ofloadUrl(java.lang.String),loadData(java.lang.String,java.lang.String,java.lang.String)orloadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)is called.voidperformSuccessfulPageLoadClientCallbacks()Performs callbacks onWebViewClientandWebChromeClientthat simulates a successful page load when any ofloadUrl(java.lang.String),loadData(java.lang.String,java.lang.String,java.lang.String)orloadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)is called.voidpushEntryToHistory(java.lang.String url)Pushes an entry to the history with the givenurl.protected voidreload()protected voidremoveJavascriptInterface(java.lang.String name)static voidreset()protected android.webkit.WebBackForwardListrestoreState(android.os.Bundle inState)protected android.webkit.WebBackForwardListsaveState(android.os.Bundle outState)voidsetCanGoBack(boolean canGoBack)Deprecated.Do not depend on this method as it will be removed in a future update.static voidsetCurrentWebViewPackage(android.content.pm.PackageInfo webViewPackageInfo)Sets the value to return from#getCurrentWebviewPackage().voidsetHitTestResult(android.webkit.WebView.HitTestResult hitTestResult)Sets theWebView.HitTestResultthat should be returned fromgetHitTestResult().protected voidsetLayoutParams(android.view.ViewGroup.LayoutParams params)protected voidsetWebChromeClient(android.webkit.WebChromeClient client)static voidsetWebContentsDebuggingEnabled(boolean enabled)protected voidsetWebViewClient(android.webkit.WebViewClient client)booleanwasClearCacheCalled()booleanwasClearFormDataCalled()booleanwasClearHistoryCalled()booleanwasClearViewCalled()booleanwasDestroyCalled()booleanwasOnPauseCalled()booleanwasOnResumeCalled()-
Methods inherited from class org.robolectric.shadows.ShadowViewGroup
addView, dump, getDisallowInterceptTouchEvent, getInterceptedTouchEvent, innerText, onInterceptTouchEvent, removedChild, requestDisallowInterceptTouchEvent
-
Methods inherited from class org.robolectric.shadows.ShadowView
__constructor__, addOnAttachStateChangeListener, callOnAttachedToWindow, callOnDetachedFromWindow, checkedPerformClick, clearWasInvalidated, clickOn, didRequestLayout, draw, dump, dump, dumpAttribute, dumpAttributes, dumpFirstPart, dumpIndent, getGlobalVisibleRect, getLastTouchEvent, getLayerType, getOnAttachStateChangeListeners, getOnClickListener, getOnCreateContextMenuListener, getOnLongClickListener, getOnSystemUiVisibilityChangeListener, getOnTouchListener, getScrollX, getScrollY, getWindowDisplayFrame, getWindowId, getWindowVisibleDisplayFrame, innerText, invalidate, isAttachedToWindow, lastHapticFeedbackPerformed, onLayout, onLayoutWasCalled, onTouchEvent, performHapticFeedback, post, postDelayed, postInvalidateDelayed, removeCallbacks, removeOnAttachStateChangeListener, requestLayout, scrollBy, scrollTo, setAnimation, setDidRequestLayout, setGlobalVisibleRect, setLayerType, setMyParent, setOnClickListener, setOnCreateContextMenuListener, setOnFocusChangeListener, setOnLongClickListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setScrollX, setScrollY, setViewFocus, visualize, wasInvalidated
-
-
-
-
Method Detail
-
ensureProviderCreated
@HiddenApi @Implementation public void ensureProviderCreated()
-
setLayoutParams
@Implementation protected void setLayoutParams(android.view.ViewGroup.LayoutParams params)
-
loadUrl
@Implementation protected void loadUrl(java.lang.String url)
-
loadUrl
@Implementation protected void loadUrl(java.lang.String url, java.util.Map<java.lang.String,java.lang.String> additionalHttpHeaders)Fires a request to load the givenurlin WebView.The
urlis is not added to the history untilpushEntryToHistory(String)is called. If you want to simulate a redirect you can pass the redirect URL topushEntryToHistory(String).
-
loadDataWithBaseURL
@Implementation protected void loadDataWithBaseURL(java.lang.String baseUrl, java.lang.String data, java.lang.String mimeType, java.lang.String encoding, java.lang.String historyUrl)
-
loadData
@Implementation protected void loadData(java.lang.String data, java.lang.String mimeType, java.lang.String encoding)
-
pushEntryToHistory
public void pushEntryToHistory(java.lang.String url)
Pushes an entry to the history with the givenurl.This method can be used after a
loadUrl(String)call to push that navigation into the history. This matches the prod behaviour of WebView, a navigation is never committed to history inline and can take an arbitrary amount of time depending on the network connection. Notice that the givenurldoes not need to match that of theloadUrl(String)as URL can be changed e.g. through server-side redirects without WebView being notified by the time it is committed.This method can also be used to simulate navigations started by user interaction, as these would still add an entry to the history themselves.
If there are any entries ahead of the current index (for forward navigation) these are removed.
-
performNoPageLoadClientCallbacks
public void performNoPageLoadClientCallbacks()
Performs no callbacks onWebViewClientandWebChromeClientwhen any ofloadUrl(java.lang.String),loadData(java.lang.String,java.lang.String,java.lang.String)orloadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)is called.
-
performSuccessfulPageLoadClientCallbacks
public void performSuccessfulPageLoadClientCallbacks()
Performs callbacks onWebViewClientandWebChromeClientthat simulates a successful page load when any ofloadUrl(java.lang.String),loadData(java.lang.String,java.lang.String,java.lang.String)orloadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)is called.
-
getLastLoadedUrl
public java.lang.String getLastLoadedUrl()
- Returns:
- the last loaded url
-
getOriginalUrl
@Implementation protected java.lang.String getOriginalUrl()
-
getUrl
@Implementation protected java.lang.String getUrl()
-
getTitle
@Implementation protected java.lang.String getTitle()
-
getLastAdditionalHttpHeaders
public java.util.Map<java.lang.String,java.lang.String> getLastAdditionalHttpHeaders()
- Returns:
- the additional Http headers that in the same request with last loaded url
-
getSettings
@Implementation protected android.webkit.WebSettings getSettings()
-
setWebViewClient
@Implementation protected void setWebViewClient(android.webkit.WebViewClient client)
-
setWebChromeClient
@Implementation protected void setWebChromeClient(android.webkit.WebChromeClient client)
-
getWebViewClient
public android.webkit.WebViewClient getWebViewClient()
-
addJavascriptInterface
@Implementation protected void addJavascriptInterface(java.lang.Object obj, java.lang.String interfaceName)
-
getJavascriptInterface
public java.lang.Object getJavascriptInterface(java.lang.String interfaceName)
-
removeJavascriptInterface
@Implementation protected void removeJavascriptInterface(java.lang.String name)
-
clearCache
@Implementation protected void clearCache(boolean includeDiskFiles)
-
wasClearCacheCalled
public boolean wasClearCacheCalled()
-
didClearCacheIncludeDiskFiles
public boolean didClearCacheIncludeDiskFiles()
-
clearFormData
@Implementation protected void clearFormData()
-
wasClearFormDataCalled
public boolean wasClearFormDataCalled()
-
clearHistory
@Implementation protected void clearHistory()
-
wasClearHistoryCalled
public boolean wasClearHistoryCalled()
-
reload
@Implementation protected void reload()
-
getReloadInvocations
public int getReloadInvocations()
Returns the number of timesandroid.webkit.WebView#reload()was invoked
-
clearView
@Implementation protected void clearView()
-
wasClearViewCalled
public boolean wasClearViewCalled()
-
onPause
@Implementation protected void onPause()
-
wasOnPauseCalled
public boolean wasOnPauseCalled()
-
onResume
@Implementation protected void onResume()
-
wasOnResumeCalled
public boolean wasOnResumeCalled()
-
destroy
@Implementation protected void destroy()
-
wasDestroyCalled
public boolean wasDestroyCalled()
-
getWebChromeClient
public android.webkit.WebChromeClient getWebChromeClient()
- Returns:
- webChromeClient
-
canGoBack
@Implementation protected boolean canGoBack()
-
canGoForward
@Implementation protected boolean canGoForward()
-
goBack
@Implementation protected void goBack()
-
goForward
@Implementation protected void goForward()
-
goBackOrForward
@Implementation protected void goBackOrForward(int steps)
-
copyBackForwardList
@Implementation protected android.webkit.WebBackForwardList copyBackForwardList()
-
findAddress
@Implementation protected static java.lang.String findAddress(java.lang.String addr)
-
getCurrentWebViewPackage
@Implementation(minSdk=26) protected static android.content.pm.PackageInfo getCurrentWebViewPackage()
Overrides the system implementation for getting the WebView package.Returns null by default, but this can be changed with
#setCurrentWebviewPackage().
-
setCurrentWebViewPackage
public static void setCurrentWebViewPackage(android.content.pm.PackageInfo webViewPackageInfo)
Sets the value to return from#getCurrentWebviewPackage().
-
evaluateJavascript
@Implementation(minSdk=19) protected void evaluateJavascript(java.lang.String script, android.webkit.ValueCallback<java.lang.String> callback)
-
getLastEvaluatedJavascript
public java.lang.String getLastEvaluatedJavascript()
-
setCanGoBack
@Deprecated public void setCanGoBack(boolean canGoBack)
Deprecated.Do not depend on this method as it will be removed in a future update. The preferered method is to populate a fake web history to use for going back.Sets the value to return fromandroid.webkit.WebView#canGoBack()- Parameters:
canGoBack- Value to return fromandroid.webkit.WebView#canGoBack()
-
getGoBackInvocations
public int getGoBackInvocations()
Returns the number of timesandroid.webkit.WebView#goBack()was invoked.
-
getGoForwardInvocations
public int getGoForwardInvocations()
Returns the number of timesandroid.webkit.WebView#goForward()was invoked.
-
getLastLoadData
public ShadowWebView.LoadData getLastLoadData()
-
getLastLoadDataWithBaseURL
public ShadowWebView.LoadDataWithBaseURL getLastLoadDataWithBaseURL()
-
saveState
@Implementation protected android.webkit.WebBackForwardList saveState(android.os.Bundle outState)
-
restoreState
@Implementation protected android.webkit.WebBackForwardList restoreState(android.os.Bundle inState)
-
getHitTestResult
@Implementation protected android.webkit.WebView.HitTestResult getHitTestResult()
-
createHitTestResult
public static android.webkit.WebView.HitTestResult createHitTestResult(int type, java.lang.String extra)Creates an instance ofWebView.HitTestResult.
-
setHitTestResult
public void setHitTestResult(android.webkit.WebView.HitTestResult hitTestResult)
Sets theWebView.HitTestResultthat should be returned fromgetHitTestResult().
-
reset
@Resetter public static void reset()
-
setWebContentsDebuggingEnabled
public static void setWebContentsDebuggingEnabled(boolean enabled)
-
-