diff options
author | Steve Block <steveblock@google.com> | 2010-03-19 18:48:35 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-03-22 10:52:56 +0000 |
commit | fb0de34a47a435b57075d7a72cbc40a2daf5ee6c (patch) | |
tree | 6915d0323919bdc157d94ed696b358b7a984ae65 /tests/DumpRenderTree | |
parent | cd90b15cb8cd3347c58dc0fe3a30ea3e1b17ab6e (diff) | |
download | frameworks_base-fb0de34a47a435b57075d7a72cbc40a2daf5ee6c.zip frameworks_base-fb0de34a47a435b57075d7a72cbc40a2daf5ee6c.tar.gz frameworks_base-fb0de34a47a435b57075d7a72cbc40a2daf5ee6c.tar.bz2 |
Implements layoutTestController.overridePreference()
This change provides the infrastructure for
layoutTestController.overridePreference(). Currently, we only provide an
implementation for the preference 'WebKitOfflineWebApplicationCacheEnabled',
which is required by the layout test http/tests/appcache/disabled.html.
Change-Id: I8552f2f4e23b982db2d067ffa20c052e56d8fb7f
Diffstat (limited to 'tests/DumpRenderTree')
4 files changed, 29 insertions, 1 deletions
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java index 9a6fc27..5780c43 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java @@ -73,6 +73,7 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon private static final int LAYOUT_DUMP_DATABASE_CALLBACKS = 41; private static final int LAYOUT_SET_CAN_OPEN_WINDOWS = 42; private static final int SET_GEOLOCATION_PERMISSION = 43; + private static final int OVERRIDE_PREFERENCE = 44; CallbackProxy(EventSender eventSender, LayoutTestController layoutTestController) { @@ -266,6 +267,12 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon mLayoutTestController.setGeolocationPermission( msg.arg1 == 1 ? true : false); break; + + case OVERRIDE_PREFERENCE: + String key = msg.getData().getString("key"); + boolean value = msg.getData().getBoolean("value"); + mLayoutTestController.overridePreference(key, value); + break; } } @@ -484,4 +491,11 @@ public class CallbackProxy extends Handler implements EventSender, LayoutTestCon public void setGeolocationPermission(boolean allow) { obtainMessage(SET_GEOLOCATION_PERMISSION, allow ? 1 : 0, 0).sendToTarget(); } + + public void overridePreference(String key, boolean value) { + Message message = obtainMessage(OVERRIDE_PREFERENCE); + message.getData().putString("key", key); + message.getData().putBoolean("value", value); + message.sendToTarget(); + } } diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java index b33f2a4..d10e382 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java @@ -83,7 +83,6 @@ public class FileFilter { // should pass all tests. They are skipped only temporarily. // TODO: Fix these failing tests and remove them from this list. ignoreResultList.add("http/tests/appcache/auth.html"); // DumpRenderTree throws exception when authentication fails - ignoreResultList.add("http/tests/appcache/disabled.html"); // Missing layoutTestController.overridePreference ignoreResultList.add("http/tests/appcache/empty-manifest.html"); // flaky ignoreResultList.add("http/tests/appcache/foreign-iframe-main.html"); // flaky - skips states ignoreResultList.add("http/tests/appcache/manifest-with-empty-file.html"); // flaky diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java index f535ed7..9236345 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java @@ -65,4 +65,6 @@ public interface LayoutTestController { // For Geolocation tests public void setGeolocationPermission(boolean allow); + + public void overridePreference(String key, boolean value); } diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java index 02a7046..24f58b2 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java @@ -61,6 +61,9 @@ public class TestShellActivity extends Activity implements LayoutTestController static enum DumpDataType {DUMP_AS_TEXT, EXT_REPR, NO_OP} + // String constants for use with layoutTestController.overridePreferences + private final String WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED = "WebKitOfflineWebApplicationCacheEnabled"; + public class AsyncHandler extends Handler { @Override public void handleMessage(Message msg) { @@ -459,6 +462,16 @@ public class TestShellActivity extends Activity implements LayoutTestController mGeolocationPermission = allow; } + public void overridePreference(String key, boolean value) { + // TODO: We should look up the correct WebView for the frame which + // called the layoutTestController method. Currently, we just use the + // WebView for the main frame. EventSender suffers from the same + // problem. + if (key.equals(WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED)) { + mWebView.getSettings().setAppCacheEnabled(value); + } + } + private final WebViewClient mViewClient = new WebViewClient(){ @Override public void onPageFinished(WebView view, String url) { |