MediaWiki  REL1_21
PreferencesTest.php
Go to the documentation of this file.
00001 <?php
00002 
00006 class PreferencesTest extends MediaWikiTestCase {
00008         private $prefUsers;
00009         private $context;
00010 
00011         function __construct() {
00012                 parent::__construct();
00013 
00014                 $this->prefUsers['noemail'] = new User;
00015 
00016                 $this->prefUsers['notauth'] = new User;
00017                 $this->prefUsers['notauth']
00018                         ->setEmail( '[email protected]' );
00019 
00020                 $this->prefUsers['auth'] = new User;
00021                 $this->prefUsers['auth']
00022                         ->setEmail( '[email protected]' );
00023                 $this->prefUsers['auth']
00024                         ->setEmailAuthenticationTimestamp( 1330946623 );
00025 
00026                 $this->context = new RequestContext;
00027                 $this->context->setTitle( Title::newFromText( 'PreferencesTest' ) );
00028         }
00029 
00030         protected function setUp() {
00031                 parent::setUp();
00032 
00033                 $this->setMwGlobals( 'wgEnableEmail', true );
00034         }
00035 
00040         function testEmailFieldsWhenUserHasNoEmail() {
00041                 $prefs = $this->prefsFor( 'noemail' );
00042                 $this->assertArrayHasKey( 'cssclass',
00043                         $prefs['emailaddress']
00044                 );
00045                 $this->assertEquals( 'mw-email-none', $prefs['emailaddress']['cssclass'] );
00046         }
00047 
00052         function testEmailFieldsWhenUserEmailNotAuthenticated() {
00053                 $prefs = $this->prefsFor( 'notauth' );
00054                 $this->assertArrayHasKey( 'cssclass',
00055                         $prefs['emailaddress']
00056                 );
00057                 $this->assertEquals( 'mw-email-not-authenticated', $prefs['emailaddress']['cssclass'] );
00058         }
00059 
00064         function testEmailFieldsWhenUserEmailIsAuthenticated() {
00065                 $prefs = $this->prefsFor( 'auth' );
00066                 $this->assertArrayHasKey( 'cssclass',
00067                         $prefs['emailaddress']
00068                 );
00069                 $this->assertEquals( 'mw-email-authenticated', $prefs['emailaddress']['cssclass'] );
00070         }
00071 
00073         function prefsFor( $user_key ) {
00074                 $preferences = array();
00075                 Preferences::profilePreferences(
00076                         $this->prefUsers[$user_key]
00077                         , $this->context
00078                         , $preferences
00079                 );
00080                 return $preferences;
00081         }
00082 }