blob: 6c637c65104b5ab3cbed6434500a908dbf2cc231 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?php
/**
* Test class for SpecialPreferences class.
*
* Copyright © 2013, Antoine Musso
* Copyright © 2013, Wikimedia Foundation Inc.
*
*/
class SpecialPreferencesTest extends MediaWikiTestCase {
/**
* Make sure a nickname which is longer than $wgMaxSigChars
* is not throwing a fatal error.
*
* Test specifications by Alexandre "ialex" Emsenhuber.
*/
public function testBug41337() {
// Set a low limit
$this->setMwGlobals( 'wgMaxSigChars', 2 );
$user = $this->getMock( 'User' );
$user->expects( $this->any() )
->method( 'isAnon' )
->will( $this->returnValue( false ) );
# Yeah foreach requires an array, not NULL =(
$user->expects( $this->any() )
->method( 'getEffectiveGroups' )
->will( $this->returnValue( array() ) );
# The mocked user has a long nickname
$user->expects( $this->any() )
->method( 'getOption' )
->will( $this->returnValueMap( array(
array( 'nickname', null, false, 'superlongnickname' ),
)
) );
# Validate the mock (FIXME should probably be removed)
$this->assertFalse( $user->isAnon() );
$this->assertEquals( array(),
$user->getEffectiveGroups() );
$this->assertEquals( 'superlongnickname',
$user->getOption( 'nickname' ) );
# Forge a request to call the special page
$context = new RequestContext();
$context->setRequest( new FauxRequest() );
$context->setUser( $user );
$context->setTitle( Title::newFromText( 'Test' ) );
# Do the call, should not spurt a fatal error.
$special = new SpecialPreferences();
$special->setContext( $context );
$special->execute( array() );
}
}
|