Пример #1
0
 public function testOnRedisMessageSubscribeUser()
 {
     $adapter = new CM_MessageStream_Adapter_SocketRedis([]);
     $user = CMTest_TH::createUser();
     $session = new CM_Session();
     $session->setUser($user);
     $session->write();
     $message = array('type' => 'subscribe', 'data' => array('channel' => 'foo:' . CM_Model_StreamChannel_Message::getTypeStatic(), 'clientKey' => 'bar', 'data' => array('sessionId' => $session->getId())));
     $adapter->onRedisMessage(json_encode($message));
     $streamChannel = CM_Model_StreamChannel_Message::findByKeyAndAdapter('foo', $adapter->getType());
     $streamSubscribe = CM_Model_Stream_Subscribe::findByKeyAndChannel('bar', $streamChannel);
     $this->assertEquals($user, $streamSubscribe->getUser());
 }
Пример #2
0
 /**
  * @param CM_Model_User|null $user
  * @return CM_Session
  */
 public static function createSession(CM_Model_User $user = null)
 {
     if (is_null($user)) {
         $user = self::createUser();
     }
     $session = new CM_Session();
     $session->setUser($user);
     $session->write();
     return $session;
 }
Пример #3
0
 public function testFindById()
 {
     $session = new CM_Session();
     $session->set('foo', 'bar');
     $session->write();
     $this->assertEquals($session, CM_Session::findById($session->getId()));
     $this->assertNull(CM_Session::findById('foo'));
     $this->assertNull(CM_Session::findById(''));
 }
Пример #4
0
 public function testSetSessionFromCookie()
 {
     $requestFoo = new CM_Http_Request_Get('/foo');
     $sessionFoo = new CM_Session(null, $requestFoo);
     $sessionFoo->set('foo', 'bar');
     $sessionFoo->write();
     $sessionFooId = $sessionFoo->getId();
     $requestBar = new CM_Http_Request_Get('/bar', ['cookie' => 'sessionId=' . $sessionFooId . ';']);
     $sessionBar = $requestBar->getSession();
     $this->assertEquals($sessionFooId, $sessionBar->getId());
     $this->assertEquals('bar', $sessionBar->get('foo'));
     $this->assertEquals($requestBar, $sessionBar->getRequest());
 }