public function setFeature(SiteModel $site, \BaseSiteFeature $siteFeature, $value, UserAccountModel $userAccountModel = null) { try { $this->app['db']->beginTransaction(); $changeMade = false; $stat = $this->app['db']->prepare("SELECT is_on FROM site_feature_information WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id"); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId())); if ($stat->rowCount() == 1) { $data = $stat->fetch(); if ($data['is_on'] != $value) { $stat = $this->app['db']->prepare("UPDATE site_feature_information SET is_on=:is_on " . " WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id "); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0)); $changeMade = true; } } else { $stat = $this->app['db']->prepare("INSERT INTO site_feature_information (site_id, extension_id, feature_id, is_on) " . " VALUES(:site_id, :extension_id, :feature_id, :is_on) "); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0)); $changeMade = true; } if ($changeMade) { $stat = $this->app['db']->prepare("INSERT INTO site_feature_history (site_id, extension_id, feature_id, is_on, user_account_id, created_at) " . " VALUES (:site_id, :extension_id, :feature_id, :is_on, :user_account_id, :created_at)"); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0, 'user_account_id' => $userAccountModel ? $userAccountModel->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase())); } $this->app['db']->commit(); } catch (Exception $e) { $this->app['db']->rollBack(); } }
function testUserIsUserGroup() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userTest = new UserAccountModel(); $userTest->setEmail("*****@*****.**"); $userTest->setUsername("testtest"); $userTest->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $userRepo->create($userTest); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $usrb = new \repositories\builders\UserGroupRepositoryBuilder(); $usrb->setSite($site); $userGroups = $usrb->fetchAll(); $this->assertTrue(count($userGroups) > 0); $userGroup = $userGroups[0]; $uiugr = new \repositories\UserGroupRepository(); $uiugr->addUserToGroup($userTest, $userGroup); // Test user in user group has it $srb = new \repositories\builders\SiteRepositoryBuilder(); $srb->setUserInterestedIn($userTest); $sites = $srb->fetchAll(); $this->assertEquals(1, count($sites)); }
function test1() { $this->addCountriesToTestDB(); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('test'); $this->assertEquals(1, count($grb->fetchAll())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('cats'); $this->assertEquals(0, count($grb->fetchAll())); }
function testIntegration1() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 1, 1, 12, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); ## Create area \TimeSource::mock(2014, 1, 1, 13, 0, 0); $area = new AreaModel(); $area->setTitle("test"); $area->setDescription("test test"); $area->setCountryId($gb->getId()); $areaRepo = new AreaRepository(); $areaRepo->create($area, null, $site, $gb, $user); ## Edit area \TimeSource::mock(2014, 1, 1, 14, 0, 0); $area = $areaRepo->loadById($area->getId()); $area->setDescription("testy"); $areaRepo->edit($area, $user); ## Now save changed flags on these ..... $areaHistoryRepo = new AreaHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM area_history"); $stat->execute(); while ($data = $stat->fetch()) { $areaHistory = new AreaHistoryModel(); $areaHistory->setFromDataBaseRow($data); $areaHistoryRepo->ensureChangedFlagsAreSet($areaHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setIncludeEventHistory(false); $historyRepo->setIncludeVenueHistory(false); $historyRepo->setIncludeGroupHistory(false); $historyRepo->setIncludeAreaHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(2, count($histories)); #the edit $this->assertEquals(FALSE, $histories[0]->getTitleChanged()); $this->assertEquals(true, $histories[0]->getDescriptionChanged()); $this->assertEquals(false, $histories[0]->getCountryIdChanged()); $this->assertEquals(false, $histories[0]->getParentAreaIdChanged()); $this->assertEquals(false, $histories[0]->getIsDeletedChanged()); #the create $this->assertEquals(true, $histories[1]->getTitleChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(true, $histories[1]->getCountryIdChanged()); $this->assertEquals(false, $histories[1]->getParentAreaIdChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); }
function test1() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $this->checkGroupInTest1($groupRepo->loadById($group->getId())); $this->checkGroupInTest1($groupRepo->loadBySlug($site, $group->getSlug())); $grb = new GroupRepositoryBuilder(); $grb->setFreeTextsearch('test'); $this->assertEquals(1, count($grb->fetchAll())); $grb = new GroupRepositoryBuilder(); $grb->setFreeTextsearch('cats'); $this->assertEquals(0, count($grb->fetchAll())); }
function test1() { TimeSource::mock(2014, 5, 1, 7, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventDupe = new EventModel(); $eventDupe->setSummary("test"); $eventDupe->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $eventDupe->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group); $eventRepository->create($eventDupe, $site, $user, $group); TimeSource::mock(2014, 5, 1, 7, 1, 0); $eventRepository->markDuplicate($eventDupe, $event); $userAtEvent = new \models\UserAtEventModel(); $userAtEvent->setEventId($event->getId()); $userAtEvent->setUserAccountId($user->getId()); $userAtEvent->setIsPlanAttending(true); $userAtEventRepo = new \repositories\UserAtEventRepository(); $userAtEventRepo->create($userAtEvent); $curatedList = new CuratedListModel(); $curatedList->setTitle("test"); $curatedList->setDescription("test this!"); $clRepo = new CuratedListRepository(); $clRepo->create($curatedList, $site, $user); $clRepo->addEventtoCuratedList($event, $curatedList, $user); $tag = new TagModel(); $tag->setTitle("Test"); $tagRepo = new TagRepository(); $tagRepo->create($tag, $site, $user); $tagRepo->addTagToEvent($tag, $event, $user); ## TEST $this->assertNotNull($eventRepository->loadBySlug($site, $event->getSlug())); ## PURGE! $eventRepository->purge($event); ## TEST $this->assertNull($eventRepository->loadBySlug($site, $event->getSlug())); }
protected function build() { if ($this->userInterestedIn) { $this->params['user_in_site'] = $this->userInterestedIn->getId(); // user watches site $this->joins[] = " LEFT JOIN user_watches_site_information ON user_watches_site_information.site_id = site_information.id AND user_watches_site_information.user_account_id = :user_in_site "; // user interested in site $this->joins[] = " LEFT JOIN user_interested_in_site_information ON user_interested_in_site_information.site_id = site_information.id AND user_interested_in_site_information.user_account_id = :user_in_site "; // user watches group information $inner = "SELECT group_information.site_id AS site_id, user_watches_group_information.user_account_id AS user_account_id " . "FROM user_watches_group_information " . " JOIN group_information ON group_information.id = user_watches_group_information.group_id " . " WHERE user_watches_group_information.is_watching = '1' AND user_watches_group_information.user_account_id = :user_in_site " . " GROUP BY group_information.site_id, user_watches_group_information.user_account_id "; $this->joins[] = " LEFT JOIN (" . $inner . ") AS user_watches_group ON user_watches_group.site_id = site_information.id "; // user watches area information $inner = "SELECT area_information.site_id AS site_id, user_watches_area_information.user_account_id AS user_account_id " . "FROM user_watches_area_information " . " JOIN area_information ON area_information.id = user_watches_area_information.area_id " . " WHERE user_watches_area_information.is_watching = '1' AND user_watches_area_information.user_account_id = :user_in_site " . " GROUP BY area_information.site_id, user_watches_area_information.user_account_id "; $this->joins[] = " LEFT JOIN (" . $inner . ") AS user_watches_area ON user_watches_area.site_id = site_information.id "; // TODO user at event. https://github.com/OpenACalendar/OpenACalendar-Web-Core/issues/357 // Permissions $inner = "SELECT user_group_in_site.site_id AS site_id, user_in_user_group.user_account_id AS user_account_id FROM user_group_in_site " . "LEFT JOIN user_in_user_group ON user_in_user_group.user_group_id = user_group_in_site.user_group_id " . "WHERE user_group_in_site.removed_at IS NULL AND user_in_user_group.removed_at IS NULL AND user_in_user_group.user_account_id = :user_in_site " . "GROUP BY user_group_in_site.site_id, user_in_user_group.user_account_id "; $this->joins[] = " LEFT JOIN (" . $inner . ") AS user_permission_in_site ON user_permission_in_site.site_id = site_information.id "; // put it all together $this->where[] = " ( user_watches_site_information.is_watching = '1' " . " OR user_permission_in_site.user_account_id = :user_in_site " . " OR user_watches_group.user_account_id = :user_in_site " . " OR user_watches_area.user_account_id = :user_in_site " . " OR user_interested_in_site_information.is_interested = '1' " . " )"; } if ($this->isListedInIndexOnly) { $this->where[] = " site_information.is_listed_in_index = '1' "; } if ($this->isOpenBySysAdminsOnly) { $this->where[] = " site_information.is_closed_by_sys_admin = '0' "; } }
protected function build() { if ($this->user) { $this->where[] = " user_account_verify_email.user_account_id = :user_account_id"; $this->params['user_account_id'] = $this->user->getId(); } }
public function isUserInSite(UserAccountModel $userAccountModel, SiteModel $siteModel) { global $DB; $stat = $DB->prepare("SELECT * FROM user_has_no_editor_permissions_in_site WHERE site_id=:site_id AND user_account_id=:user_account_id AND removed_at IS NULL"); $stat->execute(array("site_id" => $siteModel->getId(), "user_account_id" => $userAccountModel->getId())); return $stat->rowCount() > 0; }
function userLogIn(UserAccountModel $user) { global $WEBSESSION; if (!$user->getIsClosedBySysAdmin()) { $WEBSESSION->set('userID', $user->getId()); } }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $this->addCountriesToTestDB(); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); \TimeSource::mock(2014, 1, 1, 1, 0, 0); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); \TimeSource::mock(2014, 1, 1, 2, 0, 0); $venueRepo->delete($venue, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(true); $this->assertEquals(1, count($vrb->fetchAll())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(false); $this->assertEquals(0, count($vrb->fetchAll())); }
function test2() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $userAccountResetRepository = new UserAccountResetRepository(); # Test1: recently unused is null TimeSource::mock(2013, 1, 1, 1, 0, 1); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertNull($x); # Test2: Request one TimeSource::mock(2013, 1, 1, 1, 0, 2); $userAccountReset = $userAccountResetRepository->create($user); #Test 3: recently unused has one TimeSource::mock(2013, 1, 1, 1, 0, 3); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertTrue($x != null); # Test4: days pass. recently unused is null again TimeSource::mock(2013, 1, 5, 1, 0, 5); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertNull($x); }
function testWinterTime() { TimeSource::mock(2014, 5, 1, 7, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt($this->mktime(2014, 11, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt($this->mktime(2014, 11, 10, 21, 0, 0, 'Europe/London')); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals("test test", $event->getDescription()); $this->assertEquals("test", $event->getSummary()); $startAtShouldBe = $this->mktime(2014, 11, 10, 19, 0, 0, 'UTC'); $startAtIs = clone $event->getStartAt(); $startAtIs->setTimezone(new \DateTimeZone('UTC')); $this->assertEquals($startAtShouldBe->format("c"), $startAtIs->format("c")); }
/** * */ function test1() { $feature = new \sitefeatures\EditCommentsFeature(); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $siteFeatureRepo = new SiteFeatureRepository($this->app); // Test Get Default Option $this->app['timesource']->mock(2015, 1, 1, 1, 1, 1); $data = $siteFeatureRepo->getForSiteAsTree($site); $this->assertEquals(false, $data[$feature->getExtensionId()][$feature->getFeatureId()]->isOn()); // Test Set True $this->app['timesource']->mock(2015, 1, 1, 1, 1, 2); $siteFeatureRepo->setFeature($site, $feature, true, $user); $data = $siteFeatureRepo->getForSiteAsTree($site); $this->assertEquals(true, $data[$feature->getExtensionId()][$feature->getFeatureId()]->isOn()); // Test Set False $this->app['timesource']->mock(2015, 1, 1, 1, 1, 3); $siteFeatureRepo->setFeature($site, $feature, false, $user); $data = $siteFeatureRepo->getForSiteAsTree($site); $this->assertEquals(false, $data[$feature->getExtensionId()][$feature->getFeatureId()]->isOn()); // Test Set False whilst already false $this->app['timesource']->mock(2015, 1, 1, 1, 1, 4); $siteFeatureRepo->setFeature($site, $feature, false, $user); $data = $siteFeatureRepo->getForSiteAsTree($site); $this->assertEquals(false, $data[$feature->getExtensionId()][$feature->getFeatureId()]->isOn()); }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $user1 = new UserAccountModel(); $user1->setEmail("*****@*****.**"); $user1->setUsername("test"); $user1->setPassword("password"); $user2 = new UserAccountModel(); $user2->setEmail("*****@*****.**"); $user2->setUsername("test2"); $user2->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user1); $userRepo->create($user2); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user1, array(), $this->getSiteQuotaUsedForTesting()); $group1 = new GroupModel(); $group1->setTitle("test1"); $group1->setDescription("test test"); $group1->setUrl("http://www.group.com"); $group2 = new GroupModel(); $group2->setTitle("test this looks similar"); $group2->setDescription("test test"); $group2->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); \TimeSource::mock(2014, 1, 1, 1, 0, 0); $groupRepo->create($group1, $site, $user1); $groupRepo->create($group2, $site, $user2); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user1, $group2); $uwgr = new UserWatchesGroupRepository(); // Test before $erb = new \repositories\builders\EventRepositoryBuilder(); $erb->setGroup($group1); $this->assertEquals(0, count($erb->fetchAll())); $this->assertNull($uwgr->loadByUserAndGroup($user2, $group1)); $group2 = $groupRepo->loadById($group2->getId()); $this->assertFalse($group2->getIsDeleted()); $this->assertNull($group2->getIsDuplicateOfId()); // Mark \TimeSource::mock(2014, 1, 1, 2, 0, 0); $groupRepo->markDuplicate($group2, $group1, $user1); // Test Duplicate $erb = new \repositories\builders\EventRepositoryBuilder(); $erb->setGroup($group1); $this->assertEquals(1, count($erb->fetchAll())); $uwg = $uwgr->loadByUserAndGroup($user2, $group1); $this->assertNotNull($uwg); $group2 = $groupRepo->loadById($group2->getId()); $this->assertTrue($group2->getIsDeleted()); $this->assertEquals($group1->getId(), $group2->getIsDuplicateOfId()); }
public function getLastSentForUserAccount(UserAccountModel $user) { global $DB; $stat = $DB->prepare("SELECT MAX(created_at) AS c FROM user_account_verify_email WHERE user_account_id=:user_account_id"); $stat->execute(array('user_account_id' => $user->getId())); $data = $stat->fetch(); return $data['c'] ? new \DateTime($data['c'], new \DateTimeZone('UTC')) : null; }
function testInChildArea() { $this->addCountriesToTestDB(); TimeSource::mock(2013, 7, 1, 7, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $area1 = new AreaModel(); $area1->setTitle("scotland"); $area1child = new AreaModel(); $area1child->setTitle("edinburgh"); $area2 = new AreaModel(); $area2->setTitle("england"); $areaRepo = new AreaRepository(); $countryRepo = new CountryRepository(); $areaRepo->create($area1, null, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area1); $areaRepo->create($area1child, $area1, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area1child); $areaRepo->create($area2, null, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area2); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt($this->mktime(2013, 8, 1, 19, 0, 0)); $event->setEndAt($this->mktime(2013, 8, 1, 21, 0, 0)); $event->setAreaId($area1child->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); #test - find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area1); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $this->assertEquals($event->getId(), $events[0]->getId()); #test - find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area1child); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $this->assertEquals($event->getId(), $events[0]->getId()); #test - don't find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area2); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); }
function testBasic() { global $CONFIG; \TimeSource::mock(2013, 10, 1, 1, 1, 1); $CONFIG->importURLAllowEventsSecondsIntoFuture = 7776000; // 90 days $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $importURLRepository = new ImportURLRepository(); $importURL = new ImportURLModel(); $importURL->setIsEnabled(true); $importURL->setSiteId($site->getId()); $importURL->setGroupId($group->getId()); $importURL->setTitle("Test"); $importURL->setUrl("http://test.com"); $importURLRepository->create($importURL, $site, $user); // Import $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/Lanyrd1.ical'); $importURLRun->setFlag(ImportURLRun::$FLAG_ADD_UIDS); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Load! $erb = new EventRepositoryBuilder(); $erb->setSite($site); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $event = $events[0]; $this->assertEquals("State of the Map Scotland 2013", $event->getSummary()); $this->assertEquals('2013-10-11 00:00:00', $event->getStartAt()->format('Y-m-d H:i:s')); $this->assertEquals('2013-10-14 23:59:59', $event->getEndAt()->format('Y-m-d H:i:s')); $this->assertEquals("http://sotms.eventbrite.com/\n\nhttp://lanyrd.com/crkmt", $event->getDescription()); $this->assertEquals('http://lanyrd.com/2013/sotmscot2013/', $event->getURL()); $this->assertFalse($event->getIsDeleted()); // Look for event $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setImportURL($importURL); $this->assertEquals(1, count($erb->fetchAll())); }
protected function build() { $this->select[] = 'sysadmin_comment_information.*'; if ($this->user) { $this->joins[] = " JOIN sysadmin_comment_about_user ON sysadmin_comment_about_user.sysadmin_comment_id = sysadmin_comment_information.id "; $this->where[] = " sysadmin_comment_about_user.user_account_id = :user_account_id "; $this->params['user_account_id'] = $this->user->getId(); } }
function testIntegration1() { \TimeSource::mock(2014, 1, 1, 12, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); ## Create group \TimeSource::mock(2014, 1, 1, 13, 0, 0); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); ## Edit group \TimeSource::mock(2014, 1, 1, 14, 0, 0); $group = $groupRepo->loadById($group->getId()); $group->setTwitterUsername("testy"); $groupRepo->edit($group, $user); ## Now save changed flags on these ..... $groupHistoryRepo = new GroupHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM group_history"); $stat->execute(); while ($data = $stat->fetch()) { $groupHistory = new GroupHistoryModel(); $groupHistory->setFromDataBaseRow($data); $groupHistoryRepo->ensureChangedFlagsAreSet($groupHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setGroup($group); $historyRepo->setIncludeEventHistory(false); $historyRepo->setIncludeVenueHistory(false); $historyRepo->setIncludeGroupHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(2, count($histories)); #the edit $this->assertEquals(FALSE, $histories[0]->getTitleChanged()); $this->assertEquals(false, $histories[0]->getDescriptionChanged()); $this->assertEquals(false, $histories[0]->getUrlChanged()); $this->assertEquals(true, $histories[0]->getTwitterUsernameChanged()); $this->assertEquals(false, $histories[0]->getIsDeletedChanged()); #the create $this->assertEquals(true, $histories[1]->getTitleChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(true, $histories[1]->getUrlChanged()); $this->assertEquals(false, $histories[1]->getTwitterUsernameChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); }
function testBasic() { global $CONFIG; \TimeSource::mock(2013, 10, 1, 1, 1, 1); $CONFIG->importURLAllowEventsSecondsIntoFuture = 7776000; // 90 days $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $importURLRepository = new ImportURLRepository(); $importURL = new ImportURLModel(); $importURL->setIsEnabled(true); $importURL->setSiteId($site->getId()); $importURL->setGroupId($group->getId()); $importURL->setTitle("Test"); $importURL->setUrl("http://test.com"); $importURLRepository->create($importURL, $site, $user); // Import $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/Eventbrite1.ical'); $importURLRun->setFlag(ImportURLRun::$FLAG_ADD_UIDS); $importURLRun->setFlag(ImportURLRun::$FLAG_SET_TICKET_URL_AS_URL); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Load! $erb = new EventRepositoryBuilder(); $erb->setSite($site); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $event = $events[0]; $this->assertEquals("Computing At School Scotland Conference 2013", $event->getSummary()); $this->assertEquals('2013-10-26 07:30:00', $event->getStartAt()->format('Y-m-d H:i:s')); $this->assertEquals('2013-10-26 16:00:00', $event->getEndAt()->format('Y-m-d H:i:s')); $this->assertEquals('For details, click here: https://casscot13.eventbrite.co.uk', $event->getDescription()); $this->assertEquals('https://casscot13.eventbrite.co.uk', $event->getURL()); $this->assertEquals('https://casscot13.eventbrite.co.uk', $event->getTicketURL()); $this->assertFalse($event->getIsDeleted()); }
protected function build() { if ($this->site) { $this->where[] = " send_email_information.site_id = :site_id "; $this->params['site_id'] = $this->site->getId(); } if ($this->userCreatedBy) { $this->where[] = " send_email_information.created_by = :created_by "; $this->params['created_by'] = $this->userCreatedBy->getId(); } }
public function loadByUserAndSiteId(UserAccountModel $user, $siteID) { global $DB; $stat = $DB->prepare("SELECT user_interested_in_site_information.* FROM user_interested_in_site_information WHERE user_account_id =:user_account_id AND site_id=:site_id"); $stat->execute(array('user_account_id' => $user->getId(), 'site_id' => $siteID)); if ($stat->rowCount() > 0) { $uiis = new UserInterestedInSiteModel(); $uiis->setFromDataBaseRow($stat->fetch()); return $uiis; } }
public function loadBySlugForSiteAndUser($slug, SiteModel $siteModel, UserAccountModel $userAccountModel) { global $DB; $stat = $DB->prepare("SELECT new_event_draft_information.* FROM new_event_draft_information " . " WHERE new_event_draft_information.slug =:slug AND new_event_draft_information.site_id = :site_id AND new_event_draft_information.user_account_id = :user_id"); $stat->execute(array('slug' => $slug, 'site_id' => $siteModel->getId(), 'user_id' => $userAccountModel->getId())); if ($stat->rowCount() > 0) { $event = new NewEventDraftModel(); $event->setFromDataBaseRow($stat->fetch()); return $event; } }
function configureAppForUser(UserAccountModel $user = null) { global $app; # ////////////// 12 or 24 hour clock $clock12Hour = true; if ($user) { $clock12Hour = $user->getIsClock12Hour(); } $app['currentUserClock12Hour'] = $clock12Hour; $app['twig']->addGlobal('currentUserClock12Hour', $clock12Hour); }
/** * * @return \models\UserInAPI2ApplicationModel */ public function loadByUserAndApplication(UserAccountModel $user, API2ApplicationModel $app) { global $DB; $stat = $DB->prepare("SELECT user_in_api2_application_information.* FROM user_in_api2_application_information " . "WHERE api2_application_id =:api2_application_id AND user_id =:user_id"); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId())); if ($stat->rowCount() > 0) { $app = new UserInAPI2ApplicationModel(); $app->setFromDataBaseRow($stat->fetch()); return $app; } }
public function loadByOwnerOfCuratedList(CuratedListModel $curatedList) { global $DB; $stat = $DB->prepare("SELECT user_account_information.* FROM user_account_information " . " JOIN user_in_curated_list_information ON user_in_curated_list_information.user_account_id = user_account_information.id " . "WHERE user_in_curated_list_information.curated_list_id = :id AND user_in_curated_list_information.is_owner = 't'"); $stat->execute(array('id' => $curatedList->getId())); if ($stat->rowCount() > 0) { $user = new UserAccountModel(); $user->setFromDataBaseRow($stat->fetch()); return $user; } }
public function create(UserAccountModel $user) { global $DB; $uar = new UserAccountResetModel(); $uar->setUserAccountId($user->getId()); $uar->setAccessKey(createKey(2, 250)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_account_reset (user_account_id, access_key, created_at) " . "VALUES (:user_account_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uar->getUserAccountId(), 'access_key' => $uar->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); return $uar; }
function testBasic() { global $CONFIG; \TimeSource::mock(2013, 10, 1, 1, 1, 1); $CONFIG->importURLAllowEventsSecondsIntoFuture = 7776000; // 90 days $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $importURLRepository = new ImportURLRepository(); $importURL = new ImportURLModel(); $importURL->setIsEnabled(true); $importURL->setSiteId($site->getId()); $importURL->setGroupId($group->getId()); $importURL->setTitle("Test"); $importURL->setUrl("http://test.com"); $importURLRepository->create($importURL, $site, $user); // Import $importURLRun = new ImportURLRun($importURL, $site); $importURLRun->setTemporaryFileStorageForTesting(dirname(__FILE__) . '/data/Meetup1.ics'); $importURLRun->setFlag(ImportURLRun::$FLAG_ADD_UIDS); $i = new ImportURLICalHandler(); $i->setImportURLRun($importURLRun); $this->assertTrue($i->canHandle()); $r = $i->handle(); // Load! $erb = new EventRepositoryBuilder(); $erb->setSite($site); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $event = $events[0]; $this->assertEquals("Talk & Build AngularJS", $event->getSummary()); $this->assertEquals('2013-10-17 18:00:00', $event->getStartAt()->format('Y-m-d H:i:s')); $this->assertEquals('2013-10-17 21:00:00', $event->getEndAt()->format('Y-m-d H:i:s')); $this->assertEquals("AngularJS - Edinburgh\nThursday, October 17 at 7:00 PM\n\nDetails: http://www.meetup.com/AngularJS-Edinburgh/events/141654792/", $event->getDescription()); $this->assertEquals('http://www.meetup.com/AngularJS-Edinburgh/events/141654792/', $event->getURL()); $this->assertFalse($event->getIsDeleted()); }
function test1() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 10, 1, 1, 1, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $area = new AreaModel(); $area->setTitle("test"); $area->setDescription("test test"); $areaRepo = new \repositories\AreaRepository(); $areaRepo->create($area, null, $site, $gb, $user); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venue->setAreaId($area->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $venueDuplicate = new VenueModel(); $venueDuplicate->setTitle("test Duplicate"); $venueRepo->create($venueDuplicate, $site, $user); \TimeSource::mock(2014, 10, 1, 1, 2, 0); $venueRepo->markDuplicate($venueDuplicate, $venue, $user); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setVenueId($venue->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); ## Test $this->assertNotNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue->getId(), $event->getVenueId()); ## Now Purge! $venueRepo->purge($venue); ## Test $this->assertNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertNull($event->getVenueId()); }