/** * Returns a DerivativeContext with the request variables in place * * @param $request WebRequest request object including parameters and session * @param $user User or null * @return DerivativeContext */ public function newTestContext(WebRequest $request, User $user = null) { $context = new DerivativeContext($this); $context->setRequest($request); if ($user !== null) { $context->setUser($user); } return $context; }
protected function setUp() { parent::setUp(); $this->mUserMock = $this->getMockBuilder('User')->disableOriginalConstructor()->getMock(); // Set up groups and rights $this->mUserMock->expects($this->any())->method('getEffectiveGroups')->will($this->returnValue(array('*', 'user'))); $this->mUserMock->expects($this->any())->method('isAllowed')->will($this->returnValue(true)); // Set up callback for User::getOptionKinds $this->mUserMock->expects($this->any())->method('getOptionKinds')->will($this->returnCallback(array($this, 'getOptionKinds'))); // Create a new context $this->mContext = new DerivativeContext(new RequestContext()); $this->mContext->getContext()->setTitle(Title::newFromText('Test')); $this->mContext->setUser($this->mUserMock); $main = new ApiMain($this->mContext); // Empty session $this->mSession = array(); $this->mTested = new ApiOptions($main, 'options'); $this->mergeMwGlobalArrayValue('wgHooks', array('GetPreferences' => array(array($this, 'hookGetPreferences')))); }
/** * @param WebRequest|null $request * @param Language|string|null $language * @param User|null $user * * @return DerivativeContext */ private function newContext(WebRequest $request = null, $language = null, User $user = null) { $context = new DerivativeContext(RequestContext::getMain()); $context->setRequest($request ?: new FauxRequest()); if ($language !== null) { $context->setLanguage($language); } if ($user !== null) { $context->setUser($user); } $this->setEditTokenFromUser($context); return $context; }
/** * Returns a DerivativeContext with the request variables in place * * @param $params Array key-value API params * @param $session Array session data * @param $user User or null * @return DerivativeContext */ public function newTestContext($params, $session, $user = null) { $context = new DerivativeContext($this); $context->setRequest(new FauxRequest($params, true, $session)); if ($user !== null) { $context->setUser($user); } return $context; }