You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
skycaiji/vendor/rmccue/requests/tests/Encoding.php

95 lines
2.3 KiB

<?php
class RequestsTests_Encoding extends PHPUnit_Framework_TestCase {
protected static function mapData($type, $data) {
$real_data = array();
foreach ($data as $value) {
$key = $type . ': ' . $value[0];
$real_data[$key] = $value;
}
return $real_data;
}
public static function gzipData() {
return array(
array(
'foobar',
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x4b\xcb\xcf\x4f\x4a"
. "\x2c\x02\x00\x95\x1f\xf6\x9e\x06\x00\x00\x00",
),
array(
'Requests for PHP',
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x0b\x4a\x2d\x2c\x4d"
. "\x2d\x2e\x29\x56\x48\xcb\x2f\x52\x08\xf0\x08\x00\x00\x58\x35"
. "\x18\x17\x10\x00\x00\x00",
),
);
}
public static function deflateData() {
return array(
array(
'foobar',
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x78\x9c\x4b\xcb\xcf"
. "\x4f\x4a\x2c\x02\x00\x08\xab\x02\x7a"
),
array(
'Requests for PHP',
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x78\x9c\x0b\x4a\x2d"
. "\x2c\x4d\x2d\x2e\x29\x56\x48\xcb\x2f\x52\x08\xf0\x08\x00\x00"
. "\x34\x68\x05\xcc"
)
);
}
public static function deflateWithoutHeadersData() {
return array(
array(
'foobar',
"\x78\x9c\x4b\xcb\xcf\x4f\x4a\x2c\x02\x00\x08\xab\x02\x7a"
),
array(
'Requests for PHP',
"\x78\x9c\x0b\x4a\x2d\x2c\x4d\x2d\x2e\x29\x56\x48\xcb\x2f\x52"
. "\x08\xf0\x08\x00\x00\x34\x68\x05\xcc"
)
);
}
public static function encodedData() {
$datasets = array();
$datasets['gzip'] = self::gzipData();
$datasets['deflate'] = self::deflateData();
$datasets['deflate without zlib headers'] = self::deflateWithoutHeadersData();
$data = array();
foreach ($datasets as $key => $set) {
$real_set = self::mapData($key, $set);
$data = array_merge($data, $real_set);
}
return $data;
}
/**
* @dataProvider encodedData
*/
public function testDecompress($original, $encoded) {
$decoded = Requests::decompress($encoded);
$this->assertEquals($original, $decoded);
}
/**
* @dataProvider encodedData
*/
public function testCompatibleInflate($original, $encoded) {
$decoded = Requests::compatible_gzinflate($encoded);
$this->assertEquals($original, $decoded);
}
protected function bin2hex($field) {
$field = bin2hex($field);
$field = chunk_split($field,2,"\\x");
$field = "\\x" . substr($field,0,-2);
return $field;
}
}