Make phorkie search engine friendlier
[phorkie.git] / tests / phorkie / ToolsTest.php
index 7a5be16f71367fd95f445626610e027664fc441d..d8df8f42d89e5f5533c767c45791d655ba8a2177 100644 (file)
@@ -3,6 +3,11 @@ namespace phorkie;
 
 class ToolsTest extends \PHPUnit_Framework_TestCase
 {
+    public function setUp()
+    {
+        $_GET[] = array();
+    }
+
     public function testDetectBaseUrlPhar()
     {
         $_SERVER['REQUEST_URI'] = '/phar/phorkie-0.4.0.phar/list.php';
@@ -33,5 +38,53 @@ class ToolsTest extends \PHPUnit_Framework_TestCase
         $_SERVER['SCRIPT_NAME'] = '/new.php';
         $this->assertEquals('/foo/', Tools::detectBaseUrl());
     }
+
+    public function testDetectBaseUrlEdit()
+    {
+        $_GET['id'] = 82;
+        $_SERVER['REQUEST_URI'] = '/82/edit';
+        $_SERVER['SCRIPT_NAME'] = '/edit.php';
+        $this->assertEquals('/', Tools::detectBaseUrl());
+    }
+
+    public function testDetectBaseUrlEditSubdir()
+    {
+        $_GET['id'] = 82;
+        $_SERVER['REQUEST_URI'] = '/foo/82/edit';
+        $_SERVER['SCRIPT_NAME'] = '/edit.php';
+        $this->assertEquals('/foo/', Tools::detectBaseUrl());
+    }
+
+    public function testFoldPathParentSingle()
+    {
+        $this->assertEquals(
+            '/path/to/foo',
+            Tools::foldPath('/path/to/bar/../foo')
+        );
+    }
+
+    public function testFoldPathParentDouble()
+    {
+        $this->assertEquals(
+            '/path/to/foo',
+            Tools::foldPath('/path/to/foo/bar/../../foo')
+        );
+    }
+
+    public function testFoldPathCurrentSingle()
+    {
+        $this->assertEquals(
+            '/path/to/foo/',
+            Tools::foldPath('/path/to/foo/./')
+        );
+    }
+
+    public function testFoldPathCurrentThrice()
+    {
+        $this->assertEquals(
+            '/path/to/foo/',
+            Tools::foldPath('/path/././to/foo/./')
+        );
+    }
 }
 ?>