package android.webkit; import android.webkit.WebSettings; import android.webkit.TestWebSettings; import com.xtremelabs.robolectric.Robolectric; import com.xtremelabs.robolectric.WithTestDefaultsRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; @RunWith(WithTestDefaultsRunner.class) public class TestWebSettingsTest { private TestWebSettings webSettings; private boolean[] trueAndFalse = {true, false}; @Before public void setUp() throws Exception { webSettings = new TestWebSettings(); } @Test public void testDefaults() { assertThat(webSettings.getAllowFileAccess(), equalTo(true)); assertThat(webSettings.getBlockNetworkImage(), equalTo(false)); assertThat(webSettings.getBlockNetworkLoads(), equalTo(false)); assertThat(webSettings.getBuiltInZoomControls(), equalTo(true)); assertThat(webSettings.getDatabaseEnabled(), equalTo(false)); assertThat(webSettings.getDomStorageEnabled(), equalTo(false)); assertThat(webSettings.getJavaScriptEnabled(), equalTo(false)); assertThat(webSettings.getLightTouchEnabled(), equalTo(false)); assertThat(webSettings.getLoadWithOverviewMode(), equalTo(false)); assertThat(webSettings.getPluginState(), equalTo(WebSettings.PluginState.OFF)); // deprecated methods assertThat(webSettings.getPluginsEnabled(), equalTo(false)); // obsoleted methods assertThat(webSettings.getNeedInitialFocus(), equalTo(false)); assertThat(webSettings.getSupportMultipleWindows(), equalTo(false)); assertThat(webSettings.getSupportZoom(), equalTo(true)); } @Test public void testAllowFileAccess() { for (boolean value : trueAndFalse) { webSettings.setAllowFileAccess(value); assertThat(webSettings.getAllowFileAccess(), equalTo(value)); } } @Test public void testAllowFileAccessFromFileURLs() { for (boolean value : trueAndFalse) { webSettings.setAllowFileAccessFromFileURLs(value); assertThat(webSettings.getAllowFileAccessFromFileURLs(), equalTo(value)); } } @Test public void testAllowUniversalAccessFromFileURLs() { for (boolean value : trueAndFalse) { webSettings.setAllowUniversalAccessFromFileURLs(value); assertThat(webSettings.getAllowUniversalAccessFromFileURLs(), equalTo(value)); } } @Test public void testBlockNetworkImage() { for (boolean value : trueAndFalse) { webSettings.setBlockNetworkImage(value); assertThat(webSettings.getBlockNetworkImage(), equalTo(value)); } } @Test public void testBlockNetworkLoads() { for (boolean value : trueAndFalse) { webSettings.setBlockNetworkLoads(value); assertThat(webSettings.getBlockNetworkLoads(), equalTo(value)); } } @Test public void testBuiltInZoomControls() { for (boolean value : trueAndFalse) { webSettings.setBuiltInZoomControls(value); assertThat(webSettings.getBuiltInZoomControls(), equalTo(value)); } } @Test public void testDatabaseEnabled() { for (boolean value : trueAndFalse) { webSettings.setDatabaseEnabled(value); assertThat(webSettings.getDatabaseEnabled(), equalTo(value)); } } @Test public void testDomStorageEnabled() { for (boolean value : trueAndFalse) { webSettings.setDomStorageEnabled(value); assertThat(webSettings.getDomStorageEnabled(), equalTo(value)); } } @Test public void testJavaScriptEnabled() { for (boolean value : trueAndFalse) { webSettings.setJavaScriptEnabled(value); assertThat(webSettings.getJavaScriptEnabled(), equalTo(value)); } } @Test public void testLightTouchEnabled() { for (boolean value : trueAndFalse) { webSettings.setLightTouchEnabled(value); assertThat(webSettings.getLightTouchEnabled(), equalTo(value)); } } @Test public void testLoadWithOverviewMode() { for (boolean value : trueAndFalse) { webSettings.setLoadWithOverviewMode(value); assertThat(webSettings.getLoadWithOverviewMode(), equalTo(value)); } } @Test public void testNeedInitialFocus() { for (boolean value : trueAndFalse) { webSettings.setNeedInitialFocus(value); assertThat(webSettings.getNeedInitialFocus(), equalTo(value)); } } @Test public void testPluginsEnabled() { for (boolean value : trueAndFalse) { webSettings.setPluginsEnabled(value); assertThat(webSettings.getPluginsEnabled(), equalTo(value)); } } @Test public void testPluginState() { WebSettings.PluginState[] states = { WebSettings.PluginState.OFF, WebSettings.PluginState.ON, WebSettings.PluginState.ON_DEMAND }; for (WebSettings.PluginState state : states) { webSettings.setPluginState(state); assertThat(webSettings.getPluginState(), equalTo(state)); } } @Test public void testSupportMultipleWindows() { for (boolean value : trueAndFalse) { webSettings.setSupportMultipleWindows(value); assertThat(webSettings.getSupportMultipleWindows(), equalTo(value)); } } @Test public void testSupportZoom() { for (boolean value : trueAndFalse) { webSettings.setSupportZoom(value); assertThat(webSettings.getSupportZoom(), equalTo(value)); } } }