Commit graph

47 commits

Author SHA1 Message Date
Kunal Mehta
d1cf48a397 build: Update mediawiki/mediawiki-codesniffer to 0.10.1
And auto-fix all errors.

The `<exclude-pattern>` stanzas are now included in the default ruleset
and don't need to be repeated.

Change-Id: I928af549dc88ac2c6cb82058f64c7c7f3111598a
2017-07-22 18:24:09 -07:00
Umherirrender
be42e09aa8 build: Prepare for mediawiki/mediawiki-codesniffer to 0.9.0
The used phpcs has a bug, so the version 0.9.0 could not be enforced at the moment.
Will be fixed in next version, see T167168

Changed:
- Remove duplicate newline at end of file
- Add space between function and ( for closures
- and -> &&, or -> ||

Change-Id: I4172fb08861729bccd55aecbd07e029e2638d311
2017-06-26 17:14:31 +00:00
Timo Tijhof
447ce7e39a phpunit: Avoid use of deprecated getMock for PHPUnit 5 compat
The default will remain PHPUnit 4.x due to PHP 5.5 support.

But, we should allow developers to run tests with newer PHPUnit
versions which are noticably faster (especially for code coverage
reports).

* <https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-5.4.0>
  PHPUnit 5 deprecates the getMock() shortcut for getMockBuilder()->getMock().
  It instead introduces the shortcut createMock() which has better defaults
  than getMockBuilder(). For example, it sets 'disableArgumentCloning' and
  other things by default.

  Going forward, code should either use getMockBuilder directly and configure
  it using the setter methods (instead of the confusing variadic arguments
  of getMock) or simply use the new minimalistic createMock method. This patch
  backports the createMock method to MediaWikiTestCase so that we can start
  using it.

Change-Id: I091c0289b21d2b1c876adba89529dc3e72b99af2
2017-04-06 00:44:32 +00:00
Thiemo Mättig
a068f570be Add more specific Site[] type hints to SiteStore classes
Change-Id: Ie52313861972fd1b269375dfc8f94afdf67bcb9f
2017-01-11 16:39:13 +00:00
Marius Hoch
5f1a4a3dfc Mock Http in MediaWikiPageNameNormalizerTest and add more test cases
Bug: T138570
Change-Id: Ia156ba61afb90c9a3b1a2e1e0bf967056bd87fc8
2016-06-24 18:49:25 +00:00
Aude
e0661f825d Revert "Map dummy language codes in sites"
This is causing duplicate English Wikipedia interwiki links.
The second link is supposed to be for Simple English, but
instead is linked to English Wikipedia.

This reverts commit 1c1c74adef.

Bug: T137404
Change-Id: Ibc1c53ec1b8e643b47ad52f38a8496acfb399d65
2016-06-09 22:02:25 +00:00
Adrian Heine
1c1c74adef Map dummy language codes in sites
The script that populates the sites table assumes that the
subdomain is the content language code. This is not true for
all wikis. This patch introduces a mapping to fix this issue
on the fly, based on $wgDummyLanguageCodes.

This is driven by the need to avoid "bad" language codes when
creating wikidata items from the client, when "linking" two
pages on different wikis. When we do this, we use the language
code from the sites table for the labels of the new item.
We would like to forbid "dummy" languages in labels and
descriptions, for consistency.

Change-Id: I6452761e14d9902bb069e32d0f499bc39e680453
2016-06-07 13:43:48 +00:00
daniel
eb46307b00 Introduce top level service locator.
The service locator, MediaWikiServices, is intended to facilitate
"manual" dependency injection in static entry points.

See also the Dependency Injection RFC T384 and Service Locator
RFC T124792 for details.
The following key points were implemented according the
discussion surrounding these RFCs:

* a configurable DI container that allows extensions to add and replace services.
* no auto-wiring, since it's prone to add confusion in large and complex applications.
* no 3rd party framework, since they typically do too much.

The following services in MediaWiki core are made accessible via the service locator
mechanism to showcase the bootstrapping mechanism:

* ConfigFactory and MainConfig
* SiteLookup and SiteStore

However, the implementation of these services was not yet converted to using proper DI
throughout the code.

Bug: T124792
Change-Id: I3c25c0ac17300d3dd13e1cf5100558a605eee15f
2016-04-02 18:07:28 +03:00
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
addshore
be3176e75a Stop doing $that = $this in Tests
Closures support $this as of 5.4

Change-Id: Ibe73c789d093ef994b61bed23b4c76f7ef057a33
2016-02-09 23:27:25 -08:00
Marius Hoch
4c574daa45 Factor page name normalization out of MediaWikiSite
Into a new MediaWikiPageNameNormalizer.

The code has been copied over almost 1:1, I only
left the phpunit test special handling in MediaWiki site.

Change-Id: I008cadd29a2aa1f21098339b895c35a100959b04
2016-01-04 17:32:22 -08:00
aude
b0c81a3e09 Remove deprecated SiteObject and SiteArray classes
SiteObject and SiteArray were deprecated in 1.21 and
can't find any use of them anywhere else in gerrit.

Change-Id: Iff3ba8a60ac9566998cce828c4034066fdefe804
2015-11-04 13:43:32 +01:00
Vivek Ghaisas
c54766586a Fix issues identified by SpaceBeforeSingleLineComment sniff
Change-Id: I048ccb1fa260e4b7152ca5f09b053defdd72d8f9
2015-09-26 23:06:52 +00:00
Thiemo Mättig
9ab19a5420 Enforce an alphabetic default order for SiteList entries
Bug: T106054
Change-Id: I8bf22d99b8304d7a6f40e384e8de00a4aca9313d
2015-08-06 16:24:33 +02:00
umherirrender
d8821f2b0b Fixed spacing
- Removed space after casts
- Removed spaces in array index
- Added spaces around string concat
- Added space after words: switch, foreach
- else if -> elseif
- Removed parentheses around require_once, because it is not a function
- Added newline at end of file
- Removed double spaces
- Added spaces around operations
- Removed repeated newlines

Bug: T102609
Change-Id: Ib860222b24f8ad8e9062cd4dc42ec88dc63fb49e
2015-06-17 20:22:32 +00:00
Vivek Ghaisas
fd9178e4c3 Fix braces code style
Bug: T102805
Change-Id: I7ce4c71dd605f9be79a630602391271bb269b962
2015-06-17 16:28:51 +03:00
Timo Tijhof
19bff2537e Consistently name the $this callback variable "$that"
Most are already, but some had differnet names. In PHP 5.4+ this is
redundant as they inherit automatically, but we need these for PHP 5.3
compatibility. Settle on "$that" to make these easier to find.

Change-Id: I0b68b2c550fde9c2da53d844421e34b8df0c42ed
2015-05-13 23:05:07 +01:00
Timo Tijhof
b4bac102b6 tests: Clean up file headers
* Remove redundant @licence/@license from test suite files.
  They already have full licence headers. And @licence raises a
  warning in Doxygen.

* Fix weird messes of comments inside comments and other things.

Change-Id: I38da8ca76330f72b8dc22b0ecf1ea69d5ea55ede
2015-04-01 00:17:12 +01:00
aude
aded554d70 Split SiteLookup interface from SiteStore
* SiteLookup interface is added, and SiteStore extends
  it. (any SiteStore type hints can be changed to use
  SiteLookup if all they need is lookup functionality)
* Memcached based SiteStore code is split from the
  database SiteStore, and SiteSQLStore is deprecated.
  If no caching is desired when using a SiteStore, then
  use a SiteDBStore instance, instead of passing $source
  parameter in SiteStore::getSite and SiteStore::getSites.
* SiteListFileCache renamed to FileBasedSiteLookup and
  implements SiteLookup.

Bug: T77990
Change-Id: I36b599884c211580ea6806a8a190c65c4f9087cf
2015-03-18 21:31:48 +01:00
aude
df3ac3d09e Introduce HashSiteStore, mainly for use in tests
HashSiteStore comes from Wikibase (see I783bd95), where it was
called MockSiteStore.

This enables some phpunit tests, related to Site objects, to no longer
depend on a database, memcached or other external storage. This makes
tests faster and more simple.

Bug: T90874
Change-Id: I048d37bd2aaa5f17c9fe16b2855df8bf9fe7bc8c
2015-02-27 10:14:48 +01:00
daniel
ca3be1e13d Maintenance script for exporting site definitions
Bug: T87178
Change-Id: I40fd6aaa8f47bad3d595d5c190036bf04d13c12a
2015-02-20 12:09:34 +01:00
daniel
85e2086369 Maintenance script for importing site info.
Bug: T87176
Bug: T87183
Change-Id: I3936417bc79e08cf3d04270158a6e483b5515246
2015-02-18 18:39:14 +01:00
aude
c4b44cdc72 Cleanup SiteListFileCache test files in tearDown
Also use tempnam instead of time().

Bug: T84970
Change-Id: I5eb4379671cde45f70bb03d4634f9f34495a6b29
2015-01-08 13:04:12 +00:00
aude
90f6efc360 Implement SiteListFileCache and rebuild script
Provides file-based cache of the SitesStore data,
using a static json file dump of the data from the
SiteSQLStore.

Includes a maintenance script to rebuild the sites cache.

Bug: 56602
Bug: 45532
Change-Id: Iaee4c1f9fb5d54efe01975f733ebd5c339ac106f
2014-11-27 22:32:25 +00:00
jenkins-bot
227204c69b Merge "Add at least one RTL language to the TestSites mock collection" 2014-07-29 09:44:00 +00:00
Chad Horohoe
f129b1baf9 Limit test leakage, $wgCapitalLinks expected to be true
Change-Id: I0f837d29595abefaebeb67d6cc62ea48838d626a
2014-07-07 16:54:35 -07:00
Thiemo Mättig
8e6fd74781 Add at least one RTL language to the TestSites mock collection
When working on Wikibase/Wikidata we learned that it's always a
good idea to test with at least one right-to-left (RTL) language.
We prefer 'fa' (Farsi, the Persian language).

This change affects about 30 tests.
If they all succeed the change should be fine, right?

Change-Id: I11ded5ff98816e604da8fb92993834eb7dc99b99
2014-05-27 15:44:56 +02:00
Siebrand Mazeland
69ec133bc5 Pass phpcs-strict on some test files (10/11)
Change-Id: I5624292143fcabe890779f5095eae735d7afb176
2014-04-24 13:50:56 -07:00
umherirrender
2000672ac3 Fixed spacing
- Added spaces after if/foreach/catch
- Added new line before end of file
- Added or removed spaces before/after parenthesis, comma
- Added spaces around string concat

Change-Id: I0590070f1b3542108e242730e8d9a3ba9831e94f
2014-03-20 20:37:30 +00:00
aude
4f02f5fbb7 Put SiteList navigation ids into cache
These are ids used by extension(s) such as Wikibase
to add language links in the sidebar.

Bug: 62754
Change-Id: Ie21fc3ea500bd7de3c01a9d8ec05373f016f339a
2014-03-18 15:11:41 +00:00
Bene
febcfe8d61 Add site by navigation id feature to SiteList
There are some places especially in Wikibase where we need to get a site
based on the local navigation id. This feature really should go into core.

Change-Id: I02eb1673bea58f79d02db2e1ecd21cbc5b8cb0d1
2014-03-04 21:09:10 +01:00
addshore
4e941cf4ca Add @covers tags for more tests
Change-Id: Iff3af78e9b41c445b7f066b6c0d0f4a87d2d6c4e
2013-10-21 11:28:39 +02:00
Siebrand Mazeland
791d0b2a98 Update code formatting
Change-Id: I16a9b42651f1cfb1a70dffbb67b7b83dfeb90d03
2013-04-26 14:21:20 +00:00
Timo Tijhof
b36d883017 Tests: Make phpunit providers "public static".
Follows-up I9d2b148e57 (including phpunit/languages this time).

Bug: 46434
Change-Id: I30e5efcd88c516121c454676bd7a18f9b7c8fca6
2013-03-22 03:12:37 +01:00
Siebrand Mazeland
49dfbc59d0 Update formatting
6 of n.

Change-Id: I0ca3f1f72349623631ce1d7f3a4e2ed5edbdbdf4
2013-02-15 12:44:42 +00:00
Antoine Musso
0fd05285d7 pass codesniffer on tests/
Fix almost all occurences of the following sniffs:

Generic.CodeAnalysis.UselessOverridingMethod.Found
Generic.Formatting.NoSpaceAfterCast.SpaceFound
Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma
Generic.Functions.OpeningFunctionBraceKernighanRitchie.BraceOnNewLine
Generic.PHP.LowerCaseConstant.Found
PSR2.Classes.PropertyDeclaration.ScopeMissing
PSR2.Files.EndFileNewline.TooMany
PSR2.Methods.MethodDeclaration.StaticBeforeVisibility

Change-Id: I96aacef5bafe5a2bca659744fba1380999cfc37d
2013-01-28 12:14:26 +01:00
jenkins-bot
587626d03a Merge "(bug 44338) set the site internal id when loading sites from the db" 2013-01-25 13:18:13 +00:00
aude
5b33ae42d9 (bug 44338) set the site internal id when loading sites from the db
Change-Id: Id0d76255e8f12ac7101b8334e3968cdbf4b04851
2013-01-25 13:03:21 +00:00
daniel
93be12f54d Add a method to clear the site list programmatically.
Change-Id: Iecee9c4d52676f95845517a5b5dbcb500ea66cc4
2013-01-24 18:18:59 +00:00
daniel
ae9f19ab52 Clear caches automatically when changing site list.
This introduces SiteSQLStore::reset() and calls it in all
methods that modify the site list.

Change-Id: If865ac16f7e79df9999db27ebe22aea5a0bc9a6b
2013-01-24 19:10:19 +01:00
jeroendedauw
232dfda61c Implemented Serializable interface in Site
Change-Id: I1d8394e0aa65e6ba16f1a1c1021bcae93ebb3e41
2013-01-24 14:41:59 +01:00
jeroendedauw
a00337c3f8 Design improvements to sites code
Change-Id: I08ffa6a97093abbe85169f664b97498c5f39bf8e
2013-01-22 15:39:23 +01:00
jeroendedauw
9e4761e3aa Fixed SiteArray serialization
Change-Id: I9844236b8720d96f99aef788ab023c522f993045
2012-12-12 20:00:03 +01:00
daniel
980da6d6a7 ORMRow must not ignore failures on insert by deault.
ORMRow shouldn't apply the "IGNORE" modifier for insertions by default.
IGNORE means pretending the insert was successfull even if it wasn't.
That's not a good default, and for some databases (like sqlite), may
actually hide errors beyond key conflicts.

Change-Id: I8b00cd03a459419441195ed25091385371b027a5
2012-10-31 20:15:02 +01:00
Tobias Gritschacher
fa259fcc8a Fix for SiteListTest failing on 32bit machines
- this fixes an issue with test data which is a too large integer
  interpreted as float on 32 bit systems
- see http://www.php.net/manual/de/language.types.integer.php#103506
- "On a 32-bit system, the largest value that can be held in an INT is
  2147483647."

Change-Id: I577dfba3b32e93535c06329ee1b4de28366a1aac
2012-10-15 12:38:10 +02:00
jeroendedauw
d9c1bc7262 Update @since tags from 1.20 to 1.21
Change-Id: Iea7bad4367782ee8baa676921625b44dc2b7c45f
2012-10-12 18:29:28 +02:00
jeroendedauw
7389d7c690 Added sites functionality, a much more generic and flexible version of the existing interwiki code
This code is meant to replace the current interwiki code, but does not do so just yet. It is however used by the Wikibase extension. This allows us to try out some more things and have the code stabilize more before we migrate over existing interwiki functionality.

Change-Id: I23c47c2c3909a1500350fb560a5f2ec654e2c37e
2012-10-12 17:47:44 +02:00