]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/api/ApiPurgeTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / api / ApiPurgeTest.php
diff --git a/tests/phpunit/includes/api/ApiPurgeTest.php b/tests/phpunit/includes/api/ApiPurgeTest.php
new file mode 100644 (file)
index 0000000..9e1d3a1
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @group API
+ * @group Database
+ * @group medium
+ *
+ * @covers ApiPurge
+ */
+class ApiPurgeTest extends ApiTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+               $this->doLogin();
+       }
+
+       /**
+        * @group Broken
+        */
+       public function testPurgeMainPage() {
+               if ( !Title::newFromText( 'UTPage' )->exists() ) {
+                       $this->markTestIncomplete( "The article [[UTPage]] does not exist" );
+               }
+
+               $somePage = mt_rand();
+
+               $data = $this->doApiRequest( [
+                       'action' => 'purge',
+                       'titles' => 'UTPage|' . $somePage . '|%5D' ] );
+
+               $this->assertArrayHasKey( 'purge', $data[0],
+                       "Must receive a 'purge' result from API" );
+
+               $this->assertEquals(
+                       3,
+                       count( $data[0]['purge'] ),
+                       "Purge request for three articles should give back three results received: "
+                               . var_export( $data[0]['purge'], true ) );
+
+               $pages = [ 'UTPage' => 'purged', $somePage => 'missing', '%5D' => 'invalid' ];
+               foreach ( $data[0]['purge'] as $v ) {
+                       $this->assertArrayHasKey( $pages[$v['title']], $v );
+               }
+       }
+}