1f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesipackage android.webkit;
20189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
3f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesiimport com.xtremelabs.robolectric.internal.DoNotInstrument;
40189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphreyimport com.xtremelabs.robolectric.internal.Implementation;
540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
6f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi/**
7f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi * Concrete implementation of the abstract WebSettings class.
8f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi */
9f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi@DoNotInstrument
10f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesipublic class TestWebSettings extends WebSettings {
11f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
1240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean allowFileAccess = true;
13f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi    private boolean allowFileAccessFromFile = true;
14f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi    private boolean allowUniversalAccessFromFile = true;
1540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean blockNetworkImage = false;
1640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean blockNetworkLoads = false;
1740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean builtInZoomControls = true;
1840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean databaseEnabled = false;
1940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean domStorageEnabled = false;
2040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean javaScriptEnabled = false;
2140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean lightTouchEnabled = false;
2240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean loadWithOverviewMode = false;
2340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean needInitialFocus = false;
2440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean pluginsEnabled = false;
2540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private WebSettings.PluginState pluginState = WebSettings.PluginState.OFF;
2640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean supportMultipleWindows = false;
2740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private boolean supportZoom = true;
2840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
29f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	public TestWebSettings() {
30f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	}
31f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
32f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	@Override
33f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	public boolean getAllowFileAccessFromFileURLs() {
34f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi		return allowFileAccessFromFile;
35f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	}
36f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
37f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	@Override
38f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	public boolean getAllowUniversalAccessFromFileURLs() {
39f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi		return allowUniversalAccessFromFile;
40f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	}
41f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
42f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	@Override
43f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	public void setAllowFileAccessFromFileURLs(boolean allow) {
44f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi		allowFileAccessFromFile = allow;
45f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	}
46f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
47f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	@Override
48f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	public void setAllowUniversalAccessFromFileURLs(boolean allow) {
49f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi		allowUniversalAccessFromFile = allow;
50f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi	}
51f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi
520189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
530189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getAllowFileAccess() {
5440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return allowFileAccess;
550189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
560189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
570189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
580189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setAllowFileAccess(boolean allow) {
5940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        allowFileAccess = allow;
600189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
6140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
620189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
630189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getBlockNetworkImage() {
6440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return blockNetworkImage;
650189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
6640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
670189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
680189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setBlockNetworkImage(boolean flag) {
6940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        blockNetworkImage = flag;
700189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
7140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
720189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
730189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getBlockNetworkLoads() {
7440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return blockNetworkLoads;
750189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
7640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
770189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
780189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setBlockNetworkLoads(boolean flag) {
7940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        blockNetworkLoads = flag;
800189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
8140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
820189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
830189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getBuiltInZoomControls() {
8440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return builtInZoomControls;
850189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
860189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
870189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
880189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setBuiltInZoomControls(boolean enabled) {
8940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        builtInZoomControls = enabled;
900189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
9140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
920189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
930189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getDatabaseEnabled() {
9440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return databaseEnabled;
950189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
9640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
970189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
980189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setDatabaseEnabled(boolean flag) {
9940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        databaseEnabled = flag;
1000189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
1010189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
1020189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1030189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getDomStorageEnabled() {
10440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return domStorageEnabled;
1050189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
10640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1070189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1080189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setDomStorageEnabled(boolean flag) {
10940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        domStorageEnabled = flag;
1100189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
1110189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
1120189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1130189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getJavaScriptEnabled() {
11440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return javaScriptEnabled;
1150189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
11640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1170189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1180189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setJavaScriptEnabled(boolean flag) {
11940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        javaScriptEnabled = flag;
12040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1210189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
1220189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1230189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getLightTouchEnabled() {
12440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return lightTouchEnabled;
1250189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
12640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1270189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1280189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setLightTouchEnabled(boolean flag) {
12940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        lightTouchEnabled = flag;
13040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1310189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
1320189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1330189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getLoadWithOverviewMode() {
13440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return loadWithOverviewMode;
1350189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
13640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1370189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1380189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setLoadWithOverviewMode(boolean flag) {
13940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        loadWithOverviewMode = flag;
14040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1410189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
1420189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getNeedInitialFocus() {
14340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return needInitialFocus;
1440189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
14540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1460189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1470189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setNeedInitialFocus(boolean flag) {
14840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        needInitialFocus = flag;
14940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
15040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1510189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1520189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized boolean getPluginsEnabled() {
15340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return pluginsEnabled;
1540189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
15540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1560189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1570189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setPluginsEnabled(boolean flag) {
15840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        pluginsEnabled = flag;
15940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
16040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1610189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1620189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized WebSettings.PluginState getPluginState() {
16340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return pluginState;
1640189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
16540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1660189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1670189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setPluginState(WebSettings.PluginState state) {
16840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        pluginState = state;
16940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
17040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1710189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getSupportMultipleWindows() {
17240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return supportMultipleWindows;
1730189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
17440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1750189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1760189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public synchronized void setSupportMultipleWindows(boolean support) {
17740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        supportMultipleWindows = support;
17840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
17940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1800189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public boolean getSupportZoom() {
18140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return supportZoom;
1820189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
18340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1840189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    @Implementation
1850189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public void setSupportZoom(boolean support) {
18640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        supportZoom = support;
18740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1880189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey}
189