additional_plugins/serendipity_event_browserid/vendor/fgrosse/phpasn1/tests/ASN1/Base128Test.php

89 lines
2.6 KiB
PHP

<?php
namespace FG\tests\ASN1;
use FG\ASN1\Base128;
class Base128Test extends \PHPUnit_Framework_TestCase
{
/**
* @dataProvider getDataToDecode
*/
public function testEncode($value, $expected)
{
$this->assertEquals($expected, Base128::encode($value));
}
/**
* @dataProvider getDataToDecode
*/
public function testDecode($expected, $octets)
{
$this->assertEquals($expected, Base128::decode($octets));
}
public function getDataToDecode()
{
return [
[0x00000000, "\x00"],
// self explanatory
[0x0000003F, "\x3F"],
// binary: 00111111
// septets: 0111111
// padded: 00111111
// hex: 0x3F
[0x0000007F, "\x7F"],
// binary: 01111111
// septets: 1111111
// padded: 01111111
// hex: 0x7F
[0x00000080, "\x81\x00"],
// binary: 10000000
// septets: 0000001 00000000
// padded: 10000001 00000000
// hex: 0x81 0x00
[0x00004001, "\x81\x80\x01"],
// binary: 01000000 00000001
// septets: 01 0000000 0000001
// padded: 10000001 10000000 00000001
// hex: 0x81 0x80 0x01
[0x00002000, "\xC0\x00"],
// binary: 00100000 00000000
// septets: 1000000 0000000
// padded: 11000000 00000000
// hex: 0xC0 0x00
[0x001FFFFF, "\xFF\xFF\x7F"],
// binary: 00011111 11111111 11111111
// septet: 1111111 1111111 1111111
// padded: 11111111 11111111 01111111
// hex: 0xFF 0xFF 0x7F
[0x0FFFFFFF, "\xFF\xFF\xFF\x7F"],
// binary: 00001111 11111111 11111111 11111111
// septet: 1111111 1111111 1111111 1111111
// padded: 11111111 11111111 11111111 01111111
// hex: 0xFF 0xFF 0xFF 0x7F
[0xA34B253, "\xD1\xD2\xE4\x53"],
// binary: 00001010 00110100 10110010 01010011
// septet: 1010001 1010010 1100100 1010011
// padded: 11010001 11010010 11100100 01010011
// hex: 0xD1 0xD2 0xE4 0x53
];
}
/**
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Malformed base-128 encoded value (0xFFFF).
*/
public function testDecodeFailsIfLastOctetSignificantBitSet()
{
Base128::decode("\xFF\xFF");
}
}