1 // Copyright (c) 2013 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.
7 tvcm.require('tracing.importer.task');
9 tvcm.unittest.testSuite('tracing.importer.task_test', function() {
10 var Task = tracing.importer.Task;
12 test('basicAllStepsPass', function() {
15 var startingTask = new Task(function(task) {
17 task.subTask(function() {
20 task.subTask(function() {
24 startingTask.after(function() {
26 }, this).after(function() {
30 Task.RunSynchronously(startingTask);
31 assertArrayEquals(['a', 'a/1', 'a/2', 'b', 'c'],
35 test('basicAllStepsPassAsync', function() {
38 var startingTask = new Task(function(task) {
40 task.subTask(function() {
43 task.subTask(function() {
47 startingTask.after(function() {
49 }, this).after(function() {
53 var promise = Task.RunWhenIdle(startingTask);
54 promise.then(function() {
55 assertArrayEquals(['a', 'a/1', 'a/2', 'b', 'c'],
61 test('taskThatThrowsShouldRejectItsPromise', function() {
62 var startingTask = new Task(function(task) {
63 throw new Errror('Expected error');
66 var taskPromise = Task.RunWhenIdle(startingTask);
68 return new Promise(function(resolver) {
69 taskPromise.then(function() {
70 resolver.reject(new Error('Should have thrown'));