MediaWiki
REL1_23
|
00001 <?php 00002 00012 class OutputPageTest extends MediaWikiTestCase { 00013 const SCREEN_MEDIA_QUERY = 'screen and (min-width: 982px)'; 00014 const SCREEN_ONLY_MEDIA_QUERY = 'only screen and (min-width: 982px)'; 00015 00030 protected function assertTransformCssMediaCase( $args ) { 00031 $queryData = array(); 00032 if ( isset( $args['printableQuery'] ) ) { 00033 $queryData['printable'] = $args['printableQuery']; 00034 } 00035 00036 if ( isset( $args['handheldQuery'] ) ) { 00037 $queryData['handheld'] = $args['handheldQuery']; 00038 } 00039 00040 $fauxRequest = new FauxRequest( $queryData, false ); 00041 $this->setMWGlobals( array( 00042 'wgRequest' => $fauxRequest, 00043 ) ); 00044 00045 $actualReturn = OutputPage::transformCssMedia( $args['media'] ); 00046 $this->assertSame( $args['expectedReturn'], $actualReturn, $args['message'] ); 00047 } 00048 00053 public function testPrintRequests() { 00054 $this->assertTransformCssMediaCase( array( 00055 'printableQuery' => '1', 00056 'media' => 'screen', 00057 'expectedReturn' => null, 00058 'message' => 'On printable request, screen returns null' 00059 ) ); 00060 00061 $this->assertTransformCssMediaCase( array( 00062 'printableQuery' => '1', 00063 'media' => self::SCREEN_MEDIA_QUERY, 00064 'expectedReturn' => null, 00065 'message' => 'On printable request, screen media query returns null' 00066 ) ); 00067 00068 $this->assertTransformCssMediaCase( array( 00069 'printableQuery' => '1', 00070 'media' => self::SCREEN_ONLY_MEDIA_QUERY, 00071 'expectedReturn' => null, 00072 'message' => 'On printable request, screen media query with only returns null' 00073 ) ); 00074 00075 $this->assertTransformCssMediaCase( array( 00076 'printableQuery' => '1', 00077 'media' => 'print', 00078 'expectedReturn' => '', 00079 'message' => 'On printable request, media print returns empty string' 00080 ) ); 00081 } 00082 00087 public function testScreenRequests() { 00088 $this->assertTransformCssMediaCase( array( 00089 'media' => 'screen', 00090 'expectedReturn' => 'screen', 00091 'message' => 'On screen request, screen media type is preserved' 00092 ) ); 00093 00094 $this->assertTransformCssMediaCase( array( 00095 'media' => 'handheld', 00096 'expectedReturn' => 'handheld', 00097 'message' => 'On screen request, handheld media type is preserved' 00098 ) ); 00099 00100 $this->assertTransformCssMediaCase( array( 00101 'media' => self::SCREEN_MEDIA_QUERY, 00102 'expectedReturn' => self::SCREEN_MEDIA_QUERY, 00103 'message' => 'On screen request, screen media query is preserved.' 00104 ) ); 00105 00106 $this->assertTransformCssMediaCase( array( 00107 'media' => self::SCREEN_ONLY_MEDIA_QUERY, 00108 'expectedReturn' => self::SCREEN_ONLY_MEDIA_QUERY, 00109 'message' => 'On screen request, screen media query with only is preserved.' 00110 ) ); 00111 00112 $this->assertTransformCssMediaCase( array( 00113 'media' => 'print', 00114 'expectedReturn' => 'print', 00115 'message' => 'On screen request, print media type is preserved' 00116 ) ); 00117 } 00118 00123 public function testHandheld() { 00124 $this->assertTransformCssMediaCase( array( 00125 'handheldQuery' => '1', 00126 'media' => 'handheld', 00127 'expectedReturn' => '', 00128 'message' => 'On request with handheld querystring and media is handheld, returns empty string' 00129 ) ); 00130 00131 $this->assertTransformCssMediaCase( array( 00132 'handheldQuery' => '1', 00133 'media' => 'screen', 00134 'expectedReturn' => null, 00135 'message' => 'On request with handheld querystring and media is screen, returns null' 00136 ) ); 00137 } 00138 }