Rename LayoutTestController to TestRunner in DumpRenderTree
[WebKit-https.git] / Tools / DumpRenderTree / wx / TestRunnerWx.cpp
1 /*
2  * Copyright (C) 2008 Kevin Ollivier <kevino@theolliviers.com>
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 #include "config.h"
30 #include "TestRunner.h"
31
32 #include "DumpRenderTree.h"
33 #include "WorkQueue.h"
34 #include "WorkQueueItem.h"
35 #include <JavaScriptCore/JSRetainPtr.h>
36 #include <JavaScriptCore/JSStringRef.h>
37
38 #include <stdio.h>
39
40
41
42 TestRunner::~TestRunner()
43 {
44     // FIXME: implement
45 }
46
47 void TestRunner::addDisallowedURL(JSStringRef url)
48 {
49     // FIXME: implement
50 }
51
52 void TestRunner::clearBackForwardList()
53 {
54 }
55
56 JSStringRef TestRunner::copyDecodedHostName(JSStringRef name)
57 {
58     // FIXME: implement
59     return 0;
60 }
61
62 JSStringRef TestRunner::copyEncodedHostName(JSStringRef name)
63 {
64     // FIXME: implement
65     return 0;
66 }
67
68 void TestRunner::dispatchPendingLoadRequests()
69 {
70     // FIXME: Implement for testing fix for 6727495
71 }
72
73 void TestRunner::display()
74 {
75 }
76
77 void TestRunner::keepWebHistory()
78 {
79     // FIXME: implement
80 }
81
82 void TestRunner::notifyDone()
83 {
84     if (m_waitToDump && !WorkQueue::shared()->count())
85         notifyDoneFired();
86     m_waitToDump = false;
87 }
88
89 JSStringRef TestRunner::pathToLocalResource(JSContextRef context, JSStringRef url)
90 {
91     // Function introduced in r28690. This may need special-casing on Windows.
92     return JSStringRetain(url); // Do nothing on Unix.
93 }
94
95 void TestRunner::queueLoad(JSStringRef url, JSStringRef target)
96 {
97     // FIXME: We need to resolve relative URLs here
98     WorkQueue::shared()->queue(new LoadItem(url, target));
99 }
100
101 void TestRunner::setAcceptsEditing(bool acceptsEditing)
102 {
103 }
104
105 void TestRunner::setAlwaysAcceptCookies(bool alwaysAcceptCookies)
106 {
107     // FIXME: Implement this (and restore the default value before running each test in DumpRenderTree.cpp).
108 }
109
110 void TestRunner::setCustomPolicyDelegate(bool, bool)
111 {
112     // FIXME: implement
113 }
114
115 void TestRunner::setMainFrameIsFirstResponder(bool flag)
116 {
117     // FIXME: implement
118 }
119
120 void TestRunner::setTabKeyCyclesThroughElements(bool cycles)
121 {
122     // FIXME: implement
123 }
124
125 void TestRunner::setUseDashboardCompatibilityMode(bool flag)
126 {
127     // FIXME: implement
128 }
129
130 void TestRunner::setUserStyleSheetEnabled(bool flag)
131 {
132 }
133
134 void TestRunner::setUserStyleSheetLocation(JSStringRef path)
135 {
136 }
137
138 void TestRunner::setValueForUser(JSContextRef context, JSValueRef element, JSStringRef value)
139 {
140     // FIXME: implement
141 }
142
143 void TestRunner::setViewModeMediaFeature(JSStringRef mode)
144 {
145     // FIXME: implement
146 }
147
148 void TestRunner::setWindowIsKey(bool windowIsKey)
149 {
150     // FIXME: implement
151 }
152
153 void TestRunner::setSmartInsertDeleteEnabled(bool flag)
154 {
155     // FIXME: implement
156 }
157
158 void TestRunner::setWaitToDump(bool waitUntilDone)
159 {
160     static const int timeoutSeconds = 10;
161
162     m_waitToDump = waitUntilDone;
163 }
164
165 int TestRunner::windowCount()
166 {
167     // FIXME: implement
168     return 1;
169 }
170
171 void TestRunner::setPrivateBrowsingEnabled(bool privateBrowsingEnabled)
172 {
173     // FIXME: implement
174 }
175
176 void TestRunner::setJavaScriptCanAccessClipboard(bool enabled)
177 {
178     // FIXME: implement
179 }
180
181 void TestRunner::setXSSAuditorEnabled(bool enabled)
182 {
183     // FIXME: implement
184 }
185
186 void TestRunner::setFrameFlatteningEnabled(bool enabled)
187 {
188     // FIXME: implement
189 }
190
191 void TestRunner::setAllowUniversalAccessFromFileURLs(bool enabled)
192 {
193     // FIXME: implement
194 }
195
196 void TestRunner::setAllowFileAccessFromFileURLs(bool enabled)
197 {
198     // FIXME: implement
199 }
200
201 void TestRunner::setAuthorAndUserStylesEnabled(bool flag)
202 {
203     // FIXME: implement
204 }
205
206 void TestRunner::setAutofilled(JSContextRef, JSValueRef element, bool isAutofilled)
207 {
208     // FIXME: implement
209 }
210
211 void TestRunner::setPopupBlockingEnabled(bool popupBlockingEnabled)
212 {
213     // FIXME: implement
214 }
215
216 void TestRunner::setPluginsEnabled(bool flag)
217 {
218     // FIXME: Implement
219 }
220
221 bool TestRunner::elementDoesAutoCompleteForElementWithId(JSStringRef id) 
222 {
223     // FIXME: implement
224     return false;
225 }
226
227 void TestRunner::execCommand(JSStringRef name, JSStringRef value)
228 {
229     // FIXME: implement
230 }
231
232 void TestRunner::setPersistentUserStyleSheetLocation(JSStringRef jsURL)
233 {
234     // FIXME: implement
235 }
236
237 void TestRunner::clearPersistentUserStyleSheet()
238 {
239     // FIXME: implement
240 }
241
242 void TestRunner::clearAllApplicationCaches()
243 {
244     // FIXME: Implement to support application cache quotas.
245 }
246
247 void TestRunner::clearApplicationCacheForOrigin(JSStringRef url)
248 {
249     // FIXME: Implement to support deleting all application cache for an origin.
250 }
251
252 long long TestRunner::localStorageDiskUsageForOrigin(JSStringRef originIdentifier)
253 {
254     // FIXME: Implement to support getting disk usage in bytes for an origin.
255     return 0;
256 }
257
258 void TestRunner::setApplicationCacheOriginQuota(unsigned long long quota)
259 {
260     // FIXME: Implement to support application cache quotas.
261 }
262
263 long long TestRunner::applicationCacheDiskUsageForOrigin(JSStringRef origin)
264 {
265     // FIXME: Implement to support getting disk usage by all application caches for an origin.
266     return 0;
267 }
268
269
270 JSValueRef TestRunner::originsWithApplicationCache(JSContextRef context)
271 {
272     // FIXME: Implement to get origins that have application caches.
273     return 0;
274 }
275
276 void TestRunner::clearAllDatabases()
277 {
278     // FIXME: implement
279 }
280  
281 void TestRunner::setDatabaseQuota(unsigned long long quota)
282 {    
283     // FIXME: implement
284 }
285
286 void TestRunner::goBack()
287 {
288     // FIXME: implement to enable loader/navigation-while-deferring-loads.html
289 }
290
291 void TestRunner::setDefersLoading(bool)
292 {
293     // FIXME: implement to enable loader/navigation-while-deferring-loads.html
294 }
295
296 void TestRunner::setDomainRelaxationForbiddenForURLScheme(bool, JSStringRef)
297 {
298     // FIXME: implement
299 }
300
301 void TestRunner::setAppCacheMaximumSize(unsigned long long size)
302 {
303     // FIXME: implement
304 }
305
306 unsigned TestRunner::numberOfActiveAnimations() const
307 {
308     // FIXME: implement
309     return 0;
310 }
311
312 unsigned TestRunner::workerThreadCount() const
313 {
314     // FIXME: implement
315     return 0;
316 }
317
318 void TestRunner::setSelectTrailingWhitespaceEnabled(bool flag)
319 {
320     // FIXME: implement
321 }
322
323 bool TestRunner::pauseTransitionAtTimeOnElementWithId(JSStringRef propertyName, double time, JSStringRef elementId)
324 {
325     // FIXME: implement
326     return false;
327 }
328
329 void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma)
330 {
331     // FIXME: Implement for DeviceOrientation layout tests.
332     // See https://bugs.webkit.org/show_bug.cgi?id=30335.
333 }
334
335 void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy)
336 {
337     // FIXME: Implement for Geolocation layout tests.
338     // See https://bugs.webkit.org/show_bug.cgi?id=28264.
339 }
340
341 void TestRunner::setMockGeolocationError(int code, JSStringRef message)
342 {
343     // FIXME: Implement for Geolocation layout tests.
344     // See https://bugs.webkit.org/show_bug.cgi?id=28264.
345 }
346
347 void TestRunner::setGeolocationPermission(bool allow)
348 {
349     // FIXME: Implement for Geolocation layout tests.
350     setGeolocationPermissionCommon(allow);
351 }
352
353 int TestRunner::numberOfPendingGeolocationPermissionRequests()
354 {
355     // FIXME: Implement for Geolocation layout tests.
356     return -1;
357 }
358
359 void TestRunner::addMockSpeechInputResult(JSStringRef result, double confidence, JSStringRef language)
360 {
361     // FIXME: Implement for speech input layout tests.
362     // See https://bugs.webkit.org/show_bug.cgi?id=39485.
363 }
364
365 void TestRunner::setMockSpeechInputDumpRect(bool flag)
366 {
367     // FIXME: Implement for speech input layout tests.
368     // See https://bugs.webkit.org/show_bug.cgi?id=39485.
369 }
370
371 void TestRunner::startSpeechInput(JSContextRef inputElement)
372 {
373     // FIXME: Implement for speech input layout tests.
374     // See https://bugs.webkit.org/show_bug.cgi?id=39485.
375 }
376
377 void TestRunner::setIconDatabaseEnabled(bool iconDatabaseEnabled)
378 {
379     // FIXME: implement
380 }
381
382 bool TestRunner::pauseAnimationAtTimeOnElementWithId(JSStringRef animationName, double time, JSStringRef elementId)
383 {
384     // FIXME: implement
385     return false;
386 }
387
388 void TestRunner::setCacheModel(int)
389 {
390     // FIXME: implement
391 }
392
393 bool TestRunner::isCommandEnabled(JSStringRef /*name*/)
394 {
395     // FIXME: implement
396     return false;
397 }
398
399 size_t TestRunner::webHistoryItemCount()
400 {
401     // FIXME: implement
402     return 0;
403 }
404
405 void TestRunner::waitForPolicyDelegate()
406 {
407     // FIXME: Implement this.
408 }
409
410 void TestRunner::overridePreference(JSStringRef /* key */, JSStringRef /* value */)
411 {
412     // FIXME: implement
413 }
414
415 void TestRunner::addUserScript(JSStringRef source, bool runAtStart, bool allFrames)
416 {
417     printf("TestRunner::addUserScript not implemented.\n");
418 }
419
420 void TestRunner::addUserStyleSheet(JSStringRef source, bool allFrames)
421 {
422     printf("TestRunner::addUserStyleSheet not implemented.\n");
423 }
424
425 void TestRunner::showWebInspector()
426 {
427     // FIXME: Implement this.
428 }
429
430 void TestRunner::closeWebInspector()
431 {
432     // FIXME: Implement this.
433 }
434
435 void TestRunner::evaluateInWebInspector(long callId, JSStringRef script)
436 {
437     // FIXME: Implement this.
438 }
439
440 void TestRunner::removeAllVisitedLinks()
441 {
442     // FIXME: Implement this.
443 }
444
445 void TestRunner::evaluateScriptInIsolatedWorldAndReturnValue(unsigned worldID, JSObjectRef globalObject, JSStringRef script)
446 {
447
448 }
449
450 void TestRunner::evaluateScriptInIsolatedWorld(unsigned worldID, JSObjectRef globalObject, JSStringRef script)
451 {
452
453 }
454
455 void TestRunner::disableImageLoading()
456 {
457
458 }
459
460 void TestRunner::addOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains)
461 {
462     // FIXME: implement
463 }
464
465 void TestRunner::removeOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains)
466 {
467     // FIXME: implement
468 }
469
470 void TestRunner::setScrollbarPolicy(JSStringRef orientation, JSStringRef policy)
471 {
472     // FIXME: implement
473 }
474
475 int TestRunner::numberOfPages(float, float)
476 {
477     // FIXME: implement
478     return -1;
479 }
480
481 void TestRunner::apiTestNewWindowDataLoadBaseURL(JSStringRef utf8Data, JSStringRef baseURL)
482 {
483
484 }
485
486 void TestRunner::apiTestGoToCurrentBackForwardItem()
487 {
488
489 }
490
491 void TestRunner::setSpatialNavigationEnabled(bool)
492 {
493
494 }
495
496 void TestRunner::setWebViewEditable(bool)
497 {
498 }
499
500 bool TestRunner::callShouldCloseOnWebView()
501 {
502     return false;
503 }
504
505 JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const
506 {
507     return 0;
508 }
509
510 JSRetainPtr<JSStringRef> TestRunner::markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const
511 {
512     return 0;
513 }
514
515 JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef, JSValueRef)
516 {
517     return 0;
518 }
519
520 void TestRunner::authenticateSession(JSStringRef, JSStringRef, JSStringRef)
521 {
522 }
523
524 void TestRunner::abortModal()
525 {
526 }
527
528 JSRetainPtr<JSStringRef> TestRunner::pageProperty(const char* propertyName, int pageNumber) const
529 {
530     // FIXME: Implement
531     return 0;
532 }
533
534 JSRetainPtr<JSStringRef> TestRunner::pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const
535 {
536     // FIXME: Implement
537     return 0;
538 }
539
540 void TestRunner::setAsynchronousSpellCheckingEnabled(bool)
541 {
542     // FIXME: Implement this.
543 }
544
545 bool TestRunner::findString(JSContextRef context, JSStringRef target, JSObjectRef optionsArray)
546 {
547     // FIXME: Implement
548     return false;
549 }
550
551 void TestRunner::setSerializeHTTPLoads(bool)
552 {
553     // FIXME: Implement.
554 }
555
556 void TestRunner::setMinimumTimerInterval(double interval)
557 {
558
559 }
560
561 void TestRunner::syncLocalStorage()
562 {
563     // FIXME: Implement.
564 }
565
566 void TestRunner::observeStorageTrackerNotifications(unsigned number)
567 {
568     // FIXME: Implement.
569 }
570
571 void TestRunner::deleteAllLocalStorage()
572 {
573     // FIXME: Implement.
574 }
575
576 JSValueRef TestRunner::originsWithLocalStorage(JSContextRef context)
577 {
578     // FIXME: Implement.
579     return 0;
580 }
581
582 void TestRunner::deleteLocalStorageForOrigin(JSStringRef URL)
583 {
584     // FIXME: Implement.
585 }
586
587 void TestRunner::setTextDirection(JSStringRef direction)
588 {
589     // FIXME: Implement.
590 }
591
592 void TestRunner::addChromeInputField()
593 {
594 }
595
596 void TestRunner::removeChromeInputField()
597 {
598 }
599
600 void TestRunner::focusWebView()
601 {
602 }
603
604 void TestRunner::setBackingScaleFactor(double)
605 {
606 }
607
608 void TestRunner::simulateDesktopNotificationClick(JSStringRef title)
609 {
610     // FIXME: Implement.
611 }
612
613 void TestRunner::resetPageVisibility()
614 {
615     // FIXME: Implement this.
616 }
617
618 void TestRunner::setPageVisibility(const char*)
619 {
620     // FIXME: Implement this.
621 }
622
623 void TestRunner::setAutomaticLinkDetectionEnabled(bool)
624 {
625     // FIXME: Implement this.
626 }
627
628 void TestRunner::sendWebIntentResponse(JSStringRef)
629 {
630     // FIXME: Implement this.
631 }
632
633 void TestRunner::deliverWebIntent(JSStringRef, JSStringRef, JSStringRef)
634 {
635     // FIXME: Implement this.
636 }
637
638 void TestRunner::setStorageDatabaseIdleInterval(double)
639 {
640     // FIXME: Implement this.
641 }