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)');
 }