Hard-deprecate Content::preSaveTransform.
Use ContentTransformer::preSaveTransform instead. Extensions defining a content model should override ContentHandler::preSaveTransform. Bug: T287156 Change-Id: I2a8c60470366fd95d056e0dfa8144f209bb7117e
This commit is contained in:
parent
7a957145ad
commit
642afef215
8 changed files with 12 additions and 103 deletions
|
|
@ -411,6 +411,9 @@ because of Phabricator reports.
|
|||
* Content::preloadTransform was hard-deprecated since 1.37,
|
||||
use ContentTransformer::preloadTransform instead. Extensions defining
|
||||
a content model should override ContentHandler::preloadTransform.
|
||||
* Content::preSaveTransform was hard-deprecated since 1.37,
|
||||
use ContentTransformer::preSaveTransform instead. Extensions defining
|
||||
a content model should override ContentHandler::preSaveTransform.
|
||||
* …
|
||||
|
||||
=== Deprecations in 1.37 ===
|
||||
|
|
|
|||
|
|
@ -389,7 +389,8 @@ abstract class AbstractContent implements Content {
|
|||
|
||||
/**
|
||||
* @since 1.21
|
||||
* @deprecated since 1.37. Use ContentTransformer::preSaveTransform instead.
|
||||
* @deprecated since 1.37. Hard-deprecated since 1.37.
|
||||
* Use ContentTransformer::preSaveTransform instead.
|
||||
* Extensions defining a content model should override ContentHandler::preSaveTransform.
|
||||
*
|
||||
* @param Title $title
|
||||
|
|
@ -400,6 +401,7 @@ abstract class AbstractContent implements Content {
|
|||
* @see Content::preSaveTransform
|
||||
*/
|
||||
public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
|
||||
wfDeprecated( __METHOD__, '1.37' );
|
||||
$pstParams = new PreSaveTransformParamsValue( $title, $user, $popts );
|
||||
return $this->getContentHandler()->preSaveTransform(
|
||||
$this,
|
||||
|
|
|
|||
|
|
@ -387,8 +387,8 @@ interface Content {
|
|||
* object if no transformations apply).
|
||||
*
|
||||
* @since 1.21
|
||||
* @deprecated since 1.37 Use ContentTransformer::preSaveTransform and override ContentHandler::preSaveTransform.
|
||||
*
|
||||
* @deprecated since 1.37. Hard-deprecated since 1.37. Use ContentTransformer::preSaveTransform
|
||||
* and override ContentHandler::preSaveTransform.
|
||||
* @param Title $title
|
||||
* @param User $user
|
||||
* @param ParserOptions $parserOptions
|
||||
|
|
|
|||
|
|
@ -1624,7 +1624,8 @@ abstract class ContentHandler {
|
|||
return MWDebug::detectDeprecatedOverride(
|
||||
$content,
|
||||
AbstractContent::class,
|
||||
$method
|
||||
$method,
|
||||
'1.37'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,19 +43,6 @@ class FallbackContentTest extends MediaWikiLangTestCase {
|
|||
$this->assertStringNotContainsString( '(unsupported-content-model)', $html );
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers FallbackContent::preSaveTransform
|
||||
*/
|
||||
public function testPreSaveTransform() {
|
||||
$title = Title::newFromText( 'Test' );
|
||||
$user = $this->getTestUser()->getUser();
|
||||
$content = $this->newContent( 'Horkyporky ~~~' );
|
||||
|
||||
$options = ParserOptions::newFromAnon();
|
||||
|
||||
$this->assertSame( $content, $content->preSaveTransform( $title, $user, $options ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers FallbackContent::getRedirectTarget
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -8,51 +8,6 @@
|
|||
*/
|
||||
class JsonContentTest extends MediaWikiLangTestCase {
|
||||
|
||||
public function provideDataToEncode() {
|
||||
return [
|
||||
[
|
||||
// Round-trip empty array
|
||||
'[]',
|
||||
'[]',
|
||||
],
|
||||
[
|
||||
// Round-trip empty object
|
||||
'{}',
|
||||
'{}',
|
||||
],
|
||||
[
|
||||
// Round-trip empty array/object (nested)
|
||||
'{ "foo": {}, "bar": [] }',
|
||||
"{\n \"foo\": {},\n \"bar\": []\n}",
|
||||
],
|
||||
[
|
||||
'{ "foo": "bar" }',
|
||||
"{\n \"foo\": \"bar\"\n}",
|
||||
],
|
||||
[
|
||||
'{ "foo": 1000 }',
|
||||
"{\n \"foo\": 1000\n}",
|
||||
],
|
||||
[
|
||||
'{ "foo": 1000, "0": "bar" }',
|
||||
"{\n \"foo\": 1000,\n \"0\": \"bar\"\n}",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideDataToEncode
|
||||
*/
|
||||
public function testPreSaveTransform( $input, $transformed ) {
|
||||
$obj = new JsonContent( $input );
|
||||
$newObj = $obj->preSaveTransform(
|
||||
$this->createMock( Title::class ),
|
||||
$this->createMock( User::class ),
|
||||
$this->createMock( ParserOptions::class )
|
||||
);
|
||||
$this->assertTrue( $newObj->equals( new JsonContent( $transformed ) ) );
|
||||
}
|
||||
|
||||
public function provideDataAndParserText() {
|
||||
return [
|
||||
[
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
<?php
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
/**
|
||||
* @group ContentHandler
|
||||
* @group Database
|
||||
|
|
@ -93,44 +91,6 @@ class TextContentTest extends MediaWikiLangTestCase {
|
|||
// TODO: assert more properties
|
||||
}
|
||||
|
||||
public static function dataPreSaveTransform() {
|
||||
return [
|
||||
[
|
||||
# 0: no signature resolution
|
||||
'hello this is ~~~',
|
||||
'hello this is ~~~',
|
||||
],
|
||||
[
|
||||
# 1: rtrim
|
||||
" Foo \n ",
|
||||
' Foo',
|
||||
],
|
||||
[
|
||||
# 2: newline normalization
|
||||
"LF\n\nCRLF\r\n\r\nCR\r\rEND",
|
||||
"LF\n\nCRLF\n\nCR\n\nEND",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataPreSaveTransform
|
||||
* @covers TextContent::preSaveTransform
|
||||
*/
|
||||
public function testPreSaveTransform( $text, $expected ) {
|
||||
$options = ParserOptions::newFromUserAndLang( $this->context->getUser(),
|
||||
MediaWikiServices::getInstance()->getContentLanguage() );
|
||||
|
||||
$content = $this->newContent( $text );
|
||||
$content = $content->preSaveTransform(
|
||||
$this->context->getTitle(),
|
||||
$this->context->getUser(),
|
||||
$options
|
||||
);
|
||||
|
||||
$this->assertEquals( $expected, $content->getText() );
|
||||
}
|
||||
|
||||
public static function dataGetRedirectTarget() {
|
||||
return [
|
||||
[ '#REDIRECT [[Test]]',
|
||||
|
|
|
|||
|
|
@ -369,10 +369,11 @@ just a test"
|
|||
}
|
||||
|
||||
/**
|
||||
* @covers WikitextContent::preSaveTransform
|
||||
* @covers WikitextContent::fillParserOutput
|
||||
*/
|
||||
public function testHadSignature() {
|
||||
$this->hideDeprecated( 'AbstractContent::preSaveTransform' );
|
||||
|
||||
$titleObj = Title::newFromText( __CLASS__ );
|
||||
|
||||
$content = new WikitextContent( '~~~~' );
|
||||
|
|
|
|||
Loading…
Reference in a new issue