]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/libs/IEUrlExtensionTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / libs / IEUrlExtensionTest.php
diff --git a/tests/phpunit/includes/libs/IEUrlExtensionTest.php b/tests/phpunit/includes/libs/IEUrlExtensionTest.php
new file mode 100644 (file)
index 0000000..57668e5
--- /dev/null
@@ -0,0 +1,206 @@
+<?php
+
+/**
+ * Tests for IEUrlExtension::findIE6Extension
+ * @todo tests below for findIE6Extension should be split into...
+ *    ...a dataprovider and test method.
+ */
+class IEUrlExtensionTest extends PHPUnit_Framework_TestCase {
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testSimple() {
+               $this->assertEquals(
+                       'y',
+                       IEUrlExtension::findIE6Extension( 'x.y' ),
+                       'Simple extension'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testSimpleNoExt() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( 'x' ),
+                       'No extension'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testEmpty() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( '' ),
+                       'Empty string'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testQuestionMark() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( '?' ),
+                       'Question mark only'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testExtQuestionMark() {
+               $this->assertEquals(
+                       'x',
+                       IEUrlExtension::findIE6Extension( '.x?' ),
+                       'Extension then question mark'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testQuestionMarkExt() {
+               $this->assertEquals(
+                       'x',
+                       IEUrlExtension::findIE6Extension( '?.x' ),
+                       'Question mark then extension'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testInvalidChar() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( '.x*' ),
+                       'Extension with invalid character'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testInvalidCharThenExtension() {
+               $this->assertEquals(
+                       'x',
+                       IEUrlExtension::findIE6Extension( '*.x' ),
+                       'Invalid character followed by an extension'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testMultipleQuestionMarks() {
+               $this->assertEquals(
+                       'c',
+                       IEUrlExtension::findIE6Extension( 'a?b?.c?.d?e?f' ),
+                       'Multiple question marks'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testExeException() {
+               $this->assertEquals(
+                       'd',
+                       IEUrlExtension::findIE6Extension( 'a?b?.exe?.d?.e' ),
+                       '.exe exception'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testExeException2() {
+               $this->assertEquals(
+                       'exe',
+                       IEUrlExtension::findIE6Extension( 'a?b?.exe' ),
+                       '.exe exception 2'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testHash() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( 'a#b.c' ),
+                       'Hash character preceding extension'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testHash2() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( 'a?#b.c' ),
+                       'Hash character preceding extension 2'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testDotAtEnd() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( '.' ),
+                       'Dot at end of string'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testTwoDots() {
+               $this->assertEquals(
+                       'z',
+                       IEUrlExtension::findIE6Extension( 'x.y.z' ),
+                       'Two dots'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testScriptQuery() {
+               $this->assertEquals(
+                       'php',
+                       IEUrlExtension::findIE6Extension( 'example.php?foo=a&bar=b' ),
+                       'Script with query'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testEscapedScriptQuery() {
+               $this->assertEquals(
+                       '',
+                       IEUrlExtension::findIE6Extension( 'example%2Ephp?foo=a&bar=b' ),
+                       'Script with urlencoded dot and query'
+               );
+       }
+
+       /**
+        * @covers IEUrlExtension::findIE6Extension
+        */
+       public function testEscapedScriptQueryDot() {
+               $this->assertEquals(
+                       'y',
+                       IEUrlExtension::findIE6Extension( 'example%2Ephp?foo=a.x&bar=b.y' ),
+                       'Script with urlencoded dot and query with dot'
+               );
+       }
+}