diff --git a/.upgrade.yml b/.upgrade.yml new file mode 100644 index 0000000..729ded7 --- /dev/null +++ b/.upgrade.yml @@ -0,0 +1,65 @@ +mappings: + SecureEditableFileField: SilverStripe\UserForms\Extension\SecureEditableFileField + UserFormFieldEditorExtension: SilverStripe\UserForms\Extension\UserFormFieldEditorExtension + UserFormValidator: SilverStripe\UserForms\Extension\UserFormValidator + GridFieldAddClassesButton: SilverStripe\UserForms\Form\GridFieldAddClassesButton + UserForm: SilverStripe\UserForms\Form\UserForm + UserFormsGridFieldFilterHeader: SilverStripe\UserForms\Form\UserFormsGridFieldFilterHeader + UserFormsCheckboxSetField: SilverStripe\UserForms\FormField\UserFormsCheckboxSetField + UserFormsCompositeField: SilverStripe\UserForms\FormField\UserFormsCompositeField + UserFormsFieldContainer: SilverStripe\UserForms\FormField\UserFormsFieldContainer + UserFormsFieldList: SilverStripe\UserForms\FormField\UserFormsFieldList + UserFormsGroupField: SilverStripe\UserForms\FormField\UserFormsGroupField + UserFormsStepField: SilverStripe\UserForms\FormField\UserFormsStepField + UserformsTreeDropdownField: SilverStripe\UserForms\FormField\UserformsTreeDropdownField + EditableCustomRule: SilverStripe\UserForms\Model\EditableCustomRule + UserDefinedForm: SilverStripe\UserForms\Model\UserDefinedForm + UserDefinedFormController: SilverStripe\UserForms\Model\UserDefinedFormController + EditableCheckbox: SilverStripe\UserForms\Model\EditableFormField\EditableCheckbox + EditableCheckboxGroupField: SilverStripe\UserForms\Model\EditableFormField\EditableCheckboxGroupField + EditableCountryDropdownField: SilverStripe\UserForms\Model\EditableFormField\EditableCountryDropdownField + EditableDateField: SilverStripe\UserForms\Model\EditableFormField\EditableDateField + EditableDateField_FormField: SilverStripe\UserForms\Model\EditableFormField\EditableDateField_FormField + EditableDropdown: SilverStripe\UserForms\Model\EditableFormField\EditableDropdown + EditableEmailField: SilverStripe\UserForms\Model\EditableFormField\EditableEmailField + EditableFieldGroup: SilverStripe\UserForms\Model\EditableFormField\EditableFieldGroup + EditableFieldGroupEnd: SilverStripe\UserForms\Model\EditableFormField\EditableFieldGroupEnd + EditableFileField: SilverStripe\UserForms\Model\EditableFormField\EditableFileField + EditableFormField: SilverStripe\UserForms\Model\EditableFormField\EditableFormField + EditableFormFieldValidator: SilverStripe\UserForms\Model\EditableFormField\EditableFormFieldValidator + EditableFormHeading: SilverStripe\UserForms\Model\EditableFormField\EditableFormHeading + EditableFormStep: SilverStripe\UserForms\Model\EditableFormField\EditableFormStep + EditableLiteralField: SilverStripe\UserForms\Model\EditableFormField\EditableLiteralField + EditableMemberListField: SilverStripe\UserForms\Model\EditableFormField\EditableMemberListField + EditableMultipleOptionField: SilverStripe\UserForms\Model\EditableFormField\EditableMultipleOptionField + EditableNumericField: SilverStripe\UserForms\Model\EditableFormField\EditableNumericField + EditableOption: SilverStripe\UserForms\Model\EditableFormField\EditableOption + EditableRadioField: SilverStripe\UserForms\Model\EditableFormField\EditableRadioField + EditableTextField: SilverStripe\UserForms\Model\EditableFormField\EditableTextField + UserDefinedForm_EmailRecipient: SilverStripe\UserForms\Model\Recipient\UserDefinedForm_EmailRecipient + UserDefinedForm_EmailRecipientCondition: SilverStripe\UserForms\Model\Recipient\UserDefinedForm_EmailRecipientCondition + UserFormRecipientEmail: SilverStripe\UserForms\Model\Recipient\UserFormRecipientEmail + UserFormRecipientItemRequest: SilverStripe\UserForms\Model\Recipient\UserFormRecipientItemRequest + SubmittedFileField: SilverStripe\UserForms\Model\Submission\SubmittedFileField + SubmittedForm: SilverStripe\UserForms\Model\Submission\SubmittedForm + SubmittedFormField: SilverStripe\UserForms\Model\Submission\SubmittedFormField + DisambiguationSegmentFieldModifier: SilverStripe\UserForms\Modifier\DisambiguationSegmentFieldModifier + UnderscoreSegmentFieldModifier: SilverStripe\UserForms\Modifier\UnderscoreSegmentFieldModifier + UserFormsColumnCleanTask: SilverStripe\UserForms\Task\UserFormsColumnCleanTask + UserFormsUpgradeService: SilverStripe\UserForms\Task\UserFormsUpgradeService + UserFormsUpgradeTask: SilverStripe\UserForms\Task\UserFormsUpgradeTask + UserFormsVersionedTask: SilverStripe\UserForms\Task\UserFormsVersionedTask + UserFormTest: SilverStripe\UserForms\Test\Form\UserFormTest + UserFormsCheckboxSetFieldTest: SilverStripe\UserForms\Test\FormField\UserFormsCheckboxSetFieldTest + EditableCustomRuleTest: SilverStripe\UserForms\Test\Model\EditableCustomRuleTest + UserDefinedFormControllerTest: SilverStripe\UserForms\Test\Model\UserDefinedFormControllerTest + UserDefinedFormControllerTest_Controller: SilverStripe\UserForms\Test\Model\UserDefinedFormControllerTest_Controller + UserDefinedFormTest: SilverStripe\UserForms\Test\Model\UserDefinedFormTest + EditableDropdownTest: SilverStripe\UserForms\Test\Model\EditableFormField\EditableDropdownTest + EditableFileFieldTest: SilverStripe\UserForms\Test\Model\EditableFormField\EditableFileFieldTest + EditableFormFieldTest: SilverStripe\UserForms\Test\Model\EditableFormField\EditableFormFieldTest + EditableLiteralFieldTest: SilverStripe\UserForms\Test\Model\EditableFormField\EditableLiteralFieldTest + SecureEditableFileFieldTest: SilverStripe\UserForms\Test\Model\EditableFormField\SecureEditableFileFieldTest + UserDefinedForm_EmailRecipientConditionTest: SilverStripe\UserForms\Test\Model\Recipient\UserDefinedForm_EmailRecipientConditionTest + UserFormsUpgradeServiceTest: SilverStripe\UserForms\Test\Task\UserFormsUpgradeServiceTest + UserFormsVersionedTaskTest: SilverStripe\UserForms\Test\Task\UserFormsVersionedTaskTest diff --git a/_config/routes.yml b/_config/routes.yml index 700c1be..607be8b 100644 --- a/_config/routes.yml +++ b/_config/routes.yml @@ -2,6 +2,6 @@ Name: userformsroutes After: framework/routes#coreroutes --- -Director: +SilverStripe\Control\Director: rules: - 'UserDefinedForm_Controller//$Action' : 'UserDefinedForm_Controller' \ No newline at end of file + UserDefinedForm_Controller//$Action: UserDefinedForm_Controller diff --git a/_config/secureassets.yml b/_config/secureassets.yml index 2be1e1e..67b090d 100644 --- a/_config/secureassets.yml +++ b/_config/secureassets.yml @@ -3,14 +3,13 @@ Name: userformssecurity Only: ModuleExists: secureassets --- -EditableFileField: +SilverStripe\UserForms\Model\EditableFormField\EditableFileField: extensions: - - SecureEditableFileField - + - SilverStripe\UserForms\Extension\SecureEditableFileField --- Name: userformsnosecurity Except: ModuleExists: secureassets --- -EditableFileField: - hidden: true \ No newline at end of file +SilverStripe\UserForms\Model\EditableFormField\EditableFileField: + hidden: true diff --git a/code/Extension/SecureEditableFileField.php b/code/Extension/SecureEditableFileField.php index 6a605a0..a927a95 100644 --- a/code/Extension/SecureEditableFileField.php +++ b/code/Extension/SecureEditableFileField.php @@ -1,5 +1,21 @@ requireDefaultRecords(); + singleton(Group::class)->requireDefaultRecords(); return Permission::get_groups_by_permission('ADMIN')->First(); } diff --git a/code/Extension/UserFormFieldEditorExtension.php b/code/Extension/UserFormFieldEditorExtension.php index 4645058..02f2254 100644 --- a/code/Extension/UserFormFieldEditorExtension.php +++ b/code/Extension/UserFormFieldEditorExtension.php @@ -1,5 +1,47 @@ 'EditableFormField' + 'Fields' => EditableFormField::class ); /** @@ -42,7 +84,7 @@ class UserFormFieldEditorExtension extends DataExtension $this->createInitialFormStep(true); $editableColumns = new GridFieldEditableColumns(); - $fieldClasses = singleton('EditableFormField')->getEditableFieldClasses(); + $fieldClasses = singleton(EditableFormField::class)->getEditableFieldClasses(); $editableColumns->setDisplayFields(array( 'ClassName' => function ($record, $column, $grid) use ($fieldClasses) { if ($record instanceof EditableFormField) { @@ -60,12 +102,12 @@ class UserFormFieldEditorExtension extends DataExtension ->addComponents( $editableColumns, new GridFieldButtonRow(), - GridFieldAddClassesButton::create('EditableTextField') + GridFieldAddClassesButton::create(EditableTextField::class) ->setButtonName(_t('UserFormFieldEditorExtension.ADD_FIELD', 'Add Field')) ->setButtonClass('ss-ui-action-constructive'), - GridFieldAddClassesButton::create('EditableFormStep') + GridFieldAddClassesButton::create(EditableFormStep::class) ->setButtonName(_t('UserFormFieldEditorExtension.ADD_PAGE_BREAK', 'Add Page Break')), - GridFieldAddClassesButton::create(array('EditableFieldGroup', 'EditableFieldGroupEnd')) + GridFieldAddClassesButton::create(array(EditableFieldGroup::class, EditableFieldGroupEnd::class)) ->setButtonName(_t('UserFormFieldEditorExtension.ADD_FIELD_GROUP', 'Add Field Group')), new GridFieldEditButton(), new GridFieldDeleteAction(), @@ -153,7 +195,7 @@ class UserFormFieldEditorExtension extends DataExtension } // fetch any orphaned live records - $live = Versioned::get_by_stage("EditableFormField", "Live") + $live = Versioned::get_by_stage(EditableFormField::class, "Live") ->filter(array( 'ParentID' => $original->ID, )); diff --git a/code/Extension/UserFormValidator.php b/code/Extension/UserFormValidator.php index 1b81fa2..f22ff02 100644 --- a/code/Extension/UserFormValidator.php +++ b/code/Extension/UserFormValidator.php @@ -1,5 +1,20 @@ getClassesCreate($grid); if (empty($classes)) { - throw new SS_HTTPResponse_Exception(400); + throw new HTTPResponse_Exception(400); } // Add item to gridfield diff --git a/code/Form/UserForm.php b/code/Form/UserForm.php index 1272147..369f9a6 100644 --- a/code/Form/UserForm.php +++ b/code/Form/UserForm.php @@ -1,5 +1,27 @@ controller = $controller; $this->setRedirectToFormOnValidationError(true); diff --git a/code/Form/UserFormsGridFieldFilterHeader.php b/code/Form/UserFormsGridFieldFilterHeader.php index 64dbbfd..b89a899 100644 --- a/code/Form/UserFormsGridFieldFilterHeader.php +++ b/code/Form/UserFormsGridFieldFilterHeader.php @@ -1,5 +1,34 @@ 'EditableFormField', - 'ConditionField' => 'EditableFormField' + 'Parent' => EditableFormField::class, + 'ConditionField' => EditableFormField::class ); /** diff --git a/code/Model/EditableFormField/EditableCheckbox.php b/code/Model/EditableFormField/EditableCheckbox.php index 11107ba..e7bebf4 100755 --- a/code/Model/EditableFormField/EditableCheckbox.php +++ b/code/Model/EditableFormField/EditableCheckbox.php @@ -1,4 +1,11 @@ DefaultToToday - ? SS_Datetime::now()->Format('Y-m-d') + ? DBDatetime::now()->Format('Y-m-d') : $this->Default; $field = EditableDateField_FormField::create($this->Name, $this->EscapedTitle, $defaultValue) diff --git a/code/Model/EditableFormField/EditableDropdown.php b/code/Model/EditableFormField/EditableDropdown.php index 259a51b..7ffc6d6 100755 --- a/code/Model/EditableFormField/EditableDropdown.php +++ b/code/Model/EditableFormField/EditableDropdown.php @@ -1,5 +1,18 @@ 'EditableFieldGroupEnd' + 'End' => EditableFieldGroupEnd::class ); /** diff --git a/code/Model/EditableFormField/EditableFieldGroupEnd.php b/code/Model/EditableFormField/EditableFieldGroupEnd.php index d469a84..3440130 100644 --- a/code/Model/EditableFormField/EditableFieldGroupEnd.php +++ b/code/Model/EditableFormField/EditableFieldGroupEnd.php @@ -1,5 +1,16 @@ 'EditableFieldGroup' + 'Group' => EditableFieldGroup::class ); /** @@ -33,7 +44,7 @@ class EditableFieldGroupEnd extends EditableFormField 'EditableFieldGroupEnd.FIELD_GROUP_END', '{group} end', array( - 'group' => ($group && $group->exists()) ? $group->CMSTitle : 'Group' + 'group' => ($group && $group->exists()) ? $group->CMSTitle : Group::class ) ); } diff --git a/code/Model/EditableFormField/EditableFileField.php b/code/Model/EditableFormField/EditableFileField.php index b81a1f2..df9b86a 100755 --- a/code/Model/EditableFormField/EditableFileField.php +++ b/code/Model/EditableFormField/EditableFileField.php @@ -1,5 +1,25 @@ 'Folder' // From CustomFields + 'Folder' => Folder::class // From CustomFields ); /** @@ -41,7 +61,7 @@ class EditableFileField extends EditableFormField TreeDropdownField::create( 'FolderID', _t('EditableUploadField.SELECTUPLOADFOLDER', 'Select upload folder'), - 'Folder' + Folder::class ) ); @@ -93,7 +113,7 @@ class EditableFileField extends EditableFormField $field->getValidator()->setAllowedExtensions( array_diff( // filter out '' since this would be a regex problem on JS end - array_filter(Config::inst()->get('File', 'allowed_extensions')), + array_filter(Config::inst()->get(File::class, 'allowed_extensions')), $this->config()->allowed_extensions_blacklist ) ); @@ -137,9 +157,9 @@ class EditableFileField extends EditableFormField public function migrateSettings($data) { // Migrate 'Folder' setting to 'FolderID' - if (isset($data['Folder'])) { - $this->FolderID = $data['Folder']; - unset($data['Folder']); + if (isset($data[Folder::class])) { + $this->FolderID = $data[Folder::class]; + unset($data[Folder::class]); } parent::migrateSettings($data); diff --git a/code/Model/EditableFormField/EditableFormField.php b/code/Model/EditableFormField/EditableFormField.php index 7cf91f5..c1dfa20 100755 --- a/code/Model/EditableFormField/EditableFormField.php +++ b/code/Model/EditableFormField/EditableFormField.php @@ -1,7 +1,79 @@ "UserDefinedForm", + "Parent" => UserDefinedForm::class, ); /** @@ -305,7 +377,7 @@ class EditableFormField extends DataObject ))->map('ID', 'Title')); }, 'ConditionOption' => function ($record, $column, $grid) { - $options = Config::inst()->get('EditableCustomRule', 'condition_options'); + $options = Config::inst()->get(EditableCustomRule::class, 'condition_options'); return DropdownField::create($column, '', $options); }, @@ -431,7 +503,7 @@ class EditableFormField extends DataObject $parent = $controller->getRecord($controller->currentPageID()); // Only allow this behaviour on pages using UserFormFieldEditorExtension, such // as UserDefinedForm page type. - if ($parent && $parent->hasExtension('UserFormFieldEditorExtension')) { + if ($parent && $parent->hasExtension(UserFormFieldEditorExtension::class)) { return $parent->canEdit($member); } } @@ -554,7 +626,7 @@ class EditableFormField extends DataObject } // remove any orphans from the "fromStage" - $rules = Versioned::get_by_stage('EditableCustomRule', $toStage) + $rules = Versioned::get_by_stage(EditableCustomRule::class, $toStage) ->filter('ParentID', $this->ID); if (!empty($seenRuleIDs)) { @@ -574,7 +646,7 @@ class EditableFormField extends DataObject public function doDeleteFromStage($stage) { // Remove custom rules in this stage - $rules = Versioned::get_by_stage('EditableCustomRule', $stage) + $rules = Versioned::get_by_stage(EditableCustomRule::class, $stage) ->filter('ParentID', $this->ID); foreach ($rules as $rule) { $rule->deleteFromStage($stage); @@ -611,8 +683,8 @@ class EditableFormField extends DataObject return false; } - $stageVersion = Versioned::get_versionnumber_by_stage('EditableFormField', 'Stage', $this->ID); - $liveVersion = Versioned::get_versionnumber_by_stage('EditableFormField', 'Live', $this->ID); + $stageVersion = Versioned::get_versionnumber_by_stage(EditableFormField::class, 'Stage', $this->ID); + $liveVersion = Versioned::get_versionnumber_by_stage(EditableFormField::class, 'Live', $this->ID); return ($stageVersion && $stageVersion != $liveVersion); } @@ -742,14 +814,14 @@ class EditableFormField extends DataObject $prior = 0; // Number of prior group at this level $stack = array(); // Current stack of nested groups, where the top level = the page foreach ($fields->map('ID', 'ClassName') as $id => $className) { - if ($className === 'EditableFormStep') { + if ($className === EditableFormStep::class) { $priorPage = empty($stack) ? $prior : $stack[0]; $stack = array($priorPage + 1); $prior = 0; - } elseif ($className === 'EditableFieldGroup') { + } elseif ($className === EditableFieldGroup::class) { $stack[] = $prior + 1; $prior = 0; - } elseif ($className === 'EditableFieldGroupEnd') { + } elseif ($className === EditableFieldGroupEnd::class) { $prior = array_pop($stack); } if ($id == $this->ID) { @@ -1007,7 +1079,7 @@ class EditableFormField extends DataObject */ public function getEditableFieldClasses($includeLiterals = true) { - $classes = ClassInfo::getValidSubClasses('EditableFormField'); + $classes = ClassInfo::getValidSubClasses(EditableFormField::class); // Remove classes we don't want to display in the dropdown. $editableFieldClasses = array(); @@ -1078,7 +1150,7 @@ class EditableFormField extends DataObject foreach ($this->EffectiveDisplayRules() as $rule) { // Get the field which is effected /** @var EditableFormField $formFieldWatch */ - $formFieldWatch = DataObject::get_by_id('EditableFormField', $rule->ConditionFieldID); + $formFieldWatch = DataObject::get_by_id(EditableFormField::class, $rule->ConditionFieldID); // Skip deleted fields if (! $formFieldWatch) { continue; diff --git a/code/Model/EditableFormField/EditableFormFieldValidator.php b/code/Model/EditableFormField/EditableFormFieldValidator.php index f51c6d5..9017701 100644 --- a/code/Model/EditableFormField/EditableFormFieldValidator.php +++ b/code/Model/EditableFormField/EditableFormFieldValidator.php @@ -1,5 +1,14 @@ config()->editor_config; if ($editorConfig) { - return HtmlEditorConfig::get($editorConfig); + return HTMLEditorConfig::get($editorConfig); } - return HtmlEditorConfig::get_active(); + return HTMLEditorConfig::get_active(); } /** @@ -63,13 +81,13 @@ class EditableLiteralField extends EditableFormField protected function sanitiseContent($content) { // Check if sanitisation is enabled - if (!HtmlEditorField::config()->sanitise_server_side) { + if (!HTMLEditorField::config()->sanitise_server_side) { return $content; } // Perform sanitisation $htmlValue = Injector::inst()->create('HTMLValue', $content); - $santiser = Injector::inst()->create('HtmlEditorSanitiser', $this->getEditorConfig()); + $santiser = Injector::inst()->create(HTMLEditorSanitiser::class, $this->getEditorConfig()); $santiser->sanitise($htmlValue); return $htmlValue->getContent(); } diff --git a/code/Model/EditableFormField/EditableMemberListField.php b/code/Model/EditableFormField/EditableMemberListField.php index 310e543..977ad74 100644 --- a/code/Model/EditableFormField/EditableMemberListField.php +++ b/code/Model/EditableFormField/EditableMemberListField.php @@ -1,4 +1,15 @@ 'Group' + 'Group' => Group::class ); /** @@ -30,7 +41,7 @@ class EditableMemberListField extends EditableFormField 'Root.Main', DropdownField::create( "GroupID", - _t('EditableFormField.GROUP', 'Group'), + _t('EditableFormField.GROUP', Group::class), Group::get()->map() )->setEmptyString(' ') ); diff --git a/code/Model/EditableFormField/EditableMultipleOptionField.php b/code/Model/EditableFormField/EditableMultipleOptionField.php index 6953d5e..ad1a855 100644 --- a/code/Model/EditableFormField/EditableMultipleOptionField.php +++ b/code/Model/EditableFormField/EditableMultipleOptionField.php @@ -1,5 +1,35 @@ "EditableOption" + "Options" => EditableOption::class ); /** @@ -118,7 +148,7 @@ class EditableMultipleOptionField extends EditableFormField } // remove any orphans from the "fromStage" - $options = Versioned::get_by_stage('EditableOption', $toStage) + $options = Versioned::get_by_stage(EditableOption::class, $toStage) ->filter('ParentID', $this->ID); if (!empty($seenIDs)) { @@ -140,7 +170,7 @@ class EditableMultipleOptionField extends EditableFormField public function doDeleteFromStage($stage) { // Remove options - $options = Versioned::get_by_stage('EditableOption', $stage) + $options = Versioned::get_by_stage(EditableOption::class, $stage) ->filter('ParentID', $this->ID); foreach ($options as $option) { $option->deleteFromStage($stage); @@ -208,7 +238,7 @@ class EditableMultipleOptionField extends EditableFormField { $optionSet = $this->Options(); $optionMap = $optionSet->map('Value', 'Title'); - if ($optionMap instanceof SS_Map) { + if ($optionMap instanceof Map) { return $optionMap->toArray(); } return $optionMap; diff --git a/code/Model/EditableFormField/EditableNumericField.php b/code/Model/EditableFormField/EditableNumericField.php index c2a1334..86ad02b 100755 --- a/code/Model/EditableFormField/EditableNumericField.php +++ b/code/Model/EditableFormField/EditableNumericField.php @@ -1,4 +1,15 @@ "EditableMultipleOptionField", + "Parent" => EditableMultipleOptionField::class, ); private static $extensions = array( diff --git a/code/Model/EditableFormField/EditableRadioField.php b/code/Model/EditableFormField/EditableRadioField.php index d58262b..0c5a585 100755 --- a/code/Model/EditableFormField/EditableRadioField.php +++ b/code/Model/EditableFormField/EditableRadioField.php @@ -1,4 +1,13 @@ 'Family name', 'honorific-suffix' => 'Suffix (e.g Jr.)', 'nickname' => 'Nickname', - 'email' => 'Email', + 'email' => Email::class, 'organization-title' => 'Job title', 'organization' => 'Organization', 'street-address' => 'Street address', diff --git a/code/Model/Recipient/UserDefinedForm_EmailRecipient.php b/code/Model/Recipient/UserDefinedForm_EmailRecipient.php index a92deef..e73343f 100644 --- a/code/Model/Recipient/UserDefinedForm_EmailRecipient.php +++ b/code/Model/Recipient/UserDefinedForm_EmailRecipient.php @@ -1,5 +1,67 @@ 'UserDefinedForm', - 'SendEmailFromField' => 'EditableFormField', - 'SendEmailToField' => 'EditableFormField', - 'SendEmailSubjectField' => 'EditableFormField' + 'Form' => UserDefinedForm::class, + 'SendEmailFromField' => EditableFormField::class, + 'SendEmailToField' => EditableFormField::class, + 'SendEmailSubjectField' => EditableFormField::class ); private static $has_many = array( - 'CustomRules' => 'UserDefinedForm_EmailRecipientCondition' + 'CustomRules' => UserDefinedForm_EmailRecipientCondition::class ); private static $summary_fields = array( @@ -55,7 +117,7 @@ class UserDefinedForm_EmailRecipient extends DataObject { $fields = parent::summaryFields(); if (isset($fields['EmailAddress'])) { - $fields['EmailAddress'] = _t('UserDefinedForm.EMAILADDRESS', 'Email'); + $fields['EmailAddress'] = _t('UserDefinedForm.EMAILADDRESS', Email::class); } if (isset($fields['EmailSubject'])) { $fields['EmailSubject'] = _t('UserDefinedForm.EMAILSUBJECT', 'Subject'); @@ -229,7 +291,7 @@ class UserDefinedForm_EmailRecipient extends DataObject $preview = sprintf( '

