MediaWiki  master
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 
00011                 $this->prefUsers['noemail'] = new User;
00012 
00013                 $this->prefUsers['notauth'] = new User;
00014                 $this->prefUsers['notauth']
00015                         ->setEmail( '[email protected]' );
00016 
00017                 $this->prefUsers['auth']    = new User;
00018                 $this->prefUsers['auth']
00019                         ->setEmail( '[email protected]' );
00020                 $this->prefUsers['auth']
00021                         ->setEmailAuthenticationTimestamp( 1330946623 );
00022 
00023                 $this->context = new RequestContext;
00024                 $this->context->setTitle( Title::newFromText('PreferencesTest') );
00025         }
00026 
00027         protected function setUp() {
00028                 parent::setUp();
00029 
00030                 $this->setMwGlobals( 'wgEnableEmail', true );
00031         }
00032 
00037         function testEmailFieldsWhenUserHasNoEmail() {
00038                 $prefs = $this->prefsFor( 'noemail' );
00039                 $this->assertArrayHasKey( 'cssclass',
00040                         $prefs['emailaddress']
00041                 );
00042                 $this->assertEquals( 'mw-email-none', $prefs['emailaddress']['cssclass'] );
00043         }
00048         function testEmailFieldsWhenUserEmailNotAuthenticated() {
00049                 $prefs = $this->prefsFor( 'notauth' );
00050                 $this->assertArrayHasKey( 'cssclass',
00051                         $prefs['emailaddress']
00052                 );
00053                 $this->assertEquals( 'mw-email-not-authenticated', $prefs['emailaddress']['cssclass'] );
00054         }
00059         function testEmailFieldsWhenUserEmailIsAuthenticated() {
00060                 $prefs = $this->prefsFor( 'auth' );
00061                 $this->assertArrayHasKey( 'cssclass',
00062                         $prefs['emailaddress']
00063                 );
00064                 $this->assertEquals( 'mw-email-authenticated', $prefs['emailaddress']['cssclass'] );
00065         }
00066 
00068         function prefsFor( $user_key ) {
00069                 $preferences = array();
00070                 Preferences::profilePreferences(
00071                         $this->prefUsers[$user_key]
00072                         , $this->context
00073                         , $preferences
00074                 );
00075                 return $preferences;
00076         }
00077 }