Skip to content

Commit

Permalink
Refactored Helper::assetUrl() a bit and added test cases.
Browse files Browse the repository at this point in the history
  • Loading branch information
ADmad committed Feb 6, 2012
1 parent c0690a3 commit b6f99bc
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 5 deletions.
32 changes: 32 additions & 0 deletions lib/Cake/Test/Case/View/HelperTest.php
Expand Up @@ -589,6 +589,38 @@ public function testAssetTimestamp() {
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
*
Expand Down
9 changes: 4 additions & 5 deletions lib/Cake/View/Helper.php
Expand Up @@ -271,17 +271,16 @@ public function webroot($file) {
*/
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;
Expand Down

0 comments on commit b6f99bc

Please sign in to comment.