Rather than calling mainLoginForm() and returning false,
the addNewaccountInternal() function now returns a Status
on failure. mainLoginForm() is then called in addNewAccount()
and addNewAccountMailPassword() instead. This allows for
processing of the account creation form without submitting
anything to $wgOut.
Change-Id: I402c6bebcfe276233cc1f9e16efbe55a034b2181
* Added JobQueue::deduplicateRootJob() function which uses cache
records of the last time a "root" job was initiated for a task
in order to invalidate prior jobs for that task. For refreshLinks,
the "task" is basically "enqueueing the refresh jobs for title X".
* (bug 27914) Also added new Job::getDeduplicationFields() function
and made use of it with refreshLinks to exclude things like 'masterPos'
from duplicate job check comparisons for refreshLinks.
* (bug 27914) Always resolve refreshLinks2 jobs down to refreshLinks jobs.
For each affected pages, one of them will get their job popped
first, which will remove the duplicates for that page unless
one page is in a refreshLinks2 jobs and the other in refreshLinks.
* (bug 37731) Made LinksUpdate/HTMLCacheUpdate defer the large
backlinks query by doing it in an outer job.
* (bug 42065) HTMLCacheUpdate will no longer purge pages that were
already purged since the job was added.
Change-Id: I71b743e0a38e60a874ca856e80cb761bea06b689
* This way, we can actually get persistent cache hits for
the HTMLCacheUpdate queries rather than always hitting a DB.
* Also moved BacklinkCache under the /cache directory.
Change-Id: I0666ee575fb42675f1a7dd9cb52665f0a12a66a9
* Added a 'describe' file operation type to doOperations()/doQuickOperations().
This can be used by scripts to fill in headers like X-Content-Duration for
files that already exists.
* Removed wrong comments about removing headers (they don't get removed with null).
* Added some quick unit tests.
Change-Id: I43c5907b59421beaa9487eefac0cdbf8bc6c6d85
The project to integrate MobileFrontend into core has
been stashed for now, and this leftoff is preventing
further work on MF by creating a class name conflict.
Change-Id: I6a9a25877bf75496fb4074acc83e12b7cb8dd86a
* Move scattered pieces from tests/* in main AutoLoader.php
into tests/TestsAutoLoader.php.
Verified with:
'ack -Q i --ignore-dir tests/phpunit/ <classname>'
on mediawiki/core that these classes are not used outside
tests/phpunit/.
* Moved entry for maintenance/backup.inc to the main AutoLoader.
* Refactored assertion logic in maintenance/checkAutoLoader.php
into a public static method used in it's execute method
and in the (new) AutoLoaderTest suite.
* The new test was immediately failing, added missing classes
and removed old ones that don't exist.
And CheckAutoLoader itself, so that it can actually be used
in AutoLoaderTest.php
* Per discussion on Gerrit, moved the logic into the unit test
instead of refactoring the maintenance script, we no longer
need the maintenance script.
* Fixed the regex to also detect abstract, final and interface.
The test was failing badly, claiming many classes did not
exist.
* Improved the logic to also catch entries in the AutoLoader
configuration for inexisting classes in existing files.
So far it only catched entries with wrong files and missing
entries for classes in known files.
An entry like "BlablaSomethingHere => includes/Action.php"
did not emit any kind of warning. The refactored logic
builds a reverse index and uses a simple assertEquals to
find any inconsistencies (whatever the cause).
Change-Id: I0a307f23175d52345180cdfc7c2d5e172536be1b
Syntax:
* Call parent setUp from setUp.
* Set required globals for the test inside the test class instead
of assuming the default settings.
* Data providers are called statically and outside setUp/tearDown
("public static function")
* Test function names should be prefixed with "test"
("testIsRedirect")
* Marked 2 functions as unused. JavascriptContentTest has 2 data
providers for tests that don't exist in it (nor in TextContentText)
but do exist in WikitextContentTest.
Style:
* Single quotes
* Remove odd comment "# =====" lines
* Consistent tree wrapping with arrays.
array(
array(
.. ) );
array(
array(
..
)
);
Some were closing on the previous line instead.
Made it consistent now.
* Remove odd indentation to make nested arrays line up:
array( 'foo' => array( 'bar' => true,
'baz' => array() ) )
array( 'foo' => array(
'bar' => true,
'baz' => array()
) )
We don't do this kind of indentation because it is fragile
and becomes outdates when any of the earlier keys ("foo")
change. Converted to a regular tree instead.
Also triggered git warnings for mixing spaces with tabs, which
is almost always an detector for this style.
* Not using @annotations in inline comments, reserved (and only
parsed/meaningful) for block comments.
Follows-up 8b568be5e2
Change-Id: Ic55d539b9a58f448b550bcd98894d389764e0694
* Has to keep actual messages for IRC notification
* Catch really old log entries with no parameters and use an
appropriate message in that case to not always display erroneous
"X changed group membership for Y from (none) to (none)".
Change-Id: Ie188bc6fcdf672fe31f0f389a158aab6256031fa
* Added support for different queue types and methods for storing queues.
* Treat each job type as being on its own queue, at least logically.
* Added $wgJobTypeConf to configure queue types for each job type.
* Improved the job DB table so that duplicate job checks actually work
and are faster. Also improved the method for popping rows of the table.
* Disabled duplicate job removal for everything except refreshLinks.
The DELETE statements just add DB overhead and are not useful for cheap
jobs, especially ones with start/end params (which are unlikely to have
exact duplicates).
Change-Id: I49824c7fa855fea4ddcac5c9901ece8c2c0101d0
Made TextContent and TextContentHandler usable directly.
CONTENT_MODEL_TEXT is unused in core, but may be used by extensions.
Change-Id: I8963c968800b98e286cd917a1038a9905b3a0fef
This allows sha1 searches with the api in miser mode for deleted files
Added script to populate the rows
Adding new field to selects and handle it in all places, where needed
Using a 10 byte index for the new field per
http://lists.wikimedia.org/pipermail/wikitech-l/2012-September/063429.html
Change-Id: Ie54a513fe361202e63df44be44a0fdd91926c974
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
Figured since a JS Timestamp class was being implemented
it might be appropriate to create a complementary PHP
Timestamp class. Much of code is taken from wfTimestamp().
Note: Another change (I53dcf547) is attempting a related
issue. Not sure how much of scope overlap there is.
Change-Id: I68eb9f27eebe80df757187f634392e1bcba5551f
Signed-off-by: Tyler Romeo <tylerromeo@gmail.com>
Revert 94f623363b. Apparently all
ReverseChronologicalPager subclasses were broken by the unexplained
interface change in wfArrayToCgi(): changing the interpretation of
null array values from "omit this key" to "include this key with no
value". The function has always been called with the former
interpretation, that's why the special case was in there.
Also reverted dependent changes 4b517fa and part of 3d97704.
Change-Id: I41dadbde5d0e0e4c54cc76bfc13c263c15c73828
Revision::getContent must return a cloned instance of the Content object
if the Content object is mutable to avoid confusion.
Content::copy is used to achieve this, which is specified to return $this
for immutable Content.
Change-Id: Iace17b6ae8aa85a3500624441b69bc067c1ade00
This special pages counts all langlinks and shows the pages with the
highest count.
Update rate on WMF is every 3 days, like all other Most* special pages.
Change-Id: Ia60aed7599e8b9d6dcbae2be9bc4f91f4f8d4e55
* Use the plurals.xml of CLDR for the plural rules of languages
* Use plurals-mediawiki.xml to override or extend the rules inside MW
* Remove the convertPlural method in each LanguageXX.php
* Parse and load the xml files in LocalisationCache
* Use the CLDRPluralRuleEvaluator.php for parsing the cldr plural rules
(This is taken from Translate extension and might require a replacement
parser without using eval)
* Add getPluralRules() to make the CLDR plural rules available to JS.
PS3: More method documentation, cleanup
Change-Id: I58a9cdfe60c7b9027bf031c91370472054f04ae2