Merge pull request #8 from rase-/add/android-test

Added android to zuul browsers
This commit is contained in:
Guillermo Rauch
2014-03-16 12:56:23 -03:00
2 changed files with 18 additions and 2 deletions

View File

@@ -14,3 +14,5 @@ browsers:
version: [6..9, latest]
- name: iphone
version: oldest..latest
- name: android
version: latest

View File

@@ -7,6 +7,15 @@ var sliceBuffer = require('arraybuffer.slice');
var base64encoder = require('base64-arraybuffer');
var after = require('after');
/**
* Check if we are running an android browser. That requires us to use
* ArrayBuffer with polling transports...
*
* http://ghinda.net/jpeg-blob-ajax-android/
*/
var isAndroid = navigator.userAgent.match(/Android/i);
/**
* Current protocol version.
*/
@@ -69,7 +78,7 @@ exports.encodePacket = function (packet, supportsBinary, callback) {
if (global.ArrayBuffer && data instanceof ArrayBuffer) {
return encodeArrayBuffer(packet, supportsBinary, callback);
} else if (Blob && data instanceof Blob) {
} else if (Blob && data instanceof global.Blob) {
return encodeBlob(packet, supportsBinary, callback);
}
@@ -124,6 +133,10 @@ function encodeBlob(packet, supportsBinary, callback) {
return exports.encodeBase64Packet(packet, callback);
}
if (isAndroid) {
return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);
}
var length = new Uint8Array(1);
length[0] = packets[packet.type];
var blob = new Blob([length.buffer, packet.data]);
@@ -246,9 +259,10 @@ exports.encodePayload = function (packets, supportsBinary, callback) {
}
if (supportsBinary) {
if (Blob) {
if (Blob && !isAndroid) {
return exports.encodePayloadAsBlob(packets, callback);
}
return exports.encodePayloadAsArrayBuffer(packets, callback);
}