summaryrefslogtreecommitdiff
path: root/bin/wiki/vendor/addwiki/mediawiki-api-base/tests/Unit/MultipartRequestTest.php
blob: 993c29e87305c0ecd230f4b8628037d8f46bf14b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

namespace Mediawiki\Api\Test\Unit;

use Exception;
use Mediawiki\Api\MultipartRequest;
use PHPUnit_Framework_TestCase;

class MultipartRequestTest extends PHPUnit_Framework_TestCase {

	public function testBasics() {
		$request = new MultipartRequest();
		$this->assertEquals( [], $request->getMultipartParams() );

		// One parameter.
		$request->setParam( 'testparam', 'value' );
		$request->addMultipartParams( [ 'testparam' => [ 'lorem' => 'ipsum' ] ] );
		$this->assertEquals(
			[ 'testparam' => [ 'lorem' => 'ipsum' ] ],
			$request->getMultipartParams()
		);

		// Another parameter.
		$request->setParam( 'testparam2', 'value' );
		$request->addMultipartParams( [ 'testparam2' => [ 'lorem2' => 'ipsum2' ] ] );
		$this->assertEquals(
			[
				'testparam' => [ 'lorem' => 'ipsum' ],
				'testparam2' => [ 'lorem2' => 'ipsum2' ],
			],
			$request->getMultipartParams()
		);
	}

	/**
	 * You are not allowed to set multipart parameters on a parameter that doesn't exist.
	 * @expectedException Exception
	 * @expectedExceptionMessage Parameter 'testparam' is not already set on this request.
	 */
	public function testParamNotYetSet() {
		$request = new MultipartRequest();
		$request->addMultipartParams( [ 'testparam' => [] ] );
	}
}