https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114607

Revision: 114607
Author:   kaldari
Date:     2012-03-29 18:20:41 +0000 (Thu, 29 Mar 2012)
Log Message:
-----------
creating test user and test articles for further unit tests to come

Modified Paths:
--------------
    trunk/extensions/PageTriage/tests/phpunit/SpecialPageTriageTest.php

Modified: trunk/extensions/PageTriage/tests/phpunit/SpecialPageTriageTest.php
===================================================================
--- trunk/extensions/PageTriage/tests/phpunit/SpecialPageTriageTest.php 
2012-03-29 18:11:16 UTC (rev 114606)
+++ trunk/extensions/PageTriage/tests/phpunit/SpecialPageTriageTest.php 
2012-03-29 18:20:41 UTC (rev 114607)
@@ -5,29 +5,125 @@
  * @group EditorEngagement
  * @author Ryan Kaldari
  */
-class SpecialPageTriageTest extends MediaWikiTestCase {
+class SpecialPageTriageTest extends ApiTestCase {
 
        protected $pageTriage;
+       
+       /**
+        * @var test user
+        */
+       public static $users;
 
-       protected function setUp() {
+       public function setUp() {
+               self::$users['one'] = new ApiTestUser(
+                               'PageTriageUser1',
+                               'PageTriage Test User 1',
+                               '[email protected]',
+                               array()
+               );
+               
                parent::setUp();
                $this->pageTriage = new SpecialPageTriage;
-               
-               // Insert some made up articles into the database
        }
 
-       protected function tearDown() {
+       public function tearDown() {
                parent::tearDown();
                
                // Remove the made up articles
        }
+       
+       // Create a fake logged in user
+       function testLogin() {
 
-       // This is a sample test (not actually very useful)
-       public function testGetTriageHeader() {
-               $this->assertEquals(
-                       '<p>Page Triage Header goes here</p>',
-                       $this->pageTriage->getTriageHeader()
+               $sessionArray = array();
+
+               foreach ( self::$users as $key => $user ) {
+
+                       $params = array(
+                               'action' => 'login',
+                               'lgname' => $user->username,
+                               'lgpassword' => $user->password
+                       );
+                       list( $result, , $session ) = $this->doApiRequest( 
$params );
+                       $this->assertArrayHasKey( "login", $result );
+                       $this->assertArrayHasKey( "result", $result['login'] );
+                       $this->assertEquals( "NeedToken", 
$result['login']['result'] );
+                       $token = $result['login']['token'];
+
+                       $params = array(
+                               'action' => 'login',
+                               'lgtoken' => $token,
+                               'lgname' => $user->username,
+                               'lgpassword' => $user->password
+                       );
+                       list( $result, , $session ) = $this->doApiRequest( 
$params, $session );
+                       $this->assertArrayHasKey( "login", $result );
+                       $this->assertArrayHasKey( "result", $result['login'] );
+                       $this->assertEquals( "Success", 
$result['login']['result'] );
+                       $this->assertArrayHasKey( 'lgtoken', $result['login'] );
+
+                       $this->assertNotEmpty( $session, 'API Login must return 
a session' );
+
+                       $sessionArray[$key] = $session;
+
+               }
+
+               return $sessionArray;
+
+       }
+       
+       /**
+        * @depends testLogin
+        */
+       function testAddArticles( $sessionArray ) {
+
+               global $wgUser;
+
+               $wgUser = self::$users['one']->user;
+               
+               $params = array(
+                       'action' => 'edit',
+                       'title' => 'Vacation Disaster Mania',
+                       'summary' => 'Creating test article',
+                       'createonly' => 1,
+                       'text' => 'Hello World'
                );
+               
+               list( $result, , $session ) =  $this->doApiRequestWithToken( 
+                       $params,
+                       $sessionArray['one'],
+                       self::$users['one']->user
+               );
+
+               $this->assertEquals( "Success", $result['edit']['result'] );
+               
+               // If it worked, make some more articles for use as test data
+               if ( $result['edit']['result'] == "Success" ) {
+               
+                       $newArticles = array(
+                               'My Lame Garage Band' => 'We rock!',
+                               'The Chronicals of Grok' => 'OK, I get it.',
+                               'Very thin wafers' => 'Eat it!'
+                       );
+                       
+                       foreach ( $newArticles as $title => $text ) {
+                               $params = array(
+                                       'action' => 'edit',
+                                       'title' => $title,
+                                       'summary' => 'Creating test article',
+                                       'createonly' => 1,
+                                       'text' => $text
+                               );
+                               
+                               list( $result, , $session ) =  
$this->doApiRequestWithToken( 
+                                       $params,
+                                       $sessionArray['one'],
+                                       self::$users['one']->user
+                               );
+                       }
+               
+               }
+               
        }
 
 }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to