Destroy session after running api tests
authorumherirrender <umherirrender_de.wp@web.de>
Tue, 9 Dec 2014 20:35:40 +0000 (21:35 +0100)
committerBartosz Dziewoński <matma.rex@gmail.com>
Tue, 16 Dec 2014 20:50:35 +0000 (20:50 +0000)
ApiLogin and ApiCreateAccount calling wfSetupSession, which leaks a
session over the test.
The test RequestContextText needs a clear session to work, so the api
tests should avoid leaking the session.
Doing this in the ApiTestCase because some tests calling ApiLogin over
FauxRequest and that also starts a session.

Change-Id: Icf5cb4d4a2c24c96698cac5bf32147c0c9149ef3

tests/phpunit/includes/api/ApiTestCase.php

index 9a552fa..8c27b10 100644 (file)
@@ -46,6 +46,17 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                $this->apiContext = new ApiTestContext();
        }
 
+       protected function tearDown() {
+               // Avoid leaking session over tests
+               if ( session_id() != '' ) {
+                       global $wgUser;
+                       $wgUser->logout();
+                       session_destroy();
+               }
+
+               parent::tearDown();
+       }
+
        /**
         * Edits or creates a page/revision
         * @param string $pageName Page title