[limb-svn] r6972 - in 3.x/trunk/limb/net: src tests/cases
svn at limb-project.com
svn at limb-project.com
Tue Apr 29 13:04:21 MSD 2008
Author: korchasa
Date: 2008-04-29 13:04:20 +0400 (Tue, 29 Apr 2008)
New Revision: 6972
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6972
Modified:
3.x/trunk/limb/net/src/lmbUri.class.php
3.x/trunk/limb/net/tests/cases/lmbUriTest.class.php
Log:
-- fix for file protocol uri without host and only two slashes
Modified: 3.x/trunk/limb/net/src/lmbUri.class.php
===================================================================
--- 3.x/trunk/limb/net/src/lmbUri.class.php 2008-04-28 11:04:46 UTC (rev 6971)
+++ 3.x/trunk/limb/net/src/lmbUri.class.php 2008-04-29 09:04:20 UTC (rev 6972)
@@ -2,9 +2,9 @@
/*
* Limb PHP Framework
*
- * @link http://limb-project.com
+ * @link http://limb-project.com
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
- * @license LGPL http://www.gnu.org/copyleft/lesser.html
+ * @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
lmb_require('limb/core/src/lmbSet.class.php');
lmb_require('limb/core/src/lmbArrayHelper.class.php');
@@ -30,7 +30,7 @@
function __construct($str='')
{
if($str)
- $this->reset($str);
+ $this->parse($str);
}
static function addQueryItems($url, $items=array())
@@ -62,9 +62,19 @@
*/
function parse($uri)
{
+ if('file' == substr($uri, 0, 4))
+ $uri = $this->_fixFileProtocol($uri);
+
$this->reset($uri);
}
+ protected function _fixFileProtocol($url)
+ {
+ if('/' != substr($url, 0, strlen('file:///')))
+ $url = str_replace('file://', 'file:///', $url);
+ return $url;
+ }
+
function reset($str = null)
{
$this->user = '';
Modified: 3.x/trunk/limb/net/tests/cases/lmbUriTest.class.php
===================================================================
--- 3.x/trunk/limb/net/tests/cases/lmbUriTest.class.php 2008-04-28 11:04:46 UTC (rev 6971)
+++ 3.x/trunk/limb/net/tests/cases/lmbUriTest.class.php 2008-04-29 09:04:20 UTC (rev 6972)
@@ -2,9 +2,9 @@
/*
* Limb PHP Framework
*
- * @link http://limb-project.com
+ * @link http://limb-project.com
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
- * @license LGPL http://www.gnu.org/copyleft/lesser.html
+ * @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
lmb_require('limb/net/src/lmbUri.class.php');
@@ -34,6 +34,30 @@
$this->assertEqual($uri->getPathElement(2), 'test');
}
+ function testCreate_FileProtocolWithoutHost_OnUnix()
+ {
+ $str = 'file://some_dir';
+
+ $uri = new lmbUri($str);
+
+ $this->assertEqual($uri->getProtocol(), 'file');
+ $this->assertEqual($uri->getHost(), '');
+
+ $this->assertEqual($uri->getPath(), '/some_dir');
+ }
+
+ function testCreate_FileProtocolWithoutHost_OnWindows()
+ {
+ $str = 'file://c:/some_dir';
+
+ $uri = new lmbUri($str);
+
+ $this->assertEqual($uri->getProtocol(), 'file');
+ $this->assertEqual($uri->getHost(), '');
+
+ $this->assertEqual($uri->getPath(), 'c:/some_dir');
+ }
+
function testInvalidUriThrowsException()
{
try
More information about the limb-svn
mailing list