public function makeAll(&$demoDataHelper)
 {
     assert('$demoDataHelper instanceof DemoDataHelper');
     assert('$demoDataHelper->isSetRange("Contact")');
     assert('$demoDataHelper->isSetRange("Campaign")');
     $items = array();
     if ($this->loadMagnitude >= 100) {
         foreach (Campaign::getAll() as $campaign) {
             foreach ($campaign->marketingList->marketingListMembers as $marketingListMember) {
                 $item = new CampaignItem();
                 $item->campaign = $campaign;
                 $item->contact = $marketingListMember->contact;
                 $this->populateModel($item);
                 $saved = $item->unrestrictedSave();
                 assert('$saved');
                 $items[] = $item->id;
             }
         }
     } else {
         for ($i = 0; $i < $this->resolveQuantityToLoad(); $i++) {
             $item = new CampaignItem();
             $item->campaign = $demoDataHelper->getRandomByModelName('Campaign');
             $item->contact = $demoDataHelper->getRandomByModelName('Contact');
             $this->populateModel($item);
             $saved = $item->unrestrictedSave();
             assert('$saved');
             $items[] = $item->id;
         }
     }
     $demoDataHelper->setRangeByModelName('CampaignItem', $items[0], $items[count($items) - 1]);
 }
 public function testRunWithoutAnyCampaigns()
 {
     $campaigns = Campaign::getAll();
     $this->assertEmpty($campaigns);
     $job = new CampaignMarkCompletedJob();
     $this->assertTrue($job->run());
 }
 public function testRunWithoutAnyCampaigns()
 {
     $campaigns = Campaign::getAll();
     $this->assertEmpty($campaigns);
     $job = new CampaignGenerateDueCampaignItemsJob();
     $this->assertTrue($job->run());
 }
 public function teardown()
 {
     $marketingLists = MarketingList::getAll();
     $this->assertCount(1, $marketingLists);
     $marketingLists[0]->delete();
     $campaigns = Campaign::getAll();
     $this->assertCount(1, $campaigns);
     $campaigns[0]->delete();
     parent::teardown();
 }
 public function setUp()
 {
     parent::setUp();
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     $campaigns = Campaign::getAll();
     $contacts = Contact::getByName('test testson');
     $this->contact = $contacts[0];
     $this->campaignItem = $campaigns[0]->campaignItems[0];
 }
 public static function populateCampaignItem($processed, $campaign = null, $contact = null)
 {
     assert('is_bool($processed)');
     assert('is_object($campaign) || $campaign === null');
     assert('is_object($contact) || $contact === null');
     if (empty($campaign)) {
         $campaigns = Campaign::getAll();
         if (!empty($campaigns)) {
             $campaign = RandomDataUtil::getRandomValueFromArray($campaigns);
         }
     }
     if (empty($contact)) {
         $contacts = Contact::getAll();
         if (!empty($contacts)) {
             $contact = RandomDataUtil::getRandomValueFromArray($contacts);
         }
     }
     $campaignItem = new CampaignItem();
     $campaignItem->processed = $processed;
     $campaignItem->campaign = $campaign;
     $campaignItem->contact = $contact;
     return $campaignItem;
 }
 protected function purgeAllCampaigns()
 {
     $campaigns = Campaign::getAll();
     foreach ($campaigns as $campaign) {
         $campaign->delete();
     }
 }
 public function testResolveContactAndMetricsSummary()
 {
     //Test with super
     $content = CampaignItemSummaryListViewColumnAdapter::resolveContactAndMetricsSummary($this->campaignItem);
     $this->assertContains('test testson', $content);
     //Betty dont have access to contact
     $betty = User::getByUsername('betty');
     Yii::app()->user->userModel = $betty;
     $content = CampaignItemSummaryListViewColumnAdapter::resolveContactAndMetricsSummary($this->campaignItem);
     $this->assertContains('You cannot see this contact due to limited access', $content);
     //Giving betty access to contact
     Yii::app()->user->userModel = User::getByUsername('super');
     $this->contact->addPermissions($betty, Permission::READ_WRITE_CHANGE_PERMISSIONS_CHANGE_OWNER);
     $this->assertTrue($this->contact->save());
     AllPermissionsOptimizationUtil::securableItemGivenPermissionsForUser($this->contact, $betty);
     //Forgetting campaignItem is needed because of commit - aeedffa06467
     //Not entirely sure why this is the case though. It only affects tests when securityOptimization is false
     $this->campaignItem->forgetAll();
     $campaigns = Campaign::getAll();
     $this->campaignItem = $campaigns[0]->campaignItems[0];
     //Betty has now access to contact but not the emailMessage
     Yii::app()->user->userModel = $betty;
     $content = CampaignItemSummaryListViewColumnAdapter::resolveContactAndMetricsSummary($this->campaignItem);
     $this->assertContains('You cannot see the performance metrics due to limited access', $content);
     //Giving betty access to emailMessage
     Yii::app()->user->userModel = User::getByUsername('super');
     $emailMessage = $this->campaignItem->emailMessage;
     $emailMessage->addPermissions($betty, Permission::READ_WRITE_CHANGE_PERMISSIONS_CHANGE_OWNER);
     $this->assertTrue($emailMessage->save());
     AllPermissionsOptimizationUtil::securableItemGivenPermissionsForUser($emailMessage, $betty);
     //Betty has now access to contact and emailMessage
     Yii::app()->user->userModel = $betty;
     $content = CampaignItemSummaryListViewColumnAdapter::resolveContactAndMetricsSummary($this->campaignItem);
     $this->assertContains('test testson', $content);
 }
