Rubber stamped by Darin.
[WebKit-https.git] / WebKitTools / DumpRenderTree / LayoutTestController.h
1 /*
2  * Copyright (C) 2007 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer. 
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution. 
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28  
29 #ifndef LayoutTestController_h
30 #define LayoutTestController_h
31
32 #include <JavaScriptCore/JSObjectRef.h>
33
34 class LayoutTestController {
35 public:
36     LayoutTestController();
37     ~LayoutTestController();
38
39     void makeWindowObject(JSContextRef context, JSObjectRef windowObject, JSValueRef* exception);
40
41     // Controller Methods - platfrom independant implementations
42     void dumpAsText();
43     void dumpBackForwardList();
44     void dumpChildFramesAsText();
45     void dumpChildFrameScrollPositions();
46     void dumpDOMAsWebArchive();
47     void dumpEditingCallbacks();
48     void dumpFrameLoadCallbacks();
49     void dumpResourceLoadCallbacks();
50     void dumpSelectionRect();
51     void dumpSourceAsWebArchive();
52     void dumpTitleChanges();
53     void repaintSweepHorizontally();
54     void setCallCloseOnWebViews();
55     void setCanOpenWindows();
56     void setCloseRemainingWindowsWhenComplete();
57     void testRepaint();
58     void addFileToPasteboardOnDrag();
59     void addDisallowedURL(JSStringRef url);
60     void clearBackForwardList();
61     JSStringRef copyDecodedHostName(JSStringRef name);
62     JSStringRef copyEncodedHostName(JSStringRef name);
63     void display();
64     void keepWebHistory();
65     void notifyDone();
66     void queueBackNavigation(int howFarBackward);
67     void queueForwardNavigation(int howFarForward);
68     void queueLoad(JSStringRef url, JSStringRef target);
69     void queueReload();
70     void queueScript(JSStringRef url);
71     void setAcceptsEditing(bool acceptsEditing);
72     void setCustomPolicyDelegate(bool setDelegate);
73     void setMainFrameIsFirstResponder(bool flag);
74     void setTabKeyCyclesThroughElements(bool cycles);
75     void setUseDashboardCompatibilityMode(bool flag);
76     void setUserStyleSheetEnabled(bool flag);
77     void setUserStyleSheetLocation(JSStringRef path);
78     void setWindowIsKey(bool flag);
79     void waitUntilDone();
80     int windowCount();
81
82
83 private:
84     static JSClassRef getJSClass();
85     static JSStaticFunction* staticFunctions();
86 };
87
88 #endif // LayoutTestController_h