Commit graph

76 commits

Author SHA1 Message Date
Stanislav Malyshev
34b02d87ac Convert SearchEngine to service containers
Change-Id: Icef1ecbed3d831557e0256fdfa53743b194007cc
2016-04-25 16:25:17 -07:00
jenkins-bot
09208169f3 Merge "Factor SpecilaPageExecutor out of SpecialPageTestBase" 2016-03-28 02:22:44 +00:00
jenkins-bot
71d28b9879 Merge "Introduce basic SpecialEditWatchlistTest" 2016-03-24 15:06:30 +00:00
addshore
049fb94979 Factor SpecilaPageExecutor out of SpecialPageTestBase
Change-Id: I3c8ae980db5ba3b34bd6664f400bc3b5cdf587c0
2016-03-24 14:17:55 +00:00
addshore
93d09cf3c2 Introduce basic SpecialEditWatchlistTest
Change-Id: I9f765c4183314850169f685abd242e979a79bd68
2016-03-24 13:27:03 +00:00
addshore
48fd22b1d0 Introduce basic SpecialWatchlistTest
Change-Id: I98a2ad112189a09581a0564da3c3357939a5d7de
2016-03-24 13:19:30 +00:00
daniel
a8995619c1 Avoid rebuilding database fixtures for every test run
This reduces the runtime of database-bound tests by about 40%
(on my system, from 4:55 to 2:47; results from Jenkins are
inconclusive).

The basic idea is to call addCoreDBData() only once, and have
a addDBDataOnce() that is called once per test class, not for
every test method lie addDBData() is. Most tests could be
trivially be changed to implement addDBDataOnce() instead of
addDBData(). The ones for which this did not work immediately
were left out for now. A closer look at the tests that still
implement addDBData() may reveal additional potential for
improvement.

TODO: Once this is merged, try to change addDBData() to
addDBDataOnce() where possible in extensions.

Change-Id: Iec4ed4c8419fb4ad87e6710de808863ede9998b7
2016-03-10 23:44:34 +00: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
044f6418b1 Switch name to username in @author tags
From now on I will simply use addshore
everywhere to keep things uniform...

Change-Id: Iaf441b2d7a67a12c20529f0e9c7b47819f4abfae
2016-01-27 10:59:31 +01:00
umherirrender
660bbda5f6 Set Language in SpecialSearchTest.php
Test fails on wikis with $wgLanguageCode not = 'en', fix this by
setting the language on the context.

Change-Id: I3a89b347263e460f639ba0641f5dbc65e8bf258d
2015-12-07 19:01:02 +01:00
addshore
d40cd42b9f Enable users to watch category membership changes #2
This is part of a chain that reverts:
e412ff5ecc.

NOTE:
- The feature is disabled by default
- User settings default to hiding changes
- T109707 Touching a file on wikisource adds and
      removes it from a category... Even when page
      has no changes.... WTF? See linked issue,
      marked as stalled with a possible way forward
      for this patch.
      @see https://gerrit.wikimedia.org/r/#/c/235467/

Changes since version 1:
- T109604 - Page names in comment are no longer
      url encoded / have _'s
- T109638 & T110338 - Reserved username now used
      when we can't determine a username for the change
      (we could perhaps set the user and id to be blank
      in the RC table, but who knows what this might do)
- T109688 - History links are now disabled in RC....
      (could be fine for the introduction and worked
      on more in the future)
- Categorization changes are now always patrolled
- Touching on T109672 in this change emails will never
      be sent regarding categorization changes. (this
      can of course be changed in a followup)
- Added $wgRCWatchCategoryMembership defaulting to true
      for enabling / disabling the feature
- T109700 - for cases when no revision was retrieved
      for a category change set the bot flag to true.
      This means all changes caused by parser functions
      & Lua will be marked as bot, as will changes that
      cant find their revision due to slave lag..

Bug: T9148
Bug: T109604
Bug: T109638
Bug: T109688
Bug: T109700
Bug: T110338
Bug: T110340
Change-Id: I51c2c1254de862f24a26ef9dbbf027c6c83e9063
2015-10-20 14:23:48 -07:00
Vivek Ghaisas
c54766586a Fix issues identified by SpaceBeforeSingleLineComment sniff
Change-Id: I048ccb1fa260e4b7152ca5f09b053defdd72d8f9
2015-09-26 23:06:52 +00:00
Amir E. Aharoni
51f6dca4aa SpecialSearchTest.php: Make lines shorter to make phpcs happier
Also fixes a "Single space expected before closing parenthesis" failure.