Example #9
0
 /**
  * @depends testRequiredAttributes
  */
 public function testDeleteCampaign()
 {
     $campaigns = Campaign::getAll();
     $this->assertEquals(4, count($campaigns));
     CampaignItemTestHelper::createCampaignItem(0, $campaigns[0]);
     $campaignItems = CampaignItem::getAll();
     $this->assertCount(1, $campaignItems);
     $campaignItemActivity = new CampaignItemActivity();
     $campaignItemActivity->type = CampaignItemActivity::TYPE_CLICK;
     $campaignItemActivity->quantity = 1;
     $campaignItemActivity->campaignItem = $campaignItems[0];
     $campaignItemActivity->latestSourceIP = '121.212.122.112';
     $this->assertTrue($campaignItemActivity->save());
     $emailMessage = EmailMessageTestHelper::createOutboxEmail(Yii::app()->user->userModel, 'subject', 'html', 'text', 'from', '*****@*****.**', 'to', '*****@*****.**');
     $campaignItems[0]->emailMessage = $emailMessage;
     $this->assertTrue($campaignItems[0]->unrestrictedSave());
     $this->assertEquals(1, CampaignItemActivity::getCount());
     $this->assertEquals(1, EmailMessage::getCount());
     $campaigns[0]->delete();
     $this->assertEquals(3, Campaign::getCount());
     $this->assertEquals(0, CampaignItem::getCount());
     $this->assertEquals(0, CampaignItemActivity::getCount());
     $this->assertEquals(1, EmailMessage::getCount());
 }
Example #10
0
/**
 * Return the link to the campaign admin home page for the user
 * depending whether he has campaigns or not.
 *
 * @param WP_User $user
 * @return string url to list campaigns page or create new campaign page
 */
function campanha_redirect_to_campaign_home($user = null)
{
    if (!$user) {
        $user = wp_get_current_user();
    }
    $campaigns = Campaign::getAll($user->ID);
    if ($campaigns) {
        return admin_url(CAMPAIGN_LIST_URL);
    } else {
        return admin_url(CAMPAIGN_NEW_URL);
    }
}
 /**
  * @depends testSuperUserDeleteAction
  */
 public function testSuperUserCreateFromRelationAction()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $campaigns = Campaign::getAll();
     $this->assertEquals(2, count($campaigns));
     $marketingList = MarketingListTestHelper::createMarketingListByName('my list');
     //Create a new campaign from a related marketing list.
     $this->setGetArray(array('relationAttributeName' => 'marketingList', 'relationModelId' => $marketingList->id, 'relationModuleId' => 'marketingLists', 'redirectUrl' => 'someRedirect'));
     $this->setPostArray(array('Campaign' => array('name' => 'New Campaign using Create', 'fromName' => 'Zurmo Sales', 'fromAddress' => '*****@*****.**', 'sendOnDateTime' => '6/13/2013 10:54 AM', 'subject' => 'New Campaign using Create Subject', 'enableTracking' => '1', 'supportsRichText' => '0', 'textContent' => 'Text', 'htmlContent' => 'Html')));
     $this->runControllerWithRedirectExceptionAndGetContent('campaigns/default/createFromRelation');
     $campaigns = Campaign::getByName('New Campaign using Create');
     $this->assertEquals(1, count($campaigns));
     $this->assertTrue($campaigns[0]->id > 0);
     $this->assertTrue($campaigns[0]->owner == $super);
     $this->assertTrue($campaigns[0]->marketingList->id == $marketingList->id);
     $campaigns = Campaign::getAll();
     $this->assertEquals(3, count($campaigns));
 }
Example #12
0
 /**
  * @depends testRequiredAttributes
  */
 public function testDeleteCampaign()
 {
     $campaigns = Campaign::getAll();
     $this->assertEquals(2, count($campaigns));
     $campaigns[0]->delete();
     $campaigns = Campaign::getAll();
     $this->assertEquals(1, count($campaigns));
 }
 /**
  * @depends testSuperUserEditAction
  */
 public function testSuperUserDeleteAction()
 {
     $campaigns = Campaign::getAll();
     $this->assertEquals(3, count($campaigns));
     $this->setGetArray(array('id' => $campaigns[0]->id));
     $this->resetPostArray();
     $redirectUrl = $this->runControllerWithRedirectExceptionAndGetUrl('campaigns/default/delete');
     $compareRedirectUrl = Yii::app()->createUrl('campaigns/default/index');
     $this->assertEquals($redirectUrl, $compareRedirectUrl);
     $campaigns = Campaign::getAll();
     $this->assertEquals(2, count($campaigns));
 }