public function testCustomMemberValidator() { // clear custom requirements for this test Member_Validator::config()->update('customRequired', null); $member = $this->objFromFixture('SilverStripe\\Security\\Member', 'admin'); $form = new MemberTest_ValidatorForm(); $form->loadDataFrom($member); $validator = new Member_Validator(); $validator->setForm($form); $pass = $validator->php(array('FirstName' => 'Borris', 'Email' => '*****@*****.**')); $fail = $validator->php(array('Email' => '*****@*****.**', 'Surname' => '')); $this->assertTrue($pass, 'Validator requires a FirstName and Email'); $this->assertFalse($fail, 'Missing FirstName'); $ext = new MemberTest_ValidatorExtension(); $ext->updateValidator($validator); $pass = $validator->php(array('FirstName' => 'Borris', 'Email' => '*****@*****.**')); $fail = $validator->php(array('Email' => '*****@*****.**')); $this->assertFalse($pass, 'Missing surname'); $this->assertFalse($fail, 'Missing surname value'); $fail = $validator->php(array('Email' => '*****@*****.**', 'Surname' => 'Silverman')); $this->assertTrue($fail, 'Passes with email and surname now (no firstname)'); }