This patch adds new public accessor to the Title class. They are merely
returning the already existing conventions.
Added tests for the four new methods:
- Title::getBaseText()
- Title::getRootText()
- Title::getRootTitle()
- Title::getSubpageText()
The later does not test with $wgNamespacesWithSubpages variants.
Change-Id: I4f7230c1a5487b82d06c78a45c50436085df57be
- Adding this now even though no browser supports it so that when one does it doesn't become a way to bypass our url() filter.
- Including missing tests for all of our insecure input filters.
- Also make sure that vendor prefixed versions like -webkit-image() are caught because most browsers are probably going to go and implement a vendor prefixed version first.
Change-Id: If73aa98b8accdb7621b0e4ff0615b61d530fa547
During incident response, it was not possible to tell what API modules
were being requested and by whom, since the action parameter is often
posted. This change logs the API parameters whether they are posted or
sent in the query string.
I did try to get the API parameters from the module, but that turns out
to be difficult. Modules create submodules (generators, page sets) as
local variables, which are created in a procedural style and destroyed
before logging is done, so there is no easy way to query them for
parameter lists after execution completes.
In ApiOptionsTest, use a real ApiMain object like all the other API test
cases, rather than a mock object. Otherwise the test fails.
Change-Id: Idc786007fe61811d1874f29b5ce4762dd97b1847
ApiTestCase resets global session data in setup, invalidating any existing cookies.
ApiQueryInfo caches all tokens, these need to be cleared out so tokens are re-generated
to match the fresh session.
Until now, individual tests have been doing that, but there's no not to do this per
default.
Change-Id: Icefa362190c2e7d87d09bda30079255741824f55
Align should be converted to text-align for all the elements specified
in $presentationalAttribs mapping. Table however is an exception, it
applies to alignment of the block (instead of the content).
Follow up I108cbd10 / 27a4d74bd7.
Change-Id: Iee17d4ef1a6a9b46d88a330cfc9179bccfe93247
This closely match Html::dropDefaults() logic and hopefully test out
all default dropping.
Introduce a test case that match a failure in f34547ab where attribute
default values passed in an array are not cleaned up.
Change-Id: If8d16b066015ed1bcaf38408511ac3713eaa6540
The default value for value="" on <input> elements is not always an
empty string.
In particular the default value for type="radio" is "on" and by
stripping value="" out of the attributes a "" becomes "on" and our
cleanup code ends up breaking forms.
Change-Id: Ibe5a3be3f45a2f93ef95dbe42729b8f8c94a41cb
HTML5 introduced new types for the input element. For some reasons we
never added them to Html::openElement which would thus strip them even
in HTML5 mode.
The issue is:
$wgHtml5 = true;
Html::element( 'input', array( 'type' => 'color' );
# -> "<input />"
With this patch, we returns: <input type="color" />
Change-Id: I7de373635d0eb47f788d1d664c3a913c8801efd6
Followup I68eb9f27
No caller of wfTimestamp can handle the exception, false is always used,
as the method comment says.
See bug 40037 for File related timestamps.
The api result is also not b/c:
<api servedby="mw70">
<error code="internal_api_error_TimestampException" info="Exception
Caught: MWTimestamp::setTimestamp : Invalid timestamp - te"
xml:space="preserve" />
</api>
Change-Id: I1e8c785941d35678f3d12824bdde0ce245572592
Make userWasLastToEdit a static method in the Revision class, so it can be
reused by extensions, etc.
Change-Id: Ib44423c3544dabab3be7fe6eb675315f2480838e
When Special:Search uses User preferences for search, make sure that no
unwanted namespaces have been used.
Change-Id: Ibcb23c812bf1e02a398ffbf3a276afc1b1f367cf
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>
'@group medium' instructs PHPUnit to wait up to 10 seconds for the test
to complete. That would save us from false positive caused by high disk
I/O on the continuous integration server.
Change-Id: Id11c3ed1879705f806d262dc8090ef2fb432ed36
Without this, some other synonym for "SUBST" may be used by the parser,
because the MagicWord got cached while another content language was active
in some other test.
Change-Id: I89dc2173f6a27dcd16b0548b06070ac4244fd3cb
Fallbacks didn't work at all for the new plural rule system. I fixed it
by moving the getPluralRules() and getCompiledPluralRules() calls near
to the readPHPFile() calls, before merging is done. Then I factored out
the resulting code to readSourceFilesAndRegisterDeps().
* Removed pluralRules from mergeableMapKeys, it isn't one
* Added compiledPluralRules to allKeys so that it will be merged
* When a language is not present in the CLDR XML files, return null from
getPluralRules() and getCompiledPluralRules() so that the fallback
rules won't be overridden with an empty array. Normalised it back to
an empty array in the unlikely event that there is no plural data in
the fallback sequence at all, even in English.
* Fixed private function, "protected" is the way to say private here.
Change-Id: I3a008ef7f6ed7aaa15ad25ad796f7a2b8f827fa2
- Group common code in one instead of doing checks one
time in GlobalFunctions.php and another time in Debug.php
- Remove the code catching the fact that a warning is due
to a deprecation warning, no longer needed
- Pass the caller offset from wfDeprecated() to
MWDebug::deprecated(); this was breaking deprecation
notices for global objects.
- Changed PHP error level for deprecation notices (when
$wgDevelopmentWarnings is set to true) from E_USER_NOTICE
to E_USER_DEPRECATED since we now require PHP 5.3+
- Added E_USER_DEPRECATED to wfSuppressWarnings() and
removed the check for the E_DEPRECATED constant being set
now that we require PHP 5.3+
- Fixed MWDebugTest by calling wfSuppressWarnings() and
wfRestoreWarnings() in setUp() and tearDown()
Change-Id: I6810b57c90d384de55a2cf177047767cdb734f79
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
- This removes the duplication of MWDebug::$debug and
OutputPage::$mDebugtext, so there's no need to store two times
the same text
- Removed OutputPage::debug() since it's no longer used
- Had to keep OutputPage::$mDebugtext because it's still
referenced by SemanticPageMaker extension
- Moved Skin::formatDebugHTML() to MWDebug::GetHTMLDebugLog()
and replaced the call in Skin::generateDebugHTML() to use it
- Also check $logonly before sending entries to the debug
toolbar in wfDebug(), for consistency
- Changed MWDebug::getDebugHTML() to also return the debug log
in an HTML comment if $wgDebugComments is set to true and
changed the location of this call to BaseTemplate::printTrail()
so that its result is the latest possible. This also includes
the debug toolbar.
- Removed MockOutputPage and related test cases since they are
no longer accurate
Change-Id: Ie0f389f8566457b1c938c627ed930040741ac9d9
We can now do this since we finally switched to PHP 5.3 for MW 1.20 and get rid of the silly dirname(__FILE__) stuff :)
Change-Id: Id9b2c9cd2e678197aa81c78adced5d1d31ff57b1