Skip to content

Commit

Permalink
MNT Skip tests when session-manager module is installed
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Aug 23, 2021
1 parent 4c51d89 commit 2079f18
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
22 changes: 13 additions & 9 deletions tests/php/Security/MemberTest.php
Expand Up @@ -27,6 +27,7 @@
use SilverStripe\Security\RememberLoginHash;
use SilverStripe\Security\Security;
use SilverStripe\Security\Tests\MemberTest\FieldsExtension;
use SilverStripe\SessionManager\Models\LoginSession;

class MemberTest extends FunctionalTest
{
Expand Down Expand Up @@ -1198,18 +1199,21 @@ public function testRememberMeMultipleDevices()
]
);
$this->assertEquals(
1,
RememberLoginHash::get()->filter(['MemberID'=>$m1->ID, 'DeviceID'=>$firstHash->DeviceID])->count(),
1
);

// Logging out from any device when all login hashes should be removed
RememberLoginHash::config()->update('logout_across_devices', true);
Injector::inst()->get(IdentityStore::class)->logIn($m1, true);
$this->get('Security/logout', $this->session());
$this->assertEquals(
RememberLoginHash::get()->filter('MemberID', $m1->ID)->count(),
0
);
// If session-manager module is installed then logout_across_devices is modified so skip
if (!class_exists(LoginSession::class)) {
// Logging out from any device when all login hashes should be removed
RememberLoginHash::config()->update('logout_across_devices', true);
Injector::inst()->get(IdentityStore::class)->logIn($m1, true);
$this->get('Security/logout', $this->session());
$this->assertEquals(
0,
RememberLoginHash::get()->filter('MemberID', $m1->ID)->count()
);
}
}

public function testCanDelete()
Expand Down
9 changes: 9 additions & 0 deletions tests/php/Security/RememberLoginHashTest.php
Expand Up @@ -5,6 +5,7 @@
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Security\Member;
use SilverStripe\Security\RememberLoginHash;
use SilverStripe\SessionManager\Models\LoginSession;

class RememberLoginHashTest extends SapphireTest
{
Expand Down Expand Up @@ -49,6 +50,10 @@ public function clearScenarios()
*/
public function testClear(bool $logoutAcrossDevices, string $deviceId, array $expected, array $unexpected)
{
// If session-manager module is installed then logout_across_devices is modified so skip
if (class_exists(LoginSession::class)) {
$this->markTestSkipped();
}
RememberLoginHash::config()->set('logout_across_devices', $logoutAcrossDevices);

RememberLoginHash::clear(
Expand All @@ -75,6 +80,10 @@ public function testClear(bool $logoutAcrossDevices, string $deviceId, array $ex

public function testGetSetLogoutAcrossDevices()
{
// If session-manager module is installed then logout_across_devices is modified so skip
if (class_exists(LoginSession::class)) {
$this->markTestSkipped();
}
// set config directly
RememberLoginHash::config()->set('logout_across_devices', true);
$this->assertTrue(RememberLoginHash::getLogoutAcrossDevices());
Expand Down

0 comments on commit 2079f18

Please sign in to comment.