88class TestSession extends TestBase {
99
1010 function testCreateSession (){
11+ $ jsonContent = '{"name":"raaghu","children":[{"name":"shri"},{"name":"di"}],"spouse":{"name":"div"}} ' ;
12+ $ setCookieeParams = $ this ->createSession ($ jsonContent );
13+
14+ $ this ->assertTrue (isset ($ setCookieeParams ["PhpPlatformSession " ]));
15+ $ this ->assertEquals ("/ " , $ setCookieeParams ['path ' ]);
16+ $ this ->assertTrue ($ setCookieeParams ['httponly ' ]);
17+ }
18+
19+ function testSessionValues (){
20+
21+ $ jsonContent = '{"name":"raaghu","children":[{"name":"shri"},{"name":"di"}],"spouse":{"name":"div"}} ' ;
22+ $ setCookieeParams = $ this ->createSession ($ jsonContent );
23+
24+ // assert session values are stored properly
25+ $ sessionCookie = array ("name " =>"PhpPlatformSession " ,"value " =>$ setCookieeParams ["PhpPlatformSession " ]);
26+ $ this ->assertSessionContains ($ sessionCookie , "name " , "raaghu " );
27+ $ this ->assertSessionContains ($ sessionCookie , "children " , '[{"name":"shri"},{"name":"di"}] ' );
28+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '{"name":"div"} ' );
29+
30+ // assert session values are not accessible outside the session
31+ $ sessionCookie ["value " ] = $ sessionCookie ["value " ]."1 " ;
32+ $ this ->assertSessionContains ($ sessionCookie , "name " , "" );
33+ $ this ->assertSessionContains ($ sessionCookie , "children " , '' );
34+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '' );
35+
36+ }
37+
38+ function testDeleteSessionValue (){
39+ $ jsonContent = '{"name":"raaghu","children":[{"name":"shri"},{"name":"di"}],"spouse":{"name":"div"}} ' ;
40+ $ setCookieeParams = $ this ->createSession ($ jsonContent );
41+
42+ // assert session values are stored properly
43+ $ sessionCookie = array ("name " =>"PhpPlatformSession " ,"value " =>$ setCookieeParams ["PhpPlatformSession " ]);
44+ $ this ->assertSessionContains ($ sessionCookie , "name " , "raaghu " );
45+ $ this ->assertSessionContains ($ sessionCookie , "children " , '[{"name":"shri"},{"name":"di"}] ' );
46+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '{"name":"div"} ' );
47+
48+ // delete some session values
49+ $ client = new Client ();
50+ $ request = $ client ->get (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/DeleteSessionValue.php?key=name ' );
51+ $ request ->addCookie ($ sessionCookie ['name ' ], $ sessionCookie ['value ' ]);
52+ $ client ->send ($ request );
53+
54+ // assert specified session values are are deleted
55+ $ this ->assertSessionContains ($ sessionCookie , "name " , "" );
56+ $ this ->assertSessionContains ($ sessionCookie , "children " , '[{"name":"shri"},{"name":"di"}] ' );
57+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '{"name":"div"} ' );
58+
59+ // delete again some session values
60+ $ client = new Client ();
61+ $ request = $ client ->get (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/DeleteSessionValue.php?key=children ' );
62+ $ request ->addCookie ($ sessionCookie ['name ' ], $ sessionCookie ['value ' ]);
63+ $ client ->send ($ request );
64+
65+ // assert specified session values are are deleted
66+ $ this ->assertSessionContains ($ sessionCookie , "name " , "" );
67+ $ this ->assertSessionContains ($ sessionCookie , "children " , '' );
68+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '{"name":"div"} ' );
69+
70+ // delete again again some session values
71+ $ client = new Client ();
72+ $ request = $ client ->get (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/DeleteSessionValue.php?key=spouse ' );
73+ $ request ->addCookie ($ sessionCookie ['name ' ], $ sessionCookie ['value ' ]);
74+ $ client ->send ($ request );
75+
76+ // assert specified session values are are deleted
77+ $ this ->assertSessionContains ($ sessionCookie , "name " , "" );
78+ $ this ->assertSessionContains ($ sessionCookie , "children " , '' );
79+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '' );
80+
81+ }
82+
83+ function testClearSession (){
84+ $ jsonContent = '{"name":"raaghu","children":[{"name":"shri"},{"name":"di"}],"spouse":{"name":"div"}} ' ;
85+ $ setCookieeParams = $ this ->createSession ($ jsonContent );
86+
87+ // assert session values are stored properly
88+ $ sessionCookie = array ("name " =>"PhpPlatformSession " ,"value " =>$ setCookieeParams ["PhpPlatformSession " ]);
89+ $ this ->assertSessionContains ($ sessionCookie , "name " , "raaghu " );
90+ $ this ->assertSessionContains ($ sessionCookie , "children " , '[{"name":"shri"},{"name":"di"}] ' );
91+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '{"name":"div"} ' );
92+
93+ // clear session
94+ $ client = new Client ();
95+ $ request = $ client ->get (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/ClearSession.php ' );
96+ $ request ->addCookie ($ sessionCookie ['name ' ], $ sessionCookie ['value ' ]);
97+ $ response = $ client ->send ($ request );
98+
99+ // assert session cookie value is not changed after clear
100+ $ setCookieeParams = $ this ->parseSetCookieParams ($ response ->getSetCookie ());
101+ $ this ->assertEquals ($ sessionCookie ['value ' ], $ setCookieeParams [$ sessionCookie ['name ' ]]);
102+
103+ // assert all session values are are deleted
104+ $ this ->assertSessionContains ($ sessionCookie , "name " , "" );
105+ $ this ->assertSessionContains ($ sessionCookie , "children " , '' );
106+ $ this ->assertSessionContains ($ sessionCookie , "spouse " , '' );
107+
108+ }
109+
110+ private function createSession ($ jsonContent ){
11111 $ client = new Client ();
12- $ jsonContent = '{"name":"raaghu","children":[{"name":"shri"},{"name":"di"}]} ' ;
13112 $ request = $ client ->post (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/CreateSession.php ' ,array ("Content-Type " =>"application/json " ,"Content-Length " =>strlen ($ jsonContent )),$ jsonContent );
14113 $ response = $ client ->send ($ request );
15114
16115 $ this ->assertEquals (200 , $ response ->getStatusCode ());
116+
17117 $ setCookie = $ response ->getSetCookie ();
18118 $ setCookieeParams = $ this ->parseSetCookieParams ($ setCookie );
19119
20- $ this ->assertTrue (isset ($ setCookieeParams ["PhpPlatformSession " ]));
21- $ this ->assertEquals ("/ " , $ setCookieeParams ['path ' ]);
22- $ this ->assertTrue ($ setCookieeParams ['httponly ' ]);
23-
120+ return $ setCookieeParams ;
24121 }
25122
26123 private function parseSetCookieParams ($ setCookie ){
@@ -36,4 +133,12 @@ private function parseSetCookieParams($setCookie){
36133 return $ paramsArray ;
37134 }
38135
136+ private function assertSessionContains ($ sessionCookie ,$ key ,$ value ){
137+ $ client = new Client ();
138+ $ request = $ client ->get (APP_DOMAIN .'/ ' .APP_PATH .'/tests/WebSession/Services/ReadSession.php?key= ' .$ key );
139+ $ request ->addCookie ($ sessionCookie ['name ' ], $ sessionCookie ['value ' ]);
140+ $ response = $ client ->send ($ request );
141+ $ this ->assertEquals ($ value , $ response ->getBody (true ));
142+ }
143+
39144}
0 commit comments