@pdftron/pdfnet-node 10.4.0-beta → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/underscore/LICENSE +23 -0
- package/node_modules/underscore/README.md +28 -0
- package/node_modules/underscore/amd/_apply.js +7 -0
- package/node_modules/underscore/amd/_applyProperty.js +14 -0
- package/node_modules/underscore/amd/_arrayAccessors.js +11 -0
- package/node_modules/underscore/amd/_arrayMutators.js +15 -0
- package/node_modules/underscore/amd/_baseCreate.js +21 -0
- package/node_modules/underscore/amd/_baseIteratee.js +15 -0
- package/node_modules/underscore/amd/_binarySearch.js +17 -0
- package/node_modules/underscore/amd/_bindCb.js +14 -0
- package/node_modules/underscore/amd/_bindCb4.js +17 -0
- package/node_modules/underscore/amd/_byValue.js +11 -0
- package/node_modules/underscore/amd/_cb.js +12 -0
- package/node_modules/underscore/amd/_chainResult.js +10 -0
- package/node_modules/underscore/amd/_collectNonEnumProps.js +42 -0
- package/node_modules/underscore/amd/_createAssigner.js +24 -0
- package/node_modules/underscore/amd/_createEscaper.js +21 -0
- package/node_modules/underscore/amd/_createIndexFinder.js +30 -0
- package/node_modules/underscore/amd/_createPredicateIndexFinder.js +18 -0
- package/node_modules/underscore/amd/_createReduce.js +30 -0
- package/node_modules/underscore/amd/_createSizePropertyCheck.js +13 -0
- package/node_modules/underscore/amd/_deepGet.js +15 -0
- package/node_modules/underscore/amd/_escapeMap.js +15 -0
- package/node_modules/underscore/amd/_executeBound.js +16 -0
- package/node_modules/underscore/amd/_extremum.js +35 -0
- package/node_modules/underscore/amd/_flatten.js +32 -0
- package/node_modules/underscore/amd/_forceNumericMinMax.js +16 -0
- package/node_modules/underscore/amd/_getByteLength.js +8 -0
- package/node_modules/underscore/amd/_getLength.js +8 -0
- package/node_modules/underscore/amd/_greater.js +10 -0
- package/node_modules/underscore/amd/_group.js +18 -0
- package/node_modules/underscore/amd/_has.js +10 -0
- package/node_modules/underscore/amd/_hasObjectTag.js +7 -0
- package/node_modules/underscore/amd/_isArrayLike.js +11 -0
- package/node_modules/underscore/amd/_isBufferLike.js +9 -0
- package/node_modules/underscore/amd/_keyInObj.js +11 -0
- package/node_modules/underscore/amd/_less.js +10 -0
- package/node_modules/underscore/amd/_lessEqual.js +10 -0
- package/node_modules/underscore/amd/_linearSearch.js +31 -0
- package/node_modules/underscore/amd/_mapReduce.js +5 -0
- package/node_modules/underscore/amd/_methodFingerprint.js +44 -0
- package/node_modules/underscore/amd/_optimizeCb.js +27 -0
- package/node_modules/underscore/amd/_push.js +7 -0
- package/node_modules/underscore/amd/_pusher.js +13 -0
- package/node_modules/underscore/amd/_sequence.js +18 -0
- package/node_modules/underscore/amd/_setup.js +70 -0
- package/node_modules/underscore/amd/_shallowProperty.js +12 -0
- package/node_modules/underscore/amd/_slice.js +7 -0
- package/node_modules/underscore/amd/_strictEqual.js +9 -0
- package/node_modules/underscore/amd/_stringTagBug.js +16 -0
- package/node_modules/underscore/amd/_tagTester.js +13 -0
- package/node_modules/underscore/amd/_toBufferView.js +15 -0
- package/node_modules/underscore/amd/_toPath.js +11 -0
- package/node_modules/underscore/amd/_unescapeMap.js +8 -0
- package/node_modules/underscore/amd/_unmethodize.js +9 -0
- package/node_modules/underscore/amd/_wrapArrayAccessor.js +15 -0
- package/node_modules/underscore/amd/_wrapArrayMutator.js +28 -0
- package/node_modules/underscore/amd/after.js +14 -0
- package/node_modules/underscore/amd/allKeys.js +15 -0
- package/node_modules/underscore/amd/before.js +18 -0
- package/node_modules/underscore/amd/bind.js +15 -0
- package/node_modules/underscore/amd/bindAll.js +19 -0
- package/node_modules/underscore/amd/chain.js +12 -0
- package/node_modules/underscore/amd/chunk.js +17 -0
- package/node_modules/underscore/amd/clone.js +11 -0
- package/node_modules/underscore/amd/compact.js +10 -0
- package/node_modules/underscore/amd/compose.js +18 -0
- package/node_modules/underscore/amd/concat.js +7 -0
- package/node_modules/underscore/amd/constant.js +12 -0
- package/node_modules/underscore/amd/contains.js +12 -0
- package/node_modules/underscore/amd/countBy.js +12 -0
- package/node_modules/underscore/amd/create.js +14 -0
- package/node_modules/underscore/amd/debounce.js +43 -0
- package/node_modules/underscore/amd/defaults.js +8 -0
- package/node_modules/underscore/amd/defer.js +9 -0
- package/node_modules/underscore/amd/delay.js +13 -0
- package/node_modules/underscore/amd/difference.js +14 -0
- package/node_modules/underscore/amd/each.js +25 -0
- package/node_modules/underscore/amd/escape.js +8 -0
- package/node_modules/underscore/amd/every.js +17 -0
- package/node_modules/underscore/amd/extend.js +8 -0
- package/node_modules/underscore/amd/extendOwn.js +10 -0
- package/node_modules/underscore/amd/filter.js +15 -0
- package/node_modules/underscore/amd/find.js +12 -0
- package/node_modules/underscore/amd/findIndex.js +8 -0
- package/node_modules/underscore/amd/findKey.js +15 -0
- package/node_modules/underscore/amd/findLastIndex.js +8 -0
- package/node_modules/underscore/amd/findWhere.js +11 -0
- package/node_modules/underscore/amd/first.js +13 -0
- package/node_modules/underscore/amd/flatten.js +11 -0
- package/node_modules/underscore/amd/functions.js +14 -0
- package/node_modules/underscore/amd/get.js +14 -0
- package/node_modules/underscore/amd/groupBy.js +11 -0
- package/node_modules/underscore/amd/has.js +19 -0
- package/node_modules/underscore/amd/identity.js +10 -0
- package/node_modules/underscore/amd/index-default.js +12 -0
- package/node_modules/underscore/amd/index.js +154 -0
- package/node_modules/underscore/amd/indexBy.js +11 -0
- package/node_modules/underscore/amd/indexOf.js +11 -0
- package/node_modules/underscore/amd/initial.js +12 -0
- package/node_modules/underscore/amd/intersection.js +22 -0
- package/node_modules/underscore/amd/invert.js +15 -0
- package/node_modules/underscore/amd/invoke.js +28 -0
- package/node_modules/underscore/amd/isArguments.js +19 -0
- package/node_modules/underscore/amd/isArray.js +9 -0
- package/node_modules/underscore/amd/isArrayBuffer.js +7 -0
- package/node_modules/underscore/amd/isBoolean.js +10 -0
- package/node_modules/underscore/amd/isDataView.js +15 -0
- package/node_modules/underscore/amd/isDate.js +7 -0
- package/node_modules/underscore/amd/isElement.js +10 -0
- package/node_modules/underscore/amd/isEmpty.js +18 -0
- package/node_modules/underscore/amd/isEqual.js +133 -0
- package/node_modules/underscore/amd/isError.js +7 -0
- package/node_modules/underscore/amd/isFinite.js +10 -0
- package/node_modules/underscore/amd/isFunction.js +18 -0
- package/node_modules/underscore/amd/isMap.js +7 -0
- package/node_modules/underscore/amd/isMatch.js +17 -0
- package/node_modules/underscore/amd/isNaN.js +10 -0
- package/node_modules/underscore/amd/isNull.js +10 -0
- package/node_modules/underscore/amd/isNumber.js +7 -0
- package/node_modules/underscore/amd/isObject.js +11 -0
- package/node_modules/underscore/amd/isRegExp.js +7 -0
- package/node_modules/underscore/amd/isSet.js +7 -0
- package/node_modules/underscore/amd/isString.js +7 -0
- package/node_modules/underscore/amd/isSymbol.js +7 -0
- package/node_modules/underscore/amd/isTypedArray.js +16 -0
- package/node_modules/underscore/amd/isUndefined.js +10 -0
- package/node_modules/underscore/amd/isWeakMap.js +7 -0
- package/node_modules/underscore/amd/isWeakSet.js +7 -0
- package/node_modules/underscore/amd/iteratee.js +13 -0
- package/node_modules/underscore/amd/join.js +7 -0
- package/node_modules/underscore/amd/keys.js +17 -0
- package/node_modules/underscore/amd/last.js +13 -0
- package/node_modules/underscore/amd/lastIndexOf.js +9 -0
- package/node_modules/underscore/amd/map.js +18 -0
- package/node_modules/underscore/amd/mapObject.js +19 -0
- package/node_modules/underscore/amd/matcher.js +14 -0
- package/node_modules/underscore/amd/max.js +30 -0
- package/node_modules/underscore/amd/memoize.js +17 -0
- package/node_modules/underscore/amd/min.js +30 -0
- package/node_modules/underscore/amd/mixin.js +18 -0
- package/node_modules/underscore/amd/negate.js +12 -0
- package/node_modules/underscore/amd/noop.js +8 -0
- package/node_modules/underscore/amd/now.js +10 -0
- package/node_modules/underscore/amd/object.js +20 -0
- package/node_modules/underscore/amd/omit.js +20 -0
- package/node_modules/underscore/amd/once.js +9 -0
- package/node_modules/underscore/amd/pairs.js +17 -0
- package/node_modules/underscore/amd/partial.js +25 -0
- package/node_modules/underscore/amd/partition.js +11 -0
- package/node_modules/underscore/amd/pick.js +25 -0
- package/node_modules/underscore/amd/pluck.js +10 -0
- package/node_modules/underscore/amd/pop.js +7 -0
- package/node_modules/underscore/amd/property.js +14 -0
- package/node_modules/underscore/amd/propertyOf.js +13 -0
- package/node_modules/underscore/amd/push.js +7 -0
- package/node_modules/underscore/amd/random.js +14 -0
- package/node_modules/underscore/amd/range.js +27 -0
- package/node_modules/underscore/amd/reduce.js +9 -0
- package/node_modules/underscore/amd/reduceRight.js +8 -0
- package/node_modules/underscore/amd/reject.js +10 -0
- package/node_modules/underscore/amd/rest.js +12 -0
- package/node_modules/underscore/amd/restArguments.js +33 -0
- package/node_modules/underscore/amd/result.js +25 -0
- package/node_modules/underscore/amd/reverse.js +7 -0
- package/node_modules/underscore/amd/sample.js +27 -0
- package/node_modules/underscore/amd/shift.js +7 -0
- package/node_modules/underscore/amd/shuffle.js +10 -0
- package/node_modules/underscore/amd/size.js +11 -0
- package/node_modules/underscore/amd/slice.js +7 -0
- package/node_modules/underscore/amd/some.js +17 -0
- package/node_modules/underscore/amd/sort.js +7 -0
- package/node_modules/underscore/amd/sortBy.js +26 -0
- package/node_modules/underscore/amd/sortedIndex.js +18 -0
- package/node_modules/underscore/amd/sortedLastIndex.js +11 -0
- package/node_modules/underscore/amd/splice.js +7 -0
- package/node_modules/underscore/amd/tap.js +13 -0
- package/node_modules/underscore/amd/template.js +95 -0
- package/node_modules/underscore/amd/templateSettings.js +13 -0
- package/node_modules/underscore/amd/throttle.js +51 -0
- package/node_modules/underscore/amd/times.js +13 -0
- package/node_modules/underscore/amd/toArray.js +18 -0
- package/node_modules/underscore/amd/toPath.js +12 -0
- package/node_modules/underscore/amd/toString.js +11 -0
- package/node_modules/underscore/amd/underscore-array-methods.js +30 -0
- package/node_modules/underscore/amd/underscore.js +29 -0
- package/node_modules/underscore/amd/unescape.js +8 -0
- package/node_modules/underscore/amd/union.js +11 -0
- package/node_modules/underscore/amd/uniq.js +37 -0
- package/node_modules/underscore/amd/uniqueId.js +13 -0
- package/node_modules/underscore/amd/unshift.js +7 -0
- package/node_modules/underscore/amd/unzip.js +17 -0
- package/node_modules/underscore/amd/value.js +13 -0
- package/node_modules/underscore/amd/values.js +16 -0
- package/node_modules/underscore/amd/where.js +11 -0
- package/node_modules/underscore/amd/without.js +10 -0
- package/node_modules/underscore/amd/wrap.js +12 -0
- package/node_modules/underscore/amd/zip.js +9 -0
- package/node_modules/underscore/cjs/_apply.js +6 -0
- package/node_modules/underscore/cjs/_applyProperty.js +10 -0
- package/node_modules/underscore/cjs/_arrayAccessors.js +11 -0
- package/node_modules/underscore/cjs/_arrayMutators.js +19 -0
- package/node_modules/underscore/cjs/_baseCreate.js +20 -0
- package/node_modules/underscore/cjs/_baseIteratee.js +19 -0
- package/node_modules/underscore/cjs/_binarySearch.js +15 -0
- package/node_modules/underscore/cjs/_bindCb.js +10 -0
- package/node_modules/underscore/cjs/_bindCb4.js +13 -0
- package/node_modules/underscore/cjs/_byValue.js +7 -0
- package/node_modules/underscore/cjs/_cb.js +12 -0
- package/node_modules/underscore/cjs/_chainResult.js +8 -0
- package/node_modules/underscore/cjs/_collectNonEnumProps.js +42 -0
- package/node_modules/underscore/cjs/_createAssigner.js +20 -0
- package/node_modules/underscore/cjs/_createEscaper.js +19 -0
- package/node_modules/underscore/cjs/_createIndexFinder.js +30 -0
- package/node_modules/underscore/cjs/_createPredicateIndexFinder.js +17 -0
- package/node_modules/underscore/cjs/_createReduce.js +30 -0
- package/node_modules/underscore/cjs/_createSizePropertyCheck.js +11 -0
- package/node_modules/underscore/cjs/_deepGet.js +11 -0
- package/node_modules/underscore/cjs/_escapeMap.js +11 -0
- package/node_modules/underscore/cjs/_executeBound.js +15 -0
- package/node_modules/underscore/cjs/_extremum.js +35 -0
- package/node_modules/underscore/cjs/_flatten.js +33 -0
- package/node_modules/underscore/cjs/_forceNumericMinMax.js +14 -0
- package/node_modules/underscore/cjs/_getByteLength.js +6 -0
- package/node_modules/underscore/cjs/_getLength.js +6 -0
- package/node_modules/underscore/cjs/_greater.js +6 -0
- package/node_modules/underscore/cjs/_group.js +17 -0
- package/node_modules/underscore/cjs/_has.js +8 -0
- package/node_modules/underscore/cjs/_hasObjectTag.js +5 -0
- package/node_modules/underscore/cjs/_isArrayLike.js +10 -0
- package/node_modules/underscore/cjs/_isBufferLike.js +8 -0
- package/node_modules/underscore/cjs/_keyInObj.js +7 -0
- package/node_modules/underscore/cjs/_less.js +6 -0
- package/node_modules/underscore/cjs/_lessEqual.js +6 -0
- package/node_modules/underscore/cjs/_linearSearch.js +30 -0
- package/node_modules/underscore/cjs/_mapReduce.js +1 -0
- package/node_modules/underscore/cjs/_methodFingerprint.js +44 -0
- package/node_modules/underscore/cjs/_optimizeCb.js +23 -0
- package/node_modules/underscore/cjs/_push.js +6 -0
- package/node_modules/underscore/cjs/_pusher.js +9 -0
- package/node_modules/underscore/cjs/_sequence.js +14 -0
- package/node_modules/underscore/cjs/_setup.js +66 -0
- package/node_modules/underscore/cjs/_shallowProperty.js +8 -0
- package/node_modules/underscore/cjs/_slice.js +6 -0
- package/node_modules/underscore/cjs/_strictEqual.js +5 -0
- package/node_modules/underscore/cjs/_stringTagBug.js +15 -0
- package/node_modules/underscore/cjs/_tagTester.js +11 -0
- package/node_modules/underscore/cjs/_toBufferView.js +13 -0
- package/node_modules/underscore/cjs/_toPath.js +10 -0
- package/node_modules/underscore/cjs/_unescapeMap.js +7 -0
- package/node_modules/underscore/cjs/_unmethodize.js +8 -0
- package/node_modules/underscore/cjs/_wrapArrayAccessor.js +14 -0
- package/node_modules/underscore/cjs/_wrapArrayMutator.js +29 -0
- package/node_modules/underscore/cjs/after.js +10 -0
- package/node_modules/underscore/cjs/allKeys.js +15 -0
- package/node_modules/underscore/cjs/before.js +14 -0
- package/node_modules/underscore/cjs/bind.js +15 -0
- package/node_modules/underscore/cjs/bindAll.js +19 -0
- package/node_modules/underscore/cjs/chain.js +10 -0
- package/node_modules/underscore/cjs/chunk.js +15 -0
- package/node_modules/underscore/cjs/clone.js +11 -0
- package/node_modules/underscore/cjs/compact.js +8 -0
- package/node_modules/underscore/cjs/compose.js +14 -0
- package/node_modules/underscore/cjs/concat.js +6 -0
- package/node_modules/underscore/cjs/constant.js +8 -0
- package/node_modules/underscore/cjs/contains.js +12 -0
- package/node_modules/underscore/cjs/countBy.js +11 -0
- package/node_modules/underscore/cjs/create.js +13 -0
- package/node_modules/underscore/cjs/debounce.js +42 -0
- package/node_modules/underscore/cjs/defaults.js +7 -0
- package/node_modules/underscore/cjs/defer.js +9 -0
- package/node_modules/underscore/cjs/delay.js +11 -0
- package/node_modules/underscore/cjs/difference.js +15 -0
- package/node_modules/underscore/cjs/each.js +25 -0
- package/node_modules/underscore/cjs/escape.js +7 -0
- package/node_modules/underscore/cjs/every.js +17 -0
- package/node_modules/underscore/cjs/extend.js +7 -0
- package/node_modules/underscore/cjs/extendOwn.js +9 -0
- package/node_modules/underscore/cjs/filter.js +14 -0
- package/node_modules/underscore/cjs/find.js +12 -0
- package/node_modules/underscore/cjs/findIndex.js +6 -0
- package/node_modules/underscore/cjs/findKey.js +14 -0
- package/node_modules/underscore/cjs/findLastIndex.js +6 -0
- package/node_modules/underscore/cjs/findWhere.js +10 -0
- package/node_modules/underscore/cjs/first.js +11 -0
- package/node_modules/underscore/cjs/flatten.js +9 -0
- package/node_modules/underscore/cjs/functions.js +12 -0
- package/node_modules/underscore/cjs/get.js +14 -0
- package/node_modules/underscore/cjs/groupBy.js +10 -0
- package/node_modules/underscore/cjs/has.js +18 -0
- package/node_modules/underscore/cjs/identity.js +6 -0
- package/node_modules/underscore/cjs/index-default.js +11 -0
- package/node_modules/underscore/cjs/index.js +277 -0
- package/node_modules/underscore/cjs/indexBy.js +9 -0
- package/node_modules/underscore/cjs/indexOf.js +11 -0
- package/node_modules/underscore/cjs/initial.js +10 -0
- package/node_modules/underscore/cjs/intersection.js +21 -0
- package/node_modules/underscore/cjs/invert.js +13 -0
- package/node_modules/underscore/cjs/invoke.js +30 -0
- package/node_modules/underscore/cjs/isArguments.js +18 -0
- package/node_modules/underscore/cjs/isArray.js +8 -0
- package/node_modules/underscore/cjs/isArrayBuffer.js +5 -0
- package/node_modules/underscore/cjs/isBoolean.js +8 -0
- package/node_modules/underscore/cjs/isDataView.js +16 -0
- package/node_modules/underscore/cjs/isDate.js +5 -0
- package/node_modules/underscore/cjs/isElement.js +6 -0
- package/node_modules/underscore/cjs/isEmpty.js +20 -0
- package/node_modules/underscore/cjs/isEqual.js +140 -0
- package/node_modules/underscore/cjs/isError.js +5 -0
- package/node_modules/underscore/cjs/isFinite.js +9 -0
- package/node_modules/underscore/cjs/isFunction.js +17 -0
- package/node_modules/underscore/cjs/isMap.js +7 -0
- package/node_modules/underscore/cjs/isMatch.js +15 -0
- package/node_modules/underscore/cjs/isNaN.js +9 -0
- package/node_modules/underscore/cjs/isNull.js +6 -0
- package/node_modules/underscore/cjs/isNumber.js +5 -0
- package/node_modules/underscore/cjs/isObject.js +7 -0
- package/node_modules/underscore/cjs/isRegExp.js +5 -0
- package/node_modules/underscore/cjs/isSet.js +7 -0
- package/node_modules/underscore/cjs/isString.js +5 -0
- package/node_modules/underscore/cjs/isSymbol.js +5 -0
- package/node_modules/underscore/cjs/isTypedArray.js +17 -0
- package/node_modules/underscore/cjs/isUndefined.js +6 -0
- package/node_modules/underscore/cjs/isWeakMap.js +7 -0
- package/node_modules/underscore/cjs/isWeakSet.js +5 -0
- package/node_modules/underscore/cjs/iteratee.js +12 -0
- package/node_modules/underscore/cjs/join.js +6 -0
- package/node_modules/underscore/cjs/keys.js +18 -0
- package/node_modules/underscore/cjs/last.js +11 -0
- package/node_modules/underscore/cjs/lastIndexOf.js +8 -0
- package/node_modules/underscore/cjs/map.js +18 -0
- package/node_modules/underscore/cjs/mapObject.js +18 -0
- package/node_modules/underscore/cjs/matcher.js +13 -0
- package/node_modules/underscore/cjs/max.js +31 -0
- package/node_modules/underscore/cjs/memoize.js +15 -0
- package/node_modules/underscore/cjs/min.js +31 -0
- package/node_modules/underscore/cjs/mixin.js +20 -0
- package/node_modules/underscore/cjs/negate.js +8 -0
- package/node_modules/underscore/cjs/noop.js +4 -0
- package/node_modules/underscore/cjs/now.js +6 -0
- package/node_modules/underscore/cjs/object.js +18 -0
- package/node_modules/underscore/cjs/omit.js +24 -0
- package/node_modules/underscore/cjs/once.js +8 -0
- package/node_modules/underscore/cjs/pairs.js +15 -0
- package/node_modules/underscore/cjs/partial.js +25 -0
- package/node_modules/underscore/cjs/partition.js +9 -0
- package/node_modules/underscore/cjs/pick.js +28 -0
- package/node_modules/underscore/cjs/pluck.js +9 -0
- package/node_modules/underscore/cjs/pop.js +6 -0
- package/node_modules/underscore/cjs/property.js +13 -0
- package/node_modules/underscore/cjs/propertyOf.js +12 -0
- package/node_modules/underscore/cjs/push.js +6 -0
- package/node_modules/underscore/cjs/random.js +10 -0
- package/node_modules/underscore/cjs/range.js +23 -0
- package/node_modules/underscore/cjs/reduce.js +7 -0
- package/node_modules/underscore/cjs/reduceRight.js +6 -0
- package/node_modules/underscore/cjs/reject.js +10 -0
- package/node_modules/underscore/cjs/rest.js +10 -0
- package/node_modules/underscore/cjs/restArguments.js +29 -0
- package/node_modules/underscore/cjs/result.js +24 -0
- package/node_modules/underscore/cjs/reverse.js +6 -0
- package/node_modules/underscore/cjs/sample.js +29 -0
- package/node_modules/underscore/cjs/shift.js +6 -0
- package/node_modules/underscore/cjs/shuffle.js +8 -0
- package/node_modules/underscore/cjs/size.js +10 -0
- package/node_modules/underscore/cjs/slice.js +6 -0
- package/node_modules/underscore/cjs/some.js +17 -0
- package/node_modules/underscore/cjs/sort.js +6 -0
- package/node_modules/underscore/cjs/sortBy.js +26 -0
- package/node_modules/underscore/cjs/sortedIndex.js +17 -0
- package/node_modules/underscore/cjs/sortedLastIndex.js +11 -0
- package/node_modules/underscore/cjs/splice.js +6 -0
- package/node_modules/underscore/cjs/tap.js +9 -0
- package/node_modules/underscore/cjs/template.js +95 -0
- package/node_modules/underscore/cjs/templateSettings.js +11 -0
- package/node_modules/underscore/cjs/throttle.js +49 -0
- package/node_modules/underscore/cjs/times.js +11 -0
- package/node_modules/underscore/cjs/toArray.js +22 -0
- package/node_modules/underscore/cjs/toPath.js +11 -0
- package/node_modules/underscore/cjs/toString.js +9 -0
- package/node_modules/underscore/cjs/underscore-array-methods.js +31 -0
- package/node_modules/underscore/cjs/underscore.js +27 -0
- package/node_modules/underscore/cjs/unescape.js +7 -0
- package/node_modules/underscore/cjs/union.js +11 -0
- package/node_modules/underscore/cjs/uniq.js +38 -0
- package/node_modules/underscore/cjs/uniqueId.js +9 -0
- package/node_modules/underscore/cjs/unshift.js +6 -0
- package/node_modules/underscore/cjs/unzip.js +17 -0
- package/node_modules/underscore/cjs/value.js +9 -0
- package/node_modules/underscore/cjs/values.js +14 -0
- package/node_modules/underscore/cjs/where.js +10 -0
- package/node_modules/underscore/cjs/without.js +9 -0
- package/node_modules/underscore/cjs/wrap.js +10 -0
- package/node_modules/underscore/cjs/zip.js +8 -0
- package/node_modules/underscore/modules/.eslintrc +12 -0
- package/node_modules/underscore/modules/_baseCreate.js +18 -0
- package/node_modules/underscore/modules/_baseIteratee.js +17 -0
- package/node_modules/underscore/modules/_cb.js +10 -0
- package/node_modules/underscore/modules/_chainResult.js +6 -0
- package/node_modules/underscore/modules/_collectNonEnumProps.js +40 -0
- package/node_modules/underscore/modules/_createAssigner.js +18 -0
- package/node_modules/underscore/modules/_createEscaper.js +17 -0
- package/node_modules/underscore/modules/_createIndexFinder.js +28 -0
- package/node_modules/underscore/modules/_createPredicateIndexFinder.js +15 -0
- package/node_modules/underscore/modules/_createReduce.js +28 -0
- package/node_modules/underscore/modules/_createSizePropertyCheck.js +9 -0
- package/node_modules/underscore/modules/_deepGet.js +9 -0
- package/node_modules/underscore/modules/_escapeMap.js +9 -0
- package/node_modules/underscore/modules/_executeBound.js +13 -0
- package/node_modules/underscore/modules/_flatten.js +31 -0
- package/node_modules/underscore/modules/_getByteLength.js +4 -0
- package/node_modules/underscore/modules/_getLength.js +4 -0
- package/node_modules/underscore/modules/_group.js +15 -0
- package/node_modules/underscore/modules/_has.js +6 -0
- package/node_modules/underscore/modules/_hasObjectTag.js +3 -0
- package/node_modules/underscore/modules/_isArrayLike.js +8 -0
- package/node_modules/underscore/modules/_isBufferLike.js +6 -0
- package/node_modules/underscore/modules/_keyInObj.js +5 -0
- package/node_modules/underscore/modules/_methodFingerprint.js +37 -0
- package/node_modules/underscore/modules/_optimizeCb.js +21 -0
- package/node_modules/underscore/modules/_setup.js +43 -0
- package/node_modules/underscore/modules/_shallowProperty.js +6 -0
- package/node_modules/underscore/modules/_stringTagBug.js +10 -0
- package/node_modules/underscore/modules/_tagTester.js +9 -0
- package/node_modules/underscore/modules/_toBufferView.js +11 -0
- package/node_modules/underscore/modules/_toPath.js +8 -0
- package/node_modules/underscore/modules/_unescapeMap.js +5 -0
- package/node_modules/underscore/modules/after.js +8 -0
- package/node_modules/underscore/modules/allKeys.js +13 -0
- package/node_modules/underscore/modules/before.js +12 -0
- package/node_modules/underscore/modules/bind.js +13 -0
- package/node_modules/underscore/modules/bindAll.js +17 -0
- package/node_modules/underscore/modules/chain.js +8 -0
- package/node_modules/underscore/modules/chunk.js +13 -0
- package/node_modules/underscore/modules/clone.js +9 -0
- package/node_modules/underscore/modules/compact.js +6 -0
- package/node_modules/underscore/modules/compose.js +12 -0
- package/node_modules/underscore/modules/constant.js +6 -0
- package/node_modules/underscore/modules/contains.js +10 -0
- package/node_modules/underscore/modules/countBy.js +9 -0
- package/node_modules/underscore/modules/create.js +11 -0
- package/node_modules/underscore/modules/debounce.js +40 -0
- package/node_modules/underscore/modules/defaults.js +5 -0
- package/node_modules/underscore/modules/defer.js +7 -0
- package/node_modules/underscore/modules/delay.js +9 -0
- package/node_modules/underscore/modules/difference.js +13 -0
- package/node_modules/underscore/modules/each.js +23 -0
- package/node_modules/underscore/modules/escape.js +5 -0
- package/node_modules/underscore/modules/every.js +15 -0
- package/node_modules/underscore/modules/extend.js +5 -0
- package/node_modules/underscore/modules/extendOwn.js +7 -0
- package/node_modules/underscore/modules/filter.js +12 -0
- package/node_modules/underscore/modules/find.js +10 -0
- package/node_modules/underscore/modules/findIndex.js +4 -0
- package/node_modules/underscore/modules/findKey.js +12 -0
- package/node_modules/underscore/modules/findLastIndex.js +4 -0
- package/node_modules/underscore/modules/findWhere.js +8 -0
- package/node_modules/underscore/modules/first.js +9 -0
- package/node_modules/underscore/modules/flatten.js +7 -0
- package/node_modules/underscore/modules/functions.js +10 -0
- package/node_modules/underscore/modules/get.js +12 -0
- package/node_modules/underscore/modules/groupBy.js +8 -0
- package/node_modules/underscore/modules/has.js +16 -0
- package/node_modules/underscore/modules/identity.js +4 -0
- package/node_modules/underscore/modules/index-all.js +18 -0
- package/node_modules/underscore/modules/index-default.js +27 -0
- package/node_modules/underscore/modules/index.js +200 -0
- package/node_modules/underscore/modules/indexBy.js +7 -0
- package/node_modules/underscore/modules/indexOf.js +9 -0
- package/node_modules/underscore/modules/initial.js +8 -0
- package/node_modules/underscore/modules/intersection.js +19 -0
- package/node_modules/underscore/modules/invert.js +11 -0
- package/node_modules/underscore/modules/invoke.js +28 -0
- package/node_modules/underscore/modules/isArguments.js +16 -0
- package/node_modules/underscore/modules/isArray.js +6 -0
- package/node_modules/underscore/modules/isArrayBuffer.js +3 -0
- package/node_modules/underscore/modules/isBoolean.js +6 -0
- package/node_modules/underscore/modules/isDataView.js +14 -0
- package/node_modules/underscore/modules/isDate.js +3 -0
- package/node_modules/underscore/modules/isElement.js +4 -0
- package/node_modules/underscore/modules/isEmpty.js +18 -0
- package/node_modules/underscore/modules/isEqual.js +138 -0
- package/node_modules/underscore/modules/isError.js +3 -0
- package/node_modules/underscore/modules/isFinite.js +7 -0
- package/node_modules/underscore/modules/isFunction.js +15 -0
- package/node_modules/underscore/modules/isMap.js +5 -0
- package/node_modules/underscore/modules/isMatch.js +13 -0
- package/node_modules/underscore/modules/isNaN.js +7 -0
- package/node_modules/underscore/modules/isNull.js +4 -0
- package/node_modules/underscore/modules/isNumber.js +3 -0
- package/node_modules/underscore/modules/isObject.js +5 -0
- package/node_modules/underscore/modules/isRegExp.js +3 -0
- package/node_modules/underscore/modules/isSet.js +5 -0
- package/node_modules/underscore/modules/isString.js +3 -0
- package/node_modules/underscore/modules/isSymbol.js +3 -0
- package/node_modules/underscore/modules/isTypedArray.js +15 -0
- package/node_modules/underscore/modules/isUndefined.js +4 -0
- package/node_modules/underscore/modules/isWeakMap.js +5 -0
- package/node_modules/underscore/modules/isWeakSet.js +3 -0
- package/node_modules/underscore/modules/iteratee.js +10 -0
- package/node_modules/underscore/modules/keys.js +16 -0
- package/node_modules/underscore/modules/last.js +9 -0
- package/node_modules/underscore/modules/lastIndexOf.js +6 -0
- package/node_modules/underscore/modules/map.js +16 -0
- package/node_modules/underscore/modules/mapObject.js +16 -0
- package/node_modules/underscore/modules/matcher.js +11 -0
- package/node_modules/underscore/modules/max.js +29 -0
- package/node_modules/underscore/modules/memoize.js +13 -0
- package/node_modules/underscore/modules/min.js +29 -0
- package/node_modules/underscore/modules/mixin.js +18 -0
- package/node_modules/underscore/modules/negate.js +6 -0
- package/node_modules/underscore/modules/noop.js +2 -0
- package/node_modules/underscore/modules/now.js +4 -0
- package/node_modules/underscore/modules/object.js +16 -0
- package/node_modules/underscore/modules/omit.js +22 -0
- package/node_modules/underscore/modules/once.js +6 -0
- package/node_modules/underscore/modules/pairs.js +13 -0
- package/node_modules/underscore/modules/partial.js +24 -0
- package/node_modules/underscore/modules/partition.js +7 -0
- package/node_modules/underscore/modules/pick.js +26 -0
- package/node_modules/underscore/modules/pluck.js +7 -0
- package/node_modules/underscore/modules/property.js +11 -0
- package/node_modules/underscore/modules/propertyOf.js +10 -0
- package/node_modules/underscore/modules/random.js +8 -0
- package/node_modules/underscore/modules/range.js +21 -0
- package/node_modules/underscore/modules/reduce.js +5 -0
- package/node_modules/underscore/modules/reduceRight.js +4 -0
- package/node_modules/underscore/modules/reject.js +8 -0
- package/node_modules/underscore/modules/rest.js +8 -0
- package/node_modules/underscore/modules/restArguments.js +27 -0
- package/node_modules/underscore/modules/result.js +22 -0
- package/node_modules/underscore/modules/sample.js +27 -0
- package/node_modules/underscore/modules/shuffle.js +6 -0
- package/node_modules/underscore/modules/size.js +8 -0
- package/node_modules/underscore/modules/some.js +15 -0
- package/node_modules/underscore/modules/sortBy.js +24 -0
- package/node_modules/underscore/modules/sortedIndex.js +15 -0
- package/node_modules/underscore/modules/tap.js +7 -0
- package/node_modules/underscore/modules/template.js +93 -0
- package/node_modules/underscore/modules/templateSettings.js +9 -0
- package/node_modules/underscore/modules/throttle.js +47 -0
- package/node_modules/underscore/modules/times.js +9 -0
- package/node_modules/underscore/modules/toArray.js +20 -0
- package/node_modules/underscore/modules/toPath.js +9 -0
- package/node_modules/underscore/modules/underscore-array-methods.js +31 -0
- package/node_modules/underscore/modules/underscore.js +25 -0
- package/node_modules/underscore/modules/unescape.js +5 -0
- package/node_modules/underscore/modules/union.js +9 -0
- package/node_modules/underscore/modules/uniq.js +36 -0
- package/node_modules/underscore/modules/uniqueId.js +7 -0
- package/node_modules/underscore/modules/unzip.js +15 -0
- package/node_modules/underscore/modules/values.js +12 -0
- package/node_modules/underscore/modules/where.js +8 -0
- package/node_modules/underscore/modules/without.js +7 -0
- package/node_modules/underscore/modules/wrap.js +8 -0
- package/node_modules/underscore/modules/zip.js +6 -0
- package/node_modules/underscore/package.json +108 -0
- package/node_modules/underscore/underscore-esm-min.js +5 -0
- package/node_modules/underscore/underscore-esm-min.js.map +1 -0
- package/node_modules/underscore/underscore-esm.js +2026 -0
- package/node_modules/underscore/underscore-esm.js.map +1 -0
- package/node_modules/underscore/underscore-min.js +6 -0
- package/node_modules/underscore/underscore.js +2034 -0
- package/node_modules/underscore/underscore.js.map +1 -0
- package/node_modules/xhr2/CONTRIBUTING.md +33 -0
- package/node_modules/xhr2/Cakefile +131 -0
- package/node_modules/xhr2/LICENSE.txt +19 -0
- package/node_modules/xhr2/lib/browser.js +1 -0
- package/node_modules/xhr2/lib/xhr2.js +1244 -0
- package/node_modules/xhr2/package.json +93 -0
- package/node_modules/xhr2/src/001-xml_http_request.coffee +782 -0
- package/node_modules/xhr2/src/errors.coffee +31 -0
- package/node_modules/xhr2/src/progress_event.coffee +39 -0
- package/node_modules/xhr2/test/fixtures/hello.json +1 -0
- package/node_modules/xhr2/test/fixtures/hello.txt +1 -0
- package/node_modules/xhr2/test/fixtures/xhr2.png +0 -0
- package/node_modules/xhr2/test/html/browser_test.html +30 -0
- package/node_modules/xhr2/test/src/event_target_test.coffee +85 -0
- package/node_modules/xhr2/test/src/events_test.coffee +204 -0
- package/node_modules/xhr2/test/src/headers_test.coffee +165 -0
- package/node_modules/xhr2/test/src/helpers/browser_mocha_setup.coffee +1 -0
- package/node_modules/xhr2/test/src/helpers/setup.coffee +38 -0
- package/node_modules/xhr2/test/src/helpers/xhr_server.coffee +156 -0
- package/node_modules/xhr2/test/src/nodejs_set_test.coffee +162 -0
- package/node_modules/xhr2/test/src/redirect_test.coffee +57 -0
- package/node_modules/xhr2/test/src/response_type_test.coffee +88 -0
- package/node_modules/xhr2/test/src/send_test.coffee +89 -0
- package/node_modules/xhr2/test/src/status_test.coffee +47 -0
- package/node_modules/xhr2/test/src/xhr_test.coffee +102 -0
- package/package.json +29 -29
- package/readme.md +37 -37
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
express = require 'express'
|
|
2
|
+
fs = require 'fs'
|
|
3
|
+
http = require 'http'
|
|
4
|
+
https = require 'https'
|
|
5
|
+
open = require 'open'
|
|
6
|
+
|
|
7
|
+
# express.js server for testing the Web application.
|
|
8
|
+
class XhrServer
|
|
9
|
+
# Starts up a HTTP server.
|
|
10
|
+
constructor: (@port, @useHttps) ->
|
|
11
|
+
@createApp()
|
|
12
|
+
|
|
13
|
+
# Opens the test URL in a browser.
|
|
14
|
+
openBrowser: (appName) ->
|
|
15
|
+
open @testUrl(), appName
|
|
16
|
+
|
|
17
|
+
# The URL that should be used to start the tests.
|
|
18
|
+
testUrl: ->
|
|
19
|
+
"https://localhost:#{@port}/test/html/browser_test.html"
|
|
20
|
+
|
|
21
|
+
# The self-signed certificate used by this server.
|
|
22
|
+
sslCertificate: ->
|
|
23
|
+
return null unless @useHttps
|
|
24
|
+
keyMaterial = fs.readFileSync 'test/ssl/cert.pem', 'utf8'
|
|
25
|
+
certIndex = keyMaterial.indexOf '-----BEGIN CERTIFICATE-----'
|
|
26
|
+
keyMaterial.substring certIndex
|
|
27
|
+
|
|
28
|
+
# The key for the self-signed certificate used by this server.
|
|
29
|
+
sslKey: ->
|
|
30
|
+
return null unless @useHttps
|
|
31
|
+
keyMaterial = fs.readFileSync 'test/ssl/cert.pem', 'utf8'
|
|
32
|
+
certIndex = keyMaterial.indexOf '-----BEGIN CERTIFICATE-----'
|
|
33
|
+
keyMaterial.substring 0, certIndex
|
|
34
|
+
|
|
35
|
+
# The server code.
|
|
36
|
+
createApp: ->
|
|
37
|
+
@app = express()
|
|
38
|
+
|
|
39
|
+
## Middleware.
|
|
40
|
+
|
|
41
|
+
# CORS headers on everything, in case that ever gets implemented.
|
|
42
|
+
@app.use (request, response, next) ->
|
|
43
|
+
response.header 'Access-Control-Allow-Origin', '*'
|
|
44
|
+
response.header 'Access-Control-Allow-Methods', 'DELETE,GET,POST,PUT'
|
|
45
|
+
response.header 'Access-Control-Allow-Headers',
|
|
46
|
+
'Content-Type, Authorization'
|
|
47
|
+
next()
|
|
48
|
+
|
|
49
|
+
@app.use express.static(fs.realpathSync(__dirname + '/../../../'),
|
|
50
|
+
{ dotfiles: 'allow' })
|
|
51
|
+
|
|
52
|
+
## Routes
|
|
53
|
+
|
|
54
|
+
@app.all '/_/method', (request, response) ->
|
|
55
|
+
body = request.method
|
|
56
|
+
response.header 'Content-Type', 'text/plain; charset=utf-8'
|
|
57
|
+
response.header 'Content-Length', body.length.toString()
|
|
58
|
+
response.end body
|
|
59
|
+
|
|
60
|
+
# Echoes the request body. Used to test send(data).
|
|
61
|
+
@app.post '/_/echo', (request, response) ->
|
|
62
|
+
if request.headers['content-type']
|
|
63
|
+
response.header 'Content-Type', request.headers['content-type']
|
|
64
|
+
if request.headers['content-length']
|
|
65
|
+
response.header 'Content-Length', request.headers['content-length']
|
|
66
|
+
|
|
67
|
+
request.on 'data', (chunk) -> response.write chunk
|
|
68
|
+
request.on 'end', -> response.end()
|
|
69
|
+
|
|
70
|
+
# Lists the request headers. Used to test setRequestHeader().
|
|
71
|
+
@app.all '/_/headers', (request, response) ->
|
|
72
|
+
body = JSON.stringify request.headers
|
|
73
|
+
response.header 'Content-Type', 'application/json'
|
|
74
|
+
response.header 'Content-Length', body.length.toString()
|
|
75
|
+
response.end body
|
|
76
|
+
|
|
77
|
+
# Sets the response headers in the request. Used to test getResponse*().
|
|
78
|
+
@app.post '/_/get_headers', (request, response) ->
|
|
79
|
+
jsonString = ''
|
|
80
|
+
request.on 'data', (chunk) -> jsonString += chunk
|
|
81
|
+
request.on 'end', ->
|
|
82
|
+
headers = JSON.parse jsonString
|
|
83
|
+
for name, value of headers
|
|
84
|
+
response.header name, value
|
|
85
|
+
response.header 'Content-Length', '0'
|
|
86
|
+
response.end ''
|
|
87
|
+
|
|
88
|
+
# Sets every response detail. Used for error testing.
|
|
89
|
+
@app.post '/_/response', (request, response) ->
|
|
90
|
+
jsonString = ''
|
|
91
|
+
request.on 'data', (chunk) -> jsonString += chunk
|
|
92
|
+
request.on 'end', ->
|
|
93
|
+
json = JSON.parse jsonString
|
|
94
|
+
response.writeHead json.code, json.status, json.headers
|
|
95
|
+
response.write json.body if json.body
|
|
96
|
+
response.end()
|
|
97
|
+
|
|
98
|
+
# Sends data in small chunks. Used for event testing.
|
|
99
|
+
@app.post '/_/drip', (request, response) ->
|
|
100
|
+
request.connection.setNoDelay()
|
|
101
|
+
jsonString = ''
|
|
102
|
+
request.on 'data', (chunk) -> jsonString += chunk
|
|
103
|
+
request.on 'end', ->
|
|
104
|
+
json = JSON.parse jsonString
|
|
105
|
+
sentDrips = 0
|
|
106
|
+
drip = new Array(json.size + 1).join '.'
|
|
107
|
+
response.header 'Content-Type', 'text/plain'
|
|
108
|
+
if json.length
|
|
109
|
+
response.header 'Content-Length', (json.drips * json.size).toString()
|
|
110
|
+
sendDrip = =>
|
|
111
|
+
response.write drip
|
|
112
|
+
sentDrips += 1
|
|
113
|
+
if sentDrips >= json.drips
|
|
114
|
+
response.end()
|
|
115
|
+
else
|
|
116
|
+
setTimeout sendDrip, json.ms
|
|
117
|
+
sendDrip()
|
|
118
|
+
|
|
119
|
+
# Returns a HTTP redirect. Used to test the redirection handling code.
|
|
120
|
+
@app.all '/_/redirect/:status/:next_page', (request, response) =>
|
|
121
|
+
response.statusCode = parseInt(request.params.status)
|
|
122
|
+
response.header 'Location',
|
|
123
|
+
"http://#{request.get('host')}/_/#{request.params.next_page}"
|
|
124
|
+
body = "<p>This is supposed to have a redirect link</p>"
|
|
125
|
+
response.header 'Content-Type', 'text/html'
|
|
126
|
+
response.header 'Content-Length', body.length.toString()
|
|
127
|
+
response.header 'X-Redirect-Header', 'should not show up'
|
|
128
|
+
response.end body
|
|
129
|
+
|
|
130
|
+
# Requested when the browser test suite completes.
|
|
131
|
+
@app.get '/diediedie', (request, response) =>
|
|
132
|
+
if 'failed' of request.query
|
|
133
|
+
failed = parseInt request.query['failed']
|
|
134
|
+
else
|
|
135
|
+
failed = 1
|
|
136
|
+
total = parseInt request.query['total'] || 0
|
|
137
|
+
passed = total - failed
|
|
138
|
+
exitCode = if failed == 0 then 0 else 1
|
|
139
|
+
console.log "#{passed} passed, #{failed} failed"
|
|
140
|
+
|
|
141
|
+
response.header 'Content-Type', 'image/png'
|
|
142
|
+
response.header 'Content-Length', '0'
|
|
143
|
+
response.end ''
|
|
144
|
+
unless 'NO_EXIT' of process.env
|
|
145
|
+
@server.close()
|
|
146
|
+
process.exit exitCode
|
|
147
|
+
|
|
148
|
+
if @useHttps
|
|
149
|
+
options = key: @sslKey(), cert: @sslCertificate()
|
|
150
|
+
@server = https.createServer options, @app
|
|
151
|
+
else
|
|
152
|
+
@server = http.createServer @app
|
|
153
|
+
@server.listen @port
|
|
154
|
+
|
|
155
|
+
module.exports.https = new XhrServer 8911, true
|
|
156
|
+
module.exports.http = new XhrServer 8912, false
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
describe 'XMLHttpRequest', ->
|
|
2
|
+
describe '.nodejsSet', ->
|
|
3
|
+
beforeEach ->
|
|
4
|
+
@xhr = new XMLHttpRequest
|
|
5
|
+
@customXhr = new XMLHttpRequest
|
|
6
|
+
|
|
7
|
+
describe 'with a httpAgent option', ->
|
|
8
|
+
beforeEach ->
|
|
9
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
10
|
+
|
|
11
|
+
@customAgent = { custom: 'httpAgent' }
|
|
12
|
+
@customXhr.nodejsHttpAgent = @customAgent
|
|
13
|
+
|
|
14
|
+
@default = XMLHttpRequest::nodejsHttpAgent
|
|
15
|
+
@agent = { mocking: 'httpAgent' }
|
|
16
|
+
XMLHttpRequest.nodejsSet httpAgent: @agent
|
|
17
|
+
|
|
18
|
+
it 'sets the default nodejsHttpAgent', ->
|
|
19
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
20
|
+
expect(@xhr.nodejsHttpAgent).to.equal @agent
|
|
21
|
+
|
|
22
|
+
it 'does not interfere with custom nodejsHttpAgent settings', ->
|
|
23
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
24
|
+
expect(@customXhr.nodejsHttpAgent).to.equal @customAgent
|
|
25
|
+
|
|
26
|
+
afterEach ->
|
|
27
|
+
XMLHttpRequest.nodejsSet httpAgent: @default
|
|
28
|
+
|
|
29
|
+
describe 'with a httpsAgent option', ->
|
|
30
|
+
beforeEach ->
|
|
31
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
32
|
+
|
|
33
|
+
@customAgent = { custom: 'httpsAgent' }
|
|
34
|
+
@customXhr.nodejsHttpsAgent = @customAgent
|
|
35
|
+
|
|
36
|
+
@default = XMLHttpRequest::nodejsHttpsAgent
|
|
37
|
+
@agent = { mocking: 'httpsAgent' }
|
|
38
|
+
XMLHttpRequest.nodejsSet httpsAgent: @agent
|
|
39
|
+
|
|
40
|
+
it 'sets the default nodejsHttpsAgent', ->
|
|
41
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
42
|
+
expect(@xhr.nodejsHttpsAgent).to.equal @agent
|
|
43
|
+
|
|
44
|
+
it 'does not interfere with custom nodejsHttpsAgent settings', ->
|
|
45
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
46
|
+
expect(@customXhr.nodejsHttpsAgent).to.equal @customAgent
|
|
47
|
+
|
|
48
|
+
afterEach ->
|
|
49
|
+
XMLHttpRequest.nodejsSet httpsAgent: @default
|
|
50
|
+
|
|
51
|
+
describe 'with a baseUrl option', ->
|
|
52
|
+
beforeEach ->
|
|
53
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
54
|
+
|
|
55
|
+
@customBaseUrl = 'http://custom.url/base'
|
|
56
|
+
@customXhr.nodejsBaseUrl = @customBaseUrl
|
|
57
|
+
|
|
58
|
+
@default = XMLHttpRequest::nodejsBaseUrl
|
|
59
|
+
@baseUrl = 'http://localhost/base'
|
|
60
|
+
XMLHttpRequest.nodejsSet baseUrl: @baseUrl
|
|
61
|
+
|
|
62
|
+
it 'sets the default nodejsBaseUrl', ->
|
|
63
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
64
|
+
expect(@xhr.nodejsBaseUrl).to.equal @baseUrl
|
|
65
|
+
|
|
66
|
+
it 'does not interfere with custom nodejsBaseUrl settings', ->
|
|
67
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
68
|
+
expect(@customXhr.nodejsBaseUrl).to.equal @customBaseUrl
|
|
69
|
+
|
|
70
|
+
afterEach ->
|
|
71
|
+
XMLHttpRequest.nodejsSet baseUrl: @default
|
|
72
|
+
|
|
73
|
+
describe '#nodejsSet', ->
|
|
74
|
+
beforeEach ->
|
|
75
|
+
@xhr = new XMLHttpRequest
|
|
76
|
+
@customXhr = new XMLHttpRequest
|
|
77
|
+
|
|
78
|
+
describe 'with a httpAgent option', ->
|
|
79
|
+
beforeEach ->
|
|
80
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
81
|
+
|
|
82
|
+
@customAgent = { custom: 'httpAgent' }
|
|
83
|
+
@customXhr.nodejsSet httpAgent: @customAgent
|
|
84
|
+
|
|
85
|
+
it 'sets nodejsHttpAgent on the XHR instance', ->
|
|
86
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
87
|
+
expect(@customXhr.nodejsHttpAgent).to.equal @customAgent
|
|
88
|
+
|
|
89
|
+
it 'does not interfere with default nodejsHttpAgent settings', ->
|
|
90
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
91
|
+
expect(@xhr.nodejsHttpAgent).not.to.equal @customAgent
|
|
92
|
+
|
|
93
|
+
describe 'with a httpsAgent option', ->
|
|
94
|
+
beforeEach ->
|
|
95
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
96
|
+
|
|
97
|
+
@customAgent = { custom: 'httpsAgent' }
|
|
98
|
+
@customXhr.nodejsSet httpsAgent: @customAgent
|
|
99
|
+
|
|
100
|
+
it 'sets nodejsHttpsAgent on the XHR instance', ->
|
|
101
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
102
|
+
expect(@customXhr.nodejsHttpsAgent).to.equal @customAgent
|
|
103
|
+
|
|
104
|
+
it 'does not interfere with default nodejsHttpsAgent settings', ->
|
|
105
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
106
|
+
expect(@xhr.nodejsHttpsAgent).not.to.equal @customAgent
|
|
107
|
+
|
|
108
|
+
describe 'base URL parsing', ->
|
|
109
|
+
beforeEach ->
|
|
110
|
+
@xhr = new XMLHttpRequest
|
|
111
|
+
|
|
112
|
+
describe 'with null baseUrl', ->
|
|
113
|
+
beforeEach ->
|
|
114
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
115
|
+
@xhr.nodejsSet baseUrl: null
|
|
116
|
+
|
|
117
|
+
it 'parses an absolute URL', ->
|
|
118
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
119
|
+
parsedUrl = @xhr._parseUrl('http://www.domain.com/path')
|
|
120
|
+
expect(parsedUrl).to.be.ok
|
|
121
|
+
expect(parsedUrl).to.have.property 'href'
|
|
122
|
+
expect(parsedUrl.href).to.equal 'http://www.domain.com/path'
|
|
123
|
+
|
|
124
|
+
describe 'with a (protocol, domain, filePath) baseUrl', ->
|
|
125
|
+
beforeEach ->
|
|
126
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
127
|
+
@xhr.nodejsSet baseUrl: 'https://base.url/dir/file.html'
|
|
128
|
+
|
|
129
|
+
it 'parses an absolute URL', ->
|
|
130
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
131
|
+
parsedUrl = @xhr._parseUrl('http://www.domain.com/path')
|
|
132
|
+
expect(parsedUrl).to.be.ok
|
|
133
|
+
expect(parsedUrl).to.have.property 'href'
|
|
134
|
+
expect(parsedUrl.href).to.equal 'http://www.domain.com/path'
|
|
135
|
+
|
|
136
|
+
it 'parses a path-relative URL', ->
|
|
137
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
138
|
+
parsedUrl = @xhr._parseUrl('path/to.js')
|
|
139
|
+
expect(parsedUrl).to.be.ok
|
|
140
|
+
expect(parsedUrl).to.have.property 'href'
|
|
141
|
+
expect(parsedUrl.href).to.equal 'https://base.url/dir/path/to.js'
|
|
142
|
+
|
|
143
|
+
it 'parses a path-relative URL with ..', ->
|
|
144
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
145
|
+
parsedUrl = @xhr._parseUrl('../path/to.js')
|
|
146
|
+
expect(parsedUrl).to.be.ok
|
|
147
|
+
expect(parsedUrl).to.have.property 'href'
|
|
148
|
+
expect(parsedUrl.href).to.equal 'https://base.url/path/to.js'
|
|
149
|
+
|
|
150
|
+
it 'parses a host-relative URL', ->
|
|
151
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
152
|
+
parsedUrl = @xhr._parseUrl('/path/to.js')
|
|
153
|
+
expect(parsedUrl).to.be.ok
|
|
154
|
+
expect(parsedUrl).to.have.property 'href'
|
|
155
|
+
expect(parsedUrl.href).to.equal 'https://base.url/path/to.js'
|
|
156
|
+
|
|
157
|
+
it 'parses a protocol-relative URL', ->
|
|
158
|
+
return unless XMLHttpRequest.nodejsSet # Skip in browsers.
|
|
159
|
+
parsedUrl = @xhr._parseUrl('//domain.com/path/to.js')
|
|
160
|
+
expect(parsedUrl).to.be.ok
|
|
161
|
+
expect(parsedUrl).to.have.property 'href'
|
|
162
|
+
expect(parsedUrl.href).to.equal 'https://domain.com/path/to.js'
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
describe 'XMLHttpRequest', ->
|
|
2
|
+
describe 'when redirected', ->
|
|
3
|
+
beforeEach ->
|
|
4
|
+
@xhr = new XMLHttpRequest
|
|
5
|
+
|
|
6
|
+
it 'issues a GET for the next location', (done) ->
|
|
7
|
+
@xhr.open 'POST', 'http://localhost:8912/_/redirect/302/method'
|
|
8
|
+
@xhr.onload = =>
|
|
9
|
+
expect(@xhr.responseText).to.match(/GET/i)
|
|
10
|
+
done()
|
|
11
|
+
@xhr.send 'This should be dropped during the redirect'
|
|
12
|
+
|
|
13
|
+
it 'does not return the redirect headers', (done) ->
|
|
14
|
+
@xhr.open 'GET', 'http://localhost:8912/_/redirect/302/method'
|
|
15
|
+
@xhr.onload = =>
|
|
16
|
+
expect(@xhr.getResponseHeader('Content-Type')).to.equal(
|
|
17
|
+
'text/plain; charset=utf-8')
|
|
18
|
+
expect(@xhr.getResponseHeader('X-Redirect-Header')).not.to.be.ok
|
|
19
|
+
done()
|
|
20
|
+
@xhr.send()
|
|
21
|
+
|
|
22
|
+
it 'persists custom request headers across redirects', (done) ->
|
|
23
|
+
@xhr.open 'GET', 'http://localhost:8912/_/redirect/302/headers'
|
|
24
|
+
@xhr.setRequestHeader 'X-Redirect-Test', 'should be preserved'
|
|
25
|
+
@xhr.onload = =>
|
|
26
|
+
expect(@xhr.responseText).to.match(/^\{.*\}$/)
|
|
27
|
+
headers = JSON.parse @xhr.responseText
|
|
28
|
+
expect(headers['connection']).to.equal 'keep-alive'
|
|
29
|
+
expect(headers).to.have.property 'host'
|
|
30
|
+
expect(headers['host']).to.equal 'localhost:8912'
|
|
31
|
+
expect(headers).to.have.property 'x-redirect-test'
|
|
32
|
+
expect(headers['x-redirect-test']).to.equal 'should be preserved'
|
|
33
|
+
done()
|
|
34
|
+
@xhr.send()
|
|
35
|
+
|
|
36
|
+
it 'drops content-related headers across redirects', (done) ->
|
|
37
|
+
@xhr.open 'POST', 'http://localhost:8912/_/redirect/302/headers'
|
|
38
|
+
@xhr.setRequestHeader 'X-Redirect-Test', 'should be preserved'
|
|
39
|
+
@xhr.onload = =>
|
|
40
|
+
expect(@xhr.responseText).to.match(/^\{.*\}$/)
|
|
41
|
+
headers = JSON.parse @xhr.responseText
|
|
42
|
+
expect(headers['connection']).to.equal 'keep-alive'
|
|
43
|
+
expect(headers).to.have.property 'host'
|
|
44
|
+
expect(headers['host']).to.equal 'localhost:8912'
|
|
45
|
+
expect(headers).to.have.property 'x-redirect-test'
|
|
46
|
+
expect(headers['x-redirect-test']).to.equal 'should be preserved'
|
|
47
|
+
expect(headers).not.to.have.property 'content-type'
|
|
48
|
+
expect(headers).not.to.have.property 'content-length'
|
|
49
|
+
done()
|
|
50
|
+
@xhr.send 'This should be dropped during the redirect'
|
|
51
|
+
|
|
52
|
+
it 'provides the final responseURL', (done) ->
|
|
53
|
+
@xhr.open 'GET', 'http://localhost:8912/_/redirect/302/method'
|
|
54
|
+
@xhr.onload = =>
|
|
55
|
+
expect(@xhr.responseURL).to.equal("http://localhost:8912/_/method")
|
|
56
|
+
done()
|
|
57
|
+
@xhr.send()
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
describe 'XMLHttpRequest', ->
|
|
2
|
+
describe '#responseType', ->
|
|
3
|
+
beforeEach ->
|
|
4
|
+
@xhr = new XMLHttpRequest
|
|
5
|
+
@jsonUrl = 'http://localhost:8912/test/fixtures/hello.json'
|
|
6
|
+
@jsonString = '{"hello": "world", "answer": 42}\n'
|
|
7
|
+
@imageUrl = 'http://localhost:8912/test/fixtures/xhr2.png'
|
|
8
|
+
|
|
9
|
+
describe 'text', ->
|
|
10
|
+
it 'reads a JSON file into a String', (done) ->
|
|
11
|
+
@xhr.addEventListener 'load', =>
|
|
12
|
+
expect(@xhr.response).to.equal @jsonString
|
|
13
|
+
expect(@xhr.responseText).to.equal @jsonString
|
|
14
|
+
done()
|
|
15
|
+
@xhr.open 'GET', @jsonUrl
|
|
16
|
+
@xhr.responseType = 'text'
|
|
17
|
+
@xhr.send()
|
|
18
|
+
|
|
19
|
+
describe 'json', ->
|
|
20
|
+
it 'reads a JSON file into a parsed JSON object', (done) ->
|
|
21
|
+
_done = false
|
|
22
|
+
@xhr.addEventListener 'readystatechange', =>
|
|
23
|
+
return if _done or @xhr.readyState isnt XMLHttpRequest.DONE
|
|
24
|
+
_done = true
|
|
25
|
+
expect(@xhr.response).to.deep.equal hello: 'world', answer: 42
|
|
26
|
+
done()
|
|
27
|
+
@xhr.open 'GET', @jsonUrl
|
|
28
|
+
@xhr.responseType = 'json'
|
|
29
|
+
@xhr.send()
|
|
30
|
+
|
|
31
|
+
it 'produces null when reading a non-JSON file ', (done) ->
|
|
32
|
+
@xhr.addEventListener 'loadend', =>
|
|
33
|
+
expect(@xhr.response).to.equal null
|
|
34
|
+
done()
|
|
35
|
+
@xhr.open 'GET', 'http://localhost:8912/test/fixtures/hello.txt'
|
|
36
|
+
@xhr.responseType = 'json'
|
|
37
|
+
@xhr.send()
|
|
38
|
+
|
|
39
|
+
describe 'arraybuffer', ->
|
|
40
|
+
it 'reads a JSON file into an ArrayBuffer', (done) ->
|
|
41
|
+
@xhr.addEventListener 'loadend', =>
|
|
42
|
+
expect(@xhr.response).to.be.instanceOf ArrayBuffer
|
|
43
|
+
view = new Uint8Array @xhr.response
|
|
44
|
+
string = (String.fromCharCode(view[i]) for i in [0...view.length]).
|
|
45
|
+
join ''
|
|
46
|
+
expect(string).to.equal @jsonString
|
|
47
|
+
done()
|
|
48
|
+
@xhr.open 'GET', @jsonUrl
|
|
49
|
+
@xhr.responseType = 'arraybuffer'
|
|
50
|
+
@xhr.send()
|
|
51
|
+
|
|
52
|
+
it 'reads a binary file into an ArrayBuffer', (done) ->
|
|
53
|
+
@xhr.addEventListener 'loadend', =>
|
|
54
|
+
expect(@xhr.response).to.be.instanceOf ArrayBuffer
|
|
55
|
+
view = new Uint8Array @xhr.response
|
|
56
|
+
bytes = (view[i] for i in [0...view.length])
|
|
57
|
+
expect(bytes).to.deep.equal xhr2PngBytes
|
|
58
|
+
done()
|
|
59
|
+
@xhr.open 'GET', @imageUrl
|
|
60
|
+
@xhr.responseType = 'arraybuffer'
|
|
61
|
+
@xhr.send()
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
describe 'buffer', ->
|
|
65
|
+
it 'reads a JSON file into a node.js Buffer', (done) ->
|
|
66
|
+
return done() if typeof Buffer is 'undefined'
|
|
67
|
+
@xhr.addEventListener 'loadend', =>
|
|
68
|
+
buffer = @xhr.response
|
|
69
|
+
expect(buffer).to.be.instanceOf Buffer
|
|
70
|
+
stringChars = for i in [0...buffer.length]
|
|
71
|
+
String.fromCharCode buffer.readUInt8(i)
|
|
72
|
+
expect(stringChars.join('')).to.equal @jsonString
|
|
73
|
+
done()
|
|
74
|
+
@xhr.open 'GET', @jsonUrl
|
|
75
|
+
@xhr.responseType = 'buffer'
|
|
76
|
+
@xhr.send()
|
|
77
|
+
|
|
78
|
+
it 'reads a binary file into a node.js Buffer', (done) ->
|
|
79
|
+
return done() if typeof Buffer is 'undefined'
|
|
80
|
+
@xhr.addEventListener 'loadend', =>
|
|
81
|
+
buffer = @xhr.response
|
|
82
|
+
expect(buffer).to.be.instanceOf Buffer
|
|
83
|
+
bytes = (buffer.readUInt8(i) for i in [0...buffer.length])
|
|
84
|
+
expect(bytes).to.deep.equal xhr2PngBytes
|
|
85
|
+
done()
|
|
86
|
+
@xhr.open 'GET', @imageUrl
|
|
87
|
+
@xhr.responseType = 'buffer'
|
|
88
|
+
@xhr.send()
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
describe 'XMLHttpRequest', ->
|
|
2
|
+
describe '#send', ->
|
|
3
|
+
beforeEach ->
|
|
4
|
+
@xhr = new XMLHttpRequest
|
|
5
|
+
@xhr.open 'POST', 'http://localhost:8912/_/echo'
|
|
6
|
+
|
|
7
|
+
@arrayBuffer = new ArrayBuffer xhr2PngBytes.length
|
|
8
|
+
@arrayBufferView = new Uint8Array @arrayBuffer
|
|
9
|
+
if typeof Buffer is 'undefined'
|
|
10
|
+
@buffer = null
|
|
11
|
+
else
|
|
12
|
+
@buffer = Buffer.alloc xhr2PngBytes.length
|
|
13
|
+
|
|
14
|
+
for i in [0...xhr2PngBytes.length]
|
|
15
|
+
@arrayBufferView[i] = xhr2PngBytes[i]
|
|
16
|
+
@buffer.writeUInt8 xhr2PngBytes[i], i if @buffer
|
|
17
|
+
|
|
18
|
+
it 'works with ASCII DOMStrings', (done) ->
|
|
19
|
+
@xhr.onload = =>
|
|
20
|
+
expect(@xhr.getResponseHeader('content-type')).to.
|
|
21
|
+
match(/^text\/plain(;\s?charset=UTF-8)?$/)
|
|
22
|
+
expect(@xhr.responseText).to.equal 'Hello world!'
|
|
23
|
+
done()
|
|
24
|
+
@xhr.send "Hello world!"
|
|
25
|
+
|
|
26
|
+
it 'works with UTF-8 DOMStrings', (done) ->
|
|
27
|
+
@xhr.onloadend = =>
|
|
28
|
+
expect(@xhr.getResponseHeader('content-type')).to.
|
|
29
|
+
match(/^text\/plain(;\s?charset=UTF-8)?$/)
|
|
30
|
+
expect(@xhr.responseText).to.equal '世界你好!'
|
|
31
|
+
done()
|
|
32
|
+
@xhr.send '世界你好!'
|
|
33
|
+
|
|
34
|
+
it 'works with ArrayBufferViews', (done) ->
|
|
35
|
+
@xhr.responseType = 'arraybuffer'
|
|
36
|
+
@xhr.onload = =>
|
|
37
|
+
expect(@xhr.getResponseHeader('content-type')).to.equal null
|
|
38
|
+
responseView = new Uint8Array @xhr.response
|
|
39
|
+
responseBytes = (responseView[i] for i in [0...responseView.length])
|
|
40
|
+
expect(responseBytes).to.deep.equal xhr2PngBytes
|
|
41
|
+
done()
|
|
42
|
+
@xhr.send @arrayBufferView
|
|
43
|
+
|
|
44
|
+
it 'works with ArrayBufferViews with set index and length', (done) ->
|
|
45
|
+
@xhr.responseType = 'arraybuffer'
|
|
46
|
+
@xhr.onload = =>
|
|
47
|
+
expect(@xhr.getResponseHeader('content-type')).to.equal null
|
|
48
|
+
responseView = new Uint8Array @xhr.response
|
|
49
|
+
responseBytes = (responseView[i] for i in [0...responseView.length])
|
|
50
|
+
expect(responseBytes).to.deep.equal xhr2PngBytes[10...52]
|
|
51
|
+
done()
|
|
52
|
+
arrayBufferView10 = new Uint8Array @arrayBuffer, 10, 42
|
|
53
|
+
@xhr.send arrayBufferView10
|
|
54
|
+
|
|
55
|
+
it 'works with ArrayBuffers', (done) ->
|
|
56
|
+
@xhr.responseType = 'arraybuffer'
|
|
57
|
+
@xhr.onload = =>
|
|
58
|
+
expect(@xhr.getResponseHeader('content-type')).to.equal null
|
|
59
|
+
responseView = new Uint8Array @xhr.response
|
|
60
|
+
responseBytes = (responseView[i] for i in [0...responseView.length])
|
|
61
|
+
expect(responseBytes).to.deep.equal xhr2PngBytes
|
|
62
|
+
done()
|
|
63
|
+
@xhr.send @arrayBuffer
|
|
64
|
+
|
|
65
|
+
it 'works with node.js Buffers', (done) ->
|
|
66
|
+
return done() unless @buffer
|
|
67
|
+
# NOTE: using the same exact code as above, which is tested in a browser
|
|
68
|
+
@xhr.responseType = 'arraybuffer'
|
|
69
|
+
@xhr.onload = =>
|
|
70
|
+
expect(@xhr.getResponseHeader('content-type')).to.equal null
|
|
71
|
+
responseView = new Uint8Array @xhr.response
|
|
72
|
+
responseBytes = (responseView[i] for i in [0...responseView.length])
|
|
73
|
+
expect(responseBytes).to.deep.equal xhr2PngBytes
|
|
74
|
+
done()
|
|
75
|
+
@xhr.send @buffer
|
|
76
|
+
|
|
77
|
+
it 'sets POST headers correctly when given null data', (done) ->
|
|
78
|
+
@xhr.open 'POST', 'http://localhost:8912/_/headers'
|
|
79
|
+
@xhr.responseType = 'text'
|
|
80
|
+
@xhr.onload = =>
|
|
81
|
+
expect(@xhr.responseText).to.match(/^\{.*\}$/)
|
|
82
|
+
headers = JSON.parse @xhr.responseText
|
|
83
|
+
expect(headers).to.have.property 'content-length'
|
|
84
|
+
expect(headers['content-length']).to.equal '0'
|
|
85
|
+
expect(headers).not.to.have.property 'content-type'
|
|
86
|
+
done()
|
|
87
|
+
@xhr.send()
|
|
88
|
+
|
|
89
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
describe 'XMLHttpRequest', ->
|
|
2
|
+
beforeEach ->
|
|
3
|
+
@xhr = new XMLHttpRequest
|
|
4
|
+
@okUrl = 'http://localhost:8912/test/fixtures/hello.txt'
|
|
5
|
+
|
|
6
|
+
@errorUrl = 'http://localhost:8912/_/response'
|
|
7
|
+
@errorJson = JSON.stringify
|
|
8
|
+
code: 401, status: 'Unauthorized',
|
|
9
|
+
body: JSON.stringify(error: 'Credential error'),
|
|
10
|
+
headers:
|
|
11
|
+
'Content-Type': 'application/json', 'Content-Length': '28'
|
|
12
|
+
|
|
13
|
+
describe '#status', ->
|
|
14
|
+
it 'is 200 for a normal request', (done) ->
|
|
15
|
+
@xhr.open 'GET', @okUrl
|
|
16
|
+
_done = false
|
|
17
|
+
@xhr.addEventListener 'readystatechange', =>
|
|
18
|
+
return if _done
|
|
19
|
+
if @xhr.readyState < XMLHttpRequest.HEADERS_RECEIVED
|
|
20
|
+
expect(@xhr.status).to.equal 0
|
|
21
|
+
expect(@xhr.statusText).to.equal ''
|
|
22
|
+
else
|
|
23
|
+
expect(@xhr.status).to.equal 200
|
|
24
|
+
expect(@xhr.statusText).to.be.ok
|
|
25
|
+
expect(@xhr.statusText).to.not.equal ''
|
|
26
|
+
if @xhr.readyState is XMLHttpRequest.DONE
|
|
27
|
+
_done = true
|
|
28
|
+
done()
|
|
29
|
+
@xhr.send()
|
|
30
|
+
|
|
31
|
+
it 'returns the server-reported status', (done) ->
|
|
32
|
+
@xhr.open 'POST', @errorUrl
|
|
33
|
+
_done = false
|
|
34
|
+
@xhr.addEventListener 'readystatechange', =>
|
|
35
|
+
return if _done
|
|
36
|
+
if @xhr.readyState < XMLHttpRequest.HEADERS_RECEIVED
|
|
37
|
+
expect(@xhr.status).to.equal 0
|
|
38
|
+
expect(@xhr.statusText).to.equal ''
|
|
39
|
+
else
|
|
40
|
+
expect(@xhr.status).to.equal 401
|
|
41
|
+
expect(@xhr.statusText).to.be.ok
|
|
42
|
+
expect(@xhr.statusText).to.not.equal ''
|
|
43
|
+
if @xhr.readyState is XMLHttpRequest.DONE
|
|
44
|
+
_done = true
|
|
45
|
+
done()
|
|
46
|
+
@xhr.send @errorJson
|
|
47
|
+
|