diff --git a/lib/Cake/Test/Case/View/HelperTest.php b/lib/Cake/Test/Case/View/HelperTest.php index cadc0943e..372db553c 100644 --- a/lib/Cake/Test/Case/View/HelperTest.php +++ b/lib/Cake/Test/Case/View/HelperTest.php @@ -589,6 +589,38 @@ class HelperTest extends CakeTestCase { Configure::write('Asset.timestamp', $_timestamp); } +/** + * test assetUrl application + * + * @return void + */ + public function testAssetUrl() { + $this->Helper->webroot = ''; + $_timestamp = Configure::read('Asset.timestamp'); + + $result = $this->Helper->assetUrl(array( + 'controller' => 'js', + 'action' => 'post', + 'ext' => 'js' + ), + array('fullBase' => true) + ); + $this->assertEquals('http://localhost/js/post.js', $result); + + $result = $this->Helper->assetUrl('foo.jpg', array('pathPrefix' => 'img/')); + $this->assertEquals('img/foo.jpg', $result); + + $result = $this->Helper->assetUrl('foo.jpg', array('fullBase' => true)); + $this->assertEquals('http://localhost/foo.jpg', $result); + + Configure::write('Asset.timestamp', 'force'); + + $result = $this->Helper->assetUrl('cake.generic.css', array('pathPrefix' => CSS_URL)); + $this->assertRegExp('/' . preg_quote(CSS_URL . 'cake.generic.css?', '/') . '[0-9]+/', $result); + + Configure::write('Asset.timestamp', $_timestamp); + } + /** * test assetTimestamp with plugins and themes * diff --git a/lib/Cake/View/Helper.php b/lib/Cake/View/Helper.php index f198f82e5..38d11eedb 100644 --- a/lib/Cake/View/Helper.php +++ b/lib/Cake/View/Helper.php @@ -271,17 +271,16 @@ class Helper extends Object { */ public function assetUrl($path, array $options) { if (is_array($path)) { - $path = $this->url($path); + $path = $this->url($path, !empty($options['fullBase'])); } elseif (strpos($path, '://') === false) { if (!empty($options['pathPrefix']) && $path[0] !== '/') { $path = $options['pathPrefix'] . $path; } $path = $this->assetTimestamp($this->webroot($path)); - } - if (!empty($options['fullBase'])) { - $path = $this->url('/', true) . $path; - unset($options['fullBase']); + if (!empty($options['fullBase'])) { + $path = $this->url('/', true) . $path; + } } return $path;