Merge "resourceloader: Add $context to static functions in ResourceLoader"
[lhc/web/wiklou.git] / tests / phpunit / unit / includes / Rest / RouterTest.php
index e16ea25..270bcfc 100644 (file)
@@ -3,6 +3,7 @@
 namespace MediaWiki\Tests\Rest;
 
 use GuzzleHttp\Psr7\Uri;
+use MediaWiki\Permissions\PermissionManager;
 use MediaWiki\Rest\BasicAccess\StaticBasicAuthorizer;
 use MediaWiki\Rest\Handler;
 use MediaWiki\Rest\HttpException;
@@ -24,15 +25,16 @@ class RouterTest extends \MediaWikiUnitTestCase {
                $objectFactory = new ObjectFactory(
                        $this->getMockForAbstractClass( ContainerInterface::class )
                );
+               $permissionManager = $this->createMock( PermissionManager::class );
                return new Router(
                        [ __DIR__ . '/testRoutes.json' ],
                        [],
                        '/rest',
                        new \EmptyBagOStuff(),
-                       new ResponseFactory(),
+                       new ResponseFactory( [] ),
                        new StaticBasicAuthorizer( $authError ),
                        $objectFactory,
-                       new Validator( $objectFactory, $request, new User )
+                       new Validator( $objectFactory, $permissionManager, $request, new User )
                );
        }
 
@@ -55,6 +57,16 @@ class RouterTest extends \MediaWikiUnitTestCase {
                $this->assertSame( 'GET', $response->getHeaderLine( 'Allow' ) );
        }
 
+       public function testHeadToGet() {
+               $request = new RequestData( [
+                       'uri' => new Uri( '/rest/user/joe/hello' ),
+                       'method' => 'HEAD'
+               ] );
+               $router = $this->createRouter( $request );
+               $response = $router->execute( $request );
+               $this->assertSame( 200, $response->getStatusCode() );
+       }
+
        public function testNoMatch() {
                $request = new RequestData( [ 'uri' => new Uri( '/rest/bogus' ) ] );
                $router = $this->createRouter( $request );