/**
  * @depends testSuperUserCreateAction
  */
 public function testSuperUserEditAction()
 {
     $marketingListId = self::getModelIdByModelNameAndName('MarketingList', 'New MarketingListName using Create');
     $this->setGetArray(array('id' => $marketingListId));
     $content = $this->runControllerWithNoExceptionsAndGetContent('marketingLists/default/edit');
     $this->assertContains('New MarketingListName using Create', $content);
     $this->assertEquals(2, substr_count($content, 'New MarketingListName using Create'));
     $this->assertContains('New MarketingList Description using Create', $content);
     $this->assertContains('Zurmo Sales', $content);
     $this->assertContains('*****@*****.**', $content);
     $this->assertNotContains('Create Marketing List', $content);
     $this->setPostArray(array('MarketingList' => array('name' => 'New MarketingListName', 'description' => 'New MarketingList Description', 'fromName' => 'Zurmo Support', 'fromAddress' => '*****@*****.**')));
     $redirectUrl = $this->runControllerWithRedirectExceptionAndGetUrl('marketingLists/default/edit');
     $marketingList = MarketingList::getByName('New MarketingListName');
     $this->assertEquals(1, count($marketingList));
     $this->assertTrue($marketingList[0]->id > 0);
     $this->assertEquals('*****@*****.**', $marketingList[0]->fromAddress);
     $this->assertEquals('Zurmo Support', $marketingList[0]->fromName);
     $this->assertEquals('New MarketingList Description', $marketingList[0]->description);
     $compareRedirectUrl = Yii::app()->createUrl('marketingLists/default/details', array('id' => $marketingList[0]->id));
     $this->assertEquals($compareRedirectUrl, $redirectUrl);
     $marketingList = MarketingList::getAll();
     $this->assertEquals(3, count($marketingList));
 }
 public function testCountMembers()
 {
     $marketingLists = MarketingList::getByName('MarketingList1');
     $marketingListId = $marketingLists[0]->id;
     $subscriberCount = 3;
     $unsubscriberCount = 2;
     $this->setGetArray(array('marketingListId' => $marketingListId));
     $content = $this->runControllerWithNoExceptionsAndGetContent('marketingLists/defaultPortlet/countMembers');
     $countArray = CJSON::decode($content);
     $this->assertNotEmpty($countArray);
     $this->assertArrayHasKey('subscriberCount', $countArray);
     $this->assertArrayHasKey('unsubscriberCount', $countArray);
     $this->assertEquals($subscriberCount, $countArray['subscriberCount']);
     $this->assertEquals($unsubscriberCount, $countArray['unsubscriberCount']);
 }
Ejemplo n.º 3
0
 /**
  * @depends testCreateAndGetMarketingListById
  */
 public function testGetLabel()
 {
     $marketingLists = MarketingList::getByName('Test Marketing List');
     $this->assertEquals(1, count($marketingLists));
     $this->assertEquals('Marketing List', $marketingLists[0]::getModelLabelByTypeAndLanguage('Singular'));
     $this->assertEquals('Marketing Lists', $marketingLists[0]::getModelLabelByTypeAndLanguage('Plural'));
 }
