It's unreasonable to expect newbies to know that "bug 12345" means "Task T14345"
except where it doesn't, so let's just standardise on the real numbers.
Change-Id: I46261416f7603558dceb76ebe695a5cac274e417
];
$wgAuth = new MediaWiki\Auth\AuthManagerAuthPlugin();
- // Bug 44192 Do not attempt to send a real e-mail
+ // T46192 Do not attempt to send a real e-mail
Hooks::clear( 'AlternateUserMailer' );
Hooks::register(
'AlternateUserMailer',
MediaWikiServices::getInstance()->resetServiceForTesting( 'MediaHandlerFactory' );
};
- // SqlBagOStuff broke when using temporary tables on r40209 (bug 15892).
+ // SqlBagOStuff broke when using temporary tables on r40209 (T17892).
// It seems to have been fixed since (r55079?), but regressed at some point before r85701.
// This works around it for now...
global $wgObjectCaches;
private function appendNamespaceSetup( &$setup, &$teardown ) {
// Add a namespace shadowing a interwiki link, to test
- // proper precedence when resolving links. (bug 51680)
+ // proper precedence when resolving links. (T53680)
$setup['wgExtraNamespaces'] = [
100 => 'MemoryAlpha',
101 => 'MemoryAlpha_talk'
if ( $this->useTemporaryTables ) {
if ( $this->db->getType() == 'sqlite' ) {
# Under SQLite the searchindex table is virtual and need
- # to be explicitly destroyed. See bug 29912
+ # to be explicitly destroyed. See T31912
# See also MediaWikiTestCase::destroyDB()
wfDebug( __METHOD__ . " explicitly destroying sqlite virtual table parsertest_searchindex\n" );
$this->db->query( "DROP TABLE `parsertest_searchindex`" );
You can optionally filter by title using --filter, e.g.
- ./phpunit.php --testsuite parsertests --filter="Bug 6200"
+ ./phpunit.php --testsuite parsertests --filter="T6400"
}
/**
- * per bug 26425
+ * per T28425
*/
public function testBug26425BlockTimestampDefaultsToTime() {
// delta to stop one-off errors when things happen to go over a second mark.
/**
* CheckUser since being changed to use Block::newFromTarget started failing
* because the new function didn't accept empty strings like Block::load()
- * had. Regression bug 29116.
+ * had. Regression T31116.
*
* @dataProvider provideBug29116Data
* @covers Block::newFromTarget
false
],
[
- "An initial section with a fake heder (bug 32617)\n\n== Test == ??\nwtf",
+ "An initial section with a fake heder (T34617)\n\n== Test == ??\nwtf",
false
],
[
"Section"
],
[
- "== Section== \t\r\n followed by whitespace (bug 35051)",
+ "== Section== \t\r\n followed by whitespace (T37051)",
'Section',
],
];
}
/**
- * @see Bug 8689
+ * @see T10689
* @covers Parser::parse
*/
public function testLongNumericLinesDontKillTheParser() {
/**
* This test checks wfTimestamp() with values outside.
* It needs PHP 64 bits or PHP > 5.1.
- * See r74778 and bug 25451
+ * See r74778 and T27451
* @dataProvider provideOldTimestamps
*/
public function testOldTimestamps( $input, $outputType, $output, $message ) {
$timestamp = wfTimestamp( $outputType, $input );
if ( substr( $output, 0, 1 ) === '/' ) {
- // Bug 64946: Day of the week calculations for very old
+ // T66946: Day of the week calculations for very old
// timestamps varies from system to system.
$this->assertRegExp( $output, $timestamp, $message );
} else {
}
/**
- * FIXME: This should not need database, but Language#formatExpiry does (bug 55912)
+ * FIXME: This should not need database, but Language#formatExpiry does (T57912)
* @group Database
* @covers Message::expiryParam
* @covers Message::expiryParams
}
/**
- * Placeholder to verify bug 34302
+ * Placeholder to verify T36302
* @covers Preferences::profilePreferences
*/
public function testEmailAuthenticationFieldWhenUserHasNoEmail() {
}
/**
- * Placeholder to verify bug 34302
+ * Placeholder to verify T36302
* @covers Preferences::profilePreferences
*/
public function testEmailAuthenticationFieldWhenUserEmailNotAuthenticated() {
}
/**
- * Placeholder to verify bug 34302
+ * Placeholder to verify T36302
* @covers Preferences::profilePreferences
*/
public function testEmailAuthenticationFieldWhenUserEmailIsAuthenticated() {
],
] ],
[ [
- 'Exact match not on top (bug 70958)',
+ 'Exact match not on top (T72958)',
'provision' => [
'Barcelona',
'Bar',
],
] ],
[ [
- 'Exact match missing (bug 70958)',
+ 'Exact match missing (T72958)',
'provision' => [
'Barcelona',
'Barbara',
[ [ 'foo6' => 'baz' ], 'foo6=baz', 'Numbers are allowed' ],
# This bit is more relaxed than XML rules, but some extensions use
- # it, like ProofreadPage (see bug 27539)
+ # it, like ProofreadPage (see T29539)
[ [ '1foo' => 'baz' ], '1foo=baz', 'Leading numbers are allowed' ],
[ [], 'foo$=baz', 'Symbols are not allowed' ],
[ [], 'foo@=baz', 'Symbols are not allowed' ],
[ ' ', '/* /* */' ],
[ 'display: block;', "display:/* foo */block;" ],
[ 'display: block;', "display:\\2f\\2a foo \\2a\\2f block;",
- 'Backslash-escaped comments must be stripped (bug 28450)' ],
+ 'Backslash-escaped comments must be stripped (T30450)' ],
[ '', '/* unfinished comment structure',
'Remove anything after a comment-start token' ],
[ '', "\\2f\\2a unifinished comment'",
}
/**
- * bug 26948 : comma were matched by an incorrect regexp range
+ * T28948 : comma were matched by an incorrect regexp range
*/
public function testEmailWithCommasAreInvalids() {
$this->invalid( "user,foo@example.org" );
$this->assertEquals(
$expectedParam,
$par,
- "Bug 31100 regression check: Title->fixSpecialName() should preserve parameter"
+ "T33100 regression check: Title->fixSpecialName() should preserve parameter"
);
}
$this->assertEquals(
'<input name="name" value="0" />',
Xml::input( 'name', false, 0 ),
- 'Input with a value of 0 (bug 23797)'
+ 'Input with a value of 0 (T25797)'
);
}
/**
* Test action=edit§ion=new
* Run it twice so we test adding a new section on a
- * page that doesn't exist (bug 52830) and one that
+ * page that doesn't exist (T54830) and one that
* does exist
*/
public function testEditNewSection() {
$count++;
/*
- * bug 41990: if the target page has a newer revision than the redirect, then editing the
+ * T43990: if the target page has a newer revision than the redirect, then editing the
* redirect while specifying 'redirect' and *not* specifying 'basetimestamp' erroneously
* caused an edit conflict to be detected.
*/
}
/**
- *Test bug 25702
+ *Test T27702
*Prefixes of API search requests are not handled with case sensitivity and may result
*in wrong search results
*/
}
/**
- * Test bug 51821
+ * Test T53821
*/
public function testGeneratorRedirects() {
$this->editPage( 'AQBT-Target', 'test' );
public function testRecacheFallbacksWithHooks() {
// Use hook to provide updates for messages. This is what the
- // LocalisationUpdate extension does. See bug 68781.
+ // LocalisationUpdate extension does. See T70781.
$this->mergeMwGlobalArrayValue( 'wgHooks', [
'LocalisationCacheRecacheFallback' => [
function (
// Existing message with customizations on the fallbacks
[ 'sunday', 'ab', 'амҽыш' ],
- // bug 46579
+ // T48579
[ 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none' ],
// UI language different from content language should only use de/none as last option
[ 'FallbackLanguageTest-NoDervContLang', 'fit', 'de/none' ],
/**
* Feeds testAddIdentifierQuotes
*
- * Named per bug 20281 convention.
+ * Named per T22281 convention.
*/
function provideDiapers() {
return [
$this->assertNotEquals(
'',
$this->updateText( $text ),
- 'Bug 18609'
+ 'T20609'
);
}
/**
* @covers SearchUpdate::updateText
- * Test bug 32712
+ * Test T34712
* Test if unicode quotes in article links make its search index empty
*/
public function testUnicodeLinkSearchIndexError() {
/**
* Test Http::isValidURI()
- * @bug 27854 : Http::isValidURI is too lax
+ * T29854 : Http::isValidURI is too lax
* @dataProvider provideURI
* @covers Http::isValidURI
*/
*
* These tests are for code that makes use of an artifact of how CURL
* handles header reporting on redirect pages, and will need to be
- * rewritten when bug 29232 is taken care of (high-level handling of
+ * rewritten when T31232 is taken care of (high-level handling of
* HTTP redirects).
*/
public function testRelativeRedirections() {
* Added this test based on an issue experienced with HHVM 3.3.0-dev
* where it did not define a cURL constant.
*
- * @bug 70570
+ * @T72570
* @dataProvider provideCurlConstants
*/
public function testCurlConstants( $value ) {
[ "foo, bar {\n\tprop: value; /* comment */\n}", "foo,bar{prop:value; }" ],
// Keep track of things that aren't as minified as much as they
- // could be (bug 35493)
+ // could be (T37493)
[ 'foo { prop: value ;}', 'foo{prop:value }' ],
[ 'foo { prop : value; }', 'foo{prop :value}' ],
[ 'foo { prop: value ; }', 'foo{prop:value }' ],
'foo { prop: url(http://example.org/bar.png); }',
],
[
- 'With trailing slash on remote (bug 27052)',
+ 'With trailing slash on remote (T29052)',
[ 'foo { prop: url(../bar.png); }', false, 'http://example.org/quux/', false ],
'foo { prop: url(http://example.org/bar.png); }',
],
'{ background: /*asd*/ url(http://localhost/w/something.png); background: /*jkl*/ url(http://localhost/w/something.png); }',
],
[
- 'Sanity check for offending line from jquery.ui.theme.css (bug 60077)',
+ 'Sanity check for offending line from jquery.ui.theme.css (T62077)',
'.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }',
'.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(http://localhost/w/images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }',
],
}
/**
- * Seperated because they are currently broken (bug 35492)
+ * Seperated because they are currently broken (T37492)
*
* @group Broken
* @dataProvider provideStringCases
[ "/* Foo *\n*bar\n*/", "" ],
/**
- * Slashes used inside block comments (bug 26931).
+ * Slashes used inside block comments (T28931).
* At some point there was a bug that caused this comment to be ended at '* /',
* causing /M... to be left as the beginning of a regex.
*/
[ "5.3.\nx;", "5.3.x;" ],
// Semicolon insertion between an expression having an inline
- // comment after it, and a statement on the next line (bug 27046).
+ // comment after it, and a statement on the next line (T29046).
[
"var a = this //foo bar \n for ( b = 0; c < d; b++ ) {}",
"var a=this\nfor(b=0;c<d;b++){}"
// newline insertion after 1000 chars: break after the "++", not before
[ str_repeat( ';', 996 ) . "if(x++);", str_repeat( ';', 996 ) . "if(x++\n);" ],
- // Unicode letter characters should pass through ok in identifiers (bug 31187)
+ // Unicode letter characters should pass through ok in identifiers (T33187)
[ "var KaŝSkatolVal = {}", 'var KaŝSkatolVal={}' ],
// Per spec unicode char escape values should work in identifiers,
/**
* Test to make sure that encoder=ffmpeg2theora doesn't trigger
- * MEDIATYPE_VIDEO (bug 63584)
+ * MEDIATYPE_VIDEO (T65584)
*/
function testOggRecognize() {
$oggFile = __DIR__ . '/../../../data/media/say-test.ogg';
[ 'invalid-child-not-struct', 'Test child props not in struct or ignored' ],
[ 'no-recognized-props', 'Test namespace and no recognized props' ],
[ 'no-namespace', 'Test non-namespaced attributes are ignored' ],
- [ 'bag-for-seq', "Allow bag's instead of seq's. (bug 27105)" ],
+ [ 'bag-for-seq', "Allow bag's instead of seq's. (T29105)" ],
[ 'utf16BE', 'UTF-16BE encoding' ],
[ 'utf16LE', 'UTF-16LE encoding' ],
[ 'utf32BE', 'UTF-32BE encoding' ],
/**
* The testIrcMsgForAction* tests are supposed to cover the hacky
- * LogFormatter::getIRCActionText / bug 34508
+ * LogFormatter::getIRCActionText / T36508
*
* Third parties bots listen to those messages. They are clever enough
* to fetch the i18n messages from the wiki and then analyze the IRC feed
$this->assertNotNull( $dateIndex, 'Date entry exists in metadata' );
$this->assertEquals( '0000:01:00 00:02:27',
$meta['visible'][$dateIndex]['value'],
- 'File with invalid date metadata (bug 29471)' );
+ 'File with invalid date metadata (T31471)' );
}
/**
],
[
"$base/Toll_Texas_1.svg",
- // This file triggered bug 31719, needs entity expansion in the xmlns checks
+ // This file triggered T33719, needs entity expansion in the xmlns checks
[
'width' => 385,
'height' => 385,
*/
class ArticleTablesTest extends MediaWikiLangTestCase {
/**
- * Make sure that bug 14404 doesn't strike again. We don't want
+ * Make sure that T16404 doesn't strike again. We don't want
* templatelinks based on the user language when {{int:}} is used, only the
* content language.
*
* @covers Title::getLinksFrom
*/
public function testTemplatelinksUsesContentLanguage() {
- $title = Title::newFromText( 'Bug 14404' );
+ $title = Title::newFromText( 'T16404' );
$page = WikiPage::factory( $title );
$user = new User();
$user->mRights = [ 'createpage', 'edit', 'purge' ];
$page->doEditContent(
new WikitextContent( '{{:{{int:history}}}}' ),
- 'Test code for bug 14404',
+ 'Test code for T16404',
0,
false,
$user
// We need an edit, a purge is not enough to regenerate the tables
$page->doEditContent(
new WikitextContent( '{{:{{int:history}}}}' ),
- 'Test code for bug 14404',
+ 'Test code for T16404',
EDIT_UPDATE,
false,
$user
$this->assertPreloaded(
'<pre>monospaced</pre>',
'<pre>monospaced</pre>',
- '<pre> in preloaded text must be unstripped (bug 27467)'
+ '<pre> in preloaded text must be unstripped (T29467)'
);
}
$this->assertPreloaded(
'<nowiki>[[Dummy title]]</nowiki>',
'<nowiki>[[Dummy title]]</nowiki>',
- '<nowiki> in preloaded text must be unstripped (bug 27467)'
+ '<nowiki> in preloaded text must be unstripped (T29467)'
);
}
[ "Factorial" ], # https://en.wikipedia.org/w/index.php?title=Template:Factorial&oldid=98548758 GFDL + CC BY-SA by Polonium
[ "All_system_messages" ], # https://tl.wiktionary.org/w/index.php?title=Suleras:All_system_messages&oldid=2765 GPL text generated by MediaWiki
[ "Fundraising" ], # https://tl.wiktionary.org/w/index.php?title=MediaWiki:Sitenotice&oldid=5716 GFDL + CC BY-SA, copied there by Sky Harbor.
- [ "NestedTemplates" ], # bug 27936
+ [ "NestedTemplates" ], # T29936
] );
// @codingStandardsIgnoreEnd
}
],
] ],
[ [
- 'Exact match not on top (bug 70958)',
+ 'Exact match not on top (T72958)',
'provision' => [
'Barcelona',
'Bar',
],
] ],
[ [
- 'Exact match missing (bug 70958)',
+ 'Exact match missing (T72958)',
'provision' => [
'Barcelona',
'Barbara',
[ '9780136091817', false ],
[ '123456789X', true ],
- // Bug 67021
+ // T69021
[ '1413304541', false ],
[ '141330454X', false ],
[ '1413304540', true ],
}
/**
- * @bug 2429
+ * T4429
* @dataProvider provideNamespacesAssociations
*/
public function testRcNsFilterAssociation( $ns1, $ns2 ) {
}
/**
- * @bug 2429
+ * T4429
* @dataProvider provideNamespacesAssociations
*/
public function testRcNsFilterAssociationWithInversion( $ns1, $ns2 ) {
[
$EMPTY_REQUEST, $NO_USER_PREF,
'default', $defaultNS,
- 'Bug 33270: No request nor user preferences should give default profile'
+ 'T35270: No request nor user preferences should give default profile'
],
[
[ 'ns5' => 1 ], $NO_USER_PREF,
return "searchNs$ns";
}, $defaultNS ), 0 ),
'advanced', [ 2, 14 ],
- 'Bug 33583: search with no option should honor User search preferences'
+ 'T35583: search with no option should honor User search preferences'
. ' and have all other namespace disabled'
],
];
'<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:xlink="http://www.w3.org/1999/xlink"> <image xlink:href="https://upload.wikimedia.org/wikipedia/commons/3/34/Bahnstrecke_Zeitz-Camburg_1930.png" /> </svg>',
true,
true,
- 'SVG with non-local image href (bug 65839)'
+ 'SVG with non-local image href (T67839)'
],
[
'<?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" href="/w/index.php?title=User:Jeeves/test.xsl&action=raw&format=xml" ?> <svg> <height>50</height> <width>100</width> </svg>',
true,
true,
- 'SVG with remote stylesheet (bug 57550)'
+ 'SVG with remote stylesheet (T59550)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg" viewbox="-1 -1 15 15"> <rect y="0" height="13" width="12" stroke="#179" rx="1" fill="#2ac"/> <text x="1.5" y="11" font-family="courier" stroke="white" font-size="16"><![CDATA[B]]></text> <iframe xmlns="http://www.w3.org/1999/xhtml" srcdoc="<script>alert('XSSED => Domain('+top.document.domain+')');</script>"></iframe> </svg>',
true,
true,
- 'SVG with rembeded iframe (bug 60771)'
+ 'SVG with rembeded iframe (T62771)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="6 3 177 153" xmlns:xlink="http://www.w3.org/1999/xlink"> <style>@import url("https://fonts.googleapis.com/css?family=Bitter:700&text=WebPlatform.org");</style> <g transform="translate(-.5,-.5)"> <text fill="#474747" x="95" y="150" text-anchor="middle" font-family="Bitter" font-size="20" font-weight="bold">WebPlatform.org</text> </g> </svg>',
true,
true,
- 'SVG with @import in style element (bug 69008)'
+ 'SVG with @import in style element (T71008)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="6 3 177 153" xmlns:xlink="http://www.w3.org/1999/xlink"> <style>@import url("https://fonts.googleapis.com/css?family=Bitter:700&text=WebPlatform.org");<foo/></style> <g transform="translate(-.5,-.5)"> <text fill="#474747" x="95" y="150" text-anchor="middle" font-family="Bitter" font-size="20" font-weight="bold">WebPlatform.org</text> </g> </svg>',
true,
true,
- 'SVG with @import in style element and child element (bug 69008#c11)'
+ 'SVG with @import in style element and child element (T71008#c11)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="6 3 177 153" xmlns:xlink="http://www.w3.org/1999/xlink"> <style>@imporT "https://fonts.googleapis.com/css?family=Bitter:700&text=WebPlatform.org";</style> <g transform="translate(-.5,-.5)"> <text fill="#474747" x="95" y="150" text-anchor="middle" font-family="Bitter" font-size="20" font-weight="bold">WebPlatform.org</text> </g> </svg>',
'<svg xmlns="http://www.w3.org/2000/svg"> <rect width="100" height="100" style="background-image:url(https://www.google.com/images/srpr/logo11w.png)"/> </svg>',
true,
true,
- 'SVG with remote background image (bug 69008)'
+ 'SVG with remote background image (T71008)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg"> <rect width="100" height="100" style="background-image:\55rl(https://www.google.com/images/srpr/logo11w.png)"/> </svg>',
true,
true,
- 'SVG with remote background image, encoded (bug 69008)'
+ 'SVG with remote background image, encoded (T71008)'
],
[
'<svg xmlns="http://www.w3.org/2000/svg"> <style> #a { background-image:\55rl(\'https://www.google.com/images/srpr/logo11w.png\'); } </style> <rect width="100" height="100" id="a"/> </svg>',
true,
true,
- 'SVG with remote background image, in style element (bug 69008)'
+ 'SVG with remote background image, in style element (T71008)'
],
[
// This currently doesn't seem to work in any browsers, but in case
'<svg xmlns="http://www.w3.org/2000/svg"> <rect width="100" height="100" style="background-image:image(\'sprites.svg#xywh=40,0,20,20\')"/> </svg>',
true,
true,
- 'SVG with remote background image using image() (bug 69008)'
+ 'SVG with remote background image using image() (T71008)'
],
[
// As reported by Cure53
protected function setUp() {
parent::setUp();
- // Setup a file for bug 29408
+ // Setup a file for T31408
$this->bug29408File = wfTempDir() . '/bug29408';
file_put_contents( $this->bug29408File, "\x00" );
// Throws exception caught by PHPUnit on failure
$file = $stash->stashFile( $this->bug29408File );
- // We'll never reach this point if we hit bug 29408
+ // We'll never reach this point if we hit T31408
$this->assertTrue( true, 'Unrecognized file without extension' );
$stash->removeFile( $file->getFileKey() );
}
/**
- * Bug 37963
+ * T39963
* Make sure defaults are loaded when setOption is called.
* @covers User::loadOptions
*/
"Acteur%7CAlbert%20Robbins%7CAnglais%7CAnn%20Donahue%7CAnthony%20E.%20Zuiker%7CCarol%20Mendelsohn"
)
],
- // The following two data sets come from bug 36839. They fail if checkTitleEncoding uses a regexp to test for
+ // The following two data sets come from T38839. They fail if checkTitleEncoding uses a regexp to test for
// valid UTF-8 encoding and the pcre.recursion_limit is low (like, say, 1024). They succeed if checkTitleEncoding
// uses mb_check_encoding for its test.
[
}
/**
- * @see bug 23156 & r64981
+ * @see T25156 & r64981
* @covers Language::commafy
*/
public function testSearchRightSingleQuotationMarkAsApostroph() {
$this->assertEquals(
"'",
$this->getLang()->normalizeForSearch( '’' ),
- 'bug 23156: U+2019 conversion to U+0027'
+ 'T25156: U+2019 conversion to U+0027'
);
}
/**
- * @see bug 23156 & r64981
+ * @see T25156 & r64981
* @covers Language::commafy
*/
public function testCommafy() {
}
/**
- * @see bug 23156 & r64981
+ * @see T25156 & r64981
* @covers Language::commafy
*/
public function testDoesNotCommafyFourDigitsNumber() {
/**
* @dataProvider providerFormatNum
- * @see bug 29495
+ * T31495
* @covers Language::formatNum
*/
public function testFormatNum( $result, $value ) {
class LanguageTrTest extends LanguageClassesTestCase {
/**
- * See @bug 28040
+ * See T30040
* Credits to irc://irc.freenode.net/wikipedia-tr users:
* - berm
* - []LuCkY[]
[ 'lcfirst', 'ı', 'lower', 'ı' ],
[ 'lcfirst', 'i', 'lower', 'i' ],
- # A real example taken from bug 28040 using
+ # A real example taken from T30040 using
# https://tr.wikipedia.org/wiki/%C4%B0Phone
[ 'lcfirst', 'iPhone', 'lower', 'iPhone' ],
$this->dump->close();
}
- // Bug 37458, parent teardown need to be done after closing the
+ // T39458, parent teardown need to be done after closing the
// dump or it might cause some permissions errors.
parent::tearDown();
}
/**
* August 22 – The theft of the Mona Lisa is discovered in the Louvre."
- * @bug 20281
+ * T22281
*/
public function getSize() {
return 1911;
}
/**
- * bug 33321 - Make sure there's a | after transforming.
+ * T35321 - Make sure there's a | after transforming.
* @group Database
* @covers SkinTemplate::addToSidebarPlain
*/
} );
byteLimitTest( {
- description: 'Plain text input. Calling byteLimit with no parameters and no maxlength attribute (bug 36310)',
+ description: 'Plain text input. Calling byteLimit with no parameters and no maxlength attribute (T38310)',
$input: $( '<input>' ).attr( 'type', 'text' )
.byteLimit(),
sample: simpleSample,
expected: '1234'
} );
- // Regression tests for bug 41450
+ // Regression tests for T43450
byteLimitTest( {
description: 'Input filter of which the base exceeds the limit',
$input: $( '<input>' ).attr( 'type', 'text' )
var $el;
// Use a new <input /> because the bug only occurs on the first time
- // the limit it reached (bug 40850)
+ // the limit it reached (T42850)
$el = $( '<input>' ).attr( 'type', 'text' )
.appendTo( '#qunit-fixture' )
.byteLimit( 3 )
} );
} );
- // TODO add numbers sorting tests for bug 8115 with a different language
+ // TODO add numbers sorting tests for T10115 with a different language
}( jQuery, mediaWiki ) );
// Regression tests!
tableTest(
- 'Bug 28775: German-style (dmy) short numeric dates',
+ 'T30775: German-style (dmy) short numeric dates',
[ 'Date' ],
[
// German-style dates are day-month-year
);
tableTest(
- 'Bug 28775: American-style (mdy) short numeric dates',
+ 'T30775: American-style (mdy) short numeric dates',
[ 'Date' ],
[
// American-style dates are month-day-year
);
tableTest(
- 'Bug 17141: IPv4 address sorting',
+ 'T19141: IPv4 address sorting',
[ 'IP' ],
ipv4,
ipv4Sorted,
}
);
tableTest(
- 'Bug 17141: IPv4 address sorting (reverse)',
+ 'T19141: IPv4 address sorting (reverse)',
[ 'IP' ],
ipv4,
reversed( ipv4Sorted ),
} );
/** FIXME: the diff output is not very readeable. */
- QUnit.test( 'bug 32047 - caption must be before thead', 1, function ( assert ) {
+ QUnit.test( 'T34047 - caption must be before thead', 1, function ( assert ) {
var $table;
$table = $(
'<table class="sortable">' +
assert.equal(
$table.children().get( 0 ).nodeName,
'CAPTION',
- 'First element after <thead> must be <caption> (bug 32047)'
+ 'First element after <thead> must be <caption> (T34047)'
);
} );
], 'Order matches expected order (based on data-sort-value attribute values)' );
// Example 3: Test that live changes are used from data-sort-value,
- // even if they change after the tablesorter is constructed (bug 38152).
+ // even if they change after the tablesorter is constructed (T40152).
$table = $(
'<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
'<tbody>' +
.tablesorter()
.find( '.headerSort:eq(0)' ).click();
- // Change the sortValue data properties (bug 38152)
+ // Change the sortValue data properties (T40152)
// - change data
$table.find( 'td:contains(A)' ).data( 'sortValue', 3 );
// - add data
} );
- tableTest( 'bug 8115: sort numbers with commas (ascending)',
+ tableTest( 'T10115: sort numbers with commas (ascending)',
[ 'Numbers' ], numbers, numbersAsc,
function ( $table ) {
$table.tablesorter();
}
);
- tableTest( 'bug 8115: sort numbers with commas (descending)',
+ tableTest( 'T10115: sort numbers with commas (descending)',
[ 'Numbers' ], numbers, reversed( numbersAsc ),
function ( $table ) {
$table.tablesorter();
$table.find( '.headerSort:eq(0)' ).click().click();
}
);
- // TODO add numbers sorting tests for bug 8115 with a different language
+ // TODO add numbers sorting tests for T10115 with a different language
- QUnit.test( 'bug 32888 - Tables inside a tableheader cell', 2, function ( assert ) {
+ QUnit.test( 'T34888 - Tables inside a tableheader cell', 2, function ( assert ) {
var $table;
$table = $(
'<table class="sortable" id="mw-bug-32888">' +
assert.equal(
$table.find( '> thead:eq(0) > tr > th.headerSort' ).length,
1,
- 'Child tables inside a headercell should not interfere with sortable headers (bug 32888)'
+ 'Child tables inside a headercell should not interfere with sortable headers (T34888)'
);
assert.equal(
$( '#mw-bug-32888-2' ).find( 'th.headerSort' ).length,
0,
- 'The headers of child tables inside a headercell should not be sortable themselves (bug 32888)'
+ 'The headers of child tables inside a headercell should not be sortable themselves (T34888)'
);
} );
);
} );
- QUnit.test( 'bug 38911 - The row with the largest amount of columns should receive the sort indicators', 3, function ( assert ) {
+ QUnit.test( 'T40911 - The row with the largest amount of columns should receive the sort indicators', 3, function ( assert ) {
var $table = $(
'<table class="sortable">' +
'<thead>' +
);
} );
- // bug 53527
+ // T55527
QUnit.test( 'td cells in thead should not be taken into account for longest row calculation', 2, function ( assert ) {
var $table = $(
'<table class="sortable">' +
);
} );
- // bug 41889 - exploding rowspans in more complex cases
+ // T43889 - exploding rowspans in more complex cases
tableTestHTML(
'Rowspan exploding with row headers',
'<table class="sortable">' +
]
);
- // bug 53211 - exploding rowspans in more complex cases
+ // T55211 - exploding rowspans in more complex cases
QUnit.test(
'Rowspan exploding with row headers and colspans', 1, function ( assert ) {
var $table = $( '<table class="sortable">' +
]
);
- QUnit.test( 'bug 105731 - incomplete rows in table body', 3, function ( assert ) {
+ QUnit.test( 'T105731 - incomplete rows in table body', 3, function ( assert ) {
var $table, parsers;
$table = $(
'<table class="sortable">' +
caretSample = 'Some big text that we like to work with. Nothing fancy... you know what I mean?';
- /* @broken: Disabled per bug 34820
+ /* @broken: Disabled per T36820
caretTest({
- description: 'getCaretPosition with original/empty selection - bug 31847 with IE 6/7/8',
+ description: 'getCaretPosition with original/empty selection - T33847 with IE 6/7/8',
text: caretSample,
start: [0, caretSample.length], // Opera and Firefox (prior to FF 6.0) default caret to the end of the box (caretSample.length)
end: [0, caretSample.length], // Other browsers default it to the beginning (0), so check both.
]
) );
- // Don't cache error (bug 65268)
+ // Don't cache error (T67268)
return api.getToken( 'testerror' )
.then( null, function ( err ) {
assert.equal( err, 'bite-me', 'Expected error' );
extTest( 'MediaWiki:Vector.js', 'js' );
extTest( 'User:Example/common.css', 'css' );
- extTest( 'File:Example.longextension', 'longextension', 'Extension parsing not limited (bug 36151)' );
+ extTest( 'File:Example.longextension', 'longextension', 'Extension parsing not limited (T38151)' );
extTest( 'Example/information.json', 'json', 'Extension parsing not restricted from any namespace' );
extTest( 'Foo.', null, 'Trailing dot is not an extension' );
extTest( 'Foo..', null, 'Trailing dots are not an extension' );
assert.deepEqual(
original.query,
{ one: '1', two: '2' },
- 'Properties is deep cloned (bug 37708)'
+ 'Properties is deep cloned (T39708)'
);
} );
assert.equal( uri.toString(), 'http://en.wiki.local/foo.com', 'handle absolute paths by supplying host from document in strict mode' );
} );
- QUnit.test( 'bug 35658', 2, function ( assert ) {
+ QUnit.test( 'T37658', 2, function ( assert ) {
var testProtocol, testServer, testPort, testPath, UriClass, uri, href;
testProtocol = 'https://';
});
*/
- QUnit.test( 'Stripping of single initial newline from textarea\'s literal contents (bug 12130)', function ( assert ) {
+ QUnit.test( 'Stripping of single initial newline from textarea\'s literal contents (T14130)', function ( assert ) {
var maxn, n,
expected, $textarea;
url: {
print: [ urlStyleTest( '.mw-test-implement-b1', 'text-align', 'center' ) ],
screen: [
- // bug 40834: Make sure it actually works with more than 1 stylesheet reference
+ // T42834: Make sure it actually works with more than 1 stylesheet reference
urlStyleTest( '.mw-test-implement-b2', 'float', 'left' ),
urlStyleTest( '.mw-test-implement-b3', 'float', 'right' )
]
'test.implement.d',
function () {
assertStyleAsync( assert, $element, 'float', 'right', function () {
- assert.notEqual( $element2.css( 'text-align' ), 'center', 'print style is not applied (bug 40500)' );
+ assert.notEqual( $element2.css( 'text-align' ), 'center', 'print style is not applied (T42500)' );
done();
} );
},
mw.loader.load( 'test.implement.d' );
} );
- // @import (bug 31676)
+ // @import (T33676)
QUnit.test( '.implement( styles has @import )', 7, function ( assert ) {
var isJsExecuted, $element,
done = assert.async();
} );
QUnit.test( '.implement( only messages )', 2, function ( assert ) {
- assert.assertFalse( mw.messages.exists( 'bug_29107' ), 'Verify that the test message doesn\'t exist yet' );
+ assert.assertFalse( mw.messages.exists( 'T31107' ), 'Verify that the test message doesn\'t exist yet' );
- // jscs: disable requireCamelCaseOrUpperCaseIdentifiers
- mw.loader.implement( 'test.implement.msgs', [], {}, { bug_29107: 'loaded' } );
- // jscs: enable requireCamelCaseOrUpperCaseIdentifiers
+ mw.loader.implement( 'test.implement.msgs', [], {}, { T31107: 'loaded' } );
return mw.loader.using( 'test.implement.msgs', function () {
- assert.ok( mw.messages.exists( 'bug_29107' ), 'Bug 29107: messages-only module should implement ok' );
+ assert.ok( mw.messages.exists( 'T31107' ), 'T31107: messages-only module should implement ok' );
}, function () {
assert.ok( false, 'Error callback fired while implementing "test.implement.msgs" module' );
} );
assert.strictEqual( mw.util.getParamValue( 'bar', url ), null, 'Return null when not found' );
url = 'http://example.org/#&foo=bad';
- assert.strictEqual( mw.util.getParamValue( 'foo', url ), null, 'Ignore hash if param is not in querystring but in hash (bug 27427)' );
+ assert.strictEqual( mw.util.getParamValue( 'foo', url ), null, 'Ignore hash if param is not in querystring but in hash (T29427)' );
url = 'example.org?' + $.param( { TEST: 'a b+c' } );
- assert.strictEqual( mw.util.getParamValue( 'TEST', url ), 'a b+c', 'Bug 30441: getParamValue must understand "+" encoding of space' );
+ assert.strictEqual( mw.util.getParamValue( 'TEST', url ), 'a b+c', 'T32441: getParamValue must understand "+" encoding of space' );
url = 'example.org?' + $.param( { TEST: 'a b+c d' } ); // check for sloppy code from r95332 :)
- assert.strictEqual( mw.util.getParamValue( 'TEST', url ), 'a b+c d', 'Bug 30441: getParamValue must understand "+" encoding of space (multiple spaces)' );
+ assert.strictEqual( mw.util.getParamValue( 'TEST', url ), 'a b+c d', 'T32441: getParamValue must understand "+" encoding of space (multiple spaces)' );
} );
QUnit.test( '$content', 2, function ( assert ) {
assert.equal(
$( '#p-test-custom #c-barmenu ul li' ).length,
1,
- 'addPortletLink did not add the item to all <ul> elements in the portlet (bug 35082)'
+ 'addPortletLink did not add the item to all <ul> elements in the portlet (T37082)'
);
tbRLDM = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/wiki/RL/DM',