Port 2.2.2 tests; fix deferred resolve/reject inconsistency with spec