         self.wait()
     }
     
-    func testProgress_async_success()
+    func testProgress_innerTask_success()
     {
         // NOTE: this is async test
         if !self.isAsync { return }

        self.wait()
    }
    
    func testReject_failureTaskReject()
    {
        var expect = self.expectationWithDescription(__FUNCTION__)
        

            expect.fulfill()
        }
        
        // pause at t=0.3 (between _interruptableTask's 1st & 2nd delay before pause-check)
        Async.main(after: 0.3) {
            
            // NOTE: task2 will be paused,
            task2.pause()
            
            XCTAssertEqual(task2.state, TaskState.Paused)
            XCTAssertNil(task2.progress, "`task2.progress` should be nil because `innerTask.progress()` has not been invoked yet.")
            
            XCTAssertNil(innerTask, "`innerTask` should NOT be created yet.")
            
            XCTAssertEqual(task.state, TaskState.Running, "`task` should NOT be paused.")
            XCTAssertTrue(task.progress? == 2, "`task` should be halfway progressed.")
            XCTAssertNil(task.value, "`task` should NOT be fulfilled yet.")
            
            // resume at t=0.6
            Async.main(after: 0.3) {
                
                XCTAssertEqual(task2.state, TaskState.Paused)
                XCTAssertNil(task2.progress, "`task2.progress` should still be nil.")
                
                XCTAssertNotNil(innerTask, "`innerTask` should be created at this point.")
                XCTAssertEqual(innerTask!.state, task2.state, "`innerTask!.state` should be same as `task2.state`.")
                
                XCTAssertEqual(task.state, TaskState.Fulfilled, "`task` should NOT be paused, and it should be fulfilled at this point.")
                XCTAssertEqual(task.value!, "OK", "`task` should be fulfilled.")
                
                task2.resume()
                
                XCTAssertEqual(task2.state, TaskState.Running, "`task2` should be resumed.")
                
                // check tasks's states at t=0.7
                Async.main(after: 0.1) {
                    XCTAssertEqual(task2.state, TaskState.Running)
                    XCTAssertEqual(innerTask!.state, task2.state, "`innerTask!.state` should be same as `task2.state`.")
                    XCTAssertEqual(task.state, TaskState.Fulfilled)
                }
                
            }
        }
