Roll src/third_party/WebKit b3f094a:f697bbd (svn 194310:194313)
[chromium-blink-merge.git] / extensions / common / api / test.json
blob440ba26f0608ff4954a64ccc6a61db34817abbe1
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6   {
7     "namespace": "test",
8     "description": "none",
9     "functions": [
10       {
11         "name": "getConfig",
12         "type": "function",
13         "description": "Gives configuration options set by the test.",
14         "parameters": [
15           {
16             "type": "function", "name": "callback", "parameters": [
17               {
18                 "type": "object",
19                 "name": "testConfig",
20                 "properties": {
21                   "customArg": {
22                     "type": "string",
23                     "optional": true,
24                     "description": "Additional string argument to pass to test."
25                   },
26                   "ftpServer": {
27                     "type": "object",
28                     "optional": true,
29                     "description": "Details on the FTP server used to mock network responses.  Will be set only if test calls ExtensionApiTest::StartFTPServer().",
30                     "properties": {
31                       "port": {
32                         "type": "integer",
33                         "description": "The port on which the FTP server is listening.",
34                         "minimum": 1024,
35                         "maximum": 65535
36                       }
37                     }
38                   },
39                   "testServer": {
40                     "type": "object",
41                     "optional": true,
42                     "description": "Details on the test server used to mock network responses.  Will be set only if test calls ExtensionApiTest::StartTestServer().",
43                     "properties": {
44                       "port": {
45                         "type": "integer",
46                         "description": "The port on which the test server is listening.",
47                         "minimum": 1024,
48                         "maximum": 65535
49                       }
50                     }
51                   },
52                   "spawnedTestServer": {
53                     "type": "object",
54                     "optional": true,
55                     "description": "Details on the spawned test server used to mock network responses.  Will be set only if test calls ExtensionApiTest::StartSpawnedTestServer().",
56                     "properties": {
57                       "port": {
58                         "type": "integer",
59                         "description": "The port on which the test server is listening.",
60                         "minimum": 1024,
61                         "maximum": 65535
62                       }
63                     }
64                   },
65                   "testDataDirectory": {
66                     "type": "string",
67                     "description": "file:/// URL for the API test data directory."
68                   },
69                   "testWebSocketPort": {
70                     "type": "integer",
71                     "description": "The port on which the test WebSocket server is listening.",
72                     "minimum": 0,
73                     "maximum": 65535
74                   }
75                 }
76               }
77             ]
78           }
79         ]
80       },
81       {
82         "name": "notifyFail",
83         "type": "function",
84         "description": "Notifies the browser process that test code running in the extension failed.  This is only used for internal unit testing.",
85         "parameters": [
86           {"type": "string", "name": "message"}
87         ]
88       },
89       {
90         "name": "notifyPass",
91         "type": "function",
92         "description": "Notifies the browser process that test code running in the extension passed.  This is only used for internal unit testing.",
93         "parameters": [
94           {"type": "string", "name": "message", "optional": true}
95         ]
96       },
97       {
98         "name": "log",
99         "type": "function",
100         "description": "Logs a message during internal unit testing.",
101         "parameters": [
102           {"type": "string", "name": "message"}
103         ]
104       },
105       {
106         "name": "sendMessage",
107         "type": "function",
108         "description": "Sends a string message to the browser process, generating a Notification that C++ test code can wait for.",
109         "parameters": [
110           {"type": "string", "name": "message"},
111           {
112             "type": "function",
113             "name": "callback",
114             "optional": true,
115             "parameters": [
116               {"type": "string", "name": "response"}
117             ]
118           }
119         ]
120       },
121       {
122         "name": "callbackAdded",
123         "type": "function",
124         "nocompile": true,
125         "parameters": []
126       },
127       {
128         "name": "runNextTest",
129         "type": "function",
130         "nocompile": true,
131         "parameters": []
132       },
133       {
134         "name": "fail",
135         "type": "function",
136         "nocompile": true,
137         "parameters": [
138           {"type": "any", "name": "message", "optional": true}
139         ]
140       },
141       {
142         "name": "succeed",
143         "type": "function",
144         "nocompile": true,
145         "parameters": [
146           {"type": "any", "name": "message", "optional": true}
147         ]
148       },
149       {
150         "name": "runWithModuleSystem",
151         "type": "function",
152         "nocompile": true,
153         "description": "Gets a module system suitable for use in the context of a test.",
154         "parameters": [
155           {
156             "type": "function",
157             "name": "callback"
158           }
159         ]
160       },
161       {
162         "name": "assertTrue",
163         "type": "function",
164         "nocompile": true,
165         "parameters": [
166           {
167             "name": "test",
168             "choices": [
169               {"type": "string"},
170               {"type": "boolean"}
171             ]
172           },
173           {"type": "string", "name": "message", "optional": true}
174         ]
175       },
176       {
177         "name": "assertFalse",
178         "type": "function",
179         "nocompile": true,
180         "parameters": [
181           {
182             "name": "test",
183             "choices": [
184               {"type": "string"},
185               {"type": "boolean"}
186             ]
187           },
188           {"type": "string", "name": "message", "optional": true}
189         ]
190       },
191       {
192         "name": "assertBool",
193         "type": "function",
194         "nocompile": true,
195         "parameters": [
196           {
197             "name": "test",
198             "choices": [
199               {"type": "string"},
200               {"type": "boolean"}
201             ]
202           },
203           {"type": "boolean", "name": "expected"},
204           {"type": "string", "name": "message", "optional": true}
205         ]
206       },
207       {
208         "name": "checkDeepEq",
209         "type": "function",
210         "nocompile": true,
211         "allowAmbiguousOptionalArguments": true,
212         "parameters": [
213           // These need to be optional because they can be null.
214           {"type": "any", "name": "expected", "optional": true},
215           {"type": "any", "name": "actual", "optional": true}
216         ]
217       },
218       {
219         "name": "assertEq",
220         "type": "function",
221         "nocompile": true,
222         "allowAmbiguousOptionalArguments": true,
223         "parameters": [
224           // These need to be optional because they can be null.
225           {"type": "any", "name": "expected", "optional": true},
226           {"type": "any", "name": "actual", "optional": true},
227           {"type": "string", "name": "message", "optional": true}
228         ]
229       },
230       {
231         "name": "assertNoLastError",
232         "type": "function",
233         "nocompile": true,
234         "parameters": []
235       },
236       {
237         "name": "assertLastError",
238         "type": "function",
239         "nocompile": true,
240         "parameters": [
241           {"type": "string", "name": "expectedError"}
242         ]
243       },
244       {
245         "name": "assertThrows",
246         "type": "function",
247         "nocompile": true,
248         "parameters": [
249           {"type": "function", "name": "fn"},
250           {
251             "type": "object",
252             "name": "self",
253             "additionalProperties": {"type": "any"},
254             "optional": true
255           },
256           {"type": "array", "items": {"type": "any"}, "name": "args"},
257           {"choices": [ {"type": "string"}, {"type": "object", "isInstanceOf": "RegExp"} ], "name": "message", "optional": true}
258         ]
259       },
260       {
261         "name": "callback",
262         "type": "function",
263         "nocompile": true,
264         "parameters": [
265           {"type": "function", "name": "func", "optional": true},
266           {"type": "string", "name": "expectedError", "optional": true}
267         ]
268       },
269       {
270         "name": "listenOnce",
271         "type": "function",
272         "nocompile": true,
273         "parameters": [
274           // TODO(cduvall): Make this a $ref to events.Event.
275           {"type": "any", "name": "event"},
276           {"type": "function", "name": "func"}
277         ]
278       },
279       {
280         "name": "listenForever",
281         "type": "function",
282         "nocompile": true,
283         "parameters": [
284           // TODO(cduvall): Make this a $ref to events.Event.
285           {"type": "any", "name": "event"},
286           {"type": "function", "name": "func"}
287         ]
288       },
289       {
290         "name": "callbackPass",
291         "type": "function",
292         "nocompile": true,
293         "parameters": [
294           {"type": "function", "name": "func", "optional": true}
295         ]
296       },
297       {
298         "name": "callbackFail",
299         "type": "function",
300         "nocompile": true,
301         "parameters": [
302           {"type": "string", "name": "expectedError"},
303           {"type": "function", "name": "func", "optional": true}
304         ]
305       },
306       {
307         "name": "runTests",
308         "type": "function",
309         "nocompile": true,
310         "parameters": [
311           {
312             "type": "array",
313             "name": "tests",
314             "items": {"type": "function"}
315           }
316         ]
317       },
318       {
319         "name": "getApiFeatures",
320         "type": "function",
321         "nocompile": true,
322         "parameters": []
323       },
324       {
325         "name": "getApiDefinitions",
326         "type": "function",
327         "nocompile": true,
328         "parameters": [
329           {
330             "type": "array",
331             "name": "apiNames",
332             "optional": true,
333             "items": {"type": "string"}
334           }
335         ]
336       },
337       {
338         "name": "isProcessingUserGesture",
339         "type": "function",
340         "nocompile": true,
341         "parameters": []
342       },
343       {
344         "name": "runWithUserGesture",
345         "type": "function",
346         "description": "Runs the callback in the context of a user gesture.",
347         "nocompile": true,
348         "parameters": [
349           {
350             "type": "function",
351             "name": "callback",
352             "parameters": []
353           }
354         ]
355       },
356       {
357         "name": "runWithoutUserGesture",
358         "type": "function",
359         "nocompile": true,
360         "parameters": [
361           {
362             "type": "function",
363             "name": "callback",
364             "parameters": []
365           }
366         ]
367       },
368       {
369         "name": "waitForRoundTrip",
370         "type": "function",
371         "description": "Sends a string message one round trip from the renderer to the browser process and back.",
372         "parameters": [
373           {"type": "string", "name": "message"},
374           {
375             "type": "function",
376             "name": "callback",
377             "parameters": [
378               {"type": "string", "name": "message"}
379             ]
380           }
381         ]
382       },
383       {
384         "name": "setExceptionHandler",
385         "type": "function",
386         "description": "Sets the function to be called when an exception occurs. By default this is a function which fails the test. This is reset for every test run through $ref:test.runTests.",
387         "nocompile": true,
388         "parameters": [
389           {
390             "type": "function",
391             "name": "callback",
392             "parameters": [
393               {"type": "string", "name": "message"},
394               {"type": "any", "name": "exception"}
395             ]
396           }
397         ]
398       }
399     ],
400     "events": [
401       {
402         "name": "onMessage",
403         "type": "function",
404         "description": "Used to test sending messages to extensions.",
405         "parameters": [
406           {
407             "type": "object",
408             "name": "info",
409             "properties": {
410               "data": { "type": "string", "description": "Additional information." },
411               "lastMessage": { "type": "boolean", "description": "True if this was the last message for this test" }
412             }
413           }
414         ]
415       }
416     ]
417   }