public function testApiCancel_CancelsPromise_InRightOrder()
{
$deferred = $this->createDeferred();
$test = $this->getTest();
$str = '';
$promise = $deferred->getPromise();
$promise->then(null, null, function () use(&$str) {
$str .= 'A';
})->then(null, null, function () use(&$str) {
$str .= 'B';
});
$promise->then(null, null, function () use(&$str) {
$str .= 'C';
});
$promise->then(null, null, function () use(&$str) {
$str .= 'D';
});
$promise->cancel();
$test->assertEquals('ABCD', $str);
}