Ejemplo n.º 4
0
 /**
  * @depends testGetByProcessedAndAutoresponderId
  */
 public function testGetByProcessedAndAutoresponderIdAndTime()
 {
     $intervals = array('hour', 'day');
     $marketingList = MarketingList::getByName('marketingList 01');
     $this->assertNotEmpty($marketingList);
     $autoresponder3 = AutoresponderTestHelper::createAutoresponder('autoresponder 03', 'subject 03', 'text 03', 'html 03', 10, Autoresponder::OPERATION_UNSUBSCRIBE, $marketingList[0]);
     $this->assertNotNull($autoresponder3);
     $autoresponder4 = AutoresponderTestHelper::createAutoresponder('autoresponder 04', 'subject 04', 'text 04', 'html 04', 20, Autoresponder::OPERATION_SUBSCRIBE, $marketingList[0]);
     $this->assertNotNull($autoresponder4);
     for ($i = 0; $i < 10; $i++) {
         if ($i % 3) {
             $pastOrFuture = "-";
             $processed = AutoresponderItem::PROCESSED;
         } else {
             $pastOrFuture = "+";
             $processed = AutoresponderItem::NOT_PROCESSED;
         }
         if ($i % 2) {
             $autoresponder = $autoresponder3;
             $interval = $intervals[1];
         } else {
             $autoresponder = $autoresponder4;
             $interval = $intervals[0];
         }
         $timestamp = strtotime($pastOrFuture . ($i + 1) . ' ' . $interval);
         $time = DateTimeUtil::convertTimestampToDbFormatDateTime($timestamp);
         $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $time, $autoresponder);
         $this->assertNotNull($autoresponderItem);
     }
     $autoresponderItems = AutoresponderItem::getAll();
     $this->assertCount(37, $autoresponderItems);
     $autoresponder3ProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder3->id);
     $this->assertNotEmpty($autoresponder3ProcessedBeforeNow);
     $this->assertCount(3, $autoresponder3ProcessedBeforeNow);
     $autoresponder3ProcessedFiveDaysAgo = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder3->id, strtotime("-5 day"));
     $this->assertNotEmpty($autoresponder3ProcessedFiveDaysAgo);
     $this->assertCount(2, $autoresponder3ProcessedFiveDaysAgo);
     $autoresponder3NotProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder3->id);
     $this->assertEmpty($autoresponder3NotProcessedBeforeNow);
     $autoresponder3NotProcessedFiveDaysFromNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder3->id, strtotime("+5 day"));
     $this->assertNotEmpty($autoresponder3NotProcessedFiveDaysFromNow);
     $this->assertCount(1, $autoresponder3NotProcessedFiveDaysFromNow);
     $autoresponder4ProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder4->id);
     $this->assertNotEmpty($autoresponder4ProcessedBeforeNow);
     $this->assertCount(3, $autoresponder4ProcessedBeforeNow);
     $autoresponder4ProcessedFiveDaysAgo = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder4->id, strtotime("-5 day"));
     $this->assertEmpty($autoresponder4ProcessedFiveDaysAgo);
     $autoresponder4NotProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder4->id);
     $this->assertEmpty($autoresponder4NotProcessedBeforeNow);
     $autoresponder4NotProcessedFiveDaysFromNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder4->id, strtotime("+5 day"));
     $this->assertNotEmpty($autoresponder4NotProcessedFiveDaysFromNow);
     $this->assertCount(2, $autoresponder4NotProcessedFiveDaysFromNow);
 }
 /**
  * @depends testOptOutAction
  */
 public function testSubscribeActionAfterOptOutActionDisableOptOut()
 {
     $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $marketingList = MarketingList::getByName('marketingList 04');
     $this->assertNotEmpty($marketingList);
     $marketingList = $marketingList[0];
     $marketingListId = $marketingList->id;
     $contact = Contact::getByName('contact 05 contact 05son');
     $this->assertNotEmpty($contact);
     $contact = $contact[0];
     $this->assertEquals(1, $contact->primaryEmail->optOut);
     $personId = $contact->getClassId('Person');
     $member = MarketingListMember::getByMarketingListIdContactIdAndSubscribed($marketingList->id, $contact->id, 1);
     $this->assertNotEmpty($member);
     Yii::app()->user->userModel = null;
     $hash = EmailMessageActivityUtil::resolveHashForUnsubscribeAndManageSubscriptionsUrls($personId, $marketingListId, 1, 'AutoresponderItem', false);
     $this->setGetArray(array('hash' => $hash));
     @$this->runControllerWithRedirectExceptionAndGetUrl($this->subscribeUrl);
     $content = $this->runControllerWithNoExceptionsAndGetContent($this->manageSubscriptionsUrl);
     $this->assertTrue(strpos($content, '<td>marketingList 01</td>') !== false);
     $this->assertTrue(strpos($content, '<td>marketingList 03</td>') !== false);
     $this->assertTrue(strpos($content, 'marketingLists/external/subscribe?hash=') !== false);
     $this->assertTrue(strpos($content, 'id="marketingListsManage' . 'SubscriptionListView-toggleUnsubscribed_') !== false);
     $this->assertTrue(strpos($content, 'id="marketingListsManage' . 'SubscriptionListView-toggleUnsubscribed_') !== false);
     $this->assertTrue(strpos($content, 'type="radio" name="marketingListsManage' . 'SubscriptionListView-toggleUnsubscribed_') !== false);
     $this->assertTrue(strpos($content, 'id="marketingListsManageSubscriptionListView-toggleUnsubscribed_' . $marketingListId . '_0" checked="checked" type="radio" name="marketingListsManage' . 'SubscriptionListView-toggleUnsubscribed_' . $marketingListId) !== false);
     $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $contact = Contact::getByName('contact 05 contact 05son');
     $this->assertNotEmpty($contact);
     $contact = $contact[0];
     $this->assertEquals(0, $contact->primaryEmail->optOut);
 }