@@ -34,10 +34,14 @@ class NativeSessionStorageTest extends TestCase
34
34
{
35
35
private $ savePath ;
36
36
37
+ private $ initialSessionSaveHandler ;
38
+ private $ initialSessionSavePath ;
39
+
37
40
protected function setUp (): void
38
41
{
39
- $ this ->iniSet ('session.save_handler ' , 'files ' );
40
- $ this ->iniSet ('session.save_path ' , $ this ->savePath = sys_get_temp_dir ().'/sftest ' );
42
+ $ this ->initialSessionSaveHandler = ini_set ('session.save_handler ' , 'files ' );
43
+ $ this ->initialSessionSavePath = ini_set ('session.save_path ' , $ this ->savePath = sys_get_temp_dir ().'/sftest ' );
44
+
41
45
if (!is_dir ($ this ->savePath )) {
42
46
mkdir ($ this ->savePath );
43
47
}
@@ -52,6 +56,8 @@ protected function tearDown(): void
52
56
}
53
57
54
58
$ this ->savePath = null ;
59
+ ini_set ('session.save_handler ' , $ this ->initialSessionSaveHandler );
60
+ ini_set ('session.save_path ' , $ this ->initialSessionSavePath );
55
61
}
56
62
57
63
protected function getStorage (array $ options = []): NativeSessionStorage
@@ -154,18 +160,26 @@ public function testRegenerationFailureDoesNotFlagStorageAsStarted()
154
160
155
161
public function testDefaultSessionCacheLimiter ()
156
162
{
157
- $ this -> iniSet ('session.cache_limiter ' , 'nocache ' );
163
+ $ initialLimiter = ini_set ('session.cache_limiter ' , 'nocache ' );
158
164
159
- new NativeSessionStorage ();
160
- $ this ->assertEquals ('' , \ini_get ('session.cache_limiter ' ));
165
+ try {
166
+ new NativeSessionStorage ();
167
+ $ this ->assertEquals ('' , \ini_get ('session.cache_limiter ' ));
168
+ } finally {
169
+ ini_set ('session.cache_limiter ' , $ initialLimiter );
170
+ }
161
171
}
162
172
163
173
public function testExplicitSessionCacheLimiter ()
164
174
{
165
- $ this -> iniSet ('session.cache_limiter ' , 'nocache ' );
175
+ $ initialLimiter = ini_set ('session.cache_limiter ' , 'nocache ' );
166
176
167
- new NativeSessionStorage (['cache_limiter ' => 'public ' ]);
168
- $ this ->assertEquals ('public ' , \ini_get ('session.cache_limiter ' ));
177
+ try {
178
+ new NativeSessionStorage (['cache_limiter ' => 'public ' ]);
179
+ $ this ->assertEquals ('public ' , \ini_get ('session.cache_limiter ' ));
180
+ } finally {
181
+ ini_set ('session.cache_limiter ' , $ initialLimiter );
182
+ }
169
183
}
170
184
171
185
public function testCookieOptions ()
@@ -208,20 +222,25 @@ public function testSessionOptions()
208
222
209
223
public function testSetSaveHandler ()
210
224
{
211
- $ this ->iniSet ('session.save_handler ' , 'files ' );
212
- $ storage = $ this ->getStorage ();
213
- $ storage ->setSaveHandler ();
214
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
215
- $ storage ->setSaveHandler (null );
216
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
217
- $ storage ->setSaveHandler (new SessionHandlerProxy (new NativeFileSessionHandler ()));
218
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
219
- $ storage ->setSaveHandler (new NativeFileSessionHandler ());
220
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
221
- $ storage ->setSaveHandler (new SessionHandlerProxy (new NullSessionHandler ()));
222
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
223
- $ storage ->setSaveHandler (new NullSessionHandler ());
224
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
225
+ $ initialSaveHandler = ini_set ('session.save_handler ' , 'files ' );
226
+
227
+ try {
228
+ $ storage = $ this ->getStorage ();
229
+ $ storage ->setSaveHandler ();
230
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
231
+ $ storage ->setSaveHandler (null );
232
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
233
+ $ storage ->setSaveHandler (new SessionHandlerProxy (new NativeFileSessionHandler ()));
234
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
235
+ $ storage ->setSaveHandler (new NativeFileSessionHandler ());
236
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
237
+ $ storage ->setSaveHandler (new SessionHandlerProxy (new NullSessionHandler ()));
238
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
239
+ $ storage ->setSaveHandler (new NullSessionHandler ());
240
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
241
+ } finally {
242
+ ini_set ('session.save_handler ' , $ initialSaveHandler );
243
+ }
225
244
}
226
245
227
246
public function testStarted ()
0 commit comments