public function testApiCancel_CallsCanceller_FromDeepNestedPromiseChain()
{
$deferred = $this->createDeferred();
$test = $this->getTest();
$mock = $test->createCallableMock();
$mock->expects($test->once())->method('__invoke');
$promise = $deferred->getPromise()->then(null, null, $mock)->then(function () {
return new Promise(function () {
});
})->then(function () {
return (new Deferred())->getPromise();
})->then(function () use($mock) {
return new Promise(function () {
});
});
$promise->cancel();
}