예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 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'))));
 }
예제 #3
0
 /**
  * @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;
 }
예제 #4
0
 /**
  * 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;
 }