Add tests for API action=edit&section=new
authorKunal Mehta <legoktm@gmail.com>
Fri, 16 Aug 2013 05:48:05 +0000 (22:48 -0700)
committerKunal Mehta <legoktm@gmail.com>
Mon, 19 Aug 2013 23:39:11 +0000 (16:39 -0700)
Change-Id: I5fe8fc8297ce29ffafd69f62f427dc9353c090e6

tests/phpunit/includes/api/ApiEditPageTest.php

index f3b9a67..d7c8e21 100644 (file)
@@ -197,6 +197,45 @@ class ApiEditPageTest extends ApiTestCase {
                $this->markTestIncomplete( "not yet implemented" );
        }
 
+       /**
+        * Test action=edit&section=new
+        * Run it twice so we test adding a new section on a
+        * page that doesn't exist (bug 52830) and one that
+        * does exist
+        */
+       function testEditNewSection() {
+               $name = 'Help:ApiEditPageTest_testEditNewSection';
+
+               // Test on a page that does not already exist
+               $this->assertFalse( Title::newFromText( $name )->exists() );
+               list( $re ) = $this->doApiRequestWithToken( array(
+                       'action' => 'edit',
+                       'title' => $name,
+                       'section' => 'new',
+                       'text' => 'test',
+                       'summary' => 'header',
+               ));
+
+               $this->assertEquals( 'Success', $re['edit']['result'] );
+               // Check the page text is correct
+               $text = WikiPage::factory( Title::newFromText( $name ) )->getContent( Revision::RAW )->getNativeData();
+               $this->assertEquals( $text, "== header ==\n\ntest");
+
+               // Now on one that does
+               $this->assertTrue( Title::newFromText( $name )->exists() );
+               list( $re2 ) = $this->doApiRequestWithToken( array(
+                       'action' => 'edit',
+                       'title' => $name,
+                       'section' => 'new',
+                       'text' => 'test',
+                       'summary' => 'header',
+               ));
+
+               $this->assertEquals( 'Success', $re2['edit']['result'] );
+               $text = WikiPage::factory( Title::newFromText( $name ) )->getContent( Revision::RAW )->getNativeData();
+               $this->assertEquals( $text, "== header ==\n\ntest\n\n== header ==\n\ntest");
+       }
+
        function testUndo() {
                $this->markTestIncomplete( "not yet implemented" );
        }