46 $comment =
null, $parameters =
null
49 $logEntry->setPerformer(
$user );
51 if ( $comment !==
null ) {
52 $logEntry->setComment( $comment );
54 if ( $parameters !==
null ) {
55 $logEntry->setParameters( $parameters );
58 return $logEntry->insert();
62 $this->tablesUsed[] =
'logging';
63 $this->tablesUsed[] =
'user';
67 $this->userId1 = $user1->getId();
68 if ( $this->userId1 === 0 ) {
69 $user1->addToDatabase();
70 $this->userId1 = $user1->getId();
72 $this->assertGreaterThan( 0, $this->userId1 );
75 $this->userId2 = $user2->getId();
76 if ( $this->userId2 === 0 ) {
77 $user2->addToDatabase();
78 $this->userId2 = $user2->getId();
80 $this->assertGreaterThan( 0, $this->userId2 );
82 $this->logId1 = $this->
addLogEntry(
'type',
'subtype',
84 $this->assertGreaterThan( 0, $this->logId1 );
86 $this->logId2 = $this->
addLogEntry(
'supress',
'delete',
87 $user2,
NS_TALK,
"PageB",
"SomeComment" );
88 $this->assertGreaterThan( 0, $this->logId2 );
90 $this->logId3 = $this->
addLogEntry(
'move',
'delete',
91 $user2,
NS_MAIN,
"PageA",
"SomeOtherComment",
92 [
'key1' => 1, 3 =>
'value3' ] );
93 $this->assertGreaterThan( 0, $this->logId3 );
94 }
catch ( Exception
$e ) {
98 $this->exceptionFromAddDBData =
$e;
108 $dumper->endId = $this->logId3 + 1;
109 $dumper->reporting =
false;
110 $dumper->setDB( $this->db );
119 $asserter->assertDumpStart(
$fname );
121 $asserter->assertLogItem( $this->logId1,
"BackupDumperLogUserA",
122 $this->userId1,
null,
"type",
"subtype",
"PageA" );
125 $this->assertNotNull( $contLang,
"Content language object validation" );
126 $namespace = $contLang->getNsText(
NS_TALK );
127 $this->assertInternalType(
'string', $namespace );
128 $this->assertGreaterThan( 0, strlen( $namespace ) );
129 $asserter->assertLogItem( $this->logId2,
"BackupDumperLogUserB",
130 $this->userId2,
"SomeComment",
"supress",
"delete",
131 $namespace .
":PageB" );
133 $asserter->assertLogItem( $this->logId3,
"BackupDumperLogUserB",
134 $this->userId2,
"SomeOtherComment",
"move",
"delete",
135 "PageA", [
'key1' => 1, 3 =>
'value3' ] );
137 $asserter->assertDumpEnd();
147 $dumper->loadWithArgv( [
'--logs',
'--output=gzip:' .
$fname,
150 $dumper->endId = $this->logId3 + 1;
151 $dumper->setDB( $this->db );
158 $dumper->stderr = fopen(
'php://output',
'a' );
159 if ( $dumper->stderr ===
false ) {
160 $this->fail(
"Could not open stream for stderr" );
166 $this->assertTrue( fclose( $dumper->stderr ),
"Closing stderr handle" );
174 $asserter->assertDumpStart(
$fname );
176 $asserter->assertLogItem( $this->logId1,
"BackupDumperLogUserA",
177 $this->userId1,
null,
"type",
"subtype",
"PageA" );
180 $this->assertNotNull( $contLang,
"Content language object validation" );
181 $namespace = $contLang->getNsText(
NS_TALK );
182 $this->assertInternalType(
'string', $namespace );
183 $this->assertGreaterThan( 0, strlen( $namespace ) );
184 $asserter->assertLogItem( $this->logId2,
"BackupDumperLogUserB",
185 $this->userId2,
"SomeComment",
"supress",
"delete",
186 $namespace .
":PageB" );
188 $asserter->assertLogItem( $this->logId3,
"BackupDumperLogUserB",
189 $this->userId2,
"SomeOtherComment",
"move",
"delete",
190 "PageA", [
'key1' => 1, 3 =>
'value3' ] );
192 $asserter->assertDumpEnd();
198 $this->expectOutputString(
'' );