summaryrefslogtreecommitdiffstats
path: root/content/shell/webkit_test_runner.js
blob: 2891bf55214f85d366d2c2632285ca4be6c19eae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

var testRunner = testRunner || {};
var accessibilityController = accessibilityController || {};
var gamepadController = gamepadController || {};
var eventSender = eventSender || {};
var textInputController = textInputController || {};

(function() {
  native function Display();
  native function GetWorkerThreadCount();
  native function NotifyDone();
  native function OverridePreference();
  native function SetDumpAsText();
  native function SetDumpChildFramesAsText();
  native function SetPrinting();
  native function SetShouldStayOnPageAfterHandlingBeforeUnload();
  native function SetWaitUntilDone();

  native function NotImplemented();

  var DefaultHandler = function(name) {
    var handler = {
      get: function(receiver, property) {
        NotImplemented(name, property);
        return function() {}
      },
      getPropertyDescriptor: function(property) {
        NotImplemented(name, property);
        return undefined;
      }
    }
    return Proxy.create(handler);
  }

  var TestRunner = function() {
    Object.defineProperty(this,
                          "workerThreadCount",
                          {value: GetWorkerThreadCount});
    Object.defineProperty(this,
                          "overridePreference",
                          {value: OverridePreference});
    Object.defineProperty(this, "notifyDone", {value: NotifyDone});
    Object.defineProperty(this, "dumpAsText", {value: SetDumpAsText});
    Object.defineProperty(this,
                          "dumpChildFramesAsText",
                          {value: SetDumpChildFramesAsText});
    Object.defineProperty(this, "setPrinting", {value: SetPrinting});
    Object.defineProperty(
        this,
        "setShouldStayOnPageAfterHandlingBeforeUnload",
        {value: SetShouldStayOnPageAfterHandlingBeforeUnload});
    Object.defineProperty(this, "waitUntilDone", {value: SetWaitUntilDone});
    Object.defineProperty(this, "display", {value: Display});
  }
  TestRunner.prototype = DefaultHandler("testRunner");
  testRunner = new TestRunner();

  var AccessibilityController = function() {}
  AccessibilityController.prototype = DefaultHandler("accessibilityController");
  accessibilityController = new AccessibilityController();

  var GamepadController = function() {}
  GamepadController.prototype = DefaultHandler("gamepadController");
  gamepadController = new GamepadController();

  var EventSender = function() {}
  EventSender.prototype = DefaultHandler("eventSender");
  eventSender = new EventSender();

  var TextInputController = function() {}
  TextInputController.prototype = DefaultHandler("textInputController");
  textInputController = new TextInputController();
})();