// Copyright 2014 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. [ { "namespace": "test", "description": "none", "functions": [ { "name": "getConfig", "type": "function", "description": "Gives configuration options set by the test.", "parameters": [ { "type": "function", "name": "callback", "parameters": [ { "type": "object", "name": "testConfig", "properties": { "customArg": { "type": "string", "optional": true, "description": "Additional string argument to pass to test." }, "ftpServer": { "type": "object", "optional": true, "description": "Details on the FTP server used to mock network responses. Will be set only if test calls ExtensionApiTest::StartFTPServer().", "properties": { "port": { "type": "integer", "description": "The port on which the FTP server is listening.", "minimum": 1024, "maximum": 65535 } } }, "testServer": { "type": "object", "optional": true, "description": "Details on the test server used to mock network responses. Will be set only if test calls ExtensionApiTest::StartTestServer().", "properties": { "port": { "type": "integer", "description": "The port on which the test server is listening.", "minimum": 1024, "maximum": 65535 } } }, "spawnedTestServer": { "type": "object", "optional": true, "description": "Details on the spawned test server used to mock network responses. Will be set only if test calls ExtensionApiTest::StartSpawnedTestServer().", "properties": { "port": { "type": "integer", "description": "The port on which the test server is listening.", "minimum": 1024, "maximum": 65535 } } }, "testDataDirectory": { "type": "string", "description": "file:/// URL for the API test data directory." }, "testWebSocketPort": { "type": "integer", "description": "The port on which the test WebSocket server is listening.", "minimum": 0, "maximum": 65535 } } } ] } ] }, { "name": "notifyFail", "type": "function", "description": "Notifies the browser process that test code running in the extension failed. This is only used for internal unit testing.", "parameters": [ {"type": "string", "name": "message"} ] }, { "name": "notifyPass", "type": "function", "description": "Notifies the browser process that test code running in the extension passed. This is only used for internal unit testing.", "parameters": [ {"type": "string", "name": "message", "optional": true} ] }, { "name": "resetQuota", "type": "function", "description": "Resets all accumulated quota state for all extensions. This is only used for internal unit testing.", "parameters": [] }, { "name": "log", "type": "function", "description": "Logs a message during internal unit testing.", "parameters": [ {"type": "string", "name": "message"} ] }, { "name": "sendMessage", "type": "function", "description": "Sends a string message to the browser process, generating a Notification that C++ test code can wait for.", "parameters": [ {"type": "string", "name": "message"}, { "type": "function", "name": "callback", "optional": true, "parameters": [ {"type": "string", "name": "response"} ] } ] }, { "name": "callbackAdded", "type": "function", "nocompile": true, "parameters": [] }, { "name": "runNextTest", "type": "function", "nocompile": true, "parameters": [] }, { "name": "fail", "type": "function", "nocompile": true, "parameters": [ {"type": "any", "name": "message", "optional": true} ] }, { "name": "succeed", "type": "function", "nocompile": true, "parameters": [ {"type": "any", "name": "message", "optional": true} ] }, { "name": "assertTrue", "type": "function", "nocompile": true, "parameters": [ { "name": "test", "choices": [ {"type": "string"}, {"type": "boolean"} ] }, {"type": "string", "name": "message", "optional": true} ] }, { "name": "assertFalse", "type": "function", "nocompile": true, "parameters": [ { "name": "test", "choices": [ {"type": "string"}, {"type": "boolean"} ] }, {"type": "string", "name": "message", "optional": true} ] }, { "name": "assertBool", "type": "function", "nocompile": true, "parameters": [ { "name": "test", "choices": [ {"type": "string"}, {"type": "boolean"} ] }, {"type": "boolean", "name": "expected"}, {"type": "string", "name": "message", "optional": true} ] }, { "name": "checkDeepEq", "type": "function", "nocompile": true, "allowAmbiguousOptionalArguments": true, "parameters": [ // These need to be optional because they can be null. {"type": "any", "name": "expected", "optional": true}, {"type": "any", "name": "actual", "optional": true} ] }, { "name": "assertEq", "type": "function", "nocompile": true, "allowAmbiguousOptionalArguments": true, "parameters": [ // These need to be optional because they can be null. {"type": "any", "name": "expected", "optional": true}, {"type": "any", "name": "actual", "optional": true}, {"type": "string", "name": "message", "optional": true} ] }, { "name": "assertNoLastError", "type": "function", "nocompile": true, "parameters": [] }, { "name": "assertLastError", "type": "function", "nocompile": true, "parameters": [ {"type": "string", "name": "expectedError"} ] }, { "name": "assertThrows", "type": "function", "nocompile": true, "parameters": [ {"type": "function", "name": "fn"}, { "type": "object", "name": "self", "additionalProperties": {"type": "any"}, "optional": true }, {"type": "array", "items": {"type": "any"}, "name": "args"}, {"choices": [ {"type": "string"}, {"type": "object", "isInstanceOf": "RegExp"} ], "name": "message", "optional": true} ] }, { "name": "callback", "type": "function", "nocompile": true, "parameters": [ {"type": "function", "name": "func", "optional": true}, {"type": "string", "name": "expectedError", "optional": true} ] }, { "name": "listenOnce", "type": "function", "nocompile": true, "parameters": [ // TODO(cduvall): Make this a $ref to events.Event. {"type": "any", "name": "event"}, {"type": "function", "name": "func"} ] }, { "name": "listenForever", "type": "function", "nocompile": true, "parameters": [ // TODO(cduvall): Make this a $ref to events.Event. {"type": "any", "name": "event"}, {"type": "function", "name": "func"} ] }, { "name": "callbackPass", "type": "function", "nocompile": true, "parameters": [ {"type": "function", "name": "func", "optional": true} ] }, { "name": "callbackFail", "type": "function", "nocompile": true, "parameters": [ {"type": "string", "name": "expectedError"}, {"type": "function", "name": "func", "optional": true} ] }, { "name": "runTests", "type": "function", "nocompile": true, "parameters": [ { "type": "array", "name": "tests", "items": {"type": "function"} } ] }, { "name": "getApiFeatures", "type": "function", "nocompile": true, "parameters": [] }, { "name": "getApiDefinitions", "type": "function", "nocompile": true, "parameters": [ { "type": "array", "name": "apiNames", "optional": true, "items": {"type": "string"} } ] }, { "name": "isProcessingUserGesture", "type": "function", "nocompile": true, "parameters": [] }, { "name": "runWithUserGesture", "type": "function", "description": "Runs the callback in the context of a user gesture.", "nocompile": true, "parameters": [ { "type": "function", "name": "callback", "parameters": [] } ] }, { "name": "runWithoutUserGesture", "type": "function", "nocompile": true, "parameters": [ { "type": "function", "name": "callback", "parameters": [] } ] }, { "name": "waitForRoundTrip", "type": "function", "description": "Sends a string message one round trip from the renderer to the browser process and back.", "parameters": [ {"type": "string", "name": "message"}, { "type": "function", "name": "callback", "parameters": [ {"type": "string", "name": "message"} ] } ] }, { "name": "setExceptionHandler", "type": "function", "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.", "nocompile": true, "parameters": [ { "type": "function", "name": "callback", "parameters": [ {"type": "string", "name": "message"}, {"type": "any", "name": "exception"} ] } ] } ], "events": [ { "name": "onMessage", "type": "function", "description": "Used to test sending messages to extensions.", "parameters": [ { "type": "object", "name": "info", "properties": { "data": { "type": "string", "description": "Additional information." }, "lastMessage": { "type": "boolean", "description": "True if this was the last message for this test" } } } ] } ] } ]