Improve promises

PromisesTest.js implement test cases for: 
UserContext.js
  2.2.7.1 onFulfilled returns a value
  2.2.7.1 onRejected returns a value
  2.2.7.2 onFulfilled throws an error
  2.2.7.2 onRejected throws an error
  2.2.7.3 missing onFulfilled
  2.2.7.4 missing onRejected
merge