@@ -63,8 +63,11 @@ private function setupEnvironment($queryParamPid = null, $queryParamJwt = null,
6363 $ _GET [PluginSession::QUERY_PARAM_PID ] = $ queryParamPid ;
6464 $ _GET [PluginSession::QUERY_PARAM_JWT ] = $ queryParamJwt ;
6565
66- if ($ clearSession )
67- $ _SESSION = [];
66+ if ($ clearSession ) {
67+ session_write_close ();
68+ session_abort ();
69+ $ _SESSION = [];
70+ }
6871 }
6972
7073 /**
@@ -416,4 +419,54 @@ public function testDeleteFailedCallInterface() {
416419 new $ Session ($ this ->pluginId , $ this ->publicKey , null , 0 , $ handler );
417420 }
418421
422+ /**
423+ * @test
424+ *
425+ * Test that a session is created.
426+ *
427+ * @covers \Staffbase\plugins\sdk\PluginSession::__construct
428+ */
429+ public function testSessionIsCreated () {
430+ $ tokenData = $ this ->tokenData ;
431+ $ this ->setupEnvironment (null , $ this ->token , true );
432+
433+ $ mock = $ this ->getMockBuilder ($ this ->classname )
434+ ->disableOriginalConstructor ()
435+ ->getMock ();
436+
437+ $ reflectedClass = new ReflectionClass ($ this ->classname );
438+ $ constructor = $ reflectedClass ->getConstructor ();
439+
440+ $ this ->assertEquals (PHP_SESSION_NONE , session_status ());
441+ $ constructor ->invoke ($ mock , $ this ->pluginId , $ this ->publicKey );
442+ $ this ->assertEquals (PHP_SESSION_ACTIVE , session_status ());
443+
444+ $ this ->assertEquals ($ tokenData [PluginSession::CLAIM_SESSION_ID ], session_id ());
445+ }
446+
447+ public function testSessionIdCheck () {
448+
449+ $ sessionHash = 'HOjLTR6+D5YIY0/waqJQp3Bg= ' ;
450+ $ sessionId = 'HOjLTR6-D5YIY0-waqJQp3Bg- ' ;
451+
452+ $ tokenData = $ this ->tokenData ;
453+ $ tokenData [PluginSession::CLAIM_SESSION_ID ] = $ sessionHash ;
454+ $ token = SSOTokenTest::createSignedTokenFromData ($ this ->privateKey , $ tokenData );
455+
456+ $ this ->setupEnvironment (null , $ token , true );
457+
458+ $ mock = $ this ->getMockBuilder ($ this ->classname )
459+ ->disableOriginalConstructor ()
460+ ->getMock ();
461+
462+ $ reflectedClass = new ReflectionClass ($ this ->classname );
463+ $ constructor = $ reflectedClass ->getConstructor ();
464+
465+ $ this ->assertEquals (PHP_SESSION_NONE , session_status ());
466+ $ constructor ->invoke ($ mock , $ this ->pluginId , $ this ->publicKey );
467+ $ this ->assertEquals (PHP_SESSION_ACTIVE , session_status ());
468+
469+ $ this ->assertEquals ($ sessionId , session_id ());
470+ }
471+
419472}
0 commit comments