silverstripe-framework/admin/tests/CMSProfileControllerTest.php

86 lines
2.6 KiB
PHP
Raw Normal View History

<?php
2016-10-14 03:30:05 +02:00
namespace SilverStripe\Admin\Tests;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\Security\Member;
class CMSProfileControllerTest extends FunctionalTest {
protected static $fixture_file = 'CMSProfileControllerTest.yml';
public $autoFollowRedirection = false;
public function testMemberCantEditAnother() {
2016-11-13 08:35:43 +01:00
$member = $this->objFromFixture(Member::class, 'user1');
$anotherMember = $this->objFromFixture(Member::class, 'user2');
$this->session()->inst_set('loggedInAs', $member->ID);
$response = $this->post('admin/myprofile/EditForm', array(
'action_save' => 1,
'ID' => $anotherMember->ID,
'FirstName' => 'JoeEdited',
'Surname' => 'BloggsEdited',
'Email' => $member->Email,
'Locale' => $member->Locale,
'Password[_Password]' => 'password',
'Password[_ConfirmPassword]' => 'password',
));
2016-11-13 08:35:43 +01:00
$anotherMember = $this->objFromFixture(Member::class, 'user2');
$this->assertNotEquals($anotherMember->FirstName, 'JoeEdited', 'FirstName field stays the same');
}
public function testMemberEditsOwnProfile() {
2016-11-13 08:35:43 +01:00
$member = $this->objFromFixture(Member::class, 'user3');
$this->session()->inst_set('loggedInAs', $member->ID);
$response = $this->post('admin/myprofile/EditForm', array(
'action_save' => 1,
'ID' => $member->ID,
'FirstName' => 'JoeEdited',
'Surname' => 'BloggsEdited',
'Email' => $member->Email,
'Locale' => $member->Locale,
'Password[_Password]' => 'password',
'Password[_ConfirmPassword]' => 'password',
));
2016-11-13 08:35:43 +01:00
$member = $this->objFromFixture(Member::class, 'user3');
$this->assertEquals('JoeEdited', $member->FirstName, 'FirstName field was changed');
}
public function testExtendedPermissionsStopEditingOwnProfile() {
$existingExtensions = Member::config()->get('extensions');
2016-11-13 08:35:43 +01:00
Member::config()->update('extensions', [
CMSProfileControllerTest\TestExtension::class
]);
2016-11-13 08:35:43 +01:00
$member = $this->objFromFixture(Member::class, 'user1');
$this->session()->inst_set('loggedInAs', $member->ID);
$response = $this->post('admin/myprofile/EditForm', array(
'action_save' => 1,
'ID' => $member->ID,
'FirstName' => 'JoeEdited',
'Surname' => 'BloggsEdited',
'Email' => $member->Email,
'Locale' => $member->Locale,
'Password[_Password]' => 'password',
'Password[_ConfirmPassword]' => 'password',
));
2016-11-13 08:35:43 +01:00
$member = $this->objFromFixture(Member::class, 'user1');
2012-10-28 22:22:53 +01:00
$this->assertNotEquals($member->FirstName, 'JoeEdited',
'FirstName field was NOT changed because we modified canEdit');
Member::config()
->remove('extensions')
->update('extensions', $existingExtensions);
}
}