@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 45 lines 1.1 kB view raw
1<?php 2 3final class AphrontMultipartParserTestCase extends PhutilTestCase { 4 5 public function testParser() { 6 $map = array( 7 array( 8 'data' => 'simple.txt', 9 'variables' => array( 10 array('a', 'b'), 11 ), 12 ), 13 ); 14 15 $data_dir = dirname(__FILE__).'/data/'; 16 foreach ($map as $test_case) { 17 $data = Filesystem::readFile($data_dir.$test_case['data']); 18 $data = str_replace("\n", "\r\n", $data); 19 20 $parser = id(new AphrontMultipartParser()) 21 ->setContentType('multipart/form-data; boundary=ABCDEFG'); 22 $parser->beginParse(); 23 $parser->continueParse($data); 24 $parts = $parser->endParse(); 25 26 $variables = array(); 27 foreach ($parts as $part) { 28 if (!$part->isVariable()) { 29 continue; 30 } 31 32 $variables[] = array( 33 $part->getName(), 34 $part->getVariableValue(), 35 ); 36 } 37 38 $expect_variables = idx($test_case, 'variables', array()); 39 $this->assertEqual($expect_variables, $variables); 40 } 41 } 42 43 44 45}