1 /* 2 * Copyright (C) 2012 Google 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 are 6 * met: 7 * 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following disclaimer 12 * in the documentation and/or other materials provided with the 13 * distribution. 14 * * Neither the name of Google Inc. nor the names of its 15 * contributors may be used to endorse or promote products derived from 16 * this software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31 #ifndef WebTestInterfaces_h 32 #define WebTestInterfaces_h 33 34 #include "WebTestCommon.h" 35 #include <memory> 36 37 namespace WebKit { 38 class WebAudioDevice; 39 class WebCrypto; 40 class WebFrame; 41 class WebMediaStreamCenter; 42 class WebMediaStreamCenterClient; 43 class WebMIDIAccessor; 44 class WebMIDIAccessorClient; 45 class WebRTCPeerConnectionHandler; 46 class WebRTCPeerConnectionHandlerClient; 47 class WebThemeEngine; 48 class WebURL; 49 class WebView; 50 } 51 52 namespace WebTestRunner { 53 54 class TestInterfaces; 55 class WebTestDelegate; 56 class WebTestProxyBase; 57 class WebTestRunner; 58 59 class WEBTESTRUNNER_EXPORT WebTestInterfaces { 60 public: 61 WebTestInterfaces(); 62 ~WebTestInterfaces(); 63 64 void setWebView(WebKit::WebView*, WebTestProxyBase*); 65 void setDelegate(WebTestDelegate*); 66 void bindTo(WebKit::WebFrame*); 67 void resetAll(); 68 void setTestIsRunning(bool); 69 void configureForTestWithURL(const WebKit::WebURL&, bool generatePixels); 70 71 WebTestRunner* testRunner(); 72 WebKit::WebThemeEngine* themeEngine(); 73 74 WebKit::WebMediaStreamCenter* createMediaStreamCenter(WebKit::WebMediaStreamCenterClient*); 75 WebKit::WebRTCPeerConnectionHandler* createWebRTCPeerConnectionHandler(WebKit::WebRTCPeerConnectionHandlerClient*); 76 77 WebKit::WebMIDIAccessor* createMIDIAccessor(WebKit::WebMIDIAccessorClient*); 78 79 WebKit::WebAudioDevice* createAudioDevice(double sampleRate); 80 81 WebKit::WebCrypto* crypto(); 82 83 #if WEBTESTRUNNER_IMPLEMENTATION 84 TestInterfaces* testInterfaces(); 85 #endif 86 87 private: 88 std::auto_ptr<TestInterfaces> m_interfaces; 89 }; 90 91 } 92 93 #endif // WebTestInterfaces_h 94