public function testMakeFormAndSetConfigurationFromForm()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->themeManager->customThemeColorsArray = array('#111111', '#222222', '#333333');
     Yii::app()->themeManager->globalThemeColor = 'custom';
     Yii::app()->themeManager->forceAllUsersTheme = true;
     $logoFileName = 'testLogo.png';
     $logoFilePath = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName;
     ZurmoUserInterfaceConfigurationFormAdapter::resizeLogoImageFile($logoFilePath, $logoFilePath, null, ZurmoUserInterfaceConfigurationForm::DEFAULT_LOGO_HEIGHT);
     $logoFileId = ZurmoUserInterfaceConfigurationFormAdapter::saveLogoFile($logoFileName, $logoFilePath, 'logoFileModelId');
     ZurmoUserInterfaceConfigurationFormAdapter::publishLogo($logoFileName, $logoFilePath);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoFileModelId', $logoFileId);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoThumbFileModelId', $logoFileId);
     //Getting values
     $form = ZurmoUserInterfaceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals($logoFileName, $form->logoFileData['name']);
     $this->assertEquals('custom', $form->themeColor);
     $this->assertEquals('#111111', $form->customThemeColor1);
     $this->assertEquals('#222222', $form->customThemeColor2);
     $this->assertEquals('#333333', $form->customThemeColor3);
     $this->assertEquals('1', $form->forceAllUsersTheme);
     //Setting values
     $form->themeColor = 'lime';
     $form->customThemeColor1 = '#999999';
     $form->customThemeColor2 = '#888888';
     $form->customThemeColor3 = '#777777';
     $form->forceAllUsersTheme = false;
     $logoFileName2 = 'testLogo2.png';
     $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 . ZurmoUserInterfaceConfigurationForm::LOGO_THUMB_FILE_NAME_PREFIX . $logoFileName2);
     Yii::app()->user->setState('logoFileName', $logoFileName2);
     ZurmoUserInterfaceConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoUserInterfaceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('lime', $form->themeColor);
     $this->assertEquals('#999999', $form->customThemeColor1);
     $this->assertEquals('#888888', $form->customThemeColor2);
     $this->assertEquals('#777777', $form->customThemeColor3);
     $this->assertEquals(false, $form->forceAllUsersTheme);
     $this->assertEquals($logoFileName2, $form->logoFileData['name']);
 }
 public function actionUploadLogo($filesVariableName)
 {
     assert('is_string($filesVariableName)');
     try {
         $uploadedFile = CUploadedFile::getInstanceByName($filesVariableName);
         assert('$uploadedFile instanceof CUploadedFile');
         $logoFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $uploadedFile->getName();
         $thumbFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . ZurmoUserInterfaceConfigurationForm::LOGO_THUMB_FILE_NAME_PREFIX . $uploadedFile->getName();
         $uploadedFile->saveAs($logoFilePath);
         ZurmoUserInterfaceConfigurationFormAdapter::resizeLogoImageFile($logoFilePath, $thumbFilePath, ZurmoUserInterfaceConfigurationForm::DEFAULT_LOGO_THUMBNAIL_WIDTH, ZurmoUserInterfaceConfigurationForm::DEFAULT_LOGO_THUMBNAIL_HEIGHT);
         Yii::app()->user->setState('logoFileName', $uploadedFile->getName());
         $logoFileData = array('name' => $uploadedFile->getName(), 'type' => $uploadedFile->getType(), 'size' => $uploadedFile->getSize(), 'thumbnail_url' => Yii::app()->createUrl('zurmo/default/thumbnail/', array('filePath' => $thumbFilePath)));
     } catch (FailedFileUploadException $e) {
         $logoFileData = array('error' => Zurmo::t('Core', 'Error') . ' ' . $e->getMessage());
     }
     echo CJSON::encode(array($logoFileData));
     Yii::app()->end(0, false);
 }