return wfTimestamp( TS_UNIX, $timestamp ) > time() - $tolerance - $wgRCMaxAge;
}
+
+ /**
+ * Parses and returns the rc_params attribute
+ *
+ * @since 1.26
+ *
+ * @return array|null
+ */
+ public function parseParams() {
+ $rcParams = $this->getAttribute( 'rc_params' );
+
+ wfSuppressWarnings();
+ $unserializedParams = unserialize( $rcParams );
+ wfRestoreWarnings();
+
+ return $unserializedParams;
+ }
}
$packet['log_type'] = $rc->getAttribute( 'rc_log_type' );
$packet['log_action'] = $rc->getAttribute( 'rc_log_action' );
if ( $rc->getAttribute( 'rc_params' ) ) {
- wfSuppressWarnings();
- $params = unserialize( $rc->getAttribute( 'rc_params' ) );
- wfRestoreWarnings();
+ $params = $rc->parseParams();
if (
// If it's an actual serialised false...
$rc->getAttribute( 'rc_params' ) == serialize( false ) ||
$sep = $this->context->msg( 'colon-separator' )->text();
# import/upload
+ $msg = $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() .
+ $sep .
+ $this->user_comment;
$this->assertIRCComment(
- $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+ $msg,
'import', 'upload',
array(),
$this->user_comment
);
# import/interwiki
+ $msg = $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() .
+ $sep .
+ $this->user_comment;
$this->assertIRCComment(
- $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+ $msg,
'import', 'interwiki',
array(),
$this->user_comment
}
*/
+ /**
+ * @covers RecentChange::parseParams
+ */
+ public function testParseParams() {
+ $params = array(
+ 'root' => array(
+ 'A' => 1,
+ 'B' => 'two'
+ )
+ );
+
+ $this->assertParseParams(
+ $params,
+ 'a:1:{s:4:"root";a:2:{s:1:"A";i:1;s:1:"B";s:3:"two";}}'
+ );
+
+ $this->assertParseParams(
+ null,
+ null
+ );
+
+ $this->assertParseParams(
+ null,
+ serialize( false )
+ );
+
+ $this->assertParseParams(
+ null,
+ 'not-an-array'
+ );
+ }
+
+ /**
+ * @param array $expectedParseParams
+ * @param string|null $rawRcParams
+ */
+ protected function assertParseParams( $expectedParseParams, $rawRcParams ) {
+ $rc = new RecentChange;
+ $rc->setAttribs( array( 'rc_params' => $rawRcParams ) );
+
+ $actualParseParams = $rc->parseParams();
+
+ $this->assertEquals( $expectedParseParams, $actualParseParams );
+ }
+
/**
* @param string $expected Expected IRC text without colors codes
* @param string $type Log type (move, delete, suppress, patrol ...)