Async Tests and Promises

This test assumes ECMAScript 6 Promise support. Some failures are expected.