summaryrefslogtreecommitdiffstats
path: root/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java')
-rw-r--r--tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java328
1 files changed, 328 insertions, 0 deletions
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
new file mode 100644
index 0000000..a389461
--- /dev/null
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dumprendertree;
+
+import android.os.Handler;
+import android.os.Message;
+
+import java.util.HashMap;
+
+public class CallbackProxy extends Handler implements EventSender, LayoutTestController {
+
+ private EventSender mEventSender;
+ private LayoutTestController mLayoutTestController;
+
+ private static final int EVENT_DOM_LOG = 1;
+ private static final int EVENT_FIRE_KBD = 2;
+ private static final int EVENT_KEY_DOWN_1 = 3;
+ private static final int EVENT_KEY_DOWN_2 = 4;
+ private static final int EVENT_LEAP = 5;
+ private static final int EVENT_MOUSE_CLICK = 6;
+ private static final int EVENT_MOUSE_DOWN = 7;
+ private static final int EVENT_MOUSE_MOVE = 8;
+ private static final int EVENT_MOUSE_UP = 9;
+
+ private static final int LAYOUT_CLEAR_LIST = 20;
+ private static final int LAYOUT_DISPLAY = 21;
+ private static final int LAYOUT_DUMP_TEXT = 22;
+ private static final int LAYOUT_DUMP_HISTORY = 23;
+ private static final int LAYOUT_DUMP_CHILD_SCROLL = 24;
+ private static final int LAYOUT_DUMP_EDIT_CB = 25;
+ private static final int LAYOUT_DUMP_SEL_RECT = 26;
+ private static final int LAYOUT_DUMP_TITLE_CHANGES = 27;
+ private static final int LAYOUT_KEEP_WEB_HISTORY = 28;
+ private static final int LAYOUT_NOTIFY_DONE = 29;
+ private static final int LAYOUT_QUEUE_BACK_NAV = 30;
+ private static final int LAYOUT_QUEUE_FWD_NAV = 31;
+ private static final int LAYOUT_QUEUE_LOAD = 32;
+ private static final int LAYOUT_QUEUE_RELOAD = 33;
+ private static final int LAYOUT_QUEUE_SCRIPT = 34;
+ private static final int LAYOUT_REPAINT_HORZ = 35;
+ private static final int LAYOUT_SET_ACCEPT_EDIT = 36;
+ private static final int LAYOUT_MAIN_FIRST_RESP = 37;
+ private static final int LAYOUT_SET_WINDOW_KEY = 38;
+ private static final int LAYOUT_TEST_REPAINT = 39;
+ private static final int LAYOUT_WAIT_UNTIL_DONE = 40;
+
+ CallbackProxy(EventSender eventSender,
+ LayoutTestController layoutTestController) {
+ mEventSender = eventSender;
+ mLayoutTestController = layoutTestController;
+ }
+
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case EVENT_DOM_LOG:
+ mEventSender.enableDOMUIEventLogging(msg.arg1);
+ break;
+ case EVENT_FIRE_KBD:
+ mEventSender.fireKeyboardEventsToElement(msg.arg1);
+ break;
+ case EVENT_KEY_DOWN_1:
+ HashMap map = (HashMap) msg.obj;
+ mEventSender.keyDown((String) map.get("character"),
+ (String[]) map.get("withModifiers"));
+ break;
+
+ case EVENT_KEY_DOWN_2:
+ mEventSender.keyDown((String)msg.obj);
+ break;
+
+ case EVENT_LEAP:
+ mEventSender.leapForward(msg.arg1);
+ break;
+
+ case EVENT_MOUSE_CLICK:
+ mEventSender.mouseClick();
+ break;
+
+ case EVENT_MOUSE_DOWN:
+ mEventSender.mouseDown();
+ break;
+
+ case EVENT_MOUSE_MOVE:
+ mEventSender.mouseMoveTo(msg.arg1, msg.arg2);
+ break;
+
+ case EVENT_MOUSE_UP:
+ mEventSender.mouseUp();
+ break;
+
+ case LAYOUT_CLEAR_LIST:
+ mLayoutTestController.clearBackForwardList();
+ break;
+
+ case LAYOUT_DISPLAY:
+ mLayoutTestController.display();
+ break;
+
+ case LAYOUT_DUMP_TEXT:
+ mLayoutTestController.dumpAsText();
+ break;
+
+ case LAYOUT_DUMP_HISTORY:
+ mLayoutTestController.dumpBackForwardList();
+ break;
+
+ case LAYOUT_DUMP_CHILD_SCROLL:
+ mLayoutTestController.dumpChildFrameScrollPositions();
+ break;
+
+ case LAYOUT_DUMP_EDIT_CB:
+ mLayoutTestController.dumpEditingCallbacks();
+ break;
+
+ case LAYOUT_DUMP_SEL_RECT:
+ mLayoutTestController.dumpSelectionRect();
+ break;
+
+ case LAYOUT_DUMP_TITLE_CHANGES:
+ mLayoutTestController.dumpTitleChanges();
+ break;
+
+ case LAYOUT_KEEP_WEB_HISTORY:
+ mLayoutTestController.keepWebHistory();
+ break;
+
+ case LAYOUT_NOTIFY_DONE:
+ mLayoutTestController.notifyDone();
+ break;
+
+ case LAYOUT_QUEUE_BACK_NAV:
+ mLayoutTestController.queueBackNavigation(msg.arg1);
+ break;
+
+ case LAYOUT_QUEUE_FWD_NAV:
+ mLayoutTestController.queueForwardNavigation(msg.arg1);
+ break;
+
+ case LAYOUT_QUEUE_LOAD:
+ HashMap<String, String> loadMap =
+ (HashMap<String, String>) msg.obj;
+ mLayoutTestController.queueLoad(loadMap.get("Url"),
+ loadMap.get("frameTarget"));
+ break;
+
+ case LAYOUT_QUEUE_RELOAD:
+ mLayoutTestController.queueReload();
+ break;
+
+ case LAYOUT_QUEUE_SCRIPT:
+ mLayoutTestController.queueScript((String)msg.obj);
+ break;
+
+ case LAYOUT_REPAINT_HORZ:
+ mLayoutTestController.repaintSweepHorizontally();
+ break;
+
+ case LAYOUT_SET_ACCEPT_EDIT:
+ mLayoutTestController.setAcceptsEditing(
+ msg.arg1 == 1 ? true : false);
+ break;
+ case LAYOUT_MAIN_FIRST_RESP:
+ mLayoutTestController.setMainFrameIsFirstResponder(
+ msg.arg1 == 1 ? true : false);
+ break;
+
+ case LAYOUT_SET_WINDOW_KEY:
+ mLayoutTestController.setWindowIsKey(
+ msg.arg1 == 1 ? true : false);
+ break;
+
+ case LAYOUT_TEST_REPAINT:
+ mLayoutTestController.testRepaint();
+ break;
+
+ case LAYOUT_WAIT_UNTIL_DONE:
+ mLayoutTestController.waitUntilDone();
+ break;
+ }
+ }
+
+ // EventSender Methods
+
+ public void enableDOMUIEventLogging(int DOMNode) {
+ obtainMessage(EVENT_DOM_LOG, DOMNode, 0).sendToTarget();
+ }
+
+ public void fireKeyboardEventsToElement(int DOMNode) {
+ obtainMessage(EVENT_FIRE_KBD, DOMNode, 0).sendToTarget();
+ }
+
+ public void keyDown(String character, String[] withModifiers) {
+ // TODO Auto-generated method stub
+ HashMap map = new HashMap();
+ map.put("character", character);
+ map.put("withModifiers", withModifiers);
+ obtainMessage(EVENT_KEY_DOWN_1, map).sendToTarget();
+ }
+
+ public void keyDown(String character) {
+ obtainMessage(EVENT_KEY_DOWN_2, character).sendToTarget();
+ }
+
+ public void leapForward(int milliseconds) {
+ obtainMessage(EVENT_LEAP, milliseconds, 0).sendToTarget();
+ }
+
+ public void mouseClick() {
+ obtainMessage(EVENT_MOUSE_CLICK).sendToTarget();
+ }
+
+ public void mouseDown() {
+ obtainMessage(EVENT_MOUSE_DOWN).sendToTarget();
+ }
+
+ public void mouseMoveTo(int X, int Y) {
+ obtainMessage(EVENT_MOUSE_MOVE, X, Y).sendToTarget();
+ }
+
+ public void mouseUp() {
+ obtainMessage(EVENT_MOUSE_UP).sendToTarget();
+ }
+
+ // LayoutTestController Methods
+
+ public void clearBackForwardList() {
+ obtainMessage(LAYOUT_CLEAR_LIST).sendToTarget();
+ }
+
+ public void display() {
+ obtainMessage(LAYOUT_DISPLAY).sendToTarget();
+ }
+
+ public void dumpAsText() {
+ obtainMessage(LAYOUT_DUMP_TEXT).sendToTarget();
+ }
+
+ public void dumpBackForwardList() {
+ obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget();
+ }
+
+ public void dumpChildFrameScrollPositions() {
+ obtainMessage(LAYOUT_DUMP_CHILD_SCROLL).sendToTarget();
+ }
+
+ public void dumpEditingCallbacks() {
+ obtainMessage(LAYOUT_DUMP_EDIT_CB).sendToTarget();
+ }
+
+ public void dumpSelectionRect() {
+ obtainMessage(LAYOUT_DUMP_SEL_RECT).sendToTarget();
+ }
+
+ public void dumpTitleChanges() {
+ obtainMessage(LAYOUT_DUMP_TITLE_CHANGES).sendToTarget();
+ }
+
+ public void keepWebHistory() {
+ obtainMessage(LAYOUT_KEEP_WEB_HISTORY).sendToTarget();
+ }
+
+ public void notifyDone() {
+ obtainMessage(LAYOUT_NOTIFY_DONE).sendToTarget();
+ }
+
+ public void queueBackNavigation(int howfar) {
+ obtainMessage(LAYOUT_QUEUE_BACK_NAV, howfar, 0).sendToTarget();
+ }
+
+ public void queueForwardNavigation(int howfar) {
+ obtainMessage(LAYOUT_QUEUE_FWD_NAV, howfar, 0).sendToTarget();
+ }
+
+ public void queueLoad(String Url, String frameTarget) {
+ HashMap <String, String>map = new HashMap<String, String>();
+ map.put("Url", Url);
+ map.put("frameTarget", frameTarget);
+ obtainMessage(LAYOUT_QUEUE_LOAD, map).sendToTarget();
+ }
+
+ public void queueReload() {
+ obtainMessage(LAYOUT_QUEUE_RELOAD).sendToTarget();
+ }
+
+ public void queueScript(String scriptToRunInCurrentContext) {
+ obtainMessage(LAYOUT_QUEUE_SCRIPT,
+ scriptToRunInCurrentContext).sendToTarget();
+ }
+
+ public void repaintSweepHorizontally() {
+ obtainMessage(LAYOUT_REPAINT_HORZ).sendToTarget();
+ }
+
+ public void setAcceptsEditing(boolean b) {
+ obtainMessage(LAYOUT_SET_ACCEPT_EDIT, b ? 1 : 0, 0).sendToTarget();
+ }
+
+ public void setMainFrameIsFirstResponder(boolean b) {
+ obtainMessage(LAYOUT_MAIN_FIRST_RESP, b ? 1 : 0, 0).sendToTarget();
+ }
+
+ public void setWindowIsKey(boolean b) {
+ obtainMessage(LAYOUT_SET_WINDOW_KEY,b ? 1 : 0, 0).sendToTarget();
+ }
+
+ public void testRepaint() {
+ obtainMessage(LAYOUT_TEST_REPAINT).sendToTarget();
+ }
+
+ public void waitUntilDone() {
+ obtainMessage(LAYOUT_WAIT_UNTIL_DONE).sendToTarget();
+ }
+
+}