From 9441dde8bfb95277df073717ed7817dced40f948 Mon Sep 17 00:00:00 2001
From: Pierre Schmitz <pierre@archlinux.de>
Date: Fri, 28 Mar 2014 05:41:12 +0100
Subject: Update to MediaWiki 1.22.5

---
 tests/phpunit/includes/OutputPageTest.php | 133 ++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)
 create mode 100644 tests/phpunit/includes/OutputPageTest.php

(limited to 'tests/phpunit/includes/OutputPageTest.php')

diff --git a/tests/phpunit/includes/OutputPageTest.php b/tests/phpunit/includes/OutputPageTest.php
new file mode 100644
index 00000000..56bb0fce
--- /dev/null
+++ b/tests/phpunit/includes/OutputPageTest.php
@@ -0,0 +1,133 @@
+<?php
+
+/**
+ *
+ * @author Matthew Flaschen
+ *
+ * @group Output
+ *
+ */
+class OutputPageTest extends MediaWikiTestCase {
+	const SCREEN_MEDIA_QUERY = 'screen and (min-width: 982px)';
+	const SCREEN_ONLY_MEDIA_QUERY = 'only screen and (min-width: 982px)';
+
+	/**
+	 * Tests a particular case of transformCssMedia, using the given input, globals,
+	 * expected return, and message
+	 *
+	 * Asserts that $expectedReturn is returned.
+	 *
+	 * options['printableQuery'] - value of query string for printable, or omitted for none
+	 * options['handheldQuery'] - value of query string for handheld, or omitted for none
+	 * options['media'] - passed into the method under the same name
+	 * options['expectedReturn'] - expected return value
+	 * options['message'] - PHPUnit message for assertion
+	 *
+	 * @param array $args key-value array of arguments as shown above
+	 */
+	protected function assertTransformCssMediaCase( $args ) {
+		$queryData = array();
+		if ( isset( $args['printableQuery'] ) ) {
+			$queryData['printable'] = $args['printableQuery'];
+		}
+
+		if ( isset( $args['handheldQuery'] ) ) {
+			$queryData['handheld'] = $args['handheldQuery'];
+		}
+
+		$fauxRequest = new FauxRequest( $queryData, false );
+		$this->setMWGlobals( array(
+			'wgRequest' => $fauxRequest,
+		) );
+
+		$actualReturn = OutputPage::transformCssMedia( $args['media'] );
+		$this->assertSame( $args['expectedReturn'], $actualReturn, $args['message'] );
+	}
+
+	/**
+	 * Tests print requests
+	 */
+	public function testPrintRequests() {
+		$this->assertTransformCssMediaCase( array(
+			'printableQuery' => '1',
+			'media' => 'screen',
+			'expectedReturn' => null,
+			'message' => 'On printable request, screen returns null'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'printableQuery' => '1',
+			'media' => self::SCREEN_MEDIA_QUERY,
+			'expectedReturn' => null,
+			'message' => 'On printable request, screen media query returns null'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'printableQuery' => '1',
+			'media' => self::SCREEN_ONLY_MEDIA_QUERY,
+			'expectedReturn' => null,
+			'message' => 'On printable request, screen media query with only returns null'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'printableQuery' => '1',
+			'media' => 'print',
+			'expectedReturn' => '',
+			'message' => 'On printable request, media print returns empty string'
+		) );
+	}
+
+	/**
+	 * Tests screen requests, without either query parameter set
+	 */
+	public function testScreenRequests() {
+		$this->assertTransformCssMediaCase( array(
+			'media' => 'screen',
+			'expectedReturn' => 'screen',
+			'message' => 'On screen request, screen media type is preserved'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'media' => 'handheld',
+			'expectedReturn' => 'handheld',
+			'message' => 'On screen request, handheld media type is preserved'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'media' => self::SCREEN_MEDIA_QUERY,
+			'expectedReturn' => self::SCREEN_MEDIA_QUERY,
+			'message' => 'On screen request, screen media query is preserved.'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'media' => self::SCREEN_ONLY_MEDIA_QUERY,
+			'expectedReturn' => self::SCREEN_ONLY_MEDIA_QUERY,
+			'message' => 'On screen request, screen media query with only is preserved.'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'media' => 'print',
+			'expectedReturn' => 'print',
+			'message' => 'On screen request, print media type is preserved'
+		) );
+	}
+
+	/**
+	 * Tests handheld behavior
+	 */
+	public function testHandheld() {
+		$this->assertTransformCssMediaCase( array(
+			'handheldQuery' => '1',
+			'media' => 'handheld',
+			'expectedReturn' => '',
+			'message' => 'On request with handheld querystring and media is handheld, returns empty string'
+		) );
+
+		$this->assertTransformCssMediaCase( array(
+			'handheldQuery' => '1',
+			'media' => 'screen',
+			'expectedReturn' => null,
+			'message' => 'On request with handheld querystring and media is screen, returns null'
+		) );
+	}
+}
-- 
cgit v1.2.3-54-g00ecf