public function testAppendRequiredFields() { //get the validator $requiredFields = new RequiredFields('Title', 'Content', 'Image', 'AnotherField'); //create another validator with other fields $otherRequiredFields = new RequiredFields(array('ExtraField1', 'ExtraField2')); //append the new fields $requiredFields->appendRequiredFields($otherRequiredFields); //check they were added correctly $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2'), $requiredFields->getRequired(), "Merging of required fields failed to behave as expected"); // create the standard validator so we can check duplicates are ignored $otherRequiredFields = new RequiredFields('Title', 'Content', 'Image', 'AnotherField'); //add the new validator $requiredFields->appendRequiredFields($otherRequiredFields); //check nothing was changed $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2'), $requiredFields->getRequired(), "Merging of required fields with duplicates failed to behave as expected"); //add some new fields and some old ones in a strange order $otherRequiredFields = new RequiredFields('ExtraField3', 'Title', 'ExtraField4', 'Image', 'Content'); //add the new validator $requiredFields->appendRequiredFields($otherRequiredFields); //check that only the new fields were added $this->assertEquals(array('Title', 'Content', 'Image', 'AnotherField', 'ExtraField1', 'ExtraField2', 'ExtraField3', 'ExtraField4'), $requiredFields->getRequired(), "Merging of required fields with some duplicates in a muddled order failed to behave as expected"); }
function Form() { if (Session::get('SmartChimp.SUCCESS')) { Session::clear('SmartChimp.SUCCESS'); return false; } $requiredFields = new RequiredFields('email'); if ($this->FirstFieldRequired) { $requiredFields->appendRequiredFields(array('fname')); } if ($this->LastFieldRequired) { $requiredFields->appendRequiredFields(array('lname')); } $form = new Form($this, 'Form', new FieldSet(new TextField('fname', 'First name'), new TextField('lname', 'Last name'), new TextField('email', 'Email address')), new FieldSet(new FormAction('SignupAction', 'Sign up')), $requiredFields); $this->extend('updateSmartChimpForm', $form); return $form; }