public function testCreateAndGetContactWebFormById()
 {
     ContactWebFormTestHelper::deleteAllContactWebForms();
     $placedAttributes = array('firstName', 'lastName', 'companyName', 'jobTitle');
     $this->assertTrue(ContactsModule::loadStartingData());
     $contactStates = ContactState::getByName('New');
     $contactWebForm = new ContactWebForm();
     $contactWebForm->name = 'Test Form';
     $contactWebForm->redirectUrl = 'http://zurmo.com';
     $contactWebForm->submitButtonLabel = 'Save';
     $contactWebForm->defaultState = $contactStates[0];
     $contactWebForm->serializedData = serialize($placedAttributes);
     $contactWebForm->defaultOwner = Yii::app()->user->userModel;
     $this->assertTrue($contactWebForm->save());
     $id = $contactWebForm->id;
     unset($contactWebForm);
     $contactWebForm = ContactWebForm::getById($id);
     $this->assertEquals('Test Form', $contactWebForm->name);
     $this->assertEquals('http://zurmo.com', $contactWebForm->redirectUrl);
     $this->assertEquals('Save', $contactWebForm->submitButtonLabel);
     $this->assertEquals('New', $contactWebForm->defaultState->name);
     $this->assertEquals($placedAttributes, unserialize($contactWebForm->serializedData));
     $this->assertNull($contactWebForm->defaultPermissionSetting);
     $this->assertNull($contactWebForm->defaultPermissionGroupSetting);
     $contactWebForm->name = 'New Test Form';
     $contactWebForm->redirectUrl = 'http://zurmo.org';
     $contactWebForm->submitButtonLabel = 'Save and Redirect';
     $contactWebForm->defaultPermissionSetting = UserConfigurationForm::DEFAULT_PERMISSIONS_SETTING_EVERYONE;
     $this->assertTrue($contactWebForm->save());
     $id = $contactWebForm->id;
     unset($contactWebForm);
     $contactWebForm = ContactWebForm::getById($id);
     $this->assertEquals('New Test Form', $contactWebForm->name);
     $this->assertEquals('http://zurmo.org', $contactWebForm->redirectUrl);
     $this->assertEquals('Save and Redirect', $contactWebForm->submitButtonLabel);
     $this->assertEquals($contactWebForm->defaultPermissionSetting, UserConfigurationForm::DEFAULT_PERMISSIONS_SETTING_EVERYONE);
     $this->assertNull($contactWebForm->defaultPermissionGroupSetting);
 }
 /**
  * @depends testRegularUserControllerActionsWithElevationToModels
  */
 public function testRegularUserViewingContactWebFormWithoutAccessToAccount()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $aUser = UserTestHelper::createBasicUser('aUser');
     $aUser->setRight('ContactWebFormsModule', ContactWebFormsModule::RIGHT_ACCESS_CONTACT_WEB_FORMS);
     $this->assertTrue($aUser->save());
     $aUser = User::getByUsername('aUser');
     $contactWebForm = ContactWebFormTestHelper::createContactWebFormByName('contactWebFormOwnedByaUser', $aUser);
     $id = $contactWebForm->id;
     $contactWebForm->forget();
     unset($contactWebForm);
     $this->logoutCurrentUserLoginNewUserAndGetByUsername('aUser');
     $content = $this->runControllerWithNoExceptionsAndGetContent('contactWebForms/default');
     $this->assertNotContains('Fatal error: Method ContactWebForm::__toString() must not throw an exception', $content);
 }
 public function testSuperUserCreateAction()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     Yii::app()->user->userModel = $super;
     $this->resetGetArray();
     $attributes = ContactWebFormTestHelper::getContactWebFormAttributes();
     ContactsModule::loadStartingData();
     $contactStates = ContactState::getByName('New');
     $contactWebForm = array();
     $contactWebForm['name'] = 'External Web Form (Drupal)';
     $contactWebForm['redirectUrl'] = 'http://www.zurmo.com/';
     $contactWebForm['submitButtonLabel'] = 'Save & Next';
     $contactWebForm['defaultState'] = $contactStates[0];
     $contactWebForm['defaultOwner'] = $super;
     $this->setPostArray(array('ContactWebForm' => $contactWebForm, 'ContactWebFormAttributeForm' => $attributes));
     $redirectUrl = $this->runControllerWithRedirectExceptionAndGetUrl('contactWebForms/default/create');
     $contactWebForms = ContactWebForm::getByName('External Web Form (Drupal)');
     $this->assertEquals(1, count($contactWebForms));
     $this->assertTrue($contactWebForms[0]->id > 0);
     $this->assertEquals('Save & Next', $contactWebForms[0]->submitButtonLabel);
     $this->assertEquals($attributes, unserialize($contactWebForms[0]->serializedData));
     $compareRedirectUrl = Yii::app()->createUrl('contactWebForms/default/details', array('id' => $contactWebForms[0]->id));
     $this->assertEquals($compareRedirectUrl, $redirectUrl);
 }