%s

%s', Controller::join_links( - singleton('CMSPageEditController')->getEditForm()->FormAction(), + singleton(CMSPageEditController::class)->getEditForm()->FormAction(), "field/EmailRecipients/item/{$this->ID}/preview" ), _t('UserDefinedForm.PREVIEW_EMAIL', 'Preview email'), @@ -323,8 +385,8 @@ class UserDefinedForm_EmailRecipient extends DataObject protected function getCanCreateContext($args) { // Inspect second parameter to canCreate for a 'Parent' context - if (isset($args[1]['Form'])) { - return $args[1]['Form']; + if (isset($args[1][Form::class])) { + return $args[1][Form::class]; } // Hack in currently edited page if context is missing if (Controller::has_curr() && Controller::curr() instanceof CMSMain) { @@ -433,7 +495,7 @@ class UserDefinedForm_EmailRecipient extends DataObject { $templates = array(); - $finder = new SS_FileFinder(); + $finder = new FileFinder(); $finder->setOption('name_regex', '/^.*\.ss$/'); $found = $finder->find(BASE_PATH . '/' . UserDefinedForm::config()->email_template_directory); diff --git a/code/Model/Recipient/UserDefinedForm_EmailRecipientCondition.php b/code/Model/Recipient/UserDefinedForm_EmailRecipientCondition.php index 97c21ed..bb3664b 100644 --- a/code/Model/Recipient/UserDefinedForm_EmailRecipientCondition.php +++ b/code/Model/Recipient/UserDefinedForm_EmailRecipientCondition.php @@ -1,5 +1,19 @@ 'UserDefinedForm_EmailRecipient', - 'ConditionField' => 'EditableFormField' + 'Parent' => UserDefinedForm_EmailRecipient::class, + 'ConditionField' => EditableFormField::class ); /** diff --git a/code/Model/Recipient/UserFormRecipientEmail.php b/code/Model/Recipient/UserFormRecipientEmail.php index 977eae0..c1d3019 100644 --- a/code/Model/Recipient/UserFormRecipientEmail.php +++ b/code/Model/Recipient/UserFormRecipientEmail.php @@ -1,5 +1,12 @@ update('SSViewer', 'theme_enabled', true); + Config::inst()->update(SSViewer::class, 'theme_enabled', true); $content = $this->customise(new ArrayData(array( 'Body' => $this->record->getEmailBodyContent(), @@ -44,8 +62,8 @@ class UserFormRecipientItemRequest extends GridFieldDetailForm_ItemRequest $data = new ArrayList(); $fields = $this->record->Form()->Fields()->filter(array( - 'ClassName:not' => 'EditableLiteralField', - 'ClassName:not' => 'EditableFormHeading' + 'ClassName:not' => EditableLiteralField::class, + 'ClassName:not' => EditableFormHeading::class )); foreach ($fields as $field) { diff --git a/code/Model/Submission/SubmittedFileField.php b/code/Model/Submission/SubmittedFileField.php index 44f8df8..e55a6e4 100755 --- a/code/Model/Submission/SubmittedFileField.php +++ b/code/Model/Submission/SubmittedFileField.php @@ -1,5 +1,13 @@ "File" + "UploadedFile" => File::class ); /** diff --git a/code/Model/Submission/SubmittedForm.php b/code/Model/Submission/SubmittedForm.php index 6378680..6abfd9a 100755 --- a/code/Model/Submission/SubmittedForm.php +++ b/code/Model/Submission/SubmittedForm.php @@ -1,4 +1,26 @@ "Member", - "Parent" => "UserDefinedForm", + "SubmittedBy" => Member::class, + "Parent" => UserDefinedForm::class, ); private static $has_many = array( - "Values" => "SubmittedFormField" + "Values" => SubmittedFormField::class ); private static $summary_fields = array( @@ -77,7 +99,7 @@ class SubmittedForm extends DataObject $values = GridField::create( 'Values', - 'SubmittedFormField', + SubmittedFormField::class, $self->Values()->sort('Created', 'ASC') ); diff --git a/code/Model/Submission/SubmittedFormField.php b/code/Model/Submission/SubmittedFormField.php index c639e55..9b01134 100755 --- a/code/Model/Submission/SubmittedFormField.php +++ b/code/Model/Submission/SubmittedFormField.php @@ -1,4 +1,12 @@ "SubmittedForm" + "Parent" => SubmittedForm::class ); private static $summary_fields = array( diff --git a/code/Model/UserDefinedForm.php b/code/Model/UserDefinedForm.php index 554b593..39c1899 100755 --- a/code/Model/UserDefinedForm.php +++ b/code/Model/UserDefinedForm.php @@ -1,5 +1,73 @@ "SubmittedForm", - "EmailRecipients" => "UserDefinedForm_EmailRecipient" + "Submissions" => SubmittedForm::class, + "EmailRecipients" => UserDefinedForm_EmailRecipient::class ); /** @@ -156,7 +224,7 @@ class UserDefinedForm extends Page // Define config for email recipients $emailRecipientsConfig = GridFieldConfig_RecordEditor::create(10); - $emailRecipientsConfig->getComponentByType('GridFieldAddNewButton') + $emailRecipientsConfig->getComponentByType(GridFieldAddNewButton::class) ->setButtonName( _t('UserDefinedForm.ADDEMAILRECIPIENT', 'Add Email Recipient') ); @@ -170,8 +238,8 @@ class UserDefinedForm extends Page ); $emailRecipients ->getConfig() - ->getComponentByType('GridFieldDetailForm') - ->setItemRequestClass('UserFormRecipientItemRequest'); + ->getComponentByType(GridFieldDetailForm::class) + ->setItemRequestClass(UserFormRecipientItemRequest::class); $fields->addFieldsToTab('Root.FormOptions', $onCompleteFieldSet); $fields->addFieldToTab('Root.Recipients', $emailRecipients); @@ -223,7 +291,7 @@ SQL; } } - $config->getComponentByType('GridFieldDataColumns')->setDisplayFields($summaryarray); + $config->getComponentByType(GridFieldDataColumns::class)->setDisplayFields($summaryarray); /** * Support for {@link https://github.com/colymba/GridFieldBulkEditingTools} @@ -347,7 +415,7 @@ SQL; // Perform migrations Injector::inst() - ->create('UserFormsUpgradeService') + ->create(UserFormsUpgradeService::class) ->setQuiet(true) ->run(); diff --git a/code/Model/UserDefinedFormController.php b/code/Model/UserDefinedFormController.php index 8021ec7..03fc5a1 100644 --- a/code/Model/UserDefinedFormController.php +++ b/code/Model/UserDefinedFormController.php @@ -1,5 +1,46 @@ ID); - $form->setFormAction(Controller::join_links($this->Link(), 'Form')); + $form->setFormAction(Controller::join_links($this->Link(), Form::class)); $this->generateConditionalJavascript(); return $form; } @@ -150,7 +191,7 @@ JS */ public function process($data, $form) { - $submittedForm = Object::create('SubmittedForm'); + $submittedForm = Object::create(SubmittedForm::class); $submittedForm->SubmittedByID = ($id = Member::currentUserID()) ? $id : 0; $submittedForm->ParentID = $this->ID; @@ -182,7 +223,7 @@ JS } if (!empty($data[$field->Name])) { - if (in_array("EditableFileField", $field->getClassAncestry())) { + if (in_array(EditableFileField::class, $field->getClassAncestry())) { if (!empty($_FILES[$field->Name]['name'])) { $foldername = $field->getFormField()->getFolderName(); diff --git a/code/Modifier/DisambiguationSegmentFieldModifier.php b/code/Modifier/DisambiguationSegmentFieldModifier.php index 2ceb9c5..63e5333 100644 --- a/code/Modifier/DisambiguationSegmentFieldModifier.php +++ b/code/Modifier/DisambiguationSegmentFieldModifier.php @@ -1,7 +1,15 @@ log("Upgrading formfield rules and custom settings"); // List of rules that have been created in all stages - $fields = Versioned::get_including_deleted('EditableFormField'); + $fields = Versioned::get_including_deleted(EditableFormField::class); foreach ($fields as $field) { $this->upgradeField($field); } @@ -33,8 +48,8 @@ class UserFormsUpgradeService // Check versions this field exists on $filter = sprintf('"EditableFormField"."ID" = \'%d\' AND "Migrated" = 0', $field->ID); - $stageField = Versioned::get_one_by_stage('EditableFormField', 'Stage', $filter); - $liveField = Versioned::get_one_by_stage('EditableFormField', 'Live', $filter); + $stageField = Versioned::get_one_by_stage(EditableFormField::class, 'Stage', $filter); + $liveField = Versioned::get_one_by_stage(EditableFormField::class, 'Live', $filter); if ($stageField) { $this->upgradeFieldInStage($stageField, 'Stage'); @@ -171,7 +186,7 @@ class UserFormsUpgradeService // If live, search stage record for matching one if ($stage === 'Live') { - $list = Versioned::get_by_stage('EditableCustomRule', 'Stage') + $list = Versioned::get_by_stage(EditableCustomRule::class, 'Stage') ->filter(array( 'ParentID' => $field->ID, 'ConditionFieldID' => $conditionField ? $conditionField->ID : 0, diff --git a/code/Task/UserFormsUpgradeTask.php b/code/Task/UserFormsUpgradeTask.php index 9a05be7..ea68156 100644 --- a/code/Task/UserFormsUpgradeTask.php +++ b/code/Task/UserFormsUpgradeTask.php @@ -1,5 +1,15 @@ create('UserFormsUpgradeService'); + $service = Injector::inst()->create(UserFormsUpgradeService::class); $service->log("Upgrading userforms module"); $service->setQuiet(false) ->run(); diff --git a/code/Task/UserFormsVersionedTask.php b/code/Task/UserFormsVersionedTask.php index 45335b1..a988ebe 100644 --- a/code/Task/UserFormsVersionedTask.php +++ b/code/Task/UserFormsVersionedTask.php @@ -1,5 +1,15 @@ objFromFixture('UserDefinedForm', 'empty-page'); + $page = $this->objFromFixture(UserDefinedForm::class, 'empty-page'); $this->assertEquals(5, $page->Fields()->count()); $controller = ModelAsController::controller_for($page); $form = new UserForm($controller); diff --git a/tests/FormField/UserFormsCheckboxSetFieldTest.php b/tests/FormField/UserFormsCheckboxSetFieldTest.php index de2ede6..402e65b 100644 --- a/tests/FormField/UserFormsCheckboxSetFieldTest.php +++ b/tests/FormField/UserFormsCheckboxSetFieldTest.php @@ -1,5 +1,16 @@ objFromFixture('EditableCustomRule', 'rule1'); + $rule1 = $this->objFromFixture(EditableCustomRule::class, 'rule1'); $result1 = $rule1->buildExpression(); //Dropdowns expect change event @@ -20,7 +28,7 @@ class EditableCustomRuleTest extends SapphireTest $this->assertContains('==', $result1['operation']); /** @var EditableCustomRule $rule2 */ - $rule2 = $this->objFromFixture('EditableCustomRule', 'rule2'); + $rule2 = $this->objFromFixture(EditableCustomRule::class, 'rule2'); $result2 = $rule2->buildExpression(); //TextField expect change event $this->assertEquals('keyup', $result2['event']); @@ -35,7 +43,7 @@ class EditableCustomRuleTest extends SapphireTest */ public function testToggleDisplayText() { - $rule1 = $this->objFromFixture('EditableCustomRule', 'rule1'); + $rule1 = $this->objFromFixture(EditableCustomRule::class, 'rule1'); $this->assertSame('addClass("hide")', $rule1->toggleDisplayText('show')); $this->assertSame('removeClass("hide")', $rule1->toggleDisplayText('hide')); } diff --git a/tests/Model/EditableFormField/EditableDropdownTest.php b/tests/Model/EditableFormField/EditableDropdownTest.php index 1562821..f235af4 100644 --- a/tests/Model/EditableFormField/EditableDropdownTest.php +++ b/tests/Model/EditableFormField/EditableDropdownTest.php @@ -1,5 +1,14 @@ filter('UseEmptyString', true)->first()) { - $dropdown = $this->objFromFixture('EditableDropdown', 'basic-dropdown'); + $dropdown = $this->objFromFixture(EditableDropdown::class, 'basic-dropdown'); $dropdown->UseEmptyString = true; $dropdown->EmptyString = 'My Default Empty String'; @@ -29,7 +38,7 @@ class EditableDropdownTest extends SapphireTest $field = $dropdown->getFormField(); $this->assertEquals($field->getEmptyString(), 'My Default Empty String'); - $alternateDropdown = $this->objFromFixture('EditableDropdown', 'department-dropdown'); + $alternateDropdown = $this->objFromFixture(EditableDropdown::class, 'department-dropdown'); $formField = $alternateDropdown->getFormField(); $this->assertFalse($formField->getHasEmptyDefault()); diff --git a/tests/Model/EditableFormField/EditableFileFieldTest.php b/tests/Model/EditableFormField/EditableFileFieldTest.php index ac18023..c517425 100644 --- a/tests/Model/EditableFormField/EditableFileFieldTest.php +++ b/tests/Model/EditableFormField/EditableFileFieldTest.php @@ -1,5 +1,14 @@ php_max_file_size = $editableFileField::get_php_max_file_size(); } @@ -33,7 +42,7 @@ class EditableFileFieldTest extends SapphireTest */ public function testDefaultMaxFileSize() { - $fileField = $this->objFromFixture('EditableFileField', 'file-field'); + $fileField = $this->objFromFixture(EditableFileField::class, 'file-field'); $formField = $fileField->getFormField(); $this->assertEquals($this->php_max_file_size, $formField->getValidator()->getAllowedMaxFileSize()); @@ -45,8 +54,8 @@ class EditableFileFieldTest extends SapphireTest public function testValidateFileSizeFieldValue() { - $fileField = $this->objFromFixture('EditableFileField', 'file-field'); - $this->setExpectedException('ValidationException'); + $fileField = $this->objFromFixture(EditableFileField::class, 'file-field'); + $this->setExpectedException(ValidationException::class); $fileField->MaxFileSizeMB = $this->php_max_file_size * 2; $fileField->write(); } @@ -56,7 +65,7 @@ class EditableFileFieldTest extends SapphireTest */ public function testUpdatedMaxFileSize() { - $fileField = $this->objFromFixture('EditableFileField', 'file-field'); + $fileField = $this->objFromFixture(EditableFileField::class, 'file-field'); $fileField->MaxFileSizeMB = .25; $fileField->write(); diff --git a/tests/Model/EditableFormField/EditableFormFieldTest.php b/tests/Model/EditableFormField/EditableFormFieldTest.php index 6d1a314..c0bbc67 100644 --- a/tests/Model/EditableFormField/EditableFormFieldTest.php +++ b/tests/Model/EditableFormField/EditableFormFieldTest.php @@ -1,5 +1,29 @@ objFromFixture('EditableTextField', 'basic-text'); + $text = $this->objFromFixture(EditableTextField::class, 'basic-text'); $this->logInWithPermission('ADMIN'); $this->assertTrue($text->canCreate()); @@ -49,10 +73,10 @@ class EditableFormFieldTest extends FunctionalTest public function testCustomRules() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'custom-rules-form'); + $form = $this->objFromFixture(UserDefinedForm::class, 'custom-rules-form'); - $checkbox = $form->Fields()->find('ClassName', 'EditableCheckbox'); - $field = $form->Fields()->find('ClassName', 'EditableTextField'); + $checkbox = $form->Fields()->find('ClassName', EditableCheckbox::class); + $field = $form->Fields()->find('ClassName', EditableTextField::class); $rules = $checkbox->DisplayRules(); @@ -78,7 +102,7 @@ class EditableFormFieldTest extends FunctionalTest */ public function testEditableOptionEmptyValue() { - $option = $this->objFromFixture('EditableOption', 'option-1'); + $option = $this->objFromFixture(EditableOption::class, 'option-1'); $option->Value = ''; // Disallow empty values @@ -96,12 +120,12 @@ class EditableFormFieldTest extends FunctionalTest public function testEditableDropdownField() { - $dropdown = $this->objFromFixture('EditableDropdown', 'basic-dropdown'); + $dropdown = $this->objFromFixture(EditableDropdown::class, 'basic-dropdown'); $field = $dropdown->getFormField(); - $this->assertThat($field, $this->isInstanceOf('DropdownField')); + $this->assertThat($field, $this->isInstanceOf(DropdownField::class)); $values = $field->getSource(); $this->assertEquals(array('Option 1' => 'Option 1', 'Option 2' => 'Option 2'), $values); @@ -109,11 +133,11 @@ class EditableFormFieldTest extends FunctionalTest public function testEditableRadioField() { - $radio = $this->objFromFixture('EditableRadioField', 'radio-field'); + $radio = $this->objFromFixture(EditableRadioField::class, 'radio-field'); $field = $radio->getFormField(); - $this->assertThat($field, $this->isInstanceOf('OptionsetField')); + $this->assertThat($field, $this->isInstanceOf(OptionsetField::class)); $values = $field->getSource(); $this->assertEquals(array('Option 5' => 'Option 5', 'Option 6' => 'Option 6'), $values); @@ -121,7 +145,7 @@ class EditableFormFieldTest extends FunctionalTest public function testMultipleOptionDuplication() { - $dropdown = $this->objFromFixture('EditableDropdown', 'basic-dropdown'); + $dropdown = $this->objFromFixture(EditableDropdown::class, 'basic-dropdown'); $clone = $dropdown->duplicate(); @@ -136,7 +160,7 @@ class EditableFormFieldTest extends FunctionalTest public function testFileField() { - $fileField = $this->objFromFixture('EditableFileField', 'file-field'); + $fileField = $this->objFromFixture(EditableFileField::class, 'file-field'); $formField = $fileField->getFormField(); $this->assertContains('jpg', $formField->getValidator()->getAllowedExtensions()); @@ -145,8 +169,8 @@ class EditableFormFieldTest extends FunctionalTest public function testFileFieldAllowedExtensionsBlacklist() { - Config::inst()->update('EditableFileField', 'allowed_extensions_blacklist', array('jpg')); - $fileField = $this->objFromFixture('EditableFileField', 'file-field'); + Config::inst()->update(EditableFileField::class, 'allowed_extensions_blacklist', array('jpg')); + $fileField = $this->objFromFixture(EditableFileField::class, 'file-field'); $formField = $fileField->getFormField(); $this->assertNotContains('jpg', $formField->getValidator()->getAllowedExtensions()); @@ -177,7 +201,7 @@ class EditableFormFieldTest extends FunctionalTest public function testLengthRange() { /** @var EditableTextField $textField */ - $textField = $this->objFromFixture('EditableTextField', 'basic-text'); + $textField = $this->objFromFixture(EditableTextField::class, 'basic-text'); // Empty range /** @var TextField $formField */ @@ -207,7 +231,7 @@ class EditableFormFieldTest extends FunctionalTest public function testFormatDisplayRules() { - $field = $this->objFromFixture('EditableFormField', 'irdNumberField'); + $field = $this->objFromFixture(EditableFormField::class, 'irdNumberField'); $displayRules = $field->formatDisplayRules(); $this->assertNotNull($displayRules); $this->assertCount(1, $displayRules['operations']); diff --git a/tests/Model/EditableFormField/EditableLiteralFieldTest.php b/tests/Model/EditableFormField/EditableLiteralFieldTest.php index 697d09e..1dd506a 100644 --- a/tests/Model/EditableFormField/EditableLiteralFieldTest.php +++ b/tests/Model/EditableFormField/EditableLiteralFieldTest.php @@ -1,5 +1,19 @@ getMockBuilder('EditableLiteralField') + $field = $this->getMockBuilder(EditableLiteralField::class) ->setMethods(array('doUpdateFormField')) ->getMock(); @@ -66,9 +80,9 @@ class EditableLiteralFieldTest extends SapphireTest $field = new EditableLiteralField; $formField = $field->getFormField(); - $this->assertInstanceOf('CompositeField', $formField, 'Literal field is contained within a composite field'); + $this->assertInstanceOf(CompositeField::class, $formField, 'Literal field is contained within a composite field'); $this->assertInstanceOf( - 'LiteralField', + LiteralField::class, $formField->FieldList()->first(), 'Actual literal field exists in composite field children' ); diff --git a/tests/Model/EditableFormField/SecureEditableFileFieldTest.php b/tests/Model/EditableFormField/SecureEditableFileFieldTest.php index 4bc8194..f479d61 100644 --- a/tests/Model/EditableFormField/SecureEditableFileFieldTest.php +++ b/tests/Model/EditableFormField/SecureEditableFileFieldTest.php @@ -1,5 +1,20 @@ skipTest = true; $this->markTestSkipped(get_class() . ' skipped unless running with securefiles'); } - Config::inst()->update('EditableFileField', 'secure_folder_name', 'SecureEditableFileFieldTest/SecureUploads'); + Config::inst()->update(EditableFileField::class, 'secure_folder_name', 'SecureEditableFileFieldTest/SecureUploads'); $this->clearPath(); } @@ -54,7 +69,7 @@ class SecureEditableFileFieldTest extends SapphireTest */ public function testCreateInsecure() { - Config::inst()->update('EditableFileField', 'disable_security', true); + Config::inst()->update(EditableFileField::class, 'disable_security', true); // Esure folder is created without a folder $field = new EditableFileField(); @@ -73,8 +88,8 @@ class SecureEditableFileFieldTest extends SapphireTest $this->assertEquals('Inherit', $field->Folder()->CanViewType); // Enabling security and re-saving will force this field to be made secure (but not changed) - Config::inst()->update('EditableFileField', 'disable_security', false); - singleton('EditableFileField')->requireDefaultRecords(); + Config::inst()->update(EditableFileField::class, 'disable_security', false); + singleton(EditableFileField::class)->requireDefaultRecords(); // Reload record from DB $field = EditableFileField::get()->byID($field->ID); diff --git a/tests/Model/Recipient/UserDefinedForm_EmailRecipientConditionTest.php b/tests/Model/Recipient/UserDefinedForm_EmailRecipientConditionTest.php index 7c6df3d..5ef9454 100644 --- a/tests/Model/Recipient/UserDefinedForm_EmailRecipientConditionTest.php +++ b/tests/Model/Recipient/UserDefinedForm_EmailRecipientConditionTest.php @@ -1,5 +1,13 @@ objFromFixture($fixtureClass, 'blankTest'); diff --git a/tests/Model/UserDefinedFormControllerTest.php b/tests/Model/UserDefinedFormControllerTest.php index 6f0b325..7c18d59 100644 --- a/tests/Model/UserDefinedFormControllerTest.php +++ b/tests/Model/UserDefinedFormControllerTest.php @@ -1,5 +1,33 @@ get($form->URLSegment); - $field = $this->objFromFixture('EditableTextField', 'basic-text'); + $field = $this->objFromFixture(EditableTextField::class, 'basic-text'); $response = $this->submitForm('UserForm_Form_' . $form->ID, null, array($field->Name => 'Basic Value')); // should have a submitted form field now - $submitted = DataObject::get('SubmittedFormField', "\"Name\" = 'basic-text-name'"); + $submitted = DataObject::get(SubmittedFormField::class, "\"Name\" = 'basic-text-name'"); $this->assertDOSAllMatch(array('Name' => 'basic-text-name', 'Value' => 'Basic Value', 'Title' => 'Basic Text Field'), $submitted); // check emails @@ -124,7 +152,7 @@ class UserDefinedFormControllerTest extends FunctionalTest public function testForm() { - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $controller = new UserDefinedFormControllerTest_Controller($form); @@ -134,7 +162,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $this->assertEquals($controller->Form()->Actions()->Count(), 1); $this->assertEquals(count($controller->Form()->getValidator()->getRequired()), 0); - $requiredForm = $this->objFromFixture('UserDefinedForm', 'validation-form'); + $requiredForm = $this->objFromFixture(UserDefinedForm::class, 'validation-form'); $controller = new UserDefinedFormControllerTest_Controller($requiredForm); $this->assertEquals($controller->Form()->Fields()->Count(), 1); // disabled SecurityID token fields @@ -145,7 +173,7 @@ class UserDefinedFormControllerTest extends FunctionalTest public function testGetFormFields() { // generating the fieldset of fields - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $controller = new UserDefinedFormControllerTest_Controller($form); @@ -156,7 +184,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $this->assertEquals($firstStep->getChildren()->Count(), 1); // custom error message on a form field - $requiredForm = $this->objFromFixture('UserDefinedForm', 'validation-form'); + $requiredForm = $this->objFromFixture(UserDefinedForm::class, 'validation-form'); $controller = new UserDefinedFormControllerTest_Controller($requiredForm); UserDefinedForm::config()->required_identifier = "*"; @@ -180,7 +208,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $this->assertEquals($firstStep->getChildren()->First()->RightTitle(), "Right Title"); // test empty form - $emptyForm = $this->objFromFixture('UserDefinedForm', 'empty-form'); + $emptyForm = $this->objFromFixture(UserDefinedForm::class, 'empty-form'); $controller = new UserDefinedFormControllerTest_Controller($emptyForm); $this->assertFalse($controller->Form()->getFormFields()->exists()); @@ -189,7 +217,7 @@ class UserDefinedFormControllerTest extends FunctionalTest public function testGetFormActions() { // generating the fieldset of actions - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $controller = new UserDefinedFormControllerTest_Controller($form); $actions = $controller->Form()->getFormActions(); @@ -201,7 +229,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $this->assertEquals($actions, $expected); // the custom popup should have a reset button and a custom text - $custom = $this->objFromFixture('UserDefinedForm', 'form-with-reset-and-custom-action'); + $custom = $this->objFromFixture(UserDefinedForm::class, 'form-with-reset-and-custom-action'); $controller = new UserDefinedFormControllerTest_Controller($custom); $actions = $controller->Form()->getFormActions(); @@ -223,7 +251,7 @@ class UserDefinedFormControllerTest extends FunctionalTest // check to see if $Form is replaced to inside the content $index = new ArrayData($controller->index()); - $parser = new CSSContentParser($index->renderWith(array('UserDefinedFormControllerTest'))); + $parser = new CSSContentParser($index->renderWith(array(UserDefinedFormControllerTest::class))); $this->checkTemplateIsCorrect($parser, $form); } @@ -236,7 +264,7 @@ class UserDefinedFormControllerTest extends FunctionalTest // check to see if $Form is replaced to inside the content $index = new ArrayData($controller->index()); - $parser = new CSSContentParser($index->renderWith(array('UserDefinedFormControllerTest'))); + $parser = new CSSContentParser($index->renderWith(array(UserDefinedFormControllerTest::class))); $this->checkTemplateIsCorrect($parser, $form); } @@ -248,7 +276,7 @@ class UserDefinedFormControllerTest extends FunctionalTest */ protected function setupFormFrontend($fixtureName = 'basic-form-page') { - $form = $this->objFromFixture('UserDefinedForm', $fixtureName); + $form = $this->objFromFixture(UserDefinedForm::class, $fixtureName); $this->logInWithPermission('ADMIN'); $form->doPublish(); diff --git a/tests/Model/UserDefinedFormTest.php b/tests/Model/UserDefinedFormTest.php index 9be1ed1..472a172 100644 --- a/tests/Model/UserDefinedFormTest.php +++ b/tests/Model/UserDefinedFormTest.php @@ -1,5 +1,41 @@ logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $form->SubmitButtonText = 'Button Text'; $form->write(); @@ -28,19 +64,19 @@ class UserDefinedFormTest extends FunctionalTest $form->doPublish(); // check published site - $updated = Versioned::get_one_by_stage("UserDefinedForm", "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); + $updated = Versioned::get_one_by_stage(UserDefinedForm::class, "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); $this->assertEquals($updated->SubmitButtonText, 'Updated Button Text'); $form->doRollbackTo($origVersion); - $orignal = Versioned::get_one_by_stage("UserDefinedForm", "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); + $orignal = Versioned::get_one_by_stage(UserDefinedForm::class, "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); $this->assertEquals($orignal->SubmitButtonText, 'Button Text'); } public function testGetCMSFields() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $fields = $form->getCMSFields(); @@ -54,14 +90,14 @@ class UserDefinedFormTest extends FunctionalTest public function testGetCMSFieldsShowInSummary() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'summary-rules-form'); + $form = $this->objFromFixture(UserDefinedForm::class, 'summary-rules-form'); $fields = $form->getCMSFields(); - $this->assertInstanceOf('GridField', $fields->dataFieldByName('Submissions')); + $this->assertInstanceOf(GridField::class, $fields->dataFieldByName('Submissions')); $submissionsgrid = $fields->dataFieldByName('Submissions'); - $gridFieldDataColumns = $submissionsgrid->getConfig()->getComponentByType('GridFieldDataColumns'); + $gridFieldDataColumns = $submissionsgrid->getConfig()->getComponentByType(GridFieldDataColumns::class); $summaryFields = $gridFieldDataColumns->getDisplayFields($submissionsgrid); @@ -74,7 +110,7 @@ class UserDefinedFormTest extends FunctionalTest { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $popup = new UserDefinedForm_EmailRecipient(); $popup->FormID = $form->ID; @@ -89,16 +125,16 @@ class UserDefinedFormTest extends FunctionalTest $this->assertTrue($fields->dataFieldByName('EmailBody') !== null); // add an email field, it should now add a or from X address picker - $email = $this->objFromFixture('EditableEmailField', 'email-field'); + $email = $this->objFromFixture(EditableEmailField::class, 'email-field'); $form->Fields()->add($email); $popup->write(); $fields = $popup->getCMSFields(); - $this->assertThat($fields->dataFieldByName('SendEmailToFieldID'), $this->isInstanceOf('DropdownField')); + $this->assertThat($fields->dataFieldByName('SendEmailToFieldID'), $this->isInstanceOf(DropdownField::class)); // if the front end has checkboxs or dropdown they can select from that can also be used to send things - $dropdown = $this->objFromFixture('EditableDropdown', 'department-dropdown'); + $dropdown = $this->objFromFixture(EditableDropdown::class, 'department-dropdown'); $form->Fields()->add($dropdown); $fields = $popup->getCMSFields(); @@ -157,7 +193,7 @@ class UserDefinedFormTest extends FunctionalTest public function testCanEditAndDeleteRecipient() { - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $this->logInWithPermission('ADMIN'); foreach ($form->EmailRecipients() as $recipient) { @@ -179,30 +215,30 @@ class UserDefinedFormTest extends FunctionalTest { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $form->write(); $form->doPublish(); - $live = Versioned::get_one_by_stage("UserDefinedForm", "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); + $live = Versioned::get_one_by_stage(UserDefinedForm::class, "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); $this->assertNotNull($live); $this->assertEquals(2, $live->Fields()->Count()); // one page and one field - $dropdown = $this->objFromFixture('EditableDropdown', 'basic-dropdown'); + $dropdown = $this->objFromFixture(EditableDropdown::class, 'basic-dropdown'); $form->Fields()->add($dropdown); - $stage = Versioned::get_one_by_stage("UserDefinedForm", "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); + $stage = Versioned::get_one_by_stage(UserDefinedForm::class, "Stage", "\"UserDefinedForm\".\"ID\" = $form->ID"); $this->assertEquals(3, $stage->Fields()->Count()); // should not have published the dropdown - $liveDropdown = Versioned::get_one_by_stage("EditableFormField", "Live", "\"EditableFormField_Live\".\"ID\" = $dropdown->ID"); + $liveDropdown = Versioned::get_one_by_stage(EditableFormField::class, "Live", "\"EditableFormField_Live\".\"ID\" = $dropdown->ID"); $this->assertNull($liveDropdown); // when publishing it should have added it $form->doPublish(); - $live = Versioned::get_one_by_stage("UserDefinedForm", "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); + $live = Versioned::get_one_by_stage(UserDefinedForm::class, "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); $this->assertEquals(3, $live->Fields()->Count()); // edit the title @@ -210,12 +246,12 @@ class UserDefinedFormTest extends FunctionalTest $text->Title = 'Edited title'; $text->write(); - $liveText = Versioned::get_one_by_stage("EditableFormField", "Live", "\"EditableFormField_Live\".\"ID\" = $text->ID"); + $liveText = Versioned::get_one_by_stage(EditableFormField::class, "Live", "\"EditableFormField_Live\".\"ID\" = $text->ID"); $this->assertFalse($liveText->Title == $text->Title); $form->doPublish(); - $liveText = Versioned::get_one_by_stage("EditableFormField", "Live", "\"EditableFormField_Live\".\"ID\" = $text->ID"); + $liveText = Versioned::get_one_by_stage(EditableFormField::class, "Live", "\"EditableFormField_Live\".\"ID\" = $text->ID"); $this->assertTrue($liveText->Title == $text->Title); // Add a display rule to the dropdown @@ -226,37 +262,37 @@ class UserDefinedFormTest extends FunctionalTest $ruleID = $displayRule->ID; // Not live - $liveRule = Versioned::get_one_by_stage("EditableCustomRule", "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); + $liveRule = Versioned::get_one_by_stage(EditableCustomRule::class, "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); $this->assertEmpty($liveRule); // Publish form, it's now live $form->doPublish(); - $liveRule = Versioned::get_one_by_stage("EditableCustomRule", "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); + $liveRule = Versioned::get_one_by_stage(EditableCustomRule::class, "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); $this->assertNotEmpty($liveRule); // Remove rule $displayRule->delete(); // Live rule still exists - $liveRule = Versioned::get_one_by_stage("EditableCustomRule", "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); + $liveRule = Versioned::get_one_by_stage(EditableCustomRule::class, "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); $this->assertNotEmpty($liveRule); // Publish form, it should remove this rule $form->doPublish(); - $liveRule = Versioned::get_one_by_stage("EditableCustomRule", "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); + $liveRule = Versioned::get_one_by_stage(EditableCustomRule::class, "Live", "\"EditableCustomRule_Live\".\"ID\" = $ruleID"); $this->assertEmpty($liveRule); } public function testUnpublishing() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $form->write(); $this->assertEquals(0, DB::query("SELECT COUNT(*) FROM \"EditableFormField_Live\"")->value()); $form->doPublish(); // assert that it exists and has a field - $live = Versioned::get_one_by_stage("UserDefinedForm", "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); + $live = Versioned::get_one_by_stage(UserDefinedForm::class, "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID"); $this->assertTrue(isset($live)); $this->assertEquals(2, DB::query("SELECT COUNT(*) FROM \"EditableFormField_Live\"")->value()); @@ -264,14 +300,14 @@ class UserDefinedFormTest extends FunctionalTest // unpublish $form->doUnpublish(); - $this->assertNull(Versioned::get_one_by_stage("UserDefinedForm", "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID")); + $this->assertNull(Versioned::get_one_by_stage(UserDefinedForm::class, "Live", "\"UserDefinedForm_Live\".\"ID\" = $form->ID")); $this->assertEquals(0, DB::query("SELECT COUNT(*) FROM \"EditableFormField_Live\"")->value()); } public function testDoRevertToLive() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $field = $form->Fields()->First(); $field->Title = 'Title'; @@ -283,14 +319,14 @@ class UserDefinedFormTest extends FunctionalTest $field->write(); // check that the published version is not updated - $live = Versioned::get_one_by_stage("EditableFormField", "Live", "\"EditableFormField_Live\".\"ID\" = $field->ID"); + $live = Versioned::get_one_by_stage(EditableFormField::class, "Live", "\"EditableFormField_Live\".\"ID\" = $field->ID"); $this->assertEquals('Title', $live->Title); // revert back to the live data $form->doRevertToLive(); $form->flushCache(); - $check = Versioned::get_one_by_stage("EditableFormField", "Stage", "\"EditableFormField\".\"ID\" = $field->ID"); + $check = Versioned::get_one_by_stage(EditableFormField::class, "Stage", "\"EditableFormField\".\"ID\" = $field->ID"); $this->assertEquals('Title', $check->Title); } @@ -298,7 +334,7 @@ class UserDefinedFormTest extends FunctionalTest public function testDuplicatingForm() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $duplicate = $form->duplicate(); @@ -309,25 +345,25 @@ class UserDefinedFormTest extends FunctionalTest $this->assertEquals($form->Fields()->First()->Title, $duplicate->Fields()->First()->Title); // Test duplicate with group - $form2 = $this->objFromFixture('UserDefinedForm', 'page-with-group'); + $form2 = $this->objFromFixture(UserDefinedForm::class, 'page-with-group'); $form2Validator = new UserFormValidator(); - $form2Validator->setForm(new Form(new Controller(), 'Form', new FieldList(), new FieldList())); + $form2Validator->setForm(new Form(new Controller(), Form::class, new FieldList(), new FieldList())); $this->assertTrue($form2Validator->php($form2->toMap())); // Check field groups exist - $form2GroupStart = $form2->Fields()->filter('ClassName', 'EditableFieldGroup')->first(); - $form2GroupEnd = $form2->Fields()->filter('ClassName', 'EditableFieldGroupEnd')->first(); + $form2GroupStart = $form2->Fields()->filter('ClassName', EditableFieldGroup::class)->first(); + $form2GroupEnd = $form2->Fields()->filter('ClassName', EditableFieldGroupEnd::class)->first(); $this->assertEquals($form2GroupEnd->ID, $form2GroupStart->EndID); // Duplicate this $form3 = $form2->duplicate(); $form3Validator = new UserFormValidator(); - $form3Validator->setForm(new Form(new Controller(), 'Form', new FieldList(), new FieldList())); + $form3Validator->setForm(new Form(new Controller(), Form::class, new FieldList(), new FieldList())); $this->assertTrue($form3Validator->php($form3->toMap())); // Check field groups exist - $form3GroupStart = $form3->Fields()->filter('ClassName', 'EditableFieldGroup')->first(); - $form3GroupEnd = $form3->Fields()->filter('ClassName', 'EditableFieldGroupEnd')->first(); + $form3GroupStart = $form3->Fields()->filter('ClassName', EditableFieldGroup::class)->first(); + $form3GroupEnd = $form3->Fields()->filter('ClassName', EditableFieldGroupEnd::class)->first(); $this->assertEquals($form3GroupEnd->ID, $form3GroupStart->EndID); $this->assertNotEquals($form2GroupEnd->ID, $form3GroupStart->EndID); } @@ -335,7 +371,7 @@ class UserDefinedFormTest extends FunctionalTest public function testFormOptions() { $this->logInWithPermission('ADMIN'); - $form = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $fields = $form->getFormOptions(); $submit = $fields->fieldByName('SubmitButtonText'); @@ -348,7 +384,7 @@ class UserDefinedFormTest extends FunctionalTest public function testEmailRecipientFilters() { /** @var UserDefinedForm $form */ - $form = $this->objFromFixture('UserDefinedForm', 'filtered-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'filtered-form-page'); // Check unfiltered recipients $result0 = $form @@ -442,7 +478,7 @@ class UserDefinedFormTest extends FunctionalTest public function testIndex() { // Test that the $UserDefinedForm is stripped out - $page = $this->objFromFixture('UserDefinedForm', 'basic-form-page'); + $page = $this->objFromFixture(UserDefinedForm::class, 'basic-form-page'); $page->publish('Stage', 'Live'); $result = $this->get($page->Link()); @@ -461,7 +497,7 @@ class UserDefinedFormTest extends FunctionalTest $this->logInWithPermission('ADMIN'); // test invalid email addresses fail validation - $recipient = $this->objFromFixture('UserDefinedForm_EmailRecipient', + $recipient = $this->objFromFixture(UserDefinedForm_EmailRecipient::class, 'invalid-recipient-list'); $result = $recipient->validate(); $this->assertFalse($result->valid()); @@ -469,7 +505,7 @@ class UserDefinedFormTest extends FunctionalTest $this->assertNotContains('filtered2@example.com', $result->message()); // test valid email addresses pass validation - $recipient = $this->objFromFixture('UserDefinedForm_EmailRecipient', + $recipient = $this->objFromFixture(UserDefinedForm_EmailRecipient::class, 'valid-recipient-list'); $result = $recipient->validate(); $this->assertTrue($result->valid()); diff --git a/tests/Task/UserFormsUpgradeServiceTest.php b/tests/Task/UserFormsUpgradeServiceTest.php index ba3ee78..cce0000 100644 --- a/tests/Task/UserFormsUpgradeServiceTest.php +++ b/tests/Task/UserFormsUpgradeServiceTest.php @@ -1,5 +1,26 @@ update('UserDefinedForm', 'upgrade_on_build', false); + Config::inst()->update(UserDefinedForm::class, 'upgrade_on_build', false); parent::setUp(); // Assign rules programatically - $field1 = $this->objFromFixture('EditableTextField', 'text1'); - $field2 = $this->objFromFixture('EditableTextField', 'text2'); - $field3 = $this->objFromFixture('EditableTextField', 'text3'); + $field1 = $this->objFromFixture(EditableTextField::class, 'text1'); + $field2 = $this->objFromFixture(EditableTextField::class, 'text2'); + $field3 = $this->objFromFixture(EditableTextField::class, 'text3'); $field3->CustomRules = serialize(array( array( @@ -32,7 +53,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest $field3->write(); // Assign settings programatically - $field4 = $this->objFromFixture('EditableTextField', 'text4'); + $field4 = $this->objFromFixture(EditableTextField::class, 'text4'); $field4->CustomSettings = serialize(array( 'MinLength' => 20, 'MaxLength' => 100, @@ -44,7 +65,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest )); $field4->write(); - $numeric1 = $this->objFromFixture('EditableNumericField', 'numeric1'); + $numeric1 = $this->objFromFixture(EditableNumericField::class, 'numeric1'); $numeric1->CustomSettings = serialize(array( 'RightTitle' => 'Number of %', 'Default' => 1, @@ -54,8 +75,8 @@ class UserFormsUpgradeServiceTest extends SapphireTest )); $numeric1->write(); - $group1 = $this->objFromFixture('Group', 'group1'); - $members1 = $this->objFromFixture('EditableMemberListField', 'members1'); + $group1 = $this->objFromFixture(Group::class, 'group1'); + $members1 = $this->objFromFixture(EditableMemberListField::class, 'members1'); $members1->CustomSettings = serialize(array( 'RightTitle' => 'Select group', 'GroupID' => $group1->ID, @@ -63,7 +84,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest )); $members1->write(); - $literal1 = $this->objFromFixture('EditableLiteralField', 'literal1'); + $literal1 = $this->objFromFixture(EditableLiteralField::class, 'literal1'); $literal1->CustomSettings = serialize(array( 'HideFromReports' => 1, 'RightTitle' => 'Literal', @@ -72,7 +93,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest )); $literal1->write(); - $heading1 = $this->objFromFixture('EditableFormHeading', 'heading1'); + $heading1 = $this->objFromFixture(EditableFormHeading::class, 'heading1'); $heading1->CustomSettings = serialize(array( 'RightTitle' => 'Right', 'Level' => 3, @@ -81,22 +102,22 @@ class UserFormsUpgradeServiceTest extends SapphireTest )); $heading1->write(); - $folder = $this->objFromFixture('Folder', 'folder1'); - $file1 = $this->objFromFixture('EditableFileField', 'file1'); + $folder = $this->objFromFixture(Folder::class, 'folder1'); + $file1 = $this->objFromFixture(EditableFileField::class, 'file1'); $file1->CustomSettings = serialize(array( 'RightTitle' => 'File field', 'Folder' => $folder->ID )); $file1->write(); - $date1 = $this->objFromFixture('EditableDateField', 'date1'); + $date1 = $this->objFromFixture(EditableDateField::class, 'date1'); $date1->CustomSettings = serialize(array( 'RightTitle' => 'Date field', 'DefaultToToday' => '1' )); $date1->write(); - $checkbox1 = $this->objFromFixture('EditableCheckbox', 'checkbox1'); + $checkbox1 = $this->objFromFixture(EditableCheckbox::class, 'checkbox1'); $checkbox1->CustomSettings = serialize(array( 'Default' => true, 'RightTitle' => 'Check this' @@ -109,7 +130,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest */ protected function getService() { - return singleton('UserFormsUpgradeService'); + return singleton(UserFormsUpgradeService::class); } /** @@ -121,9 +142,9 @@ class UserFormsUpgradeServiceTest extends SapphireTest $service->setQuiet(true); $service->run(); - $field1 = $this->objFromFixture('EditableTextField', 'text1'); - $field2 = $this->objFromFixture('EditableTextField', 'text2'); - $field3 = $this->objFromFixture('EditableTextField', 'text3'); + $field1 = $this->objFromFixture(EditableTextField::class, 'text1'); + $field2 = $this->objFromFixture(EditableTextField::class, 'text2'); + $field3 = $this->objFromFixture(EditableTextField::class, 'text3'); $this->assertDOSEquals(array( array( @@ -149,13 +170,13 @@ class UserFormsUpgradeServiceTest extends SapphireTest $service->setQuiet(true); $service->run(); - $group1 = $this->objFromFixture('Group', 'group1'); - $form = $this->objFromFixture('UserDefinedForm', 'form-with-settings'); - $folder = $this->objFromFixture('Folder', 'folder1'); + $group1 = $this->objFromFixture(Group::class, 'group1'); + $form = $this->objFromFixture(UserDefinedForm::class, 'form-with-settings'); + $folder = $this->objFromFixture(Folder::class, 'folder1'); $this->assertDOSEquals(array( array( - 'ClassName' => 'EditableTextField', + 'ClassName' => EditableTextField::class, 'Title' => 'Text with rule', 'MinLength' => 20, 'MaxLength' => 100, @@ -166,7 +187,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest 'Default' => 'Enter your text here', ), array( - 'ClassName' => 'EditableNumericField', + 'ClassName' => EditableNumericField::class, 'Title' => 'Numeric 1', 'RightTitle' => 'Number of %', 'Default' => 1, @@ -175,14 +196,14 @@ class UserFormsUpgradeServiceTest extends SapphireTest 'ShowOnLoad' => true, ), array( - 'ClassName' => 'EditableMemberListField', + 'ClassName' => EditableMemberListField::class, 'Title' => 'Members 1', 'RightTitle' => 'Select group', 'GroupID' => $group1->ID, 'ShowOnLoad' => false, ), array( - 'ClassName' => 'EditableLiteralField', + 'ClassName' => EditableLiteralField::class, 'Title' => 'Literal 1', 'HideFromReports' => true, 'RightTitle' => 'Literal', @@ -190,7 +211,7 @@ class UserFormsUpgradeServiceTest extends SapphireTest 'ShowOnLoad' => true, ), array( - 'ClassName' => 'EditableFormHeading', + 'ClassName' => EditableFormHeading::class, 'Title' => 'Heading 1', 'RightTitle' => 'Right', 'Level' => 3, @@ -198,19 +219,19 @@ class UserFormsUpgradeServiceTest extends SapphireTest 'ShowOnLoad' => false, ), array( - 'ClassName' => 'EditableFileField', + 'ClassName' => EditableFileField::class, 'Title' => 'File 1', 'RightTitle' => 'File field', 'FolderID' => $folder->ID, ), array( - 'ClassName' => 'EditableDateField', + 'ClassName' => EditableDateField::class, 'Title' => 'Date 1', 'RightTitle' => 'Date field', 'DefaultToToday' => true, ), array( - 'ClassName' => 'EditableCheckbox', + 'ClassName' => EditableCheckbox::class, 'Title' => 'Checkbox 1', 'CheckedDefault' => true, 'RightTitle' => 'Check this', diff --git a/tests/Task/UserFormsVersionedTaskTest.php b/tests/Task/UserFormsVersionedTaskTest.php index 3c9f1a5..b0e1d75 100644 --- a/tests/Task/UserFormsVersionedTaskTest.php +++ b/tests/Task/UserFormsVersionedTaskTest.php @@ -1,5 +1,18 @@ objFromFixture('UserDefinedForm', 'filtered-form-page'); + $form = $this->objFromFixture(UserDefinedForm::class, 'filtered-form-page'); // Get id of options - $optionID = $this->idFromFixture('EditableOption', 'option-3'); - $this->assertEmpty(Versioned::get_one_by_stage('EditableOption', 'Live', array('"ID" = ?' => $optionID))); + $optionID = $this->idFromFixture(EditableOption::class, 'option-3'); + $this->assertEmpty(Versioned::get_one_by_stage(EditableOption::class, 'Live', array('"ID" = ?' => $optionID))); // Publishing writes this to live $form->doPublish(); - $liveVersion = Versioned::get_versionnumber_by_stage('EditableOption', 'Live', $optionID, false); + $liveVersion = Versioned::get_versionnumber_by_stage(EditableOption::class, 'Live', $optionID, false); $this->assertNotEmpty($liveVersion); // Add new option, and repeat publish process /** @var EditableCheckboxGroupField $list */ - $list = $this->objFromFixture('EditableCheckboxGroupField', 'checkbox-group'); + $list = $this->objFromFixture(EditableCheckboxGroupField::class, 'checkbox-group'); $newOption = new EditableOption(); $newOption->Title = 'New option'; $newOption->Value = 'ok'; @@ -38,12 +51,12 @@ class UserFormsVersionedTaskTest extends SapphireTest $form->doPublish(); // Un-modified option should not create a new version - $newLiveVersion = Versioned::get_versionnumber_by_stage('EditableOption', 'Live', $optionID, false); + $newLiveVersion = Versioned::get_versionnumber_by_stage(EditableOption::class, 'Live', $optionID, false); $this->assertNotEmpty($newLiveVersion); $this->assertEquals($liveVersion, $newLiveVersion); // New option is successfully published - $newOptionLiveVersion = Versioned::get_versionnumber_by_stage('EditableOption', 'Live', $newOptionID, false); + $newOptionLiveVersion = Versioned::get_versionnumber_by_stage(EditableOption::class, 'Live', $newOptionID, false); $this->assertNotEmpty($newOptionLiveVersion); } }