Path: blob/master/src/aphront/headerparser/__tests__/AphrontHTTPHeaderParserTestCase.php
12241 views
<?php12final class AphrontHTTPHeaderParserTestCase extends PhutilTestCase {34public function testHeaderParser() {5$cases = array(6array(7'Key: x; y; z',8'Key',9'x; y; z',10array(11array('x', null),12array('y', null),13array('z', null),14),15),16array(17'Content-Disposition: form-data; name="label"',18'Content-Disposition',19'form-data; name="label"',20array(21array('form-data', null),22array('name', 'label'),23),24),25array(26'Content-Type: multipart/form-data; charset=utf-8',27'Content-Type',28'multipart/form-data; charset=utf-8',29array(30array('multipart/form-data', null),31array('charset', 'utf-8'),32),33),34array(35'Content-Type: application/octet-stream; charset="ut',36'Content-Type',37'application/octet-stream; charset="ut',38false,39),40array(41'Content-Type: multipart/form-data; boundary=ABCDEFG',42'Content-Type',43'multipart/form-data; boundary=ABCDEFG',44array(45array('multipart/form-data', null),46array('boundary', 'ABCDEFG'),47),48),49array(50'Content-Type: multipart/form-data; boundary="ABCDEFG"',51'Content-Type',52'multipart/form-data; boundary="ABCDEFG"',53array(54array('multipart/form-data', null),55array('boundary', 'ABCDEFG'),56),57),58);5960foreach ($cases as $case) {61$input = $case[0];62$expect_name = $case[1];63$expect_content = $case[2];6465$parser = id(new AphrontHTTPHeaderParser())66->parseRawHeader($input);6768$actual_name = $parser->getHeaderName();69$actual_content = $parser->getHeaderContent();7071$this->assertEqual(72$expect_name,73$actual_name,74pht('Header name for: %s', $input));7576$this->assertEqual(77$expect_content,78$actual_content,79pht('Header content for: %s', $input));8081if (isset($case[3])) {82$expect_pairs = $case[3];8384$caught = null;85try {86$actual_pairs = $parser->getHeaderContentAsPairs();87} catch (Exception $ex) {88$caught = $ex;89}9091if ($expect_pairs === false) {92$this->assertEqual(93true,94($caught instanceof Exception),95pht('Expect exception for header pairs of: %s', $input));96} else {97$this->assertEqual(98$expect_pairs,99$actual_pairs,100pht('Header pairs for: %s', $input));101}102}103}104}105106107}108109110