/* * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ interface TestRunner { // The basics. void dumpAsText(boolean dumpPixels); void dumpChildFramesAsText(); void waitForPolicyDelegate(); void waitUntilDone(); void notifyDone(); double preciseTime(); // Other dumping. void dumpBackForwardList(); void dumpChildFrameScrollPositions(); void dumpEditingCallbacks(); void dumpSelectionRect(); void dumpStatusCallbacks(); void dumpTitleChanges(); void dumpFullScreenCallbacks(); void dumpFrameLoadCallbacks(); void dumpProgressFinishedCallback(); void dumpResourceLoadCallbacks(); void dumpResourceResponseMIMETypes(); void dumpWillCacheResponse(); void dumpApplicationCacheDelegateCallbacks(); void dumpDatabaseCallbacks(); void dumpDOMAsWebArchive(); void dumpPolicyDelegateCallbacks(); // Special options. void keepWebHistory(); void setAcceptsEditing(boolean value); void setCanOpenWindows(boolean value); void setCloseRemainingWindowsWhenComplete(boolean value); void setXSSAuditorEnabled(boolean value); void setAllowUniversalAccessFromFileURLs(boolean value); void setAllowFileAccessFromFileURLs(boolean value); void setPluginsEnabled(boolean value); void setJavaScriptCanAccessClipboard(boolean value); void setPrivateBrowsingEnabled(boolean value); void setPopupBlockingEnabled(boolean value); void setAuthorAndUserStylesEnabled(boolean value); void setCustomPolicyDelegate(boolean enabled, boolean permissive); void addOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains); void removeOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains); void setUserStyleSheetEnabled(boolean value); void setUserStyleSheetLocation(DOMString location); void setSpatialNavigationEnabled(boolean value); void setTabKeyCyclesThroughElements(boolean enabled); void setSerializeHTTPLoads(); void dispatchPendingLoadRequests(); void setCacheModel(int model); void setAsynchronousSpellCheckingEnabled(boolean value); void setPrinting(); void setShouldDecideNavigationPolicyAfterDelay(boolean value); void setNavigationGesturesEnabled(boolean value); // Special DOM functions. void clearBackForwardList(); void execCommand(DOMString name, DOMString argument); boolean isCommandEnabled(DOMString name); unsigned long windowCount(); // Special DOM variables. attribute boolean globalFlag; // Repaint testing. void testRepaint(); void repaintSweepHorizontally(); void display(); // Printing boolean isPageBoxVisible(int pageIndex); [PassContext] void setValueForUser(object element, DOMString value); // UserContent testing. void addUserScript(DOMString source, boolean runAtStart, boolean allFrames); void addUserStyleSheet(DOMString source, boolean allFrames); // Local storage API void clearAllDatabases(); void setDatabaseQuota(unsigned long long quota); DOMString pathToLocalResource(DOMString url); attribute double databaseDefaultQuota; attribute double databaseMaxQuota; // Application Cache API void clearAllApplicationCaches(); void setAppCacheMaximumSize(unsigned long long size); long long applicationCacheDiskUsageForOrigin(DOMString origin); void clearApplicationCacheForOrigin(DOMString name); void disallowIncreaseForApplicationCacheQuota(); object originsWithApplicationCache(); // Text search testing. boolean findString(DOMString target, object optionsArray); // Evaluating script in a special context. [PassContext] void evaluateScriptInIsolatedWorld(unsigned long worldID, DOMString script); // For Web Inspector tests void showWebInspector(); void closeWebInspector(); void evaluateInWebInspector(DOMString script); readonly attribute DOMString inspectorTestStubURL; void setPOSIXLocale(DOMString locale); void setTextDirection(DOMString direction); void setWillSendRequestReturnsNull(boolean flag); void setWillSendRequestReturnsNullOnRedirect(boolean flag); void setWillSendRequestAddsHTTPBody(DOMString body); void setShouldStayOnPageAfterHandlingBeforeUnload(boolean flag); void setDefersLoading(boolean flag); void setStopProvisionalFrameLoads(); // Focus testing. void addChromeInputField(object callback); void removeChromeInputField(object callback); void focusWebView(object callback); void clearTestRunnerCallbacks(); void setBackingScaleFactor(double backingScaleFactor, object callback); void setWindowIsKey(boolean isKey); // Cookies testing void setAlwaysAcceptCookies(boolean accept); void overridePreference(DOMString preference, DOMString value); // Page Visibility API void setPageVisibility(DOMString state); void resetPageVisibility(); // Control full screen behavior. void setHasCustomFullScreenBehavior(boolean value); // Web notifications support void grantWebNotificationPermission(DOMString origin); void denyWebNotificationPermission(DOMString origin); void removeAllWebNotificationPermissions(); void simulateWebNotificationClick(object notification); // Geolocation void setGeolocationPermission(boolean value); void setMockGeolocationPosition(double latitude, double longitude, double accuracy, [Default=Undefined] optional object altitude, optional object altitudeAccuracy, optional object heading, optional object speed); void setMockGeolocationPositionUnavailableError(DOMString errorMessage); boolean isGeolocationProviderActive(); // MediaStream void setUserMediaPermission(boolean value); void setUserMediaPermissionForOrigin(boolean permission, DOMString url); // Audio testing. [PassContext] void setAudioResult(object data); boolean callShouldCloseOnWebView(); // Work queue. void queueBackNavigation(unsigned long howFarBackward); void queueForwardNavigation(unsigned long howFarForward); void queueLoad(DOMString url, DOMString target, optional boolean shouldOpenExternalURLs); void queueLoadHTMLString(DOMString content, optional DOMString baseURL, optional DOMString unreachableURL); void queueReload(); void queueLoadingScript(DOMString script); void queueNonLoadingScript(DOMString script); // Authentication void setHandlesAuthenticationChallenges(boolean value); void setAuthenticationUsername(DOMString username); void setAuthenticationPassword(DOMString password); // Secure text input mode (Mac only) readonly attribute boolean secureEventInputIsEnabled; // Override plugin load policy. void setBlockAllPlugins(boolean shouldBlock); // Hooks to the JSC compiler. object failNextNewCodeBlock(); object numberOfDFGCompiles(object function); object neverInlineFunction(object function); // Swipe gestures void installDidBeginSwipeCallback(object callback); void installWillEndSwipeCallback(object callback); void installDidEndSwipeCallback(object callback); void installDidRemoveSwipeSnapshotCallback(object callback); // UI Process Testing void runUIScript(DOMString script, object callback); };