@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
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}