MediaWiki  REL1_23
OutputPageTest.php
Go to the documentation of this file.
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 }