MediaWiki
REL1_20
|
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 }