/**
  * Test that a member can be authenticated via their temp id
  */
 public function testAuthenticateByTempID()
 {
     $member = new Member();
     $member->Email = '*****@*****.**';
     $member->PasswordEncryption = "sha1";
     $member->Password = "******";
     $member->write();
     // Make form
     $controller = new Security();
     $form = new Form($controller, 'Form', new FieldList(), new FieldList());
     // If the user has never logged in, then the tempid should be empty
     $tempID = $member->TempIDHash;
     $this->assertEmpty($tempID);
     // If the user logs in then they have a temp id
     $member->logIn(true);
     $tempID = $member->TempIDHash;
     $this->assertNotEmpty($tempID);
     // Test correct login
     $result = MemberAuthenticator::authenticate(array('tempid' => $tempID, 'Password' => 'mypassword'), $form);
     $this->assertNotEmpty($result);
     $this->assertEquals($result->ID, $member->ID);
     $this->assertEmpty($form->Message());
     // Test incorrect login
     $form->clearMessage();
     $result = MemberAuthenticator::authenticate(array('tempid' => $tempID, 'Password' => 'notmypassword'), $form);
     $this->assertEmpty($result);
     $this->assertEquals('The provided details don't seem to be correct. Please try again.', $form->Message());
     $this->assertEquals('bad', $form->MessageType());
 }
Exemplo n.º 2
0
 public function testSetsOwnerOnFirstWrite()
 {
     Session::set('loggedInAs', null);
     $member1 = new Member();
     $member1->write();
     $member2 = new Member();
     $member2->write();
     $file1 = new File();
     $file1->write();
     $this->assertEquals(0, $file1->OwnerID, 'Owner not written when no user is logged in');
     $member1->logIn();
     $file2 = new File();
     $file2->write();
     $this->assertEquals($member1->ID, $file2->OwnerID, 'Owner written when user is logged in');
     $member2->logIn();
     $file2->forceChange();
     $file2->write();
     $this->assertEquals($member1->ID, $file2->OwnerID, 'Owner not overwritten on existing files');
 }