Modules group together endpoints by a shared prefix. The idea is that each module has its own version and can generated self-contained self-documentation. This allows clients to have clear expectations about the endpoints of each module, no matter what wiki they are accessing. So far, each wiki may be exposing a different set of endpoints, with no way to provide a spec that describes that set of endpoints in a way that would be consistent across wikis and stable over time. Bug: T362480 Change-Id: Iebcde4645d472d27eee5a30adb6eee12cc7d046b
47 lines
1 KiB
PHP
47 lines
1 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Rest;
|
|
|
|
use MediaWiki\Rest\Handler;
|
|
use MediaWiki\Rest\HttpException;
|
|
use MediaWiki\Rest\RedirectException;
|
|
use MediaWiki\Rest\ResponseException;
|
|
use RuntimeException;
|
|
|
|
class MockHandlerFactory {
|
|
|
|
public static function throwHandlerFactory() {
|
|
return new class extends Handler {
|
|
public function execute() {
|
|
throw new HttpException( 'Mock error', 555 );
|
|
}
|
|
};
|
|
}
|
|
|
|
public static function fatalHandlerFactory() {
|
|
return new class extends Handler {
|
|
public function execute() {
|
|
throw new RuntimeException( 'Fatal mock error', 12345 );
|
|
}
|
|
};
|
|
}
|
|
|
|
public static function throwRedirectHandlerFactory() {
|
|
return new class extends Handler {
|
|
public function execute() {
|
|
throw new RedirectException( 301, 'http://example.com' );
|
|
}
|
|
};
|
|
}
|
|
|
|
public static function throwWrappedHandlerFactory() {
|
|
return new class extends Handler {
|
|
public function execute() {
|
|
$response = $this->getResponseFactory()->create();
|
|
$response->setStatus( 200 );
|
|
throw new ResponseException( $response );
|
|
}
|
|
};
|
|
}
|
|
|
|
}
|