Merge "Gallery: Don't fire wikipage.content hook twice during init"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 20 Sep 2019 19:59:53 +0000 (19:59 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 20 Sep 2019 19:59:53 +0000 (19:59 +0000)
62 files changed:
includes/changes/ChangesList.php
includes/libs/filebackend/SwiftFileBackend.php
tests/phpunit/MediaWikiCoversValidator.php
tests/phpunit/includes/EditPageTest.php
tests/phpunit/includes/FauxRequestTest.php
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/SiteStatsTest.php
tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
tests/phpunit/includes/TitleMethodsTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/api/ApiPageSetTest.php
tests/phpunit/includes/api/ApiQueryWatchlistIntegrationTest.php
tests/phpunit/includes/api/ApiQueryWatchlistRawIntegrationTest.php
tests/phpunit/includes/api/ApiWatchTest.php
tests/phpunit/includes/auth/AuthManagerTest.php
tests/phpunit/includes/block/BlockRestrictionStoreTest.php
tests/phpunit/includes/block/DatabaseBlockTest.php
tests/phpunit/includes/cache/MessageCacheTest.php
tests/phpunit/includes/changes/CategoryMembershipChangeTest.php
tests/phpunit/includes/changes/EnhancedChangesListTest.php
tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/includes/content/UnknownContentHandlerTest.php
tests/phpunit/includes/content/UnknownContentTest.php
tests/phpunit/includes/content/WikitextContentHandlerTest.php
tests/phpunit/includes/context/RequestContextTest.php
tests/phpunit/includes/db/LBFactoryTest.php
tests/phpunit/includes/deferred/SiteStatsUpdateTest.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/filerepo/file/LocalFileTest.php
tests/phpunit/includes/http/GuzzleHttpRequestTest.php
tests/phpunit/includes/http/HttpTest.php
tests/phpunit/includes/jobqueue/JobQueueTest.php
tests/phpunit/includes/jobqueue/jobs/ClearUserWatchlistJobTest.php
tests/phpunit/includes/libs/ProcessCacheLRUTest.php
tests/phpunit/includes/libs/TimingTest.php
tests/phpunit/includes/libs/objectcache/HashBagOStuffTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/libs/rdbms/database/DatabaseSQLTest.php
tests/phpunit/includes/libs/rdbms/database/DatabaseTest.php
tests/phpunit/includes/linker/LinkRendererTest.php
tests/phpunit/includes/media/JpegPixelFormatTest.php
tests/phpunit/includes/media/PNGMetadataExtractorTest.php
tests/phpunit/includes/page/WikiPageDbTestBase.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/phpunit/includes/search/SearchNearMatchResultSetTest.php
tests/phpunit/includes/shell/ShellTest.php
tests/phpunit/includes/site/CachingSiteStoreTest.php
tests/phpunit/includes/site/DBSiteStoreTest.php
tests/phpunit/includes/site/SiteTest.php
tests/phpunit/includes/user/UserTest.php
tests/phpunit/includes/watcheditem/WatchedItemStoreUnitTest.php
tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
tests/phpunit/languages/LanguageTest.php
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/unit/includes/diff/DiffOpTest.php
tests/phpunit/unit/includes/password/PasswordFactoryTest.php
tests/phpunit/unit/includes/search/SearchSuggestionSetTest.php
tests/selenium/wdio.conf.js

index 24b8e41..34d73d6 100644 (file)
@@ -633,7 +633,7 @@ class ChangesList extends ContextSource {
         */
        public function insertComment( $rc ) {
                if ( $this->isDeleted( $rc, RevisionRecord::DELETED_COMMENT ) ) {
-                       return ' <span class="history-deleted">' .
+                       return ' <span class="history-deleted comment">' .
                                $this->msg( 'rev-deleted-comment' )->escaped() . '</span>';
                } else {
                        return Linker::commentBlock( $rc->mAttribs['rc_comment'], $rc->getTitle(),
index 820634c..ce1e99f 100644 (file)
@@ -268,8 +268,8 @@ class SwiftFileBackend extends FileBackendStore {
                        'headers' => array_merge(
                                $mutableHeaders,
                                [
-                                       'content-length' => strlen( $params['content'] ),
                                        'etag' => md5( $params['content'] ),
+                                       'content-length' => strlen( $params['content'] ),
                                        'x-object-meta-sha1base36' =>
                                                Wikimedia\base_convert( sha1( $params['content'] ), 16, 36, 31 )
                                ]
@@ -311,18 +311,34 @@ class SwiftFileBackend extends FileBackendStore {
                        return $status;
                }
 
+               // Open a handle to the source file so that it can be streamed. The size and hash
+               // will be computed using the handle. In the off chance that the source file changes
+               // during this operation, the PUT will fail due to an ETag mismatch and be aborted.
                AtEase::suppressWarnings();
-               $sha1Base16 = sha1_file( $params['src'] );
+               $srcHandle = fopen( $params['src'], 'rb' );
                AtEase::restoreWarnings();
-               if ( $sha1Base16 === false ) { // source doesn't exist?
-                       $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
+               if ( $srcHandle === false ) { // source doesn't exist?
+                       $status->fatal( 'backend-fail-notexists', $params['src'] );
 
                        return $status;
                }
 
-               $handle = fopen( $params['src'], 'rb' );
-               if ( $handle === false ) { // source doesn't exist?
-                       $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
+               // Compute the MD5 and SHA-1 hashes in one pass
+               $srcSize = fstat( $srcHandle )['size'];
+               $md5Context = hash_init( 'md5' );
+               $sha1Context = hash_init( 'sha1' );
+               $hashDigestSize = 0;
+               while ( !feof( $srcHandle ) ) {
+                       $buffer = (string)fread( $srcHandle, 131072 ); // 128 KiB
+                       hash_update( $md5Context, $buffer );
+                       hash_update( $sha1Context, $buffer );
+                       $hashDigestSize += strlen( $buffer );
+               }
+               // Reset the handle back to the beginning so that it can be streamed
+               rewind( $srcHandle );
+
+               if ( $hashDigestSize !== $srcSize ) {
+                       $status->fatal( 'backend-fail-hash', $params['src'] );
 
                        return $status;
                }
@@ -339,12 +355,13 @@ class SwiftFileBackend extends FileBackendStore {
                        'headers' => array_merge(
                                $mutableHeaders,
                                [
-                                       'content-length' => fstat( $handle )['size'],
-                                       'etag' => md5_file( $params['src'] ),
-                                       'x-object-meta-sha1base36' => Wikimedia\base_convert( $sha1Base16, 16, 36, 31 )
+                                       'content-length' => $srcSize,
+                                       'etag' => hash_final( $md5Context ),
+                                       'x-object-meta-sha1base36' =>
+                                               Wikimedia\base_convert( hash_final( $sha1Context ), 16, 36, 31 )
                                ]
                        ),
-                       'body' => $handle // resource
+                       'body' => $srcHandle // resource
                ] ];
 
                $method = __METHOD__;
@@ -362,7 +379,7 @@ class SwiftFileBackend extends FileBackendStore {
                };
 
                $opHandle = new SwiftFileOpHandle( $this, $handler, $reqs );
-               $opHandle->resourcesToClose[] = $handle;
+               $opHandle->resourcesToClose[] = $srcHandle;
 
                if ( !empty( $params['async'] ) ) { // deferred
                        $status->value = $opHandle;
index ce3f2e2..ca400bf 100644 (file)
@@ -45,6 +45,6 @@ trait MediaWikiCoversValidator {
                        }
                }
 
-               $this->assertEquals( '', $bad );
+               $this->assertSame( '', $bad );
        }
 }
index d2540f6..1f9465d 100644 (file)
@@ -351,7 +351,7 @@ class EditPageTest extends MediaWikiLangTestCase {
 
                wfGetDB( DB_MASTER )->commit( __METHOD__ );
 
-               $this->assertEquals( 0, DeferredUpdates::pendingUpdatesCount(), 'No deferred updates' );
+               $this->assertSame( 0, DeferredUpdates::pendingUpdatesCount(), 'No deferred updates' );
 
                if ( $expectedCode != EditPage::AS_BLANK_ARTICLE ) {
                        $latest = $page->getLatest();
index c054caa..7b7f6b9 100644 (file)
@@ -50,7 +50,7 @@ class FauxRequestTest extends PHPUnit\Framework\TestCase {
        public function testGetText() {
                $req = new FauxRequest( [ 'x' => 'Value' ] );
                $this->assertEquals( 'Value', $req->getText( 'x' ) );
-               $this->assertEquals( '', $req->getText( 'z' ) );
+               $this->assertSame( '', $req->getText( 'z' ) );
        }
 
        /**
@@ -287,8 +287,8 @@ class FauxRequestTest extends PHPUnit\Framework\TestCase {
         */
        public function testDummies() {
                $req = new FauxRequest();
-               $this->assertEquals( '', $req->getRawQueryString() );
-               $this->assertEquals( '', $req->getRawPostString() );
-               $this->assertEquals( '', $req->getRawInput() );
+               $this->assertSame( '', $req->getRawQueryString() );
+               $this->assertSame( '', $req->getRawPostString() );
+               $this->assertSame( '', $req->getRawInput() );
        }
 }
index 5d83b7e..4401410 100644 (file)
@@ -161,12 +161,12 @@ class HtmlTest extends MediaWikiTestCase {
         * @covers Html::expandAttributes
         */
        public function testExpandAttributesForBooleans() {
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        Html::expandAttributes( [ 'selected' => false ] ),
                        'Boolean attributes do not generates output when value is false'
                );
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        Html::expandAttributes( [ 'selected' => null ] ),
                        'Boolean attributes do not generates output when value is null'
index fe32507..dcac471 100644 (file)
@@ -453,7 +453,7 @@ class LinkerTest extends MediaWikiLangTestCase {
                $user = $context->getUser();
                $user->setOption( 'showrollbackconfirmation', $rollbackEnabled );
 
-               $this->assertEquals( 0, Title::newFromText( $title )->getArticleID() );
+               $this->assertSame( 0, Title::newFromText( $title )->getArticleID() );
                $pageData = $this->insertPage( $title );
                $page = WikiPage::factory( $pageData['title'] );
 
index d34ba0a..e4c068f 100644 (file)
@@ -227,7 +227,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
 
                // This should do nothing. In particular, it should not create a service instance.
                $services->resetServiceForTesting( 'Test' );
-               $this->assertEquals( 0, $serviceCounter, 'No service instance should be created yet.' );
+               $this->assertSame( 0, $serviceCounter, 'No service instance should be created yet.' );
 
                $oldInstance = $services->getService( 'Test' );
                $this->assertEquals( 1, $serviceCounter, 'A service instance should exit now.' );
index aa6e494..6ab56eb 100644 (file)
@@ -93,7 +93,7 @@ class OutputPageTest extends MediaWikiTestCase {
                                'Some syndication links should be there' );
                } else {
                        $this->assertFalse( $outputPage->isSyndicated(), 'No syndication should be offered' );
-                       $this->assertEquals( 0, count( $outputPage->getSyndicationLinks() ),
+                       $this->assertSame( 0, count( $outputPage->getSyndicationLinks() ),
                                'No syndication links should be there' );
                }
        }
index b0d89a6..ff9fa7b 100644 (file)
@@ -21,7 +21,7 @@ class SiteStatsTest extends MediaWikiTestCase {
                );
 
                $jobq->get( 'null' )->delete();  // clear jobqueue
-               $this->assertEquals( 0, $jobq->get( 'null' )->getSize(),
+               $this->assertSame( 0, $jobq->get( 'null' )->getSize(),
                        'Job queue for NullJob has been cleaned' );
 
                $cache->delete( $cache->makeKey( 'SiteStats', 'jobscount' ) );
@@ -29,7 +29,7 @@ class SiteStatsTest extends MediaWikiTestCase {
                        'jobs count is kept in process cache' );
 
                $cache->clearProcessCache();
-               $this->assertEquals( 0, SiteStats::jobs() );
+               $this->assertSame( 0, SiteStats::jobs() );
        }
 
 }
index 2148411..c64169f 100644 (file)
@@ -1062,7 +1062,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiTestCase {
 
                $this->db->endAtomic( __METHOD__ ); // run deferred updates
 
-               $this->assertEquals( 0, DeferredUpdates::pendingUpdatesCount(), 'No pending updates' );
+               $this->assertSame( 0, DeferredUpdates::pendingUpdatesCount(), 'No pending updates' );
        }
 
        /**
@@ -1095,7 +1095,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiTestCase {
 
                $this->db->endAtomic( __METHOD__ ); // run deferred updates
 
-               $this->assertEquals( 0, DeferredUpdates::pendingUpdatesCount(), 'No pending updates' );
+               $this->assertSame( 0, DeferredUpdates::pendingUpdatesCount(), 'No pending updates' );
                $this->assertNotFalse( $pcache->get( $page, $updater->getCanonicalParserOptions() ) );
        }
 
index 77d6f59..ec002e0 100644 (file)
@@ -327,7 +327,7 @@ class TitleMethodsTest extends MediaWikiLangTestCase {
 
                $title2 = Title::newFromText( 'Foo' );
                $this->assertNotSame( $title1, $title2, 'title cache should be empty' );
-               $this->assertEquals( 0, $linkCache->getGoodLinkID( 'Foo' ), 'link cache should be empty' );
+               $this->assertSame( 0, $linkCache->getGoodLinkID( 'Foo' ), 'link cache should be empty' );
        }
 
        public function provideGetLinkURL() {
index ab9abbb..f95505b 100644 (file)
@@ -46,7 +46,7 @@ class XmlTest extends MediaWikiTestCase {
                $this->assertNull( Xml::expandAttributes( null ),
                        'Converting a null list of attributes'
                );
-               $this->assertEquals( '', Xml::expandAttributes( [] ),
+               $this->assertSame( '', Xml::expandAttributes( [] ),
                        'Converting an empty list of attributes'
                );
        }
index fdc9c1b..b1b8a42 100644 (file)
@@ -214,7 +214,7 @@ class ApiPageSetTest extends ApiTestCase {
                        'titles' => 'User:' . implode( '|User:', $userNames ),
                ] );
 
-               $this->assertEquals( 0, $genderCache->misses,
+               $this->assertSame( 0, $genderCache->misses,
                        'ApiPageSet does not prefill the gender cache correctly' );
                $this->assertEquals( $userNames, array_keys( $genderCache->cache ),
                        'ApiPageSet does not prefill all users into the gender cache' );
index 2b08a81..26fedba 100644 (file)
@@ -1575,7 +1575,7 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
                $pages = array_values( $result[0]['query']['pages'] );
 
                $this->assertCount( 1, $pages );
-               $this->assertEquals( 0, $pages[0]['ns'] );
+               $this->assertSame( 0, $pages[0]['ns'] );
                $this->assertEquals( $this->getPrefixedText( $target ), $pages[0]['title'] );
                $this->assertArraySubsetsEqual(
                        $pages[0]['revisions'],
index c554fb3..b41c3e5 100644 (file)
@@ -535,7 +535,7 @@ class ApiQueryWatchlistRawIntegrationTest extends ApiTestCase {
                // $result[0]['query']['pages'] uses page ids as keys
                $item = array_values( $result[0]['query']['pages'] )[0];
 
-               $this->assertEquals( 0, $item['ns'] );
+               $this->assertSame( 0, $item['ns'] );
                $this->assertEquals( 'ApiQueryWatchlistRawIntegrationTestPage', $item['title'] );
        }
 
index 6d64a17..24d016e 100644 (file)
@@ -64,7 +64,7 @@ class ApiWatchTest extends ApiTestCase {
                                unset( $data[0]['query']['watchlist'][$index] );
                        }
                }
-               $this->assertEquals( 0, count( $data[0]['query']['watchlist'] ) );
+               $this->assertSame( 0, count( $data[0]['query']['watchlist'] ) );
 
                return $data;
        }
index f8be1d4..55d4e10 100644 (file)
@@ -2120,9 +2120,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                        }
 
                        if ( $created ) {
-                               $this->assertNotEquals( 0, \User::idFromName( $username ) );
+                               $this->assertNotNull( \User::idFromName( $username ) );
                        } else {
-                               $this->assertEquals( 0, \User::idFromName( $username ) );
+                               $this->assertNull( \User::idFromName( $username ) );
                        }
 
                        $first = false;
@@ -2474,7 +2474,7 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $this->assertEquals( $expect, $ret );
                $this->assertNotEquals( 0, $user->getId() );
                $this->assertSame( 'UTSysop', $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, '{username} already exists locally' ],
                ], $logger->getBuffer() );
@@ -2489,9 +2489,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( wfMessage( 'readonlytext', 'Because' ) ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'denied by wfReadOnly(): {reason}' ],
                ], $logger->getBuffer() );
@@ -2506,9 +2506,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'test' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'blacklisted in session {sessionid}' ],
                ], $logger->getBuffer() );
@@ -2521,9 +2521,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'test2' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'blacklisted in session {sessionid}' ],
                ], $logger->getBuffer() );
@@ -2536,9 +2536,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'noname' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username . '@', $user->getId() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'name "{username}" is not creatable' ],
                ], $logger->getBuffer() );
@@ -2554,9 +2554,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'authmanager-autocreate-noperm' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'IP lacks the ability to create or autocreate accounts' ],
                ], $logger->getBuffer() );
@@ -2608,9 +2608,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                unset( $lock );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'usernameinprogress' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'Could not acquire account creation lock' ],
                ], $logger->getBuffer() );
@@ -2623,9 +2623,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'fail-in-pre' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'Provider denied creation of {username}: {reason}' ],
                ], $logger->getBuffer() );
@@ -2640,9 +2640,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'fail-in-primary' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'Provider denied creation of {username}: {reason}' ],
                ], $logger->getBuffer() );
@@ -2657,9 +2657,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'fail-in-secondary' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, 'Provider denied creation of {username}: {reason}' ],
                ], $logger->getBuffer() );
@@ -2678,9 +2678,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->unhook( 'LocalUserCreated' );
                $this->assertEquals( \Status::newFatal( 'authmanager-autocreate-exception' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::DEBUG, '{username} denied by prior creation attempt failures' ],
                ], $logger->getBuffer() );
@@ -2697,9 +2697,9 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $user->setName( $username );
                $ret = $this->manager->autoCreateUser( $user, AuthManager::AUTOCREATE_SOURCE_SESSION, true );
                $this->assertEquals( \Status::newFatal( 'because' ), $ret );
-               $this->assertEquals( 0, $user->getId() );
+               $this->assertSame( 0, $user->getId() );
                $this->assertNotEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::INFO, 'creating new user ({username}) - from: {from}' ],
                        [ LogLevel::ERROR, '{username} failed with message {msg}' ],
@@ -2723,8 +2723,8 @@ class AuthManagerTest extends \MediaWikiTestCase {
                } catch ( \Exception $ex ) {
                        $this->assertSame( 'Excepted', $ex->getMessage() );
                }
-               $this->assertEquals( 0, $user->getId() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $user->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::INFO, 'creating new user ({username}) - from: {from}' ],
                        [ LogLevel::ERROR, '{username} failed with exception {exception}' ],
@@ -2790,7 +2790,7 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $this->assertEquals( \Status::newGood(), $ret );
                $this->assertNotEquals( 0, $user->getId() );
                $this->assertEquals( $username, $user->getName() );
-               $this->assertEquals( 0, $session->getUser()->getId() );
+               $this->assertSame( 0, $session->getUser()->getId() );
                $this->assertSame( [
                        [ LogLevel::INFO, 'creating new user ({username}) - from: {from}' ],
                ], $logger->getBuffer() );
index ebbfde2..b1e23ba 100644 (file)
@@ -282,7 +282,7 @@ class BlockRestrictionStoreTest extends \MediaWikiLangTestCase {
                        [ 'ir_ipb_id' => $block->getId() ]
                );
 
-               $this->assertEquals( 0, $result->numRows() );
+               $this->assertSame( 0, $result->numRows() );
        }
 
        /**
index 0ef571d..9182609 100644 (file)
@@ -314,7 +314,7 @@ class DatabaseBlockTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'Meta>MetaWikiUser', $block->getBlocker()->getName(),
                        'Correct blocker name' );
                $this->assertEquals( 'Meta>MetaWikiUser', $block->getByName(), 'Correct blocker name' );
-               $this->assertEquals( 0, $block->getBy(), 'Correct blocker id' );
+               $this->assertSame( 0, $block->getBy(), 'Correct blocker id' );
        }
 
        protected function addXffBlocks() {
index 7abddd4..869236b 100644 (file)
@@ -124,7 +124,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                $this->makePage( 'Go', 'de', 'Race!' );
                $dbw->endAtomic( __METHOD__ );
 
-               $this->assertEquals( 0,
+               $this->assertSame( 0,
                        DeferredUpdates::pendingUpdatesCount(),
                        'Post-commit deferred update triggers a run of all updates' );
 
@@ -155,7 +155,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
                // Populate one key
                $this->makePage( 'Key1', 'de', 'Value1' );
-               $this->assertEquals( 0,
+               $this->assertSame( 0,
                        DeferredUpdates::pendingUpdatesCount(),
                        'Post-commit deferred update triggers a run of all updates' );
                $this->assertEquals( 'Value1', $messageCache->get( 'Key1' ), 'Key1 was successfully edited' );
@@ -168,7 +168,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
                // Populate the second key
                $this->makePage( 'Key2', 'de', 'Value2' );
-               $this->assertEquals( 0,
+               $this->assertSame( 0,
                        DeferredUpdates::pendingUpdatesCount(),
                        'Post-commit deferred update triggers a run of all updates' );
                $this->assertEquals( 'Value2', $messageCache->get( 'Key2' ), 'Key2 was successfully edited' );
@@ -208,14 +208,14 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
                MessageCache::singleton()->getMsgFromNamespace( 'allpages', $wgContLanguageCode );
 
-               $this->assertEquals( 0, $dbr->trxLevel() );
+               $this->assertSame( 0, $dbr->trxLevel() );
                $dbr->setFlag( DBO_TRX, $dbr::REMEMBER_PRIOR ); // make queries trigger TRX
 
                MessageCache::singleton()->getMsgFromNamespace( 'go', $wgContLanguageCode );
 
                $dbr->restoreFlags();
 
-               $this->assertEquals( 0, $dbr->trxLevel(), "No DB read queries (content language)" );
+               $this->assertSame( 0, $dbr->trxLevel(), "No DB read queries (content language)" );
        }
 
        public function testNoDBAccessNonContentLanguage() {
@@ -223,14 +223,14 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
                MessageCache::singleton()->getMsgFromNamespace( 'allpages/nl', 'nl' );
 
-               $this->assertEquals( 0, $dbr->trxLevel() );
+               $this->assertSame( 0, $dbr->trxLevel() );
                $dbr->setFlag( DBO_TRX, $dbr::REMEMBER_PRIOR ); // make queries trigger TRX
 
                MessageCache::singleton()->getMsgFromNamespace( 'go/nl', 'nl' );
 
                $dbr->restoreFlags();
 
-               $this->assertEquals( 0, $dbr->trxLevel(), "No DB read queries (non-content language)" );
+               $this->assertSame( 0, $dbr->trxLevel(), "No DB read queries (non-content language)" );
        }
 
        /**
index 7ad6541..31929d3 100644 (file)
@@ -83,12 +83,12 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertEquals( '(recentchanges-page-added-to-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
-               $this->assertEquals( 0, self::$lastNotifyArgs[5] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[6] );
+               $this->assertSame( 0, self::$lastNotifyArgs[5] );
+               $this->assertSame( 0, self::$lastNotifyArgs[6] );
                $this->assertEquals( null, self::$lastNotifyArgs[7] );
                $this->assertEquals( 1, self::$lastNotifyArgs[8] );
                $this->assertEquals( null, self::$lastNotifyArgs[9] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[10] );
+               $this->assertSame( 0, self::$lastNotifyArgs[10] );
        }
 
        public function testChangeRemovedNoRev() {
@@ -103,12 +103,12 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertEquals( '(recentchanges-page-removed-from-category: ' . self::$pageName . ')',
                        self::$lastNotifyArgs[3] );
                $this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
-               $this->assertEquals( 0, self::$lastNotifyArgs[5] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[6] );
+               $this->assertSame( 0, self::$lastNotifyArgs[5] );
+               $this->assertSame( 0, self::$lastNotifyArgs[6] );
                $this->assertEquals( null, self::$lastNotifyArgs[7] );
                $this->assertEquals( 1, self::$lastNotifyArgs[8] );
                $this->assertEquals( null, self::$lastNotifyArgs[9] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[10] );
+               $this->assertSame( 0, self::$lastNotifyArgs[10] );
        }
 
        public function testChangeAddedWithRev() {
@@ -127,9 +127,9 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
                $this->assertEquals( $revision->getId(), self::$lastNotifyArgs[6] );
                $this->assertEquals( null, self::$lastNotifyArgs[7] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[8] );
+               $this->assertSame( 0, self::$lastNotifyArgs[8] );
                $this->assertEquals( '127.0.0.1', self::$lastNotifyArgs[9] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[10] );
+               $this->assertSame( 0, self::$lastNotifyArgs[10] );
        }
 
        public function testChangeRemovedWithRev() {
@@ -148,9 +148,9 @@ class CategoryMembershipChangeTest extends MediaWikiLangTestCase {
                $this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
                $this->assertEquals( $revision->getId(), self::$lastNotifyArgs[6] );
                $this->assertEquals( null, self::$lastNotifyArgs[7] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[8] );
+               $this->assertSame( 0, self::$lastNotifyArgs[8] );
                $this->assertEquals( '127.0.0.1', self::$lastNotifyArgs[9] );
-               $this->assertEquals( 0, self::$lastNotifyArgs[10] );
+               $this->assertSame( 0, self::$lastNotifyArgs[10] );
        }
 
 }
index 1511d46..895a3cb 100644 (file)
@@ -76,7 +76,7 @@ class EnhancedChangesListTest extends MediaWikiLangTestCase {
                $recentChange2 = $this->getEditChange( '20131103092253' );
                $html = $enhancedChangesList->recentChangesLine( $recentChange2, false );
 
-               $this->assertEquals( '', $html );
+               $this->assertSame( '', $html );
        }
 
        public function testRecentChangesPrefix() {
index 8f914b7..a59ba7d 100644 (file)
@@ -61,7 +61,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( false, $cacheEntry->watched, 'watched' );
                $this->assertEquals( '21:21', $cacheEntry->timestamp, 'timestamp' );
-               $this->assertEquals( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
+               $this->assertSame( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
                $this->assertEquals( false, $cacheEntry->unpatrolled, 'unpatrolled' );
 
                $this->assertUserLinks( $user->getName(), $cacheEntry );
@@ -96,7 +96,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( false, $cacheEntry->watched, 'watched' );
                $this->assertEquals( '21:21', $cacheEntry->timestamp, 'timestamp' );
-               $this->assertEquals( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
+               $this->assertSame( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
                $this->assertEquals( false, $cacheEntry->unpatrolled, 'unpatrolled' );
 
                $this->assertDeleteLogLink( $cacheEntry );
@@ -130,7 +130,7 @@ class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( false, $cacheEntry->watched, 'watched' );
                $this->assertEquals( '21:21', $cacheEntry->timestamp, 'timestamp' );
-               $this->assertEquals( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
+               $this->assertSame( 0, $cacheEntry->numberofWatchingusers, 'watching users' );
                $this->assertEquals( false, $cacheEntry->unpatrolled, 'unpatrolled' );
 
                $this->assertRevDel( $cacheEntry );
index e73b554..39b5380 100644 (file)
@@ -181,7 +181,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                $content = null;
 
                $text = ContentHandler::getContentText( $content );
-               $this->assertEquals( '', $text );
+               $this->assertSame( '', $text );
        }
 
        public static function dataGetContentText_TextContent() {
index bc1d3c6..0572289 100644 (file)
@@ -49,7 +49,7 @@ class UnknownContentHandlerTest extends MediaWikiLangTestCase {
                $content = $handler->makeEmptyContent();
 
                $this->assertTrue( $content->isEmpty() );
-               $this->assertEquals( '', $content->getData() );
+               $this->assertSame( '', $content->getData() );
        }
 
        public static function dataIsSupportedFormat() {
index fd8e3ba..2b6f3f1 100644 (file)
@@ -139,7 +139,7 @@ class UnknownContentTest extends MediaWikiLangTestCase {
        public function testGetWikitextForTransclusion() {
                $content = $this->newContent( 'hello world.' );
 
-               $this->assertEquals( '', $content->getWikitextForTransclusion() );
+               $this->assertFalse( $content->getWikitextForTransclusion() );
        }
 
        /**
index b372e37..e18cecb 100644 (file)
@@ -64,7 +64,7 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase {
                $content = $this->handler->makeEmptyContent();
 
                $this->assertTrue( $content->isEmpty() );
-               $this->assertEquals( '', $content->getText() );
+               $this->assertSame( '', $content->getText() );
        }
 
        public static function dataIsSupportedFormat() {
index 32e71e0..3bb79e4 100644 (file)
@@ -49,7 +49,7 @@ class RequestContextTest extends MediaWikiTestCase {
 
                $oInfo = $context->exportSession();
                $this->assertEquals( '127.0.0.1', $oInfo['ip'], "Correct initial IP address." );
-               $this->assertEquals( 0, $oInfo['userId'], "Correct initial user ID." );
+               $this->assertSame( 0, $oInfo['userId'], "Correct initial user ID." );
                $this->assertFalse( MediaWiki\Session\SessionManager::getGlobalSession()->isPersistent(),
                        'Global session isn\'t persistent to start' );
 
index c789e83..f00499f 100644 (file)
@@ -187,7 +187,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                };
 
                $factory = $this->newLBFactoryMultiLBs();
-               $this->assertEquals( 0, $countLBsFunc( $factory ) );
+               $this->assertSame( 0, $countLBsFunc( $factory ) );
                $dbw = $factory->getMainLB()->getConnection( DB_MASTER );
                $this->assertEquals( 1, $countLBsFunc( $factory ) );
                // Test that LoadBalancer instances made during pre-commit callbacks in do not
@@ -208,7 +208,7 @@ class LBFactoryTest extends MediaWikiTestCase {
 
                $called = 0;
                $factory = $this->newLBFactoryMultiLBs();
-               $this->assertEquals( 0, $countLBsFunc( $factory ) );
+               $this->assertSame( 0, $countLBsFunc( $factory ) );
                $dbw = $factory->getMainLB()->getConnection( DB_MASTER );
                $this->assertEquals( 1, $countLBsFunc( $factory ) );
                // Test that LoadBalancer instances made during pre-commit callbacks in do not
@@ -475,17 +475,16 @@ class LBFactoryTest extends MediaWikiTestCase {
                /** @var IMaintainableDatabase $db */
                $db = $lb->getConnection( DB_MASTER, [], '' );
 
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        $db->getDomainId(),
                        'Null domain ID handle used'
                );
-               $this->assertEquals(
-                       '',
+               $this->assertNull(
                        $db->getDBname(),
                        'Null domain ID handle used'
                );
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        $db->tablePrefix(),
                        'Main domain ID handle used; prefix is empty though'
@@ -555,7 +554,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                /** @var IMaintainableDatabase $db */
                $db = $lb->getConnection( DB_MASTER, [], '' );
 
-               $this->assertEquals( '', $db->getDomainID(), "Null domain used" );
+               $this->assertSame( '', $db->getDomainID(), "Null domain used" );
 
                $this->assertEquals(
                        $this->quoteTable( $db, 'page' ),
@@ -717,7 +716,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                $lb->forEachOpenConnection( function () use ( &$n ) {
                        ++$n;
                } );
-               $this->assertEquals( 0, $n, "Connections closed" );
+               $this->assertSame( 0, $n, "Connections closed" );
 
                $conn2 = $lb->getConnectionRef( DB_MASTER );
                $this->assertEquals(
index ccfcc18..f820f60 100644 (file)
@@ -20,8 +20,8 @@ class SiteStatsUpdateTest extends MediaWikiTestCase {
                $this->assertEquals( 1, $wrapped->pages );
                $this->assertEquals( 3, $wrapped->users );
                $this->assertEquals( 1, $wrapped->images );
-               $this->assertEquals( 0, $wrapped->edits );
-               $this->assertEquals( 0, $wrapped->articles );
+               $this->assertSame( 0, $wrapped->edits );
+               $this->assertSame( 0, $wrapped->articles );
        }
 
        /**
@@ -42,7 +42,7 @@ class SiteStatsUpdateTest extends MediaWikiTestCase {
                $fi = SiteStats::images();
                $ai = SiteStats::articles();
 
-               $this->assertEquals( 0, DeferredUpdates::pendingUpdatesCount() );
+               $this->assertSame( 0, DeferredUpdates::pendingUpdatesCount() );
 
                $dbw->begin( __METHOD__ ); // block opportunistic updates
 
@@ -64,7 +64,7 @@ class SiteStatsUpdateTest extends MediaWikiTestCase {
 
                $this->assertEquals( 1, DeferredUpdates::pendingUpdatesCount() );
                DeferredUpdates::doUpdates();
-               $this->assertEquals( 0, DeferredUpdates::pendingUpdatesCount() );
+               $this->assertSame( 0, DeferredUpdates::pendingUpdatesCount() );
 
                SiteStats::unload();
                $this->assertEquals( $pi + 2, SiteStats::pages(), 'page count' );
index e344d57..7bc7918 100644 (file)
@@ -2554,7 +2554,7 @@ class FileBackendTest extends MediaWikiTestCase {
                        $be->getReadIndexFromParams( [ 'latest' => 1 ] ),
                        'Reads with "latest" flag use backend 1'
                );
-               $this->assertEquals(
+               $this->assertSame(
                        0,
                        $be->getReadIndexFromParams( [ 'latest' => 0 ] ),
                        'Reads without "latest" flag use backend 0'
index 8f37805..fe5dba1 100644 (file)
@@ -52,7 +52,7 @@ class LocalFileTest extends MediaWikiTestCase {
         * @covers File::getHashPath
         */
        public function testGetHashPath() {
-               $this->assertEquals( '', $this->file_hl0->getHashPath() );
+               $this->assertSame( '', $this->file_hl0->getHashPath() );
                $this->assertEquals( 'a/a2/', $this->file_hl2->getHashPath() );
                $this->assertEquals( 'c/c4/', $this->file_lc->getHashPath() );
        }
index c9356b6..ff0a9eb 100644 (file)
@@ -109,7 +109,7 @@ class GuzzleHttpRequestTest extends MediaWikiTestCase {
                $s = $r->execute();
                $errorMsg = $s->getErrorsByType( 'error' )[0]['message'];
 
-               $this->assertEquals( 0, $r->getStatus() );
+               $this->assertSame( 0, $r->getStatus() );
                $this->assertEquals( 'http-invalid-url', $errorMsg );
        }
 
@@ -121,7 +121,7 @@ class GuzzleHttpRequestTest extends MediaWikiTestCase {
                $s = $r->execute();
                $errorMsg = $s->getErrorsByType( 'error' )[0]['message'];
 
-               $this->assertEquals( 0, $r->getStatus() );
+               $this->assertSame( 0, $r->getStatus() );
                $this->assertEquals( 'http-request-error', $errorMsg );
        }
 
@@ -133,7 +133,7 @@ class GuzzleHttpRequestTest extends MediaWikiTestCase {
                $s = $r->execute();
                $errorMsg = $s->getErrorsByType( 'error' )[0]['message'];
 
-               $this->assertEquals( 0, $r->getStatus() );
+               $this->assertSame( 0, $r->getStatus() );
                $this->assertEquals( 'http-timed-out', $errorMsg );
        }
 
index ef499a1..94b8c91 100644 (file)
@@ -14,7 +14,7 @@ class HttpTest extends MediaWikiTestCase {
                $this->hideDeprecated( 'Http::getProxy' );
 
                $this->setMwGlobals( 'wgHTTPProxy', false );
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        Http::getProxy(),
                        'default setting'
index 8f8dde5..1db7085 100644 (file)
@@ -108,8 +108,8 @@ class JobQueueTest extends MediaWikiTestCase {
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
 
                $this->assertNull( $queue->push( $this->newJob() ), "Push worked ($desc)" );
                $this->assertNull( $queue->batchPush( [ $this->newJob() ] ), "Push worked ($desc)" );
@@ -118,7 +118,7 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $queue->flushCaches();
                $this->assertEquals( 2, $queue->getSize(), "Queue size is correct ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
                $jobs = iterator_to_array( $queue->getAllQueuedJobs() );
                $this->assertEquals( 2, count( $jobs ), "Queue iterator size is correct ($desc)" );
 
@@ -135,7 +135,7 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $job2 = $queue->pop();
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
                if ( $recycles ) {
@@ -152,7 +152,7 @@ class JobQueueTest extends MediaWikiTestCase {
                $queue->ack( $job2 );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Active job count ($desc)" );
 
                $this->assertNull( $queue->batchPush( [ $this->newJob(), $this->newJob() ] ),
                        "Push worked ($desc)" );
@@ -161,7 +161,7 @@ class JobQueueTest extends MediaWikiTestCase {
                $queue->delete();
                $queue->flushCaches();
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
        }
 
        /**
@@ -177,8 +177,8 @@ class JobQueueTest extends MediaWikiTestCase {
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
 
                $this->assertNull(
                        $queue->batchPush(
@@ -190,7 +190,7 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $queue->flushCaches();
                $this->assertEquals( 1, $queue->getSize(), "Queue size is correct ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
 
                $this->assertNull(
                        $queue->batchPush(
@@ -203,13 +203,13 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $queue->flushCaches();
                $this->assertEquals( 1, $queue->getSize(), "Queue size is correct ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
 
                $job1 = $queue->pop();
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
                if ( $recycles ) {
                        $this->assertEquals( 1, $queue->getAcquiredCount(), "Active job count ($desc)" );
                }
@@ -217,7 +217,7 @@ class JobQueueTest extends MediaWikiTestCase {
                $queue->ack( $job1 );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Active job count ($desc)" );
        }
 
        /**
@@ -256,8 +256,8 @@ class JobQueueTest extends MediaWikiTestCase {
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
 
                $root1 = Job::newRootJobParams( "nulljobspam:testId" ); // task ID/timestamp
                for ( $i = 0; $i < 5; ++$i ) {
@@ -282,7 +282,7 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $queue->flushCaches();
                $this->assertEquals( 10, $queue->getSize(), "Queue size is correct ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
 
                $dupcount = 0;
                $jobs = [];
@@ -314,8 +314,8 @@ class JobQueueTest extends MediaWikiTestCase {
                $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "Queue is empty ($desc)" );
 
                for ( $i = 0; $i < 10; ++$i ) {
                        $this->assertNull( $queue->push( $this->newJob( $i ) ), "Push worked ($desc)" );
@@ -332,8 +332,8 @@ class JobQueueTest extends MediaWikiTestCase {
                $this->assertFalse( $queue->pop(), "Queue is not empty ($desc)" );
 
                $queue->flushCaches();
-               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
-               $this->assertEquals( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
+               $this->assertSame( 0, $queue->getSize(), "Queue is empty ($desc)" );
+               $this->assertSame( 0, $queue->getAcquiredCount(), "No jobs active ($desc)" );
        }
 
        /**
index 90b57f2..c7596bf 100644 (file)
@@ -66,7 +66,7 @@ class ClearUserWatchlistJobTest extends MediaWikiTestCase {
                $this->assertEquals( 1, JobQueueGroup::singleton()->getQueueSizes()['clearUserWatchlist'] );
                $this->assertEquals( 2, $watchedItemStore->countWatchedItems( $user ) );
                $this->runJobs( 1 );
-               $this->assertEquals( 0, JobQueueGroup::singleton()->getQueueSizes()['clearUserWatchlist'] );
+               $this->assertSame( 0, JobQueueGroup::singleton()->getQueueSizes()['clearUserWatchlist'] );
                $this->assertEquals( 2, $watchedItemStore->countWatchedItems( $user ) );
 
                $this->assertTrue( $watchedItemStore->isWatched( $user, new TitleValue( 0, 'C' ) ) );
index 8e91e70..78af366 100644 (file)
@@ -16,7 +16,7 @@ class ProcessCacheLRUTest extends PHPUnit\Framework\TestCase {
         * Compare against an array so we get the cache content difference.
         */
        protected function assertCacheEmpty( $cache, $msg = 'Cache should be empty' ) {
-               $this->assertEquals( 0, $cache->getEntriesCount(), $msg );
+               $this->assertSame( 0, $cache->getEntriesCount(), $msg );
        }
 
        /**
index 581a518..90abd8c 100644 (file)
@@ -55,7 +55,7 @@ class TimingTest extends PHPUnit\Framework\TestCase {
                $this->assertEquals( 'a', $entry['name'] );
                $this->assertEquals( 'mark', $entry['entryType'] );
                $this->assertArrayHasKey( 'startTime', $entry );
-               $this->assertEquals( 0, $entry['duration'] );
+               $this->assertSame( 0, $entry['duration'] );
 
                usleep( 100 );
                $timing->mark( 'a' );
index 332e23b..3e08250 100644 (file)
@@ -82,7 +82,7 @@ class HashBagOStuffTest extends PHPUnit\Framework\TestCase {
                $cache->set( 'bar', 1, 10 );
                $cache->set( 'baz', 1, -10 );
 
-               $this->assertEquals( 0, $cacheInternal->bag['foo'][$cache::KEY_EXP], 'Indefinite' );
+               $this->assertSame( 0, $cacheInternal->bag['foo'][$cache::KEY_EXP], 'Indefinite' );
                // 2 seconds tolerance
                $this->assertEquals( time() + 10, $cacheInternal->bag['bar'][$cache::KEY_EXP], 'Future', 2 );
                $this->assertEquals( time() - 10, $cacheInternal->bag['baz'][$cache::KEY_EXP], 'Past', 2 );
index 076bf52..7c4c9bf 100644 (file)
@@ -318,7 +318,7 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                $v = $cache->getWithSetCallback(
                        $key, 30, $func, [ 'lowTTL' => 0, 'lockTSE' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v, "Value returned" );
-               $this->assertEquals( 0, $wasSet, "Value not regenerated" );
+               $this->assertSame( 0, $wasSet, "Value not regenerated" );
 
                $mockWallClock += 1;
 
@@ -584,7 +584,7 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                $asycList[0](); // run the refresh callback
                $asycList = [];
                $this->assertEquals( 2, $wasSet, "Value calculated at later time" );
-               $this->assertEquals( 0, count( $asycList ), "No deferred refreshes added." );
+               $this->assertSame( 0, count( $asycList ), "No deferred refreshes added." );
                $v = $cache->getWithSetCallback( $key, 300, $func, $opts );
                $this->assertEquals( $value, $v, "New value stored" );
 
@@ -678,13 +678,13 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                        $keyedIds, 30, $genFunc, [ 'lowTTL' => 0, 'lockTSE' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v[$keyB], "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value regenerated" );
-               $this->assertEquals( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
+               $this->assertSame( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
 
                $v = $cache->getMultiWithSetCallback(
                        $keyedIds, 30, $genFunc, [ 'lowTTL' => 0, 'lockTSE' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v[$keyB], "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value not regenerated" );
-               $this->assertEquals( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
+               $this->assertSame( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
 
                $mockWallClock += 1;
 
@@ -846,13 +846,13 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                        $keyedIds, 30, $genFunc, [ 'lowTTL' => 0 ] + $extOpts );
                $this->assertEquals( $value, $v[$keyB], "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value regenerated" );
-               $this->assertEquals( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
+               $this->assertSame( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
 
                $v = $cache->getMultiWithUnionSetCallback(
                        $keyedIds, 30, $genFunc, [ 'lowTTL' => 0 ] + $extOpts );
                $this->assertEquals( $value, $v[$keyB], "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value not regenerated" );
-               $this->assertEquals( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
+               $this->assertSame( 0, $cache->getWarmupKeyMisses(), "Keys warmed in warmup cache" );
 
                $mockWallClock += 1;
 
@@ -1478,7 +1478,7 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                $wasSet = 0;
                $v = $cache->getWithSetCallback( $key, 30, $funcV2, $verOpts + $extOpts );
                $this->assertEquals( $valueV2, $v, "Value not regenerated (secondary key)" );
-               $this->assertEquals( 0, $wasSet, "Value not regenerated (secondary key)" );
+               $this->assertSame( 0, $wasSet, "Value not regenerated (secondary key)" );
 
                // Clear out the older or unversioned key
                $cache->delete( $key, 0 );
index 4419533..16f6a6c 100644 (file)
@@ -2014,7 +2014,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->startAtomic( __METHOD__ );
                $wrapper->trxStatus = Database::STATUS_TRX_ERROR;
                $this->database->rollback( __METHOD__ );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
                $this->assertEquals( Database::STATUS_TRX_NONE, $wrapper->trxStatus() );
                $this->assertLastSql( 'BEGIN; ROLLBACK' );
 
@@ -2024,7 +2024,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->endAtomic( __METHOD__ );
                $this->assertEquals( Database::STATUS_TRX_NONE, $wrapper->trxStatus() );
                $this->assertLastSql( 'BEGIN; DELETE FROM x WHERE field = \'1\'; COMMIT' );
-               $this->assertEquals( 0, $this->database->trxLevel(), 'Use after rollback()' );
+               $this->assertSame( 0, $this->database->trxLevel(), 'Use after rollback()' );
 
                $this->database->begin( __METHOD__ );
                $this->database->startAtomic( __METHOD__, Database::ATOMIC_CANCELABLE );
@@ -2038,7 +2038,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->commit( __METHOD__ );
                // phpcs:ignore Generic.Files.LineLength
                $this->assertLastSql( 'BEGIN; SAVEPOINT wikimedia_rdbms_atomic1; UPDATE y SET a = \'1\' WHERE field = \'1\'; ROLLBACK TO SAVEPOINT wikimedia_rdbms_atomic1; DELETE FROM y WHERE field = \'1\'; COMMIT' );
-               $this->assertEquals( 0, $this->database->trxLevel(), 'Use after rollback()' );
+               $this->assertSame( 0, $this->database->trxLevel(), 'Use after rollback()' );
 
                // Next transaction
                $this->database->startAtomic( __METHOD__ );
@@ -2047,7 +2047,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
                $this->database->endAtomic( __METHOD__ );
                $this->assertEquals( Database::STATUS_TRX_NONE, $wrapper->trxStatus() );
                $this->assertLastSql( 'BEGIN; DELETE FROM x WHERE field = \'3\'; COMMIT' );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
        }
 
        /**
@@ -2194,7 +2194,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
 
                $this->assertFalse( $this->database->isOpen() );
                $this->assertLastSql( 'BEGIN; DELETE FROM x WHERE field = \'3\'; ROLLBACK; SELECT 2' );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
        }
 
        /**
@@ -2223,7 +2223,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
 
                $this->assertFalse( $this->database->isOpen() );
                $this->assertLastSql( 'BEGIN; DELETE FROM x WHERE field = \'3\'; ROLLBACK; SELECT 2' );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
        }
 
        /**
@@ -2246,7 +2246,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
 
                $this->assertFalse( $this->database->isOpen() );
                $this->assertLastSql( 'BEGIN; DELETE FROM x WHERE field = \'3\'; ROLLBACK' );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
        }
 
        /**
@@ -2261,7 +2261,7 @@ class DatabaseSQLTest extends PHPUnit\Framework\TestCase {
 
                $this->assertFalse( $this->database->isOpen() );
                $this->assertLastSql( 'BEGIN; SELECT 1; ROLLBACK' );
-               $this->assertEquals( 0, $this->database->trxLevel() );
+               $this->assertSame( 0, $this->database->trxLevel() );
        }
 
        /**
index 93b1bf8..fddbab2 100644 (file)
@@ -490,13 +490,13 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $db->method( 'isOpen' )->willReturn( true );
                $db->method( 'getDBname' )->willReturn( 'unittest' );
 
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertEquals( true, $db->lockIsFree( 'x', __METHOD__ ) );
                $this->assertEquals( true, $db->lock( 'x', __METHOD__ ) );
                $this->assertEquals( false, $db->lockIsFree( 'x', __METHOD__ ) );
                $this->assertEquals( true, $db->unlock( 'x', __METHOD__ ) );
                $this->assertEquals( true, $db->lockIsFree( 'x', __METHOD__ ) );
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
 
                $db->setFlag( DBO_TRX );
                $this->assertEquals( true, $db->lockIsFree( 'x', __METHOD__ ) );
@@ -507,7 +507,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $db->clearFlag( DBO_TRX );
 
                // Pending writes with DBO_TRX
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertTrue( $db->lockIsFree( 'meow', __METHOD__ ) );
                $db->setFlag( DBO_TRX );
                $db->query( "DELETE FROM test WHERE t = 1" ); // trigger DBO_TRX transaction before lock
@@ -521,7 +521,7 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $db->rollback( __METHOD__, IDatabase::FLUSHING_ALL_PEERS );
                // Pending writes without DBO_TRX
                $db->clearFlag( DBO_TRX );
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertTrue( $db->lockIsFree( 'meow2', __METHOD__ ) );
                $db->begin( __METHOD__ );
                $db->query( "DELETE FROM test WHERE t = 1" ); // trigger DBO_TRX transaction before lock
@@ -535,17 +535,17 @@ class DatabaseTest extends PHPUnit\Framework\TestCase {
                $db->rollback( __METHOD__ );
                // No pending writes, with DBO_TRX
                $db->setFlag( DBO_TRX );
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertTrue( $db->lockIsFree( 'wuff', __METHOD__ ) );
                $db->query( "SELECT 1", __METHOD__ );
                $this->assertEquals( 1, $db->trxLevel() );
                $lock = $db->getScopedLockAndFlush( 'wuff', __METHOD__, 1 );
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertFalse( $db->lockIsFree( 'wuff', __METHOD__ ), 'Lock already acquired' );
                $db->rollback( __METHOD__, IDatabase::FLUSHING_ALL_PEERS );
                // No pending writes, without DBO_TRX
                $db->clearFlag( DBO_TRX );
-               $this->assertEquals( 0, $db->trxLevel() );
+               $this->assertSame( 0, $db->trxLevel() );
                $this->assertTrue( $db->lockIsFree( 'wuff2', __METHOD__ ) );
                $db->begin( __METHOD__ );
                try {
index b26a247..d176e39 100644 (file)
@@ -168,7 +168,7 @@ class LinkRendererTest extends MediaWikiLangTestCase {
 
                $linkRenderer = new LinkRenderer( $titleFormatter, $linkCache, $nsInfo );
                $linkRenderer->setStubThreshold( 0 );
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        $linkRenderer->getLinkClasses( $foobarTitle )
                );
@@ -186,7 +186,7 @@ class LinkRendererTest extends MediaWikiLangTestCase {
                );
 
                $linkRenderer->setStubThreshold( 20 );
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        $linkRenderer->getLinkClasses( $userTitle )
                );
index 630df54..8d0ddf8 100644 (file)
@@ -54,7 +54,7 @@ class JpegPixelFormatTest extends MediaWikiMediaTestCase {
                        '%[jpeg:sampling-factor]',
                        $path
                )->execute();
-               $this->assertEquals( 0,
+               $this->assertSame( 0,
                        $result->getExitCode(),
                        "ImageMagick's identify command should return success"
                );
index 22de935..4d7ff48 100644 (file)
@@ -72,9 +72,9 @@ class PNGMetadataExtractorTest extends MediaWikiTestCase {
                $meta = PNGMetadataExtractor::getMetadata( $this->filePath .
                        'Png-native-test.png' );
 
-               $this->assertEquals( 0, $meta['frameCount'] );
+               $this->assertSame( 0, $meta['frameCount'] );
                $this->assertEquals( 1, $meta['loopCount'] );
-               $this->assertEquals( 0, $meta['duration'] );
+               $this->assertSame( 0.0, $meta['duration'] );
        }
 
        /**
@@ -87,7 +87,7 @@ class PNGMetadataExtractorTest extends MediaWikiTestCase {
 
                $this->assertEquals( 20, $meta['frameCount'] );
                // Note loop count of 0 = infinity
-               $this->assertEquals( 0, $meta['loopCount'] );
+               $this->assertSame( 0, $meta['loopCount'] );
                $this->assertEquals( 1.5, $meta['duration'], '', 0.00001 );
        }
 
index f071e4b..f0d895e 100644 (file)
@@ -439,7 +439,7 @@ abstract class WikiPageDbTestBase extends MediaWikiLangTestCase {
                $n = $res->numRows();
                $res->free();
 
-               $this->assertEquals( 0, $n, 'pagelinks should contain no more links from the page' );
+               $this->assertSame( 0, $n, 'pagelinks should contain no more links from the page' );
        }
 
        /**
@@ -637,7 +637,7 @@ abstract class WikiPageDbTestBase extends MediaWikiLangTestCase {
                $n = $res->numRows();
                $res->free();
 
-               $this->assertEquals( 0, $n, 'pagelinks should contain no more links from the page' );
+               $this->assertSame( 0, $n, 'pagelinks should contain no more links from the page' );
        }
 
        /**
@@ -1577,20 +1577,20 @@ more stuff
                $page->updateCategoryCounts( [ 'A' ], [], 0 );
 
                $this->assertEquals( 1, Category::newFromName( 'A' )->getPageCount() );
-               $this->assertEquals( 0, Category::newFromName( 'B' )->getPageCount() );
-               $this->assertEquals( 0, Category::newFromName( 'C' )->getPageCount() );
+               $this->assertSame( 0, Category::newFromName( 'B' )->getPageCount() );
+               $this->assertSame( 0, Category::newFromName( 'C' )->getPageCount() );
 
                // Add a new category
                $page->updateCategoryCounts( [ 'B' ], [], 0 );
 
                $this->assertEquals( 1, Category::newFromName( 'A' )->getPageCount() );
                $this->assertEquals( 1, Category::newFromName( 'B' )->getPageCount() );
-               $this->assertEquals( 0, Category::newFromName( 'C' )->getPageCount() );
+               $this->assertSame( 0, Category::newFromName( 'C' )->getPageCount() );
 
                // Add and remove a category
                $page->updateCategoryCounts( [ 'C' ], [ 'A' ], 0 );
 
-               $this->assertEquals( 0, Category::newFromName( 'A' )->getPageCount() );
+               $this->assertSame( 0, Category::newFromName( 'A' )->getPageCount() );
                $this->assertEquals( 1, Category::newFromName( 'B' )->getPageCount() );
                $this->assertEquals( 1, Category::newFromName( 'C' )->getPageCount() );
        }
index 94e3461..be11d53 100644 (file)
@@ -718,7 +718,7 @@ END
                ] );
                $context = $this->getResourceLoaderContext( [], $rl );
 
-               $this->assertEquals(
+               $this->assertSame(
                        '',
                        $rl->getCombinedVersion( $context, [] ),
                        'empty list'
index 67493c4..8135d57 100644 (file)
@@ -7,7 +7,7 @@ class SearchNearMatchResultSetTest extends PHPUnit\Framework\TestCase {
         */
        public function testNumRows() {
                $resultSet = new SearchNearMatchResultSet( null );
-               $this->assertEquals( 0, $resultSet->numRows() );
+               $this->assertSame( 0, $resultSet->numRows() );
 
                $resultSet = new SearchNearMatchResultSet( Title::newMainPage() );
                $this->assertEquals( 1, $resultSet->numRows() );
index 5fb3ac0..0dd88bb 100644 (file)
@@ -65,7 +65,7 @@ class ShellTest extends MediaWikiTestCase {
 
                $wrapper = TestingAccessWrapper::newFromObject( $command );
                $this->assertEquals( $expected, $wrapper->command );
-               $this->assertEquals( 0, $wrapper->restrictions & Shell::NO_LOCALSETTINGS );
+               $this->assertSame( 0, $wrapper->restrictions & Shell::NO_LOCALSETTINGS );
        }
 
        public function provideMakeScriptCommand() {
index df12eba..fc04fb7 100644 (file)
@@ -149,7 +149,7 @@ class CachingSiteStoreTest extends \MediaWikiIntegrationTestCase {
                $this->assertNull( $site );
 
                $sites = $store->getSites();
-               $this->assertEquals( 0, $sites->count() );
+               $this->assertSame( 0, $sites->count() );
        }
 
        /**
index 14ee15b..e125d71 100644 (file)
@@ -138,7 +138,7 @@ class DBSiteStoreTest extends MediaWikiTestCase {
                $this->assertNull( $site );
 
                $sites = $store->getSites();
-               $this->assertEquals( 0, $sites->count() );
+               $this->assertSame( 0, $sites->count() );
        }
 
        /**
index 9ad61b2..2119d31 100644 (file)
@@ -222,7 +222,7 @@ class SiteTest extends MediaWikiTestCase {
                $path = '//acme.com/'; // protocol-relative URL
                $site->setPath( $type, $path );
 
-               $this->assertEquals( '', $site->getProtocol() );
+               $this->assertSame( '', $site->getProtocol() );
        }
 
        public static function provideGetPageUrl() {
index 2a4ba4b..f24255b 100644 (file)
@@ -559,10 +559,10 @@ class UserTest extends MediaWikiTestCase {
                $this->markTestSkippedIfDbType( 'postgres' );
 
                $users = User::findUsersByGroup( [] );
-               $this->assertEquals( 0, iterator_count( $users ) );
+               $this->assertSame( 0, iterator_count( $users ) );
 
                $users = User::findUsersByGroup( 'foo' );
-               $this->assertEquals( 0, iterator_count( $users ) );
+               $this->assertSame( 0, iterator_count( $users ) );
 
                $user = $this->getMutableTestUser( [ 'foo' ] )->getUser();
                $users = User::findUsersByGroup( 'foo' );
index fbb893e..e40417c 100644 (file)
@@ -1180,7 +1180,7 @@ class WatchedItemStoreUnitTest extends MediaWikiTestCase {
                $this->assertInstanceOf( WatchedItem::class, $watchedItem );
                $this->assertEquals( 1, $watchedItem->getUser()->getId() );
                $this->assertEquals( 'SomeDbKey', $watchedItem->getLinkTarget()->getDBkey() );
-               $this->assertEquals( 0, $watchedItem->getLinkTarget()->getNamespace() );
+               $this->assertSame( 0, $watchedItem->getLinkTarget()->getNamespace() );
        }
 
        public function testLoadWatchedItem_noItem() {
@@ -1382,7 +1382,7 @@ class WatchedItemStoreUnitTest extends MediaWikiTestCase {
                $this->assertInstanceOf( WatchedItem::class, $watchedItem );
                $this->assertEquals( 1, $watchedItem->getUser()->getId() );
                $this->assertEquals( 'SomeDbKey', $watchedItem->getLinkTarget()->getDBkey() );
-               $this->assertEquals( 0, $watchedItem->getLinkTarget()->getNamespace() );
+               $this->assertSame( 0, $watchedItem->getLinkTarget()->getNamespace() );
        }
 
        public function testGetWatchedItem_cachedItem() {
index 53edbf2..77fcff2 100644 (file)
@@ -233,7 +233,7 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
                $index = $indexList->next();
                $this->assertEquals( 'baz_index2', $index->name );
                $this->assertEquals( '1', $index->unique );
-               $this->assertEquals( 0,
+               $this->assertSame( 0,
                        $db->selectField( 'sqlite_master', 'COUNT(*)', [ 'name' => 'baz' ] ),
                        'Create a temporary duplicate only'
                );
@@ -524,7 +524,7 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase {
                $databaseCreation = $db->query( 'CREATE TABLE a ( a_1 )', __METHOD__ );
                $this->assertInstanceOf( ResultWrapper::class, $databaseCreation, "Failed to create table a" );
                $res = $db->select( 'a', '*' );
-               $this->assertEquals( 0, $db->numFields( $res ), "expects to get 0 fields for an empty table" );
+               $this->assertSame( 0, $db->numFields( $res ), "expects to get 0 fields for an empty table" );
                $insertion = $db->insert( 'a', [ 'a_1' => 10 ], __METHOD__ );
                $this->assertTrue( $insertion, "Insertion failed" );
                $res = $db->select( 'a', '*' );
index 2f6fa39..628d248 100644 (file)
@@ -1799,7 +1799,7 @@ class LanguageTest extends LanguageClassesTestCase {
                $s = $lang->getMessageFromDB( 'word-separator' );
                $c = $lang->getMessageFromDB( 'comma-separator' );
 
-               $this->assertEquals( '', $lang->listToText( [] ) );
+               $this->assertSame( '', $lang->listToText( [] ) );
                $this->assertEquals( 'a', $lang->listToText( [ 'a' ] ) );
                $this->assertEquals( "a{$and}{$s}b", $lang->listToText( [ 'a', 'b' ] ) );
                $this->assertEquals( "a{$c}b{$and}{$s}c", $lang->listToText( [ 'a', 'b', 'c' ] ) );
index 7647915..0387535 100644 (file)
@@ -185,7 +185,7 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
                // 2. Do the real output checking on our own.
                $lines = explode( "\n", $this->getActualOutput() );
                $this->assertGreaterThan( 1, count( $lines ), "Minimal lines of produced output" );
-               $this->assertEquals( '', array_pop( $lines ), "Output ends in LF" );
+               $this->assertSame( '', array_pop( $lines ), "Output ends in LF" );
                $timestamp_re = "[0-9]{4}-[01][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-6][0-9]";
                foreach ( $lines as $line ) {
                        $this->assertRegExp(
index 4e1aced..17487ac 100644 (file)
@@ -50,7 +50,7 @@ class DiffOpTest extends \MediaWikiUnitTestCase {
         */
        public function testNorig() {
                $obj = new FakeDiffOp();
-               $this->assertEquals( 0, $obj->norig() );
+               $this->assertSame( 0, $obj->norig() );
                $obj->orig = [ 'foo' ];
                $this->assertEquals( 1, $obj->norig() );
        }
@@ -60,7 +60,7 @@ class DiffOpTest extends \MediaWikiUnitTestCase {
         */
        public function testNclosing() {
                $obj = new FakeDiffOp();
-               $this->assertEquals( 0, $obj->nclosing() );
+               $this->assertSame( 0, $obj->nclosing() );
                $obj->closing = [ 'foo' ];
                $this->assertEquals( 1, $obj->nclosing() );
        }
index cbfddd4..2c852e0 100644 (file)
@@ -7,7 +7,7 @@ class PasswordFactoryTest extends MediaWikiUnitTestCase {
        public function testConstruct() {
                $pf = new PasswordFactory();
                $this->assertEquals( [ '' ], array_keys( $pf->getTypes() ) );
-               $this->assertEquals( '', $pf->getDefaultType() );
+               $this->assertSame( '', $pf->getDefaultType() );
 
                $pf = new PasswordFactory( [
                        'foo' => [ 'class' => 'FooPassword' ],
index fb0309d..fce21f7 100644 (file)
@@ -27,7 +27,7 @@ class SearchSuggestionSetTest extends \MediaWikiUnitTestCase {
         */
        public function testAppend() {
                $set = SearchSuggestionSet::emptySuggestionSet();
-               $this->assertEquals( 0, $set->getSize() );
+               $this->assertSame( 0, $set->getSize() );
                $set->append( new SearchSuggestion( 3 ) );
                $this->assertEquals( 3, $set->getWorstScore() );
                $this->assertEquals( 3, $set->getBestScore() );
@@ -61,7 +61,7 @@ class SearchSuggestionSetTest extends \MediaWikiUnitTestCase {
         */
        public function testInsertBest() {
                $set = SearchSuggestionSet::emptySuggestionSet();
-               $this->assertEquals( 0, $set->getSize() );
+               $this->assertSame( 0, $set->getSize() );
                $set->prepend( new SearchSuggestion( 3 ) );
                $this->assertEquals( 3, $set->getWorstScore() );
                $this->assertEquals( 3, $set->getBestScore() );
@@ -104,7 +104,7 @@ class SearchSuggestionSetTest extends \MediaWikiUnitTestCase {
                $this->assertEquals( 10, $set->getSize() );
 
                $set->shrink( 0 );
-               $this->assertEquals( 0, $set->getSize() );
+               $this->assertSame( 0, $set->getSize() );
        }
 
        // TODO: test for fromTitles
index 6512e7d..72a89dd 100644 (file)
@@ -39,16 +39,8 @@ exports.config = {
        // Sauce Labs
        // ======
        // See http://webdriver.io/guide/services/sauce.html
-       // and https://docs.saucelabs.com/reference/platforms-configurator
-       services: [ 'sauce' ],
-       user: process.env.SAUCE_USERNAME,
-       key: process.env.SAUCE_ACCESS_KEY,
-
-       // Default timeout in milliseconds for Selenium Grid requests
-       connectionRetryTimeout: 90 * 1000,
-
-       // Default request retries count
-       connectionRetryCount: 3,
+       // and https://github.com/bermi/sauce-connect-launcher#advanced-usage
+       services: process.env.SAUCE_ACCESS_KEY ? [ 'sauce' ] : [],
 
        // ==================
        // Test Files