MediaWiki  REL1_20
PreferencesTest.php
Go to the documentation of this file.
00001 <?php
00002 
00003 class PreferencesTest extends MediaWikiTestCase {
00005         private $prefUsers;
00006         private $context;
00007 
00008         function __construct() {
00009                 parent::__construct();
00010                 global $wgEnableEmail;
00011 
00012                 $this->prefUsers['noemail'] = new User;
00013 
00014                 $this->prefUsers['notauth'] = new User;
00015                 $this->prefUsers['notauth']
00016                         ->setEmail( '[email protected]' );
00017 
00018                 $this->prefUsers['auth']    = new User;
00019                 $this->prefUsers['auth']
00020                         ->setEmail( '[email protected]' );
00021                 $this->prefUsers['auth']
00022                         ->setEmailAuthenticationTimestamp( 1330946623 );
00023 
00024                 $this->context = new RequestContext;
00025                 $this->context->setTitle( Title::newFromText('PreferencesTest') );
00026 
00027                 //some tests depends on email setting
00028                 $wgEnableEmail = true;
00029         }
00030 
00035         function testEmailFieldsWhenUserHasNoEmail() {
00036                 $prefs = $this->prefsFor( 'noemail' );
00037                 $this->assertArrayHasKey( 'cssclass',
00038                         $prefs['emailaddress']
00039                 );
00040                 $this->assertEquals( 'mw-email-none', $prefs['emailaddress']['cssclass'] );
00041         }
00046         function testEmailFieldsWhenUserEmailNotAuthenticated() {
00047                 $prefs = $this->prefsFor( 'notauth' );
00048                 $this->assertArrayHasKey( 'cssclass',
00049                         $prefs['emailaddress']
00050                 );
00051                 $this->assertEquals( 'mw-email-not-authenticated', $prefs['emailaddress']['cssclass'] );
00052         }
00057         function testEmailFieldsWhenUserEmailIsAuthenticated() {
00058                 $prefs = $this->prefsFor( 'auth' );
00059                 $this->assertArrayHasKey( 'cssclass',
00060                         $prefs['emailaddress']
00061                 );
00062                 $this->assertEquals( 'mw-email-authenticated', $prefs['emailaddress']['cssclass'] );
00063         }
00064 
00066         function prefsFor( $user_key ) {
00067                 $preferences = array();
00068                 Preferences::profilePreferences(
00069                         $this->prefUsers[$user_key]
00070                         , $this->context
00071                         , $preferences
00072                 );
00073                 return $preferences;
00074         }
00075 }