@@ -34,10 +34,14 @@ class NativeSessionStorageTest extends TestCase
34
34
{
35
35
private string $ 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
}
@@ -50,6 +54,10 @@ protected function tearDown(): void
50
54
if (is_dir ($ this ->savePath )) {
51
55
@rmdir ($ this ->savePath );
52
56
}
57
+
58
+ $ this ->savePath = null ;
59
+ ini_set ('session.save_handler ' , $ this ->initialSessionSaveHandler );
60
+ ini_set ('session.save_path ' , $ this ->initialSessionSavePath );
53
61
}
54
62
55
63
protected function getStorage (array $ options = []): NativeSessionStorage
@@ -152,18 +160,26 @@ public function testRegenerationFailureDoesNotFlagStorageAsStarted()
152
160
153
161
public function testDefaultSessionCacheLimiter ()
154
162
{
155
- $ this -> iniSet ('session.cache_limiter ' , 'nocache ' );
163
+ $ initialLimiter = ini_set ('session.cache_limiter ' , 'nocache ' );
156
164
157
- new NativeSessionStorage ();
158
- $ 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
+ }
159
171
}
160
172
161
173
public function testExplicitSessionCacheLimiter ()
162
174
{
163
- $ this -> iniSet ('session.cache_limiter ' , 'nocache ' );
175
+ $ initialLimiter = ini_set ('session.cache_limiter ' , 'nocache ' );
164
176
165
- new NativeSessionStorage (['cache_limiter ' => 'public ' ]);
166
- $ 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
+ }
167
183
}
168
184
169
185
public function testCookieOptions ()
@@ -203,18 +219,23 @@ public function testSessionOptions()
203
219
204
220
public function testSetSaveHandler ()
205
221
{
206
- $ this ->iniSet ('session.save_handler ' , 'files ' );
207
- $ storage = $ this ->getStorage ();
208
- $ storage ->setSaveHandler (null );
209
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
210
- $ storage ->setSaveHandler (new SessionHandlerProxy (new NativeFileSessionHandler ()));
211
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
212
- $ storage ->setSaveHandler (new NativeFileSessionHandler ());
213
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
214
- $ storage ->setSaveHandler (new SessionHandlerProxy (new NullSessionHandler ()));
215
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
216
- $ storage ->setSaveHandler (new NullSessionHandler ());
217
- $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
222
+ $ initialSaveHandler = ini_set ('session.save_handler ' , 'files ' );
223
+
224
+ try {
225
+ $ storage = $ this ->getStorage ();
226
+ $ storage ->setSaveHandler (null );
227
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
228
+ $ storage ->setSaveHandler (new SessionHandlerProxy (new NativeFileSessionHandler ()));
229
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
230
+ $ storage ->setSaveHandler (new NativeFileSessionHandler ());
231
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
232
+ $ storage ->setSaveHandler (new SessionHandlerProxy (new NullSessionHandler ()));
233
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
234
+ $ storage ->setSaveHandler (new NullSessionHandler ());
235
+ $ this ->assertInstanceOf (SessionHandlerProxy::class, $ storage ->getSaveHandler ());
236
+ } finally {
237
+ ini_set ('session.save_handler ' , $ initialSaveHandler );
238
+ }
218
239
}
219
240
220
241
public function testStarted ()
0 commit comments