From 4b26db99328594f7314091c84f7dc5572eac46d7 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Thu, 9 Feb 2017 00:42:34 +0900 Subject: [PATCH] Fix unit tests, and add tests for Session::isValid() --- common/framework/session.php | 6 +++++- tests/unit/framework/SessionTest.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/common/framework/session.php b/common/framework/session.php index 1740856db..de67c1999 100644 --- a/common/framework/session.php +++ b/common/framework/session.php @@ -353,9 +353,13 @@ class Session { self::login($member_srl, false); } + else + { + $_SESSION['member_srl'] = false; + } // Try autologin. - elseif (self::$_autologin_key) + if (!$member_srl && self::$_autologin_key) { $member_srl = getController('member')->doAutologin(self::$_autologin_key); if ($member_srl && self::isValid($member_srl)) diff --git a/tests/unit/framework/SessionTest.php b/tests/unit/framework/SessionTest.php index 5ca61074c..806da9ee3 100644 --- a/tests/unit/framework/SessionTest.php +++ b/tests/unit/framework/SessionTest.php @@ -238,6 +238,34 @@ class SessionTest extends \Codeception\TestCase\Test Rhymix\Framework\Session::close(); } + public function testIsValid() + { + Rhymix\Framework\Session::start(); + + $member_srl = 4; + Rhymix\Framework\Session::login($member_srl); + + $invalid_before = time() - 300; + $filename = \RX_BASEDIR . sprintf('files/member_extra_info/invalid_before/%s%d.txt', getNumberingPath($member_srl), $member_srl); + Rhymix\Framework\Storage::write($filename, $invalid_before); + Rhymix\Framework\Cache::set(sprintf('session:invalid_before:%d', $member_srl), $invalid_before); + $this->assertTrue(Rhymix\Framework\Session::isValid()); + + $invalid_before = time() + 300; + $filename = \RX_BASEDIR . sprintf('files/member_extra_info/invalid_before/%s%d.txt', getNumberingPath($member_srl), $member_srl); + Rhymix\Framework\Storage::write($filename, $invalid_before); + Rhymix\Framework\Cache::set(sprintf('session:invalid_before:%d', $member_srl), $invalid_before); + $this->assertFalse(Rhymix\Framework\Session::isValid()); + + $invalid_before = time(); + $filename = \RX_BASEDIR . sprintf('files/member_extra_info/invalid_before/%s%d.txt', getNumberingPath($member_srl), $member_srl); + Rhymix\Framework\Storage::write($filename, $invalid_before); + Rhymix\Framework\Cache::set(sprintf('session:invalid_before:%d', $member_srl), $invalid_before); + $this->assertTrue(Rhymix\Framework\Session::isValid()); + + Rhymix\Framework\Session::close(); + } + public function testGetMemberSrl() { Rhymix\Framework\Session::start();