public function testExecute() { $session1 = new UserOnline(); $session1->setUser('admin'); $session1->setSessionId('session1id'); // must be deleted $session1->setLastOnline(time() - 200); $session2 = new UserOnline(); $session2->setUser('derp'); $session2->setSessionId('session2id'); // must be deleted $session2->setLastOnline(time() - 320); $session3 = new UserOnline(); $session3->setUser('derp'); $session3->setSessionId('session3id'); // must NOT be deleted $session3->setLastOnline(time() - 10); $this->container['UserOnlineMapper'] = $this->getMockBuilder('\\OCA\\Chat\\OCH\\Db\\UserOnlineMapper')->disableOriginalConstructor()->getMock(); $this->container['UserOnlineMapper']->expects($this->any())->method('getAll')->will($this->returnValue(array($session1, $session2, $session3))); $this->container['UserOnlineMapper']->expects($this->any())->method('deleteBySessionId')->will($this->returnCallback(function ($sessionId) { SyncOnlineTest::$sessionIds[] = $sessionId; })); $synConline = new SyncOnline($this->container); $synConline->setRequestData(array()); $result = $synConline->execute(); $this->assertEquals(array('session1id', 'session2id'), SyncOnlineTest::$sessionIds); }
public function execute() { $requestData = $this->getRequestData(); $sessionId = $this->generateSessionId($requestData['timestamp']); $userOnline = new UserOnline(); $userOnline->setUser($requestData['user']['id']); $userOnline->setSessionId($sessionId); $userOnline->setLastOnline($requestData['timestamp']); $this->userOnlineMapper->insert($userOnline); // The user is now online // send a push message to every user to inform this $command = json_encode(array('type' => 'online', 'data' => array('user' => $this->requestData['user'], 'timestamp' => $this->requestData['timestamp']))); $this->pushMessageMapper->createForAllSessions($this->requestData['user']['id'], $command); return array("session_id" => $sessionId); }
public function testUserOnlineMapperInsert() { $this->container['UserOnlineMapper'] = $this->getMockBuilder('\\OCA\\Chat\\OCH\\Db\\UserOnlineMapper')->disableOriginalConstructor()->getMock(); $this->container['UserOnlineMapper']->expects($this->any())->method('insert')->will($this->returnCallback(function ($userOnline) { GreetTest::$userOnline = $userOnline; })); $time = time(); $greet = new Greet($this->container); $greet->setRequestData(array('timestamp' => $time, 'user' => array('id' => 'admin', 'online' => false, 'displayname' => 'admin', 'backends' => array('och' => array('id' => NULL, 'displayname' => 'ownCloud Handle', 'protocol' => 'x-owncloud-handle', 'namespace' => 'och', 'value' => 'admin')), 'address_book_id' => 'admin', 'address_book_backend' => 'localusers'))); $greet->execute(); $expectedUserOnline = new UserOnline(); $expectedUserOnline->setUser('admin'); $expectedUserOnline->setSessionId(md5("sessionID" . $time)); $expectedUserOnline->setLastOnline($time); $this->assertEquals($expectedUserOnline, GreetTest::$userOnline); }
public function getOnlineUsersProvider() { $user1 = new UserOnline(); $user1->setUser('foo'); $user1->setLastOnline(time() - 34); $user1->setSessionId(md5(time() - 32575334)); $user2 = new UserOnline(); $user2->setUser('foo'); $user2->setLastOnline(time() - 42352); $user2->setSessionId(md5(time() - 75698)); $user3 = new UserOnline(); $user3->setUser('bar'); $user3->setLastOnline(time() - 346574); $user3->setSessionId(md5(time() - 4567)); return array(array(array($user1, $user2, $user3))); }
public function findSessionsByConversationProvider() { $convId = md5(time() - 354235); $sessionId1 = md5(time() + rand(0, 1000)); $sessionId2 = md5(time() + rand(0, 1000)); $user1 = new User(); $user1->setUser('foo'); $user1->setConversationId($convId); $user1->setJoined(time() - 3434); $user2 = new User(); $user2->setUser('bar'); $user2->setConversationId($convId); $user2->setJoined(time() - 4345675); $session1 = new UserOnline(); $session1->setSessionId($sessionId1); $session1->setUser('foo'); $session1->setLastOnline(time() - 400); $session2 = new UserOnline(); $session2->setSessionId($sessionId2); $session2->setUser('bar'); $session2->setLastOnline(time() - 3435); return array(array(array($user1, $user2), array($session1, $session2), $convId, $sessionId1, $sessionId2)); }