testing.ContinuationTestCase Extends goog.testing.TestCase
Constructs a test case that supports tests with continuations. Test functions may issue "wait" commands that suspend the test temporarily and continue once the wait condition is met.

Inheritance

Constructor

goog.testing.ContinuationTestCase(opt_name)

Parameters

opt_name : string=
Optional name for the test case.

Instance Methods

Public Protected Private
Creates a new asynchronous test step which will be added to the current test phase.
Arguments:
func : Function
The test function that will be executed for this step.
Returns: !goog.testing.ContinuationTestCase.Step  A new test step.
code »
Creates the next test in the queue.
Returns: goog.testing.ContinuationTestCase.Test  The next test to execute, or null if no pending tests remain.
code »
cycleTests()
No description.
code »
enableWaitFunctions_(enable)
Enables or disables the wait functions in the global scope.
Arguments:
enable : boolean
Whether the wait functions should be exported.
code »
finalize()
No description.
code »
finishTest_()
Cleans up a finished test and cycles to the next test.
code »
handleComplete_(step)
Handles completion of a step's wait condition. Advances the test, allowing the step's test method to run.
Arguments:
step : goog.testing.ContinuationTestCase.Step
The step that has finished waiting.
code »
handleTimeout_(stepduration)
Handles the timeout event for a step that has exceeded the maximum time. This causes the current test to fail.
Arguments:
step : goog.testing.ContinuationTestCase.Step
The timed-out step.
duration : number
The length of the timeout in milliseconds.
code »
runNextStep_()
Executes the next step in the current phase, advancing through each phase as all steps are completed.
code »
runTests()
No description.
code »
testCondition_(stepconditionstartTimeintervaltimeout)
Tests a wait condition and executes the associated test step once the condition is true. If the condition does not become true before the maximum duration, the interval will stop and the test step will fail in the kill timer.
Arguments:
step : goog.testing.ContinuationTestCase.Step
The waiting test step.
condition : Function
The test condition.
startTime : number
Time when the test step began waiting.
interval : number
The duration in milliseconds to wait between tests.
timeout : number
The maximum amount of time to wait for the condition to become true. Measured from the startTime in milliseconds.
code »
waitForCondition(conditioncontinuationopt_intervalopt_maxTimeout)
Creates a new test step which will run once a condition becomes true. The condition will be polled at a user-specified interval until it becomes true, or until a maximum timeout is reached.
Arguments:
condition : Function
The condition to poll.
continuation : Function
The test code to evaluate once the condition becomes true.
opt_interval : number=
The polling interval in milliseconds.
opt_maxTimeout : number=
The maximum amount of time to wait for the condition in milliseconds (defaults to 1000).
code »
waitForEvent(eventTargeteventTypecontinuation)
Creates a new test step that will run after an event has fired. If the event does not fire within a reasonable timeout, the test will fail.
Arguments:
eventTarget : goog.events.EventTarget | EventTarget
The target that will fire the event.
eventType : string
The type of event to listen for.
continuation : Function
The test function to invoke after the event fires.
code »
waitForTimeout(continuationopt_duration)
Creates a new test step that will run after a user-specified timeout. No guarantee is made on the execution order of the continuation, except for those provided by each browser's window.setTimeout. In particular, if two continuations are registered at the same time with very small delta for their durations, this class can not guarantee that the continuation with the smaller duration will be executed first.
Arguments:
continuation : Function
The test function to invoke after the timeout.
opt_duration : number=
The length of the timeout in milliseconds.
code »
add(test)
Adds a new test to the test case.
Arguments:
test : goog.testing.TestCase.Test
The test to add.
code »
addNewTest(namerefopt_scope)
Creates and adds a new test. Convenience function to make syntax less awkward when not using automatic test discovery.
Arguments:
name : string
The test name.
ref : !Function
Reference to the test function.
opt_scope : !Object=
Optional scope that the test function should be called in.
code »
autoDiscoverLifecycle()
Adds any functions defined in the global scope that correspond to lifecycle events for the test case. Overrides setUp, tearDown, setUpPage, tearDownPage and runTests if they are defined.
code »
autoDiscoverTests()
Adds any functions defined in the global scope that are prefixed with "test" to the test case.
code »
clearTimeout(id)
Clears a timeout created by this.timeout().
Arguments:
id : number
A timeout id.
code »
countNumFilesLoaded_() number
Counts the number of files that were loaded for dependencies that are required to run the test.
Returns: number  The number of files loaded.
code »
createTestFromAutoDiscoveredFunction(nameref) !goog.testing.TestCase.Test
Creates a goog.testing.TestCase.Test from an auto-discovered function.
Arguments:
name : string
The name of the function.
ref : function() : void
The auto-discovered function.
Returns: !goog.testing.TestCase.Test  The newly created test.
code »
cycleTests()
Cycles through the tests, breaking out using a setTimeout if the execution time has execeeded #maxRunTime.
code »
doError(testopt_e)
Handles a test that failed.
Arguments:
test : goog.testing.TestCase.Test
The test that failed.
opt_e : *=
The exception object associated with the failure or a string.
code »
doSuccess(test)
Handles a test that passed.
Arguments:
test : goog.testing.TestCase.Test
The test that passed.
code »
execute()
Executes each of the tests.
code »
finalize()
Finalizes the test case, called when the tests have finished executing.
code »
getActuallyRunCount() number
Returns the number of tests actually run in the test case, i.e. subtracting any which are skipped.
Returns: number  The number of un-ignored tests.
code »
getAutoDiscoveryPrefix() string
No description.
Returns: string  The function name prefix used to auto-discover tests.
code »
getBatchTime() number
No description.
Returns: number  Time since the last batch of tests was started.
code »
getCount() number
Returns the number of tests contained in the test case.
Returns: number  The number of tests.
code »
getGlobals(opt_prefix) Object
Gets the object with all globals.
Arguments:
opt_prefix : string=
An optional prefix. If specified, only get things under this prefix. Note that the prefix is only honored in IE, since it supports the RuntimeObject: http://msdn.microsoft.com/en-us/library/ff521039%28VS.85%29.aspx TODO: Fix this method to honor the prefix in all browsers.
Returns: Object  An object with all globals starting with the prefix.
code »
getName() string
No description.
Returns: string  The name of the test.
code »
getNumFilesLoaded() number
Returns the number of script files that were loaded in order to run the test.
Returns: number  The number of script files.
code »
getReport(opt_verbose) string
Returns a string detailing the results from the test.
Arguments:
opt_verbose : boolean=
If true results will include data about all tests, not just what failed.
Returns: string  The results from the test.
code »
getRunTime() number
Returns the amount of time it took for the test to run.
Returns: number  The run time, in milliseconds.
code »
getTestResults() !Object.<string, !Array.<string>>
Returns the test results object: a map from test names to a list of test failures (if any exist).
Returns: !Object.<string, !Array.<string>>  Tests results object.
code »
getTests() !Array.<goog.testing.TestCase.Test>
Gets the tests.
Returns: !Array.<goog.testing.TestCase.Test>  The test array.
code »
getTimeStamp_() string
Returns the current time.
Returns: string  HH:MM:SS.
code »
isInsideMultiTestRunner() boolean
No description.
Returns: boolean  Whether the test case is running inside the multi test runner.
code »
isSuccess() boolean
No description.
Returns: boolean  Whether the test was a success.
code »
log(val)
Logs an object to the console, if available.
Arguments:
val : *
The value to log. Will be ToString'd.
code »
logError(nameopt_e) !goog.testing.TestCase.Error
No description.
Arguments:
name : string
Failed test name.
opt_e : *=
The exception object associated with the failure or a string.
Returns: !goog.testing.TestCase.Error  Error object.
code »
maybeFailTestEarly(testCase) boolean
Checks to see if the test should be marked as failed before it is run. If there was an error in setUpPage, we treat that as a failure for all tests and mark them all as having failed.
Arguments:
testCase : goog.testing.TestCase.Test
The current test case.
Returns: boolean  Whether the test was marked as failed.
code »
Returns the current test and increments the pointer.
Returns: goog.testing.TestCase.Test  The current test case.
code »
now() number
No description.
Returns: number  The current time in milliseconds, don't use goog.now as some tests override it.
code »
orderTests_(tests)
Reorders the tests depending on the order field.
Arguments:
tests : Array.<goog.testing.TestCase.Test>
An array of tests to reorder.
code »
pad_(number) string
Pads a number to make it have a leading zero if it's less than 10.
Arguments:
number : number
The number to pad.
Returns: string  The resulting string.
code »
reset()
Resets the test case pointer, so that next returns the first test.
code »
runTests()
Executes each of the tests. Overridable by the individual test case. This allows test cases to defer when the test is actually started. If overridden, finalize must be called by the test to indicate it has finished.
code »
saveMessage(message)
Saves a message to the result set.
Arguments:
message : string
The message to save.
code »
setBatchTime(batchTime)
No description.
Arguments:
batchTime : number
Time since the last batch of tests was started.
code »
setCompletedCallback(fn)
Sets the callback function that should be executed when the tests have completed.
Arguments:
fn : Function
The callback function.
code »
setTests(tests)
Sets the tests.
Arguments:
tests : !Array.<goog.testing.TestCase.Test>
A new test array.
code »
setUp()
Gets called before every goog.testing.TestCase.Test is been executed. Can be overridden to add set up functionality to each test.
code »
setUpPage()
Gets called before any tests are executed. Can be overridden to set up the environment for the whole test case.
code »
shouldRunTests() boolean
Can be overridden in test classes to indicate whether the tests in a case should be run in that particular situation. For example, this could be used to stop tests running in a particular browser, where browser support for the class under test was absent.
Returns: boolean  Whether any of the tests in the case should be run.
code »
tearDown()
Gets called after every goog.testing.TestCase.Test has been executed. Can be overriden to add tear down functionality to each test.
code »
tearDownPage()
Gets called after all tests have been executed. Can be overridden to tear down the entire test case.
code »
timeout(fntime) number
Calls a function after a delay, using the protected timeout.
Arguments:
fn : Function
The function to call.
time : number
Delay in milliseconds.
Returns: number  The timeout id.
code »
trimPath_(path) string
Trims a path to be only that after google3.
Arguments:
path : string
The path to trim.
Returns: string  The resulting string.
code »

