|
|
- var Buffer = require('buffer').Buffer
- var fs = require('fs')
- var test = require('tape')
- var UAParser = require('ua-parser-js')
-
- var http = require('../..')
-
- var browser = (new UAParser()).setUA(navigator.userAgent).getBrowser()
- var browserName = browser.name
- var browserVersion = browser.major
- // Binary request bodies don't work in a bunch of browsers
- var skipVerification = ((browserName === 'IE' && browserVersion <= 10) ||
- (browserName === 'Safari' && browserVersion <= 5) ||
- (browserName === 'WebKit' && browserVersion <= 534) || // Old mobile safari
- (browserName === 'Android Browser' && browserVersion <= 4))
-
- var reference = fs.readFileSync(__dirname + '/../server/static/browserify.png')
-
- test('post binary', function (t) {
- var req = http.request({
- path: '/echo',
- method: 'POST'
- }, function (res) {
- var buffers = []
-
- res.on('end', function () {
- if (skipVerification)
- t.skip('binary data not preserved on this browser')
- else
- t.ok(reference.equals(Buffer.concat(buffers)), 'echoed contents match')
- t.end()
- })
-
- res.on('data', function (data) {
- buffers.push(data)
- })
- })
-
- req.write(reference)
- req.end()
- })
|