Change-Id: Id35e490e7d17ee58b643e9f74583afcef62145c2
2015-09-26 14:42:26 +00:00
Erik Bernhardson
23acf6e70f Move query rewriting into search backend
Special:Search recently gained query rewriting behavior when the
original query returned no results.  We want to expose this query
rewriting behavior to both api and web requests.  Additionally we
want to be able to test different configurations of the query
suggestions.  This patch allows for both by moving the rewriting
from core into the search backend.

This defaults to enabled for Special:Search, and disabled for
ApiQuerySearch. Internal code that talks to the search backend
needs to specifically enable this feature.

Bug: T106888
Change-Id: I0a8f75759f9148f53358707369b8a7128215de86
2015-08-31 22:41:05 -07:00
jenkins-bot
85f481a0dd Merge "Auto-forward to search suggestion when zero results" 2015-07-27 21:05:07 +00:00
Erik Bernhardson
bbfc872871 Auto-forward to search suggestion when zero results
If the user gets zero results, but gets a "Did you mean" result, just
run the query for the "Did you mean" result and inform the user that
this happened. Adds a new query param 'runsuggestion' which will, when
given a falsy value, prevent running the suggestion and give the result
to the original query.

Bug: T105202
Change-Id: I7ed79942c242b1957d46bdcad59985f37466fb83
2015-07-27 08:25:01 -07:00
addshore
60e2104f7e Add tests for Special:BlankPage
This uses SpecialPageTestBase and demonstrates how that class
should be used.

Change-Id: Ibbf3fdcb172d7c1c71491d27b534faa65fd9be63
2015-07-06 19:20:30 +00:00
addshore
a737b61365 Add SpecialPageTestBase to simplify testing of special pages
This is copied from Wikibase. A follow up change adds a test
for Special:BlankPage to demonstrate how it works.

Change-Id: I3c34fd17ceb0049b160ec4f821474de457533983
2015-07-06 19:19:28 +00:00
Bartosz Dziewoński
1021f20100 Fix instances of preg_quote() without second parameter
This might work in specific cases, depending on the string we're
quoting, but is never correct. The instance in SpecialAllMessages.php
was resulting in incorrect behavior (and log spam, T103879).

Searched for this regex: preg_quote\((?:\([^)]+?\)|[^,()])+?\)

Change-Id: Icc88775970f4927ddf953e5ad7c5c19d59491573
2015-06-25 19:43:56 +02:00
aude
9d60ec5a4f Add @group Database tags to tests that need it
These tests all involve database access in some way,
and thus need @group Database tags.

These failed when setting a bogus database password
and then running the tests.

Change-Id: I7f113a79ac44d09d88ec607f76b8ec22bc1ebcf1
2015-04-01 11:20:23 +02:00
Kevin Israel
74faccfa26 Change case of class names to match declarations
Found by running tests under a version of PHP patched to report
case mismatches as E_STRICT errors.

User classes:
* MIMEsearchPage
* MostlinkedTemplatesPage
* SpecialBookSources
* UnwatchedpagesPage

Internal classes:
* DOMXPath
* stdClass
* XMLReader

Did not change:
* testautoLoadedcamlCLASS
* testautoloadedserializedclass

Change-Id: Idc8caa82cd6adb7bab44b142af2b02e15f0a89ee
2014-12-19 16:01:26 +00:00
Kevin Israel
19473fa625 Special:BookSources: Correct validation of ISBNs containing X
PHP's "equal" (==) operator considers the integer 0 to be equal to
the string 'X', and when 'X' is converted to a number, it becomes 0.
Neither is desired here.

* Fail when an X is encountered while calculating the check digit.
  (X can only occur as the check digit of an ISBN-10.)
* Fixed the check digit comparisons by adding an explicit string cast.
* Used the "identical" operator to make it more obvious that no type
  juggling should take place during the comparisons.
* Added some test cases.
* Removed an outdated TODO.

Bug: 67021
Change-Id: I85f53c41f403a60340e9441757fe66b9764e623c
2014-10-01 19:14:39 +00:00
Timo Tijhof
96771e3a65 test: Clean up data providers that should be static
Follows-up b36d883.

