From 1fcbcc8368296d5568fec00b508c737dd06b8586 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Tue, 24 Aug 2021 11:31:06 +1200 Subject: [PATCH] MNT Skip tests when session-manager module is installed --- tests/php/Security/MemberTest.php | 24 ++++++++++++-------- tests/php/Security/RememberLoginHashTest.php | 9 ++++++++ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/tests/php/Security/MemberTest.php b/tests/php/Security/MemberTest.php index 52f9a3c10..49d543a75 100644 --- a/tests/php/Security/MemberTest.php +++ b/tests/php/Security/MemberTest.php @@ -27,6 +27,7 @@ use SilverStripe\Security\Permission; use SilverStripe\Security\RememberLoginHash; use SilverStripe\Security\Security; use SilverStripe\Security\Tests\MemberTest\FieldsExtension; +use SilverStripe\SessionManager\Models\LoginSession; class MemberTest extends FunctionalTest { @@ -1198,18 +1199,21 @@ class MemberTest extends FunctionalTest ] ); $this->assertEquals( - RememberLoginHash::get()->filter(['MemberID'=>$m1->ID, 'DeviceID'=>$firstHash->DeviceID])->count(), - 1 + 1, + RememberLoginHash::get()->filter(['MemberID'=>$m1->ID, 'DeviceID'=>$firstHash->DeviceID])->count() ); - // 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() diff --git a/tests/php/Security/RememberLoginHashTest.php b/tests/php/Security/RememberLoginHashTest.php index ec5625304..3ef236a6b 100644 --- a/tests/php/Security/RememberLoginHashTest.php +++ b/tests/php/Security/RememberLoginHashTest.php @@ -5,6 +5,7 @@ namespace SilverStripe\Security\Tests; use SilverStripe\Dev\SapphireTest; use SilverStripe\Security\Member; use SilverStripe\Security\RememberLoginHash; +use SilverStripe\SessionManager\Models\LoginSession; class RememberLoginHashTest extends SapphireTest { @@ -49,6 +50,10 @@ class RememberLoginHashTest extends SapphireTest */ 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( @@ -75,6 +80,10 @@ class RememberLoginHashTest extends SapphireTest 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());