Instance Properties

constructor :
No description.
Code »
The current test being run.
Code »
An event handler for waiting on Closure or browser events during tests.
Code »
batchTime_ :
Time since the last batch of tests was started, if batchTime exceeds #maxRunTime a timeout will be used to stop the tests blocking the browser and a new batch will be started.
Code »
currentTestPointer_ :
Pointer to the current test.
Code »
exceptionBeforeTest :
Exception object that was detected before a test runs.
Code »
name_ :
A name for the test case.
Code »
onCompleteCallback_ :
Optional callback that will be executed when the test has finalized.
Code »
order :
The order to run the auto-discovered tests in.
Code »
Object used to encapsulate the test results.
Code »
running :
Whether the test case is running.
Code »
startTime_ :
Timestamp for when the test was started.
Code »
started :
Whether the test case has ever tried to execute.
Code »
testsToRun_ :
Set of test names and/or indices to execute, or null if all tests should be executed. Indices are included to allow automation tools to run a subset of the tests without knowing the exact contents of the test file. Indices should only be used with SORTED ordering. Example valid values:
  • [testName]
  • [testName1, testName2]
  • [2] - will run the 3rd test in the order specified
  • [1,3,5]
  • [testName1, testName2, 3, 5] - will work
    Code »
    tests_ :
    Array of test functions that can be executed.
    Code »

    Static Properties

    goog.testing.ContinuationTestCase.MAX_TIMEOUT :
    The default maximum time to wait for a single test step in milliseconds.
    Code »
    goog.testing.ContinuationTestCase.locked_ :
    Lock used to prevent multiple test steps from running recursively.
    Code »
    goog.testing.ContinuationTestCase.superClass_ :
    No description.
    Code »

    Package testing

    Package Reference