public function testDeletesOpauthIdentityOnDelete()
 {
     $member = new Member(array('Email' => '*****@*****.**'));
     $member->write();
     $identity = new OpauthIdentity();
     $identity->write();
     $member->OpauthIdentities()->add($identity);
     $member->delete();
     $this->assertEquals(0, $member->OpauthIdentities()->Count());
 }
 public function testForgotPasswordVeto()
 {
     Config::inst()->update('OpauthMemberLoginFormExtension', 'allow_password_reset', false);
     $memberWithoutPassword = new Member(array('Email' => '*****@*****.**'));
     $memberWithoutPassword->write();
     $memberWithPassword = new Member(array('Email' => '*****@*****.**', 'Password' => 'test'));
     $memberWithPassword->write();
     $memberWithIdentity = new Member(array('Email' => '*****@*****.**'));
     $memberWithIdentity->write();
     $identity = new OpauthIdentity(array('MemberID' => $memberWithIdentity->ID, 'Provider' => 'Google'));
     $identity->write();
     $form = new Form(new Controller(), 'Form', new FieldList(), new FieldList());
     $ext = new OpauthMemberLoginFormExtension();
     $ext->setOwner($form);
     $this->assertNull($ext->forgotPassword($memberWithoutPassword));
     $this->assertNull(Session::get("FormInfo.Form_Form.formError.message"));
     $this->assertNull($ext->forgotPassword($memberWithPassword));
     $this->assertNull(Session::get("FormInfo.Form_Form.formError.message"));
     $this->assertFalse($ext->forgotPassword($memberWithIdentity));
     $this->assertContains('Google', Session::get("FormInfo.Form_Form.formError.message"));
 }