From 998e7c3a86be9496c9c7a37c6fac70fb3c00923a Mon Sep 17 00:00:00 2001 From: John Du Hart Date: Thu, 27 Oct 2011 01:06:50 +0000 Subject: [PATCH] Followup r100905, fixed the ApiTests --- tests/phpunit/includes/api/ApiTestCase.php | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/tests/phpunit/includes/api/ApiTestCase.php b/tests/phpunit/includes/api/ApiTestCase.php index 2917c880e0..7f6d943b44 100644 --- a/tests/phpunit/includes/api/ApiTestCase.php +++ b/tests/phpunit/includes/api/ApiTestCase.php @@ -7,6 +7,11 @@ abstract class ApiTestCase extends MediaWikiLangTestCase { public static $users; protected static $apiUrl; + /** + * @var ApiTestContext + */ + protected $apiContext; + function setUp() { global $wgContLang, $wgAuth, $wgMemc, $wgRequest, $wgUser, $wgServer; @@ -34,6 +39,8 @@ abstract class ApiTestCase extends MediaWikiLangTestCase { $wgUser = self::$users['sysop']->user; + $this->apiContext = new ApiTestContext(); + } protected function doApiRequest( $params, $session = null, $appendModule = false ) { @@ -41,11 +48,15 @@ abstract class ApiTestCase extends MediaWikiLangTestCase { $session = array(); } - $request = new FauxRequest( $params, true, $session ); - $module = new ApiMain( $request, true ); + $context = $this->apiContext->newTestContext( $params, $session ); + $module = new ApiMain( $context, true ); $module->execute(); - $results = array( $module->getResultData(), $request, $request->getSessionArray() ); + $results = array( + $module->getResultData(), + $context->getRequest(), + $context->getRequest()->getSessionArray() + ); if( $appendModule ) { $results[] = $module; } @@ -137,3 +148,19 @@ class MockApi extends ApiBase { ); } } + +class ApiTestContext extends RequestContext { + + /** + * Returns a DerivativeContext with the request variables in place + * + * @param $params Array key-value API params + * @param $session Array session data + * @return DerivativeContext + */ + public function newTestContext( $params, $session ) { + $context = new DerivativeContext( $this ); + $context->setRequest( new FauxRequest( $params, true, $session ) ); + return $context; + } +} -- 2.20.1