diff options
Diffstat (limited to 'tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java')
-rw-r--r-- | tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java | 328 |
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(); + } + +} |