google-closure-compiler
Version:
Check, compile, optimize and compress Javascript with Closure-Compiler
476 lines (297 loc) • 9.08 kB
JavaScript
/*
* Copyright 2013 The Closure Compiler Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Externs for Jasmine.
*
* TODO: Remaining Spy properties and anything else missing.
*
* @see http://pivotal.github.com/jasmine/
* @externs
*/
/** @const */
var jasmine = {};
/**
* @param {string} name
* @return {!jasmine.Spy} spy
*/
jasmine.createSpy = function(name) {};
/**
* @param {string} baseName
* @param {Array} methodNames
*/
jasmine.createSpyObj = function(baseName, methodNames) {};
/** @constructor */
jasmine.TimeProvider = function() {};
/**
* @param {Function} cb
* @param {number} time
* @return {number}
*/
jasmine.TimeProvider.prototype.setTimeout = function(cb, time) {};
/**
* @param {Function} cb
* @param {number} time
* @return {number}
*/
jasmine.TimeProvider.prototype.setInterval = function(cb, time) {};
/**
* @param {number} id
*/
jasmine.TimeProvider.prototype.clearTimeout = function(id) {};
/**
* @param {number} id
*/
jasmine.TimeProvider.prototype.clearInterval = function(id) {};
/**
* @type {number}
*/
jasmine.TimeProvider.prototype.nowMillis;
/** @constructor */
jasmine.Clock = function() {};
/** @type {!jasmine.TimeProvider} */
jasmine.Clock.real;
/** @type {!jasmine.TimeProvider} */
jasmine.Clock.installed;
/** @return {void} */
jasmine.Clock.useMock = function() {};
/** @param {number} ms */
jasmine.Clock.tick = function(ms) {};
/** @type {number} */
jasmine.Clock.prototype.nowMillis;
/** @constructor */
jasmine.Matchers = function() {};
/** @type {jasmine.Matchers} */
jasmine.Matchers.prototype.not;
/** @type {*} */
jasmine.Matchers.prototype.actual;
/** @param {*} value */
jasmine.Matchers.prototype.toBe = function(value) {};
/** @return {void} */
jasmine.Matchers.prototype.toBeDefined = function() {};
/** @return {void} */
jasmine.Matchers.prototype.toBeFalsy = function() {};
/** @param {*} value */
jasmine.Matchers.prototype.toBeGreaterThan = function(value) {};
/** @param {*} value */
jasmine.Matchers.prototype.toBeLessThan = function(value) {};
/** @param {*} value */
jasmine.Matchers.prototype.toBeCloseTo = function(value, precision) {};
/** @return {void} */
jasmine.Matchers.prototype.toBeNull = function() {};
/** @return {void} */
jasmine.Matchers.prototype.toBeTruthy = function() {};
/** @return {void} */
jasmine.Matchers.prototype.toBeUndefined = function() {};
/** @return {void} */
jasmine.Matchers.prototype.toBeNaN = function() {};
/** @param {*} value */
jasmine.Matchers.prototype.toContain = function(value) {};
/** @param {*} value */
jasmine.Matchers.prototype.toEqual = function(value) {};
/** @return {void} */
jasmine.Matchers.prototype.toHaveBeenCalled = function() {};
/** @param {...*} var_args */
jasmine.Matchers.prototype.toHaveBeenCalledWith = function(var_args) {};
/** @param {(string|RegExp)} pattern */
jasmine.Matchers.prototype.toMatch = function(pattern) {};
/** @param {Error=} opt_expected */
jasmine.Matchers.prototype.toThrow = function(opt_expected) {};
/**
* @param {Object} value
* @return {string}
*/
jasmine.pp = function(value) {};
/**
* @param {!Object} clazz
* @return {!jasmine.Matchers}
*/
jasmine.any = function(clazz) {};
/**
* @param {!Object} sample
* @return {!jasmine.Matchers}
*/
jasmine.objectContaining = function(sample) {};
/** @constructor */
jasmine.Spec = function() {};
/** @type {undefined|function(): string} */
jasmine.Spec.prototype.message;
/**
* @param {function(this:jasmine.Spec)} after
*/
jasmine.Spec.prototype.after = function(after) {};
/** @param {Error|string} e */
jasmine.Spec.prototype.fail = function(e) {};
/**
* @param {function()=} opt_onComplete
*/
jasmine.Spec.prototype.finish = function(opt_onComplete) {};
/**
* @param {Object} matchers
*/
jasmine.Spec.prototype.addMatchers = function(matchers) {};
/**
* @constructor
* @extends {Function}
*/
jasmine.Spy = function() {};
/**
* @param {!Function} fn
* @return {!jasmine.Spy}
*/
jasmine.Spy.prototype.andCallFake = function(fn) {};
/** @return {!jasmine.Spy} */
jasmine.Spy.prototype.andCallThrough = function() {};
/**
* @param {*} value
* @return {!jasmine.Spy}
*/
jasmine.Spy.prototype.andReturn = function(value) {};
/**
* @param {!Error} exception
* @return {!jasmine.Spy}
*/
jasmine.Spy.prototype.andThrow = function(exception) {};
/**
* @return {void}
*/
jasmine.Spy.prototype.reset = function() {};
/** @type {number} */
jasmine.Spy.prototype.callCount;
/** @type {!Array.<!Object>} */
jasmine.Spy.prototype.calls;
/** @type {*} */
jasmine.Spy.prototype.mostRecentCall;
/** @type {!Array} */
jasmine.Spy.prototype.mostRecentCall.args;
/** @constructor */
jasmine.Suite = function() {};
/**
* @param {function()=} opt_onComplete
*/
jasmine.Suite.prototype.finish = function(opt_onComplete) {};
/**
* @param {function(this:jasmine.Spec)} beforeEachFunction
*/
jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {};
/**
* @param {function(this:jasmine.Spec)} afterEachFunction
*/
jasmine.Suite.prototype.afterEach = function(afterEachFunction) {};
/** @constructor */
jasmine.JsApiReporter = function() {};
/** @type {!Array.<string>} */
jasmine.JsApiReporter.prototype.messages;
/** @type {boolean} */
jasmine.JsApiReporter.prototype.finished;
/** @return {!Array.<{id:string,name:string,type:string,children:!Array}>} id */
jasmine.JsApiReporter.prototype.suites = function() {};
/** @return {boolean} */
jasmine.JsApiReporter.prototype.isInitialized = function() {};
/** @return {boolean} */
jasmine.JsApiReporter.prototype.isFinished = function() {};
/** @return {boolean} */
jasmine.JsApiReporter.prototype.isSuccess = function() {};
/** @return {string} */
jasmine.JsApiReporter.prototype.getReport = function() {};
/** @return {number} */
jasmine.JsApiReporter.prototype.getRunTime = function() {};
/** @param {Object} runner */
jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {};
/** @return {Object} runner */
jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {};
/**
* @param {string} id
* @return {{messages:Array,result:string}}
*/
jasmine.JsApiReporter.prototype.resultsForSpec = function(id) {};
/** @constructor */
jasmine.Env = function() {};
/** @type {jasmine.Spec} */
jasmine.Env.prototype.currentSpec;
/** @return {void} */
jasmine.Env.prototype.execute = function() {};
/** @param {jasmine.JsApiReporter} reporter */
jasmine.Env.prototype.addReporter = function(reporter) {};
/** @param {function(this:jasmine.Spec)} handler */
jasmine.Env.prototype.afterEach = function(handler) {};
/** @param {function(this:jasmine.Spec)} handler */
jasmine.Env.prototype.beforeEach = function(handler) {};
/**
* @return {!jasmine.Env}
*/
jasmine.getEnv = function() {};
/** @param {function(this:jasmine.Spec)} handler */
function afterEach(handler) {}
/** @param {function(this:jasmine.Spec)} handler */
function beforeEach(handler) {}
/**
* @param {string} description
* @param {function(this:jasmine.Suite)} handler
*/
function describe(description, handler) {}
/**
* @param {*} expectedValue
* @return {jasmine.Matchers} matcher
*/
function expect(expectedValue) {}
/**
* Provided by angular-mocks.js.
* @param {...(Function|Array<string|Function>)} var_args
*/
function inject(var_args) {}
/**
* @param {string} description
* @param {function(this:jasmine.Spec)} handler
*/
function it(description, handler) {}
/**
* @param {string} description
* @param {function(this:jasmine.Spec)} handler
*/
function iit(description, handler) {}
/**
* Provided by angular-mocks.js.
* @param {...(string|Function|Array<string|Function>)} var_args
* @suppress {checkTypes}
*/
function module(var_args) {}
/** @param {function()} handler */
function runs(handler) {}
/**
* @param {Object} spiedOnObject
* @param {string} methodName
* @return {jasmine.Spy} spy
*/
function spyOn(spiedOnObject, methodName) {}
/** @param {number} timeout */
function waits(timeout) {}
/**
* @param {function(): boolean} handler
* @param {string=} opt_message
* @param {number=} opt_timeout
*/
function waitsFor(handler, opt_message, opt_timeout) {}
/**
* @nosideeffects
* @param {string} description
* @param {function(this:jasmine.Suite)} handler
*/
function xdescribe(description, handler) {}
/**
* @param {string} description
* @param {function(this:jasmine.Spec)} handler
*/
function xit(description, handler) {}