From 5af348894a2b70646cd4052bfc2a1a538111761e Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Mon, 14 Aug 2017 09:26:53 +1200 Subject: [PATCH] FIX Update core API changes, implement last of namespacing in test classes, PSR-4 autoloader --- _config/routes.yml | 2 +- .../UserFormFieldEditorExtension.php | 27 +++++++----- code/Form/GridFieldAddClassesButton.php | 1 - code/Form/UserForm.php | 24 ++++++----- code/Model/EditableFormField.php | 9 ++-- .../EditableCountryDropdownField.php | 4 +- .../EditableFormField/EditableFileField.php | 2 +- .../EditableLiteralField.php | 2 +- code/Model/Recipient/EmailRecipient.php | 13 +++--- code/Model/UserDefinedForm.php | 41 ++++++++----------- code/Model/UserDefinedFormController.php | 37 +++++++++++------ composer.json | 6 +++ tests/Form/UserFormTest.php | 2 +- .../EditableLiteralFieldTest.php | 8 ++-- tests/Model/EditableFormFieldTest.yml | 4 +- .../Recipient/EmailRecipientConditionTest.yml | 2 +- tests/Model/UserDefinedFormControllerTest.php | 8 ++-- tests/Model/UserDefinedFormTest.yml | 2 +- .../Model}/UserDefinedFormControllerTest.ss | 0 19 files changed, 112 insertions(+), 82 deletions(-) rename tests/templates/{ => SilverStripe/UserForms/Test/Model}/UserDefinedFormControllerTest.ss (100%) diff --git a/_config/routes.yml b/_config/routes.yml index 607be8b..20e7ff7 100644 --- a/_config/routes.yml +++ b/_config/routes.yml @@ -4,4 +4,4 @@ After: framework/routes#coreroutes --- SilverStripe\Control\Director: rules: - UserDefinedForm_Controller//$Action: UserDefinedForm_Controller + UserDefinedFormController//$Action: SilverStripe\UserForms\Model\UserDefinedFormController diff --git a/code/Extension/UserFormFieldEditorExtension.php b/code/Extension/UserFormFieldEditorExtension.php index de0205c..96bb80e 100644 --- a/code/Extension/UserFormFieldEditorExtension.php +++ b/code/Extension/UserFormFieldEditorExtension.php @@ -2,6 +2,7 @@ namespace SilverStripe\UserForms\Extension; +use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Tab; use SilverStripe\Forms\GridField\GridField; @@ -28,7 +29,6 @@ use Symbiote\GridFieldExtensions\GridFieldOrderableRows; */ class UserFormFieldEditorExtension extends DataExtension { - /** * @var array */ @@ -58,7 +58,8 @@ class UserFormFieldEditorExtension extends DataExtension */ public function getFieldEditorGrid() { - Requirements::javascript(USERFORMS_DIR . '/javascript/FieldEditor.js'); + $module = ModuleLoader::getModule('silverstripe/userforms'); + Requirements::javascript($module->getRelativeResourcePath('javascript/FieldEditor.js')); $fields = $this->owner->Fields(); @@ -66,7 +67,7 @@ class UserFormFieldEditorExtension extends DataExtension $editableColumns = new GridFieldEditableColumns(); $fieldClasses = singleton(EditableFormField::class)->getEditableFieldClasses(); - $editableColumns->setDisplayFields(array( + $editableColumns->setDisplayFields([ 'ClassName' => function ($record, $column, $grid) use ($fieldClasses) { if ($record instanceof EditableFormField) { return $record->getInlineClassnameField($column, $fieldClasses); @@ -77,18 +78,18 @@ class UserFormFieldEditorExtension extends DataExtension return $record->getInlineTitleField($column); } } - )); + ]); $config = GridFieldConfig::create() ->addComponents( $editableColumns, new GridFieldButtonRow(), - GridFieldAddClassesButton::create(EditableTextField::class) + (new GridFieldAddClassesButton(EditableTextField::class)) ->setButtonName(_t(__CLASS__.'.ADD_FIELD', 'Add Field')) ->setButtonClass('ss-ui-action-constructive'), - GridFieldAddClassesButton::create(EditableFormStep::class) + (new GridFieldAddClassesButton(EditableFormStep::class)) ->setButtonName(_t(__CLASS__.'.ADD_PAGE_BREAK', 'Add Page Break')), - GridFieldAddClassesButton::create(array(EditableFieldGroup::class, EditableFieldGroupEnd::class)) + (new GridFieldAddClassesButton([EditableFieldGroup::class, EditableFieldGroupEnd::class])) ->setButtonName(_t(__CLASS__.'.ADD_FIELD_GROUP', 'Add Field Group')), new GridFieldEditButton(), new GridFieldDeleteAction(), @@ -165,6 +166,10 @@ class UserFormFieldEditorExtension extends DataExtension */ public function onAfterPublish($original) { + if (!$original) { + return; + } + // store IDs of fields we've published $seenIDs = array(); @@ -177,14 +182,14 @@ class UserFormFieldEditorExtension extends DataExtension // fetch any orphaned live records $live = Versioned::get_by_stage(EditableFormField::class, "Live") - ->filter(array( + ->filter([ 'ParentID' => $original->ID, - )); + ]); if (!empty($seenIDs)) { - $live = $live->exclude(array( + $live = $live->exclude([ 'ID' => $seenIDs, - )); + ]); } // delete orphaned records diff --git a/code/Form/GridFieldAddClassesButton.php b/code/Form/GridFieldAddClassesButton.php index dc06b0f..f8028c9 100644 --- a/code/Form/GridFieldAddClassesButton.php +++ b/code/Form/GridFieldAddClassesButton.php @@ -48,7 +48,6 @@ class GridFieldAddClassesButton implements GridField_HTMLProvider, GridField_Act */ public function __construct($classes, $targetFragment = 'buttons-before-left') { - parent::__construct(); $this->setClasses($classes); $this->setFragment($targetFragment); } diff --git a/code/Form/UserForm.php b/code/Form/UserForm.php index ed2e9a6..2d15c2a 100644 --- a/code/Form/UserForm.php +++ b/code/Form/UserForm.php @@ -40,7 +40,7 @@ class UserForm extends Form $this->setValidator($this->getRequiredFields()); // This needs to be re-evaluated since fields have been assigned - $this->setupFormErrors(); + $this->restoreFormState(); // Number each page $stepNumber = 1; @@ -52,7 +52,7 @@ class UserForm extends Form $this->disableSecurityToken(); } - $data = Session::get("FormInfo.{$this->FormName()}.data"); + $data = $this->getRequest()->getSession()->get("FormInfo.{$this->FormName()}.data"); if (is_array($data)) { $this->loadDataFrom($data); @@ -61,11 +61,11 @@ class UserForm extends Form $this->extend('updateForm'); } - public function setupFormErrors() + public function restoreFormState() { - // Suppress setupFormErrors if fields haven't been bootstrapped + // Suppress restoreFormState if fields haven't been bootstrapped if ($this->fields && $this->fields->exists()) { - return parent::setupFormErrors(); + return parent::restoreFormState(); } return $this; @@ -134,15 +134,17 @@ class UserForm extends Form */ public function getFormActions() { - $submitText = ($this->controller->SubmitButtonText) ? $this->controller->SubmitButtonText : _t('SilverStripe\\UserForms\\Model\\UserDefinedForm.SUBMITBUTTON', 'Submit'); - $clearText = ($this->controller->ClearButtonText) ? $this->controller->ClearButtonText : _t('SilverStripe\\UserForms\\Model\\UserDefinedForm.CLEARBUTTON', 'Clear'); + $submitText = ($this->controller->SubmitButtonText) + ? $this->controller->SubmitButtonText + : _t('SilverStripe\\UserForms\\Model\\UserDefinedForm.SUBMITBUTTON', 'Submit'); + $clearText = ($this->controller->ClearButtonText) + ? $this->controller->ClearButtonText + : _t('SilverStripe\\UserForms\\Model\\UserDefinedForm.CLEARBUTTON', 'Clear'); - $actions = new FieldList( - new FormAction("process", $submitText) - ); + $actions = FieldList::create(FormAction::create('process', $submitText)); if ($this->controller->ShowClearButton) { - $actions->push(new ResetFormAction("clearForm", $clearText)); + $actions->push(FormAction::create('clearForm', $clearText)->setAttribute('type', 'reset')); } $this->extend('updateFormActions', $actions); diff --git a/code/Model/EditableFormField.php b/code/Model/EditableFormField.php index f1f2db6..5a51463 100755 --- a/code/Model/EditableFormField.php +++ b/code/Model/EditableFormField.php @@ -8,6 +8,7 @@ use SilverStripe\Control\Controller; use SilverStripe\Core\ClassInfo; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Convert; +use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Dev\Deprecation; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\DropdownField; @@ -422,8 +423,9 @@ class EditableFormField extends DataObject protected function generateName() { do { - // Generate a new random name after this class - $class = get_class($this); + // Generate a new random name after this class (handles namespaces) + $classNamePieces = explode('\\', __CLASS__); + $class = array_pop($classNamePieces); $entropy = substr(sha1(uniqid()), 0, 5); $name = "{$class}_{$entropy}"; @@ -730,7 +732,8 @@ class EditableFormField extends DataObject */ public function getIcon() { - return USERFORMS_DIR . '/images/' . strtolower($this->class) . '.png'; + return ModuleLoader::getModule('silverstripe/userforms') + ->getRelativeResourcePath('images/' . strtolower($this->class) . '.png'); } /** diff --git a/code/Model/EditableFormField/EditableCountryDropdownField.php b/code/Model/EditableFormField/EditableCountryDropdownField.php index ba2451f..36f6a85 100644 --- a/code/Model/EditableFormField/EditableCountryDropdownField.php +++ b/code/Model/EditableFormField/EditableCountryDropdownField.php @@ -2,6 +2,7 @@ namespace SilverStripe\UserForms\Model\EditableFormField; +use SilverStripe\Core\Manifest\ModuleLoader; use CountryDropdownField; // @todo use SilverStripe\UserForms\Model\EditableCustomRule; use SilverStripe\UserForms\Model\EditableFormField; @@ -52,7 +53,8 @@ class EditableCountryDropdownField extends EditableFormField public function getIcon() { - return USERFORMS_DIR . '/images/editabledropdown.png'; + return ModuleLoader::getModule('silverstripe/userforms') + ->getRelativeResourcePath('images/editabledropdown.png'); } public function getSelectorField(EditableCustomRule $rule, $forOnLoad = false) diff --git a/code/Model/EditableFormField/EditableFileField.php b/code/Model/EditableFormField/EditableFileField.php index a3f65da..fcecbd5 100755 --- a/code/Model/EditableFormField/EditableFileField.php +++ b/code/Model/EditableFormField/EditableFileField.php @@ -89,7 +89,7 @@ class EditableFileField extends EditableFormField $max = static::get_php_max_file_size(); if ($this->MaxFileSizeMB * 1024 > $max) { - $result->error("Your max file size limit can't be larger than the server's limit of {$this->getPHPMaxFileSizeMB()}."); + $result->addError("Your max file size limit can't be larger than the server's limit of {$this->getPHPMaxFileSizeMB()}."); } return $result; diff --git a/code/Model/EditableFormField/EditableLiteralField.php b/code/Model/EditableFormField/EditableLiteralField.php index 3515648..7005239 100644 --- a/code/Model/EditableFormField/EditableLiteralField.php +++ b/code/Model/EditableFormField/EditableLiteralField.php @@ -144,7 +144,7 @@ class EditableLiteralField extends EditableFormField $field = CompositeField::create($content) ->setName($this->Name) - ->setID($this->Name) + // ->setID($this->Name) // @todo ->setFieldHolderTemplate('UserFormsLiteralField_holder'); $this->doUpdateFormField($field); diff --git a/code/Model/Recipient/EmailRecipient.php b/code/Model/Recipient/EmailRecipient.php index 4f3522d..02d4bcb 100644 --- a/code/Model/Recipient/EmailRecipient.php +++ b/code/Model/Recipient/EmailRecipient.php @@ -8,6 +8,7 @@ use SilverStripe\CMS\Controllers\CMSPageEditController; use SilverStripe\Control\Controller; use SilverStripe\Control\Email\Email; use SilverStripe\Control\Session; +use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldGroup; @@ -164,7 +165,9 @@ class EmailRecipient extends DataObject */ public function getCMSFields() { - Requirements::javascript(USERFORMS_DIR . '/javascript/Recipient.js'); + Requirements::javascript( + ModuleLoader::getModule('silverstripe/userforms')->getRelativeResourcePath('javascript/Recipient.js') + ); // Determine optional field values $form = $this->getFormParent(); @@ -281,7 +284,7 @@ class EmailRecipient extends DataObject )) ]); - $fields->fieldByName('Root.EmailDetails')->setTitle(_t(__CLASS.'.EMAILDETAILSTAB', 'Email Details')); + $fields->fieldByName('Root.EmailDetails')->setTitle(_t(__CLASS__.'.EMAILDETAILSTAB', 'Email Details')); // Only show the preview link if the recipient has been saved. if (!empty($this->EmailTemplate)) { @@ -338,7 +341,7 @@ class EmailRecipient extends DataObject LiteralField::create('EmailPreview', $preview) )); - $fields->fieldByName('Root.EmailContent')->setTitle(_t(__CLASS.'.EMAILCONTENTTAB', 'Email Content')); + $fields->fieldByName('Root.EmailContent')->setTitle(_t(__CLASS__.'.EMAILCONTENTTAB', 'Email Content')); // Custom rules for sending this field $grid = GridField::create( @@ -363,7 +366,7 @@ class EmailRecipient extends DataObject $grid ]); - $fields->fieldByName('Root.CustomRules')->setTitle(_t(__CLASS.'.CUSTOMRULESTAB', 'Custom Rules')); + $fields->fieldByName('Root.CustomRules')->setTitle(_t(__CLASS__.'.CUSTOMRULESTAB', 'Custom Rules')); $this->extend('updateCMSFields', $fields); return $fields; @@ -542,7 +545,7 @@ class EmailRecipient extends DataObject $trimAddress = trim($address); if ($trimAddress && !Email::is_valid_address($trimAddress)) { $error = _t( - __CLASS.".$translation", + __CLASS__.".$translation", "Invalid email address $trimAddress" ); $result->error($error . " ($trimAddress)"); diff --git a/code/Model/UserDefinedForm.php b/code/Model/UserDefinedForm.php index 3c7b613..d0c9b6c 100755 --- a/code/Model/UserDefinedForm.php +++ b/code/Model/UserDefinedForm.php @@ -5,6 +5,7 @@ namespace SilverStripe\UserForms\Model; use Page; use Colymba\BulkManager\BulkManager; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\CompositeField; use SilverStripe\Forms\FieldList; @@ -171,7 +172,9 @@ class UserDefinedForm extends Page */ public function getCMSFields() { - Requirements::css(USERFORMS_DIR . '/css/UserForm_cms.css'); + Requirements::css( + ModuleLoader::getModule('silverstripe/userforms')->getRelativeResourcePath('css/UserForms_cms.css') + ); $this->beforeUpdateCMSFields(function ($fields) { // define tabs @@ -181,8 +184,15 @@ class UserDefinedForm extends Page // text to show on complete $onCompleteFieldSet = CompositeField::create( - $label = LabelField::create('OnCompleteMessageLabel', _t(__CLASS__.'.ONCOMPLETELABEL', 'Show on completion')), - $editor = HTMLEditorField::create('OnCompleteMessage', '', _t(__CLASS__.'.ONCOMPLETEMESSAGE', $self->OnCompleteMessage)) + $label = LabelField::create( + 'OnCompleteMessageLabel', + _t(__CLASS__.'.ONCOMPLETELABEL', 'Show on completion') + ), + $editor = HTMLEditorField::create( + 'OnCompleteMessage', + '', + _t(__CLASS__.'.ONCOMPLETEMESSAGE', $this->OnCompleteMessage) + ) ); $onCompleteFieldSet->addExtraClass('field'); @@ -201,7 +211,7 @@ class UserDefinedForm extends Page $emailRecipients = GridField::create( 'EmailRecipients', _t(__CLASS__.'.EMAILRECIPIENTS', 'Email Recipients'), - $self->EmailRecipients(), + $this->EmailRecipients(), $emailRecipientsConfig ); $emailRecipients @@ -211,12 +221,12 @@ class UserDefinedForm extends Page $fields->addFieldsToTab('Root.FormOptions', $onCompleteFieldSet); $fields->addFieldToTab('Root.Recipients', $emailRecipients); - $fields->addFieldsToTab('Root.FormOptions', $self->getFormOptions()); + $fields->addFieldsToTab('Root.FormOptions', $this->getFormOptions()); // view the submissions // make sure a numeric not a empty string is checked against this int column for SQL server - $parentID = (!empty($self->ID)) ? (int) $self->ID : 0; + $parentID = (!empty($this->ID)) ? (int) $this->ID : 0; // get a list of all field names and values used for print and export CSV views of the GridField below. $columnSQL = <<Submissions()->sort('Created', 'DESC'), + $this->Submissions()->sort('Created', 'DESC'), $config ); $fields->addFieldToTab('Root.Submissions', $submissions); @@ -377,23 +387,6 @@ SQL; return $this->config()->get('error_container_id'); } - public function requireDefaultRecords() - { - parent::requireDefaultRecords(); - - if (!$this->config()->get('upgrade_on_build')) { - return; - } - - // Perform migrations - Injector::inst() - ->create(UserFormsUpgradeService::class) - ->setQuiet(true) - ->run(); - - DB::alteration_message('Migrated userforms', 'changed'); - } - /** * Validate formfields diff --git a/code/Model/UserDefinedFormController.php b/code/Model/UserDefinedFormController.php index 3bd132e..17cd032 100644 --- a/code/Model/UserDefinedFormController.php +++ b/code/Model/UserDefinedFormController.php @@ -7,6 +7,7 @@ use SilverStripe\Assets\File; use SilverStripe\Assets\Upload; use SilverStripe\Control\Controller; use SilverStripe\Control\HTTP; +use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Forms\Form; use SilverStripe\i18n\i18n; use SilverStripe\ORM\ArrayList; @@ -43,29 +44,37 @@ class UserDefinedFormController extends PageController $page = $this->data(); + $userforms = ModuleLoader::getModule('silverstripe/userforms'); + $admin = ModuleLoader::getModule('silverstripe/admin'); // load the css if (!$page->config()->get('block_default_userforms_css')) { - Requirements::css(USERFORMS_DIR . '/css/UserForm.css'); + Requirements::css($userforms->getRelativeResourcePath('css/UserForm.css')); } // load the jquery if (!$page->config()->get('block_default_userforms_js')) { - $lang = i18n::get_lang_from_locale(i18n::get_locale()); - Requirements::javascript(FRAMEWORK_DIR .'/thirdparty/jquery/jquery.js'); - Requirements::javascript(USERFORMS_DIR . '/thirdparty/jquery-validate/jquery.validate.min.js'); - Requirements::add_i18n_javascript(USERFORMS_DIR . '/javascript/lang'); - Requirements::javascript(USERFORMS_DIR . '/javascript/UserForm.js'); + $lang = i18n::getData()->languageName(i18n::get_locale()); + Requirements::javascript($admin->getRelativeResourcePath('thirdparty/jquery/jquery.js')); Requirements::javascript( - USERFORMS_DIR . "/thirdparty/jquery-validate/localization/messages_{$lang}.min.js" - ); - Requirements::javascript( - USERFORMS_DIR . "/thirdparty/jquery-validate/localization/methods_{$lang}.min.js" + $userforms->getRelativeResourcePath('thirdparty/jquery-validate/jquery.validate.min.js') ); + Requirements::add_i18n_javascript($userforms->getRelativeResourcePath('javascript/lang')); + Requirements::javascript($userforms->getRelativeResourcePath('javascript/UserForm.js')); + + // @todo implement the $lang correctly + // Requirements::javascript( + // $userforms->getRelativeResourcePath("thirdparty/jquery-validate/localization/messages_{$lang}.min.js") + // ); + // Requirements::javascript( + // $userforms->getRelativeResourcePath("thirdparty/jquery-validate/localization/methods_{$lang}.min.js") + // ); // Bind a confirmation message when navigating away from a partially completed form. if ($page::config()->get('enable_are_you_sure')) { - Requirements::javascript(USERFORMS_DIR . '/thirdparty/jquery.are-you-sure/jquery.are-you-sure.js'); + Requirements::javascript( + $userforms->getRelativeResourcePath('thirdparty/jquery.are-you-sure/jquery.are-you-sure.js') + ); } } } @@ -82,7 +91,11 @@ class UserDefinedFormController extends PageController if ($this->Content && $form = $this->Form()) { $hasLocation = stristr($this->Content, '$UserDefinedForm'); if ($hasLocation) { - $content = preg_replace('/(]*>)?\\$UserDefinedForm(<\\/p>)?/i', $form->forTemplate(), $this->Content); + $content = preg_replace( + '/(]*>)?\\$UserDefinedForm(<\\/p>)?/i', + $form->forTemplate(), + $this->Content + ); return [ 'Content' => DBField::create_field('HTMLText', $content), 'Form' => '' diff --git a/composer.json b/composer.json index fe634b2..ab1b0ac 100644 --- a/composer.json +++ b/composer.json @@ -39,6 +39,12 @@ "phpunit/phpunit": "^5.7", "squizlabs/php_codesniffer": "*" }, + "autoload": { + "psr-4": { + "SilverStripe\\UserForms\\": "code/", + "SilverStripe\\UserForms\\Test\\": "tests/" + } + }, "suggest": { "colymba/gridfield-bulk-editing-tools": "Allows for bulk management of form submissions", "silverstripe/secureassets": "Enables files uploaded via userforms to be secured from public access", diff --git a/tests/Form/UserFormTest.php b/tests/Form/UserFormTest.php index 4c68f4d..265f16c 100644 --- a/tests/Form/UserFormTest.php +++ b/tests/Form/UserFormTest.php @@ -9,7 +9,7 @@ use SilverStripe\UserForms\Form\UserForm; class UserFormTest extends SapphireTest { - protected static $fixture_file = 'UserDefinedFormTest.yml'; + protected static $fixture_file = 'userforms/tests/Model/UserDefinedFormTest.yml'; /** * Tests that a form will not generate empty pages diff --git a/tests/Model/EditableFormField/EditableLiteralFieldTest.php b/tests/Model/EditableFormField/EditableLiteralFieldTest.php index 43c3eab..4af6205 100644 --- a/tests/Model/EditableFormField/EditableLiteralFieldTest.php +++ b/tests/Model/EditableFormField/EditableLiteralFieldTest.php @@ -6,6 +6,7 @@ use SilverStripe\Core\Config\Config; use SilverStripe\Dev\SapphireTest; use SilverStripe\Forms\CompositeField; use SilverStripe\Forms\HTMLEditor\HTMLEditorConfig; +use SilverStripe\Forms\HTMLEditor\HTMLEditorField; use SilverStripe\Forms\LiteralField; use SilverStripe\UserForms\Model\EditableFormField\EditableLiteralField; @@ -17,7 +18,8 @@ class EditableLiteralFieldTest extends SapphireTest protected function setUp() { parent::setUp(); - HTMLEditorConfig::set_active('cms'); + $cmsConfig = HTMLEditorConfig::get('cms'); + HTMLEditorConfig::set_active($cmsConfig); } /** @@ -30,12 +32,12 @@ class EditableLiteralFieldTest extends SapphireTest $field = new EditableLiteralField(); // Test with sanitisation enabled - Config::modify()->update('HtmlEditorField', 'sanitise_server_side', true); + Config::modify()->set(HTMLEditorField::class, 'sanitise_server_side', true); $field->setContent($rawContent); $this->assertEquals($safeContent, $field->getContent()); // Test with sanitisation disabled - Config::modify()->remove('HtmlEditorField', 'sanitise_server_side'); + Config::modify()->remove(HTMLEditorField::class, 'sanitise_server_side'); $field->setContent($rawContent); $this->assertEquals($rawContent, $field->getContent()); } diff --git a/tests/Model/EditableFormFieldTest.yml b/tests/Model/EditableFormFieldTest.yml index 20d69e3..341db69 100644 --- a/tests/Model/EditableFormFieldTest.yml +++ b/tests/Model/EditableFormFieldTest.yml @@ -14,8 +14,8 @@ SilverStripe\UserForms\Model\EditableCustomRule: Display: Show ConditionOption: HasValue FieldValue: NZ - ConditionField: =>EditableFormField.countryTextField - Parent: =>EditableFormField.irdNumberField + ConditionField: =>SilverStripe\UserForms\Model\EditableFormField.countryTextField + Parent: =>SilverStripe\UserForms\Model\EditableFormField.irdNumberField rule-1: Display: Hide ConditionOption: HasValue diff --git a/tests/Model/Recipient/EmailRecipientConditionTest.yml b/tests/Model/Recipient/EmailRecipientConditionTest.yml index d05111f..9c7e875 100644 --- a/tests/Model/Recipient/EmailRecipientConditionTest.yml +++ b/tests/Model/Recipient/EmailRecipientConditionTest.yml @@ -4,7 +4,7 @@ SilverStripe\UserForms\Model\EditableFormField\EditableTextField: SilverStripe\UserForms\Model\EditableFormField\EditableNumericField: ageField: Name: Age -SilverStripe\UserForms\Model\EditableFormField\EmailRecipientCondition: +SilverStripe\UserForms\Model\Recipient\EmailRecipientCondition: blankTest: ConditionOption: IsBlank ConditionValue: null diff --git a/tests/Model/UserDefinedFormControllerTest.php b/tests/Model/UserDefinedFormControllerTest.php index e1cdd61..bceeb69 100644 --- a/tests/Model/UserDefinedFormControllerTest.php +++ b/tests/Model/UserDefinedFormControllerTest.php @@ -2,6 +2,7 @@ namespace SilverStripe\UserForms\Test\Model; +use SilverStripe\Core\Config\Config; use SilverStripe\Dev\CSSContentParser; use SilverStripe\Dev\FunctionalTest; use SilverStripe\Dev\TestOnly; @@ -227,7 +228,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $actions = $controller->Form()->getFormActions(); $expected = new FieldList(new FormAction('process', 'Custom Button')); - $expected->push(new ResetFormAction("clearForm", "Clear")); + $expected->push(FormAction::create('clearForm', 'Clear')->setAttribute('type', 'reset')); $expected->setForm($controller->Form()); $this->assertEquals($actions, $expected); @@ -237,8 +238,9 @@ class UserDefinedFormControllerTest extends FunctionalTest { $form = $this->setupFormFrontend(); + $this->logInWithPermission('ADMIN'); $form->Content = 'This is some content without a form nested between it'; - $form->doPublish(); + $form->publishRecursive(); $controller = new UserDefinedFormController($form); @@ -272,7 +274,7 @@ class UserDefinedFormControllerTest extends FunctionalTest $form = $this->objFromFixture(UserDefinedForm::class, $fixtureName); $this->logInWithPermission('ADMIN'); - $form->doPublish(); + $form->publishRecursive(); $member = Member::currentUser(); $member->logOut(); diff --git a/tests/Model/UserDefinedFormTest.yml b/tests/Model/UserDefinedFormTest.yml index 4b94c69..8efe523 100644 --- a/tests/Model/UserDefinedFormTest.yml +++ b/tests/Model/UserDefinedFormTest.yml @@ -282,7 +282,7 @@ SilverStripe\UserForms\Model\UserDefinedForm: filtered-form-page: Title: 'Page with filtered recipients' Fields: =>SilverStripe\UserForms\Model\EditableFormField\EditableFormStep.form5step1,=>SilverStripe\UserForms\Model\EditableFormField\EditableCheckboxGroupField.checkbox-group, =>SilverStripe\UserForms\Model\EditableFormField\EditableTextField.your-name-field, =>SilverStripe\UserForms\Model\EditableFormField\EditableTextField.street-field, =>SilverStripe\UserForms\Model\EditableFormField\EditableTextField.city-field - EmailRecipients: =>EmailRecipient.unfiltered-recipient-1, =>EmailRecipient.filtered-recipient-1, =>EmailRecipient.filtered-recipient-2 + EmailRecipients: =>SilverStripe\UserForms\Model\Recipient\EmailRecipient.unfiltered-recipient-1, =>SilverStripe\UserForms\Model\Recipient\EmailRecipient.filtered-recipient-1, =>SilverStripe\UserForms\Model\Recipient\EmailRecipient.filtered-recipient-2 empty-page: Title: 'Page with empty step' diff --git a/tests/templates/UserDefinedFormControllerTest.ss b/tests/templates/SilverStripe/UserForms/Test/Model/UserDefinedFormControllerTest.ss similarity index 100% rename from tests/templates/UserDefinedFormControllerTest.ss rename to tests/templates/SilverStripe/UserForms/Test/Model/UserDefinedFormControllerTest.ss