By far most data providers are static (and PHPUnit expects them
to be static and calls them that way).

Most of these classes already had their data providers static
but additional commits sloppily introduced non-static ones.

* ResourceLoaderWikiModuleTest, 8968d8787f.
* TitleTest, 545f1d3a73.
  Odd unused method 'dataTestIsValidMoveOperation' was introduced
  in 550b878e63.
* GlobalVarConfigTest, a3e18c3670.

Change-Id: I5da99f7cd3da68c550ae507ffe1f725d31e7666f
2014-09-18 12:52:44 -07:00
Jeff Janes
7e3fcc39ea PHPUnit: Add Database tags
Several unit tests access the database, but did not declare
themselves in the Database @group.  This causes
"make databaseless" to fail needlessly.  Add the
missing tags.

tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/actions/ActionTest.php
tests/phpunit/includes/specials/ImageListPagerTest.php
tests/phpunit/includes/specials/SpecialMIMESearchTest.php
tests/phpunit/includes/title/MediaWikiPageLinkRendererTest.php

Other than ActionTest.php, these also are problematic in 1.23

Change-Id: I7c1c957e2194c13e48b7ba68d7529e5d89901875
2014-09-16 18:42:27 -07:00
jenkins-bot
7cf9801574 Merge "Fix name of SpecialListFilesTest > ImageListPagerTest" 2014-08-22 23:32:33 +00:00
jenkins-bot
25505f7839 Merge "Remove unused private var and fix phpdoc" 2014-08-22 23:32:30 +00:00
umherirrender
6b4c44c2db Add missing @param to function docs
Change-Id: Ib26407bc55dff7969d8a3b1e2ae51751b202d8fb
2014-08-18 16:24:59 +00:00
addshore
0215a5e0f0 Remove unused private var and fix phpdoc
Change-Id: I4a9d5f19cb0255067895f16dde4bc6d7376d904f
2014-08-17 23:20:09 +01:00
addshore
9b857b2048 Fix name of SpecialListFilesTest > ImageListPagerTest
Change-Id: I221695c3ffb25a65530f1adf9b1f6632d5c20915
2014-08-17 23:18:06 +01:00
umherirrender
26837cd280 Cleanup some docs (tests)
- Swap "$variable type" to "type $variable"
- Fixed spacing inside docs
- Makes beginning of @param/@var/@throws in capital
- Changed some types to match the more common spelling

Change-Id: Ia041964250d8b7c0349d79dc9b131c5b8696e795
2014-08-11 20:06:52 +02:00
rillke
c31fbf073e Unify the spelling of MIME in documentation
Writing MIME as written in Wikipedia and some documentation clean up.

Change-Id: I9dfc36d2bf55d72d9374c4075bd6d45eef0415a4
2014-08-07 23:38:45 +02:00
umherirrender
4ee680a8b3 Fixed spacing
- Removed spaces after not operator (!)
- Removed spaces inside array index
- use tab as indent instead of spaces
- Add newline at end of file
- Removed spaces after casts

Change-Id: I9ba17c4385fcb43d38998d45f89cf42952bc791b
2014-07-24 11:53:04 +02:00
jenkins-bot
2896cf38d6 Merge "Integrate Special:MyLanguage from the Translate extension" 2014-07-23 22:23:56 +00:00
umherirrender
77dc7b8f65 Fix typo: expectedExceptionMesage -> expectedExceptionMessage
Change-Id: I8930364d3bbe9070df646f4f253779494c5091b1
2014-07-23 23:28:19 +02:00
Max Semenik
062cfffeb2 Integrate Special:MyLanguage from the Translate extension
In practice, this means the MediaWiki canonical way to uniquely and
humanly name translation pages on a multilingual wiki becomes
$source_page_title + '/' + $target_language_code, irrespective of
the enabling of the navigational subtitle and of the relative
titles (..) syntax for linking and transcluding, which are unrelated
and keep being controlled by $wgNamespacesWithSubpages.

This syntax has been prevalent on most wikis including mediawiki.org
since at least 2009, also thanks to #titleparts in ParserFunctions.

The part of the special page's functionality that made links to it red
when destination page wasn't present will be integrated with a follow-up
commit because they require more performance work.

I'm also including some Title tests that were written for testing the
redlinking functionality but are useful in general.

Bug: 66762
Change-Id: I520077c931431b5919e0208f75c20b5b25f3159d
2014-07-22 11:33:15 -07:00
Chad Horohoe
1cf7eff66f Force default search backend on search test
Other backends might not mimic this behavior. Having CirrusSearch
enabled causes this test to fail.

Change-Id: I462446cd2e5eaf43d843c066cb5d7596394429d8
2014-07-07 20:30:18 -07:00
Ori Livneh
c35b77507e Make SpecialPreferencesTest::testBug41337 non-risky
PHPUnit treats tests that make no assertions as "risky" because they make it
difficult to distinguish successful test runs from programmer error. To make
SpecialPreferencesTest::testBug41337 non-risky, assert that the execute method
returns null.

Change-Id: I4c199d2b81037e6ca2b2862418c4f8a8352c777e
2014-06-26 17:48:55 -07:00
Brian Wolff
2fa5569b7e Fix typo in Special:MIMESearch causing minor part to be ignored.
img_minor_mime was being added to wrong part of query info
array, and thus was being ignored.

Whoops.

Change-Id: I55f45f5ae9621ff1319b34a2aa85cb4bd2c96253
Follow-up: c93baa941a
2014-06-21 14:19:42 -03: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
23bb3d1cb4 Follow-Ups to "Fixed some @params documentation"
Fix of inline comments of the following patch sets:
Follow-Up: I0056b4a8df243cfc0c5f25378de48f7a35170aca
Follow-Up: I7f605aa9e117b5fd80d9b1440864fe526d2b14a5
Follow-Up: I3622f216a2ca8ac1b5e51892be9f98665f65bc36
Follow-Up: I6627ba0e76d3577c40bf2473e0f78a5ad7368634
Follow-Up: Id75b5ecf648ca50f955b3bde3307c82c4366b102
Follow-Up: I4ca5231119f33039d91da3b57a41cd40719a576b

Change-Id: Id9bbe84b2820e9db44af5783411e955f55f643d4
2014-04-23 13:39:49 +02:00
umherirrender
092cd8ee31 Fixed some @params documentation (tests)
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.

Change-Id: Ic8aaf0a93796b97d0fa4617c1f86ff59f4b36131
2014-04-17 20:43:42 +02:00
Chad Horohoe
f508561f7b Moved $wgQueryPages stuff out of the global scope and into a function
Change-Id: Ica034bdad89133bfce0b4238d62ed00865936644
2014-03-18 08:36:32 -07:00
addshore
9e85aabe52 Cleanup a bunch of tests and add todos
Change-Id: Iae44427edee3ed2a62abdb5a8f5d9f1ed2e7d660
2014-03-09 15:12:45 +01:00
Bartosz Dziewoński
973cd64489 ChangesListSpecialPage: Implement buildMainQueryConds()
This also involved adding some default options to getDefaultOptions()
and a new method getDB().

Change-Id: I7389a72bfcf176480bfc36f9d6efc467e1a5e76a
2014-01-27 18:32:41 +01:00
Siebrand Mazeland
e6c7c85779 Throw exception for unknown field in SpecialListfiles::formatValue()
Change-Id: I99fedfb28aaf9b09b5d9fee27020601f3c06e8d4
2014-01-02 09:49:21 +00:00
umherirrender
5ca5672aac Fixed spacing
- Place commas correct
- Moved comments
- Add space after if/foreach/catch
- Reformat some conditions
- Removed trailing spaces/tabs

Change-Id: I40ccda72c418c4a33fcd675773cb08d971510cdb
2013-12-01 20:58:51 +01:00
Mwalker
b06e844804 Merge "@covers tags for more test classes" 2013-10-25 01:09:58 +00:00
addshore
caec5f920a @covers tags for the rest of test files..
Change-Id: I0fafe80531325a412472ab7c9fc6d81c861b3751
2013-10-24 21:38:08 +01:00
addshore
aea1b27db0 @covers tags for more test classes
Change-Id: I19d49c279646a4b4c595700e53b790ba4eb9521e
2013-10-24 20:35:04 +01:00
addshore
de7af7ac2c Fix scope on all /phpunit test methods
Change-Id: I3ce92463d485a0fb23e464e9a8059330f32d79af
2013-10-24 10:31:32 +02:00