public function testSetUserForRequestClient_usersFromSameClientGetSameVariation()
 {
     /** @var CM_Model_Splittest_RequestClient_Mock $splittestRequestClient */
     $splittestRequestClient = CM_Model_Splittest_RequestClient_Mock::create('foo', range(1, 100));
     /** @var CM_Model_Splittest_User_Mock $splittestUser */
     $splittestUser = CM_Model_Splittest_User_Mock::findId($splittestRequestClient->getId());
     $request1 = new CM_Http_Request_Post('/foo/null');
     $variationRequest1 = $splittestRequestClient->getVariationFixture($request1);
     $userA = CMTest_TH::createUser();
     CM_Splittest_Fixture::setUserForRequestClient($request1, $userA);
     $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userA));
     for ($i = 0; $i < 10; $i++) {
         $userNew = CMTest_TH::createUser();
         CM_Splittest_Fixture::setUserForRequestClient($request1, $userNew);
         $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userNew));
     }
     $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userA));
     $splittestRequestClient->delete();
     CMTest_TH::clearCache();
 }
示例#2
0
文件: Session.php 项目: cargomedia/cm
 /**
  * @param CM_Model_User $user
  */
 public function setUser(CM_Model_User $user)
 {
     $user->setOnline(true);
     $this->set('userId', $user->getId());
     $this->regenerateId();
     if ($request = $this->getRequest()) {
         CM_Splittest_Fixture::setUserForRequestClient($request, $user);
         $user->getUseragents()->addFromRequest($request);
     }
 }