public function testMakeFormAndSetConfigurationFromForm()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->timeZoneHelper->setTimeZone('America/New_York');
     Yii::app()->pagination->setGlobalValueByType('listPageSize', 50);
     Yii::app()->pagination->setGlobalValueByType('subListPageSize', 51);
     Yii::app()->pagination->setGlobalValueByType('modalListPageSize', 52);
     Yii::app()->pagination->setGlobalValueByType('dashboardListPageSize', 53);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', 'demoCompany');
     $logoFileName = 'testLogo.png';
     $logoFilePath = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName;
     ZurmoConfigurationFormAdapter::resizeLogoImageFile($logoFilePath, $logoFilePath, null, ZurmoConfigurationForm::DEFAULT_LOGO_HEIGHT);
     $logoFileId = ZurmoConfigurationFormAdapter::saveLogoFile($logoFileName, $logoFilePath, 'logoFileModelId');
     ZurmoConfigurationFormAdapter::publishLogo($logoFileName, $logoFilePath);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoFileModelId', $logoFileId);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoThumbFileModelId', $logoFileId);
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/New_York', $form->timeZone);
     $this->assertEquals(50, $form->listPageSize);
     $this->assertEquals(51, $form->subListPageSize);
     $this->assertEquals(52, $form->modalListPageSize);
     $this->assertEquals(53, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany', $form->applicationName);
     $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(false), $form->autoresponderOrCampaignFooterPlainText);
     $this->assertEquals(UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(true), $form->autoresponderOrCampaignFooterRichText);
     $this->assertEquals($logoFileName, $form->logoFileData['name']);
     $form->timeZone = 'America/Chicago';
     $form->listPageSize = 60;
     $form->subListPageSize = 61;
     $form->modalListPageSize = 62;
     $form->dashboardListPageSize = 63;
     $form->applicationName = 'demoCompany2';
     $form->autoresponderOrCampaignBatchSize = 20;
     $logoFileName2 = 'testLogo2.png';
     $form->autoresponderOrCampaignFooterPlainText = 'abc';
     $form->autoresponderOrCampaignFooterRichText = 'def';
     $logoFilePath2 = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName2;
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . $logoFileName2);
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . ZurmoConfigurationForm::LOGO_THUMB_FILE_NAME_PREFIX . $logoFileName2);
     Yii::app()->user->setState('logoFileName', $logoFileName2);
     ZurmoConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/Chicago', $form->timeZone);
     $this->assertEquals(60, $form->listPageSize);
     $this->assertEquals(61, $form->subListPageSize);
     $this->assertEquals(62, $form->modalListPageSize);
     $this->assertEquals(63, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany2', $form->applicationName);
     $this->assertEquals(20, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals('abc', $form->autoresponderOrCampaignFooterPlainText);
     $this->assertEquals('def', $form->autoresponderOrCampaignFooterRichText);
     $this->assertEquals($logoFileName2, $form->logoFileData['name']);
 }
 /**
  * Given a ZurmoConfigurationForm, save the configuration global values.
  */
 public static function setConfigurationFromForm(ZurmoConfigurationForm $form)
 {
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', $form->applicationName);
     Yii::app()->timeZoneHelper->setGlobalValue((string) $form->timeZone);
     Yii::app()->pagination->setGlobalValueByType('listPageSize', (int) $form->listPageSize);
     Yii::app()->pagination->setGlobalValueByType('subListPageSize', (int) $form->subListPageSize);
     Yii::app()->pagination->setGlobalValueByType('modalListPageSize', (int) $form->modalListPageSize);
     Yii::app()->pagination->setGlobalValueByType('dashboardListPageSize', (int) $form->dashboardListPageSize);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'gamificationModalNotificationsEnabled', (bool) $form->gamificationModalNotificationsEnabled);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'realtimeUpdatesEnabled', (bool) $form->realtimeUpdatesEnabled);
     AutoresponderOrCampaignBatchSizeConfigUtil::setBatchSize((int) $form->autoresponderOrCampaignBatchSize);
     UnsubscribeAndManageSubscriptionsPlaceholderUtil::setContentByType($form->autoresponderOrCampaignFooterPlainText, false);
     UnsubscribeAndManageSubscriptionsPlaceholderUtil::setContentByType($form->autoresponderOrCampaignFooterRichText, true);
     self::setLogoAttributes($form);
 }
 protected static function resolveDefaultFooterPlaceholderContentByType($isHtmlContent)
 {
     return UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType($isHtmlContent, true);
 }
 /**
  * @depends testTextContentGetsCustomFooterAppended
  */
 public function testHtmlContentGetsCustomFooterAppended()
 {
     UnsubscribeAndManageSubscriptionsPlaceholderUtil::setContentByType('RichTextFooter', true);
     $content = 'This is some html content';
     $result = static::resolveContent($content, true, true);
     $this->assertTrue($result);
     $this->assertTrue(strpos($content, 'This is some html content') !== false);
     $this->assertTrue(strpos($content, 'RichTextFooter') !== false);
     $this->assertTrue(strpos($content, '/marketingLists/external/') === false);
 }
 /**
  * @depends testGetByContentTypeReturnsDefaultWithNoneSet
  */
 public function testSetByContentType()
 {
     UnsubscribeAndManageSubscriptionsPlaceholderUtil::setContentByType('plain', false);
     $plainTextFooter = UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(false);
     $this->assertNotNull($plainTextFooter);
     $this->assertEquals('plain', $plainTextFooter);
     UnsubscribeAndManageSubscriptionsPlaceholderUtil::setContentByType('rich', true);
     $richTextFooter = UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(true);
     $this->assertNotNull($richTextFooter);
     $this->assertEquals('rich', $richTextFooter);
 }