3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
7 <link rel="import" href="/tracing/importer/task.html">
12 tvcm.unittest.testSuite(function() {
13 var Task = tracing.importer.Task;
15 test('basicAllStepsPass', function() {
18 var startingTask = new Task(function(task) {
20 task.subTask(function() {
23 task.subTask(function() {
27 startingTask.after(function() {
29 }, this).after(function() {
33 Task.RunSynchronously(startingTask);
34 assertArrayEquals(['a', 'a/1', 'a/2', 'b', 'c'],
38 test('basicAllStepsPassAsync', function() {
41 var startingTask = new Task(function(task) {
43 task.subTask(function() {
46 task.subTask(function() {
50 startingTask.after(function() {
52 }, this).after(function() {
56 var promise = Task.RunWhenIdle(startingTask);
57 promise.then(function() {
58 assertArrayEquals(['a', 'a/1', 'a/2', 'b', 'c'],
64 test('taskThatThrowsShouldRejectItsPromise', function() {
65 var startingTask = new Task(function(task) {
67 'IGNORE. This is an expected error to test error handling.');
70 var taskPromise = Task.RunWhenIdle(startingTask);
72 return new Promise(function(resolve, reject) {
73 taskPromise.then(function() {
74 reject(new Error('Should have thrown'));