* @covers RecentChange::loadFromRow
*/
public function testNewFromRow() {
+ $user = $this->getTestUser()->getUser();
+ $actorId = $user->getActorId();
+
+ $row = new stdClass();
+ $row->rc_foo = 'AAA';
+ $row->rc_timestamp = '20150921134808';
+ $row->rc_deleted = 'bar';
+ $row->rc_comment_text = 'comment';
+ $row->rc_comment_data = null;
+ $row->rc_user = $user->getId();
+
+ $rc = RecentChange::newFromRow( $row );
+
+ $expected = [
+ 'rc_foo' => 'AAA',
+ 'rc_timestamp' => '20150921134808',
+ 'rc_deleted' => 'bar',
+ 'rc_comment' => 'comment',
+ 'rc_comment_text' => 'comment',
+ 'rc_comment_data' => null,
+ 'rc_user' => $user->getId(),
+ 'rc_user_text' => $user->getName(),
+ 'rc_actor' => $actorId,
+ ];
+ $this->assertEquals( $expected, $rc->getAttributes() );
+
$row = new stdClass();
$row->rc_foo = 'AAA';
$row->rc_timestamp = '20150921134808';
$row->rc_deleted = 'bar';
+ $row->rc_comment = 'comment';
+ $row->rc_user = $user->getId();
+ Wikimedia\suppressWarnings();
$rc = RecentChange::newFromRow( $row );
+ Wikimedia\restoreWarnings();
$expected = [
'rc_foo' => 'AAA',
'rc_timestamp' => '20150921134808',
'rc_deleted' => 'bar',
+ 'rc_comment' => 'comment',
+ 'rc_comment_text' => 'comment',
+ 'rc_comment_data' => null,
+ 'rc_user' => $user->getId(),
+ 'rc_user_text' => $user->getName(),
+ 'rc_actor' => $actorId,
];
$this->assertEquals( $expected, $rc->getAttributes() );
}
}
/**
- * 50 mins and 100 mins are used here as the tests never take that long!
* @return array
*/
public function provideIsInRCLifespan() {
return [
- [ 6000, time() - 3000, 0, true ],
- [ 3000, time() - 6000, 0, false ],
- [ 6000, time() - 3000, 6000, true ],
- [ 3000, time() - 6000, 6000, true ],
+ [ 6000, -3000, 0, true ],
+ [ 3000, -6000, 0, false ],
+ [ 6000, -3000, 6000, true ],
+ [ 3000, -6000, 6000, true ],
];
}
* @covers RecentChange::isInRCLifespan
* @dataProvider provideIsInRCLifespan
*/
- public function testIsInRCLifespan( $maxAge, $timestamp, $tolerance, $expected ) {
+ public function testIsInRCLifespan( $maxAge, $offset, $tolerance, $expected ) {
$this->setMwGlobals( 'wgRCMaxAge', $maxAge );
+ // Calculate this here instead of the data provider because the provider
+ // is expanded early on and the full test suite may take longer than 100 minutes
+ // when coverage is enabled.
+ $timestamp = time() + $offset;
$this->assertEquals( $expected, RecentChange::isInRCLifespan( $timestamp, $tolerance ) );
}