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']); }
public function handlePublishLogoAssets($event) { if (null !== ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) { $logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId'); $logoFileModel = FileModel::getById($logoFileModelId); $logoFileSrc = Yii::app()->getAssetManager()->getPublishedUrl(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name); //logoFile is either not published or we have dangling url for asset if ($logoFileSrc === false || file_exists($logoFileSrc) === false) { //Logo file is not published in assets //Check if it exists in runtime/uploads if (file_exists(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name) === false) { $logoFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $logoFileModel->name; file_put_contents($logoFilePath, $logoFileModel->fileContent->content, LOCK_EX); ZurmoConfigurationFormAdapter::publishLogo($logoFileModel->name, $logoFilePath); } else { //Logo File exist in runtime/uploads but not published Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name); } } } }