MediaWiki  REL1_23
MWMessagePackTest.php
Go to the documentation of this file.
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 }