MediaWiki
REL1_23
|
00001 <?php 00006 class MWMessagePackTest extends MediaWikiTestCase { 00007 00016 public function provider() { 00017 return array( 00018 array( 'nil', null, 'c0' ), 00019 array( 'bool', true, 'c3' ), 00020 array( 'bool', false, 'c2' ), 00021 array( 'positive fixnum', 0, '00' ), 00022 array( 'positive fixnum', 1, '01' ), 00023 array( 'positive fixnum', 5, '05' ), 00024 array( 'positive fixnum', 35, '23' ), 00025 array( 'uint 8', 128, 'cc80' ), 00026 array( 'uint 16', 1000, 'cd03e8' ), 00027 array( 'uint 32', 100000, 'ce000186a0' ), 00028 array( 'uint 64', 10000000000, 'cf00000002540be400' ), 00029 array( 'negative fixnum', -1, 'ff' ), 00030 array( 'negative fixnum', -2, 'fe' ), 00031 array( 'int 8', -128, 'd080' ), 00032 array( 'int 8', -35, 'd0dd' ), 00033 array( 'int 16', -1000, 'd1fc18' ), 00034 array( 'int 32', -100000, 'd2fffe7960' ), 00035 array( 'int 64', -10000000000, 'd3fffffffdabf41c00' ), 00036 array( 'int 64', -223372036854775807, 'd3fce66c50e2840001' ), 00037 array( 'int 64', -9223372036854775807, 'd38000000000000001' ), 00038 array( 'double', 0.1, 'cb3fb999999999999a' ), 00039 array( 'double', 1.1, 'cb3ff199999999999a' ), 00040 array( 'double', 123.456, 'cb405edd2f1a9fbe77' ), 00041 array( 'fix raw', '', 'a0' ), 00042 array( 'fix raw', 'foobar', 'a6666f6f626172' ), 00043 array( 00044 'raw 16', 00045 'Lorem ipsum dolor sit amet amet.', 00046 'da00204c6f72656d20697073756d20646f6c6f722073697420616d657420616d65742e' 00047 ), 00048 array( 00049 'fix array', 00050 array( 'abc', 'def', 'ghi' ), 00051 '93a3616263a3646566a3676869' 00052 ), 00053 array( 00054 'fix map', 00055 array( 'one' => 1, 'two' => 2 ), 00056 '82a36f6e6501a374776f02' 00057 ), 00058 ); 00059 } 00060 00066 public function testPack( $type, $value, $expected ) { 00067 $actual = bin2hex( MWMessagePack::pack( $value ) ); 00068 $this->assertEquals( $actual, $expected, $type ); 00069 } 00070 }