public function testSuperUserAllDefaultControllerActions() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $this->runControllerWithRedirectExceptionAndGetContent('calendars/default/details'); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/combinedDetails'); //Default Controller actions requiring some sort of parameter via POST or GET //Load Model Edit Views $calendars = SavedCalendar::getAll(); $this->assertEquals(2, count($calendars)); $superCalId = self::getModelIdByModelNameAndName('SavedCalendar', 'My Cal 1'); $superCalId2 = self::getModelIdByModelNameAndName('SavedCalendar', 'My Cal 2'); $this->setGetArray(array('id' => $superCalId)); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/edit'); //Save Calendar SavedCalendar::getById($superCalId); $this->setPostArray(array('SavedCalendar' => array('name' => 'My New Cal 1'))); //Test having a failed validation on the saved calendar during save. $this->setGetArray(array('id' => $superCalId)); $this->setPostArray(array('SavedCalendar' => array('name' => ''), 'ajax' => 'edit-form', 'RowsAndColumnsReportWizardForm' => array('filtersStructure' => '', 'Filters' => array(array('attributeIndexOrDerivedType' => 'createdDateTime', 'structurePosition' => '1', 'valueType' => 'After', 'value' => '2/18/2014', 'availableAtRunTime' => '0'))))); $content = $this->runControllerWithExitExceptionAndGetContent('calendars/default/edit'); $this->assertContains('Name cannot be blank', $content); //Filter validation $this->setGetArray(array('id' => $superCalId)); $this->setPostArray(array('SavedCalendar' => array('name' => 'Test'), 'ajax' => 'edit-form', 'RowsAndColumnsReportWizardForm' => array('filtersStructure' => '1', 'Filters' => array(array('attributeIndexOrDerivedType' => 'createdDateTime', 'structurePosition' => '1', 'valueType' => 'After', 'value' => '', 'availableAtRunTime' => '0'))))); $content = $this->runControllerWithExitExceptionAndGetContent('calendars/default/edit'); $this->assertContains('Value cannot be blank', $content); //Valid case $this->setGetArray(array('id' => $superCalId)); $this->setPostArray(array('SavedCalendar' => array('name' => 'My New Cal 1'), 'ajax' => 'edit-form', 'RowsAndColumnsReportWizardForm' => array('filtersStructure' => '1', 'Filters' => array(array('attributeIndexOrDerivedType' => 'createdDateTime', 'structurePosition' => '1', 'valueType' => 'After', 'value' => '2/18/2014', 'availableAtRunTime' => '0'))))); $this->runControllerWithExitExceptionAndGetContent('calendars/default/edit'); //Load Model Detail Views $this->resetPostArray(); $this->runControllerWithRedirectExceptionAndGetContent('calendars/default/details'); $this->resetGetArray(); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/modalList'); //Month view $this->setGetArray(array('selectedMyCalendarIds' => $superCalId . ',' . $superCalId2, 'selectedSharedCalendarIds' => null, 'startDate' => CalendarUtil::getStartDate(SavedCalendar::DATERANGE_TYPE_MONTH), 'endDate' => CalendarUtil::getEndDate(SavedCalendar::DATERANGE_TYPE_MONTH), 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $content = $this->runControllerWithNoExceptionsAndGetContent('calendars/default/getEvents'); $this->assertContains('My First Prod', $content); //Week view $this->setGetArray(array('selectedMyCalendarIds' => $superCalId . ',' . $superCalId2, 'selectedSharedCalendarIds' => null, 'startDate' => CalendarUtil::getStartDate(SavedCalendar::DATERANGE_TYPE_WEEK), 'endDate' => CalendarUtil::getEndDate(SavedCalendar::DATERANGE_TYPE_WEEK), 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_WEEK)); $content = $this->runControllerWithNoExceptionsAndGetContent('calendars/default/getEvents'); $this->assertContains('My First Prod', $content); //Day view $this->setGetArray(array('selectedMyCalendarIds' => $superCalId . ',' . $superCalId2, 'selectedSharedCalendarIds' => null, 'startDate' => CalendarUtil::getStartDate(SavedCalendar::DATERANGE_TYPE_DAY), 'endDate' => CalendarUtil::getEndDate(SavedCalendar::DATERANGE_TYPE_DAY), 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_DAY)); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/getEvents'); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/getDayEvents'); $this->setGetArray(array('modelClass' => 'Product', 'modelId' => $superCalId)); $this->runControllerWithNoExceptionsAndGetContent('calendars/default/getCalendarItemDetail'); //Add subscribed calendar $user = UserTestHelper::createBasicUser('jim'); $subscribedCalendar = CalendarTestHelper::createSavedCalendarByName("My Subscribed Cal", '#315AB0'); $subscribedCalendar->owner = $user; $subscribedCalendar->save(); $this->setGetArray(array('id' => $subscribedCalendar->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('calendars/default/addSubsriptionForCalendar'); $this->assertContains('My Subscribed Cal', $content); $subscribedCalendars = CalendarUtil::getUserSubscribedCalendars($super); $this->setGetArray(array('id' => $subscribedCalendars[0]->id)); $content = $this->runControllerWithNoExceptionsAndGetContent('calendars/default/unsubscribe'); $this->assertNotContains('My Subscribed Cal', $content); }
/** * Add my subscribed calendars. * @param SavedCalendarSubscriptions $savedCalendarSubscriptions * @param User $user * @param string $subscribedCalendarIds * @return \SavedCalendarSubscriptions */ private static function addMySubscribedCalendars(SavedCalendarSubscriptions $savedCalendarSubscriptions, User $user, $subscribedCalendarIds) { $mySubscribedCalendars = CalendarUtil::getUserSubscribedCalendars($user); if (count($mySubscribedCalendars) > 0) { ZurmoConfigurationUtil::setByUserAndModuleName($user, 'CalendarsModule', 'mySubscribedCalendarSelections', $subscribedCalendarIds); $subscribedCalendarIdArray = array(); if ($subscribedCalendarIds != null) { $subscribedCalendarIdArray = explode(',', $subscribedCalendarIds); // Not Coding Standard } foreach ($mySubscribedCalendars as $key => $mySubscribedCalendar) { CalendarUtil::setSharedCalendarColor($mySubscribedCalendar); if (in_array($mySubscribedCalendar->id, $subscribedCalendarIdArray)) { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, true); } else { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, false); } } } }
/** * @covers SavedCalendarSubscriptions::makeByUser * @covers SavedCalendarSubscriptions::addMySavedCalendars * @covers SavedCalendarSubscriptions::addMySubscribedCalendars * @covers SavedCalendarSubscriptions::addMySavedCalendar * @covers SavedCalendarSubscriptions::addSubscribedToCalendar */ public function testProcessUserCalendarsAndMakeDataProviderForCombinedView() { $savedCalendars = SavedCalendar::getByName('Test Cal'); $subscribedCalendars = CalendarUtil::getUserSubscribedCalendars(Yii::app()->user->userModel); $dp = CalendarUtil::processAndGetDataProviderForEventsData(strval($savedCalendars[0]->id), strval($subscribedCalendars[0]->savedcalendar->id), null, null, null, false); $calendarItems = $dp->getData(); $this->assertCount(2, $calendarItems); $this->assertEquals('First Product', $calendarItems[0]->getTitle()); $this->assertEquals('Second Product', $calendarItems[1]->getTitle()); //Check getFullCalendarItems $items = CalendarUtil::getFullCalendarItems($dp); $this->assertCount(2, $items); $this->assertEquals('First Product', $items[0]['title']); $this->assertFalse(isset($items[0]['detailsUrl'])); $this->assertEquals('Second Product', $items[1]['title']); $items = CalendarUtil::populateDetailsUrlForCalendarItems($items); $this->assertTrue(isset($items[0]['detailsUrl'])); $this->assertEquals(Yii::app()->createUrl('/products/default/details', array('id' => $savedCalendars[0]->id)), $items[0]['detailsUrl']); }