Checks that XMLHttpRequest's properties are on the prototype and have the right properties

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS xhr.__proto__ is XMLHttpRequest.prototype

* readyState
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* response
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* responseText
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* responseType
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* responseURL
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* responseXML
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* statusText
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* timeout
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* upload
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

* withCredentials
PASS xhr.hasOwnProperty(propertyName) is false
PASS xhr.__proto__.hasOwnProperty(propertyName) is true
PASS properties.configurable is true
PASS properties.enumerable is true

PASS successfullyParsed is true

TEST COMPLETE

