Skip to content

Commit

Permalink
Update helpers to use UrlHelper.
Browse files Browse the repository at this point in the history
  • Loading branch information
ADmad committed Aug 11, 2014
1 parent 6a3fd97 commit 6cd3dca
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 44 deletions.
12 changes: 6 additions & 6 deletions src/View/Helper/FormHelper.php
Expand Up @@ -51,7 +51,7 @@ class FormHelper extends Helper {
*
* @var array
*/
public $helpers = array('Html');
public $helpers = ['Url', 'Html'];

/**
* The various pickers that make up a datetime picker.
Expand Down Expand Up @@ -304,7 +304,7 @@ public function create($model = null, $options = []) {
unset($options['templates']);

$url = $this->_formUrl($context, $options);
$action = $this->url($url);
$action = $this->Url->url($url);
unset($options['url'], $options['action'], $options['idPrefix']);

$this->_lastAction($url);
Expand Down Expand Up @@ -1459,7 +1459,7 @@ public function postLink($title, $url = null, array $options = array()) {

$formName = str_replace('.', '', uniqid('post_', true));
$formOptions = array(
'action' => $this->url($url),
'action' => $this->Url->url($url),
'name' => $formName,
'style' => 'display:none;',
'method' => 'post',
Expand Down Expand Up @@ -1563,11 +1563,11 @@ public function submit($caption = null, array $options = []) {
$options['src'] = $caption;
} elseif ($isImage) {
if ($caption{0} !== '/') {
$url = $this->webroot(Configure::read('App.imageBaseUrl') . $caption);
$url = $this->Url->webroot(Configure::read('App.imageBaseUrl') . $caption);
} else {
$url = $this->webroot(trim($caption, '/'));
$url = $this->Url->webroot(trim($caption, '/'));
}
$url = $this->assetTimestamp($url);
$url = $this->Url->assetTimestamp($url);
$options['src'] = $url;
} else {
$options['value'] = $caption;
Expand Down
29 changes: 18 additions & 11 deletions src/View/Helper/HtmlHelper.php
Expand Up @@ -31,6 +31,13 @@ class HtmlHelper extends Helper {

use StringTemplateTrait;

/**
* List of helpers used by this helper
*
* @var array
*/
public $helpers = ['Url'];

/**
* Reference to the Response object
*
Expand Down Expand Up @@ -237,7 +244,7 @@ public function meta($type, $content = null, array $options = array()) {
$out = null;

if (isset($options['link'])) {
$options['link'] = $this->assetUrl($options['link']);
$options['link'] = $this->Url->assetUrl($options['link']);
if (isset($options['rel']) && $options['rel'] === 'icon') {
$out = $this->formatTemplate('metalink', [
'url' => $options['link'],
Expand Down Expand Up @@ -286,7 +293,7 @@ public function charset($charset = null) {
*
* If $url starts with "http://" this is treated as an external link. Else,
* it is treated as a path to controller/action and parsed with the
* HtmlHelper::url() method.
* UrlHelper::url() method.
*
* If the $url is empty, $title is used instead.
*
Expand All @@ -307,9 +314,9 @@ public function charset($charset = null) {
public function link($title, $url = null, array $options = array()) {
$escapeTitle = true;
if ($url !== null) {
$url = $this->url($url);
$url = $this->Url->url($url);
} else {
$url = $this->url($title);
$url = $this->Url->url($title);
$title = htmlspecialchars_decode($url, ENT_QUOTES);
$title = h(urldecode($title));
$escapeTitle = false;
Expand Down Expand Up @@ -400,7 +407,7 @@ public function css($path, array $options = array()) {
if (strpos($path, '//') !== false) {
$url = $path;
} else {
$url = $this->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.cssBaseUrl'), 'ext' => '.css'));
$url = $this->Url->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.cssBaseUrl'), 'ext' => '.css'));
$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));
}

Expand Down Expand Up @@ -483,7 +490,7 @@ public function script($url, array $options = array()) {
}

if (strpos($url, '//') === false) {
$url = $this->assetUrl($url, $options + array('pathPrefix' => Configure::read('App.jsBaseUrl'), 'ext' => '.js'));
$url = $this->Url->assetUrl($url, $options + array('pathPrefix' => Configure::read('App.jsBaseUrl'), 'ext' => '.js'));
$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));
}

Expand Down Expand Up @@ -753,7 +760,7 @@ protected function _prepareCrumbs($startText, $escape = true) {
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::image
*/
public function image($path, array $options = array()) {
$path = $this->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.imageBaseUrl')));
$path = $this->Url->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.imageBaseUrl')));
$options = array_diff_key($options, array('fullBase' => null, 'pathPrefix' => null));

if (!isset($options['alt'])) {
Expand All @@ -773,7 +780,7 @@ public function image($path, array $options = array()) {

if ($url) {
return $this->formatTemplate('link', [
'url' => $this->url($url),
'url' => $this->Url->url($url),
'attrs' => null,
'content' => $image
]);
Expand Down Expand Up @@ -1034,7 +1041,7 @@ public function media($path, array $options = array()) {
$ext = pathinfo($source['src'], PATHINFO_EXTENSION);
$source['type'] = $this->response->getMimeType($ext);
}
$source['src'] = $this->assetUrl($source['src'], $options);
$source['src'] = $this->Url->assetUrl($source['src'], $options);
$sourceTags .= $this->formatTemplate('tagselfclosing', [
'tag' => 'source',
'attrs' => $this->templater()->formatAttributes($source)
Expand All @@ -1047,7 +1054,7 @@ public function media($path, array $options = array()) {
if (empty($path) && !empty($options['src'])) {
$path = $options['src'];
}
$options['src'] = $this->assetUrl($path, $options);
$options['src'] = $this->Url->assetUrl($path, $options);
}

if ($tag === null) {
Expand All @@ -1064,7 +1071,7 @@ public function media($path, array $options = array()) {
}

if (isset($options['poster'])) {
$options['poster'] = $this->assetUrl($options['poster'], array('pathPrefix' => Configure::read('App.imageBaseUrl')) + $options);
$options['poster'] = $this->Url->assetUrl($options['poster'], array('pathPrefix' => Configure::read('App.imageBaseUrl')) + $options);
}
$text = $options['text'];

Expand Down
9 changes: 8 additions & 1 deletion src/View/Helper/PaginatorHelper.php
Expand Up @@ -29,6 +29,13 @@ class PaginatorHelper extends Helper {

use StringTemplateTrait;

/**
* List of helpers used by this helper
*
* @var array
*/
public $helpers = ['Url'];

/**
* Defualt config for this class
*
Expand Down Expand Up @@ -426,7 +433,7 @@ public function generateUrl(array $options = array(), $model = null, $full = fal
) {
$url['sort'] = $url['direction'] = null;
}
return $this->url($url, $full);
return $this->Url->url($url, $full);
}

/**
Expand Down
12 changes: 6 additions & 6 deletions src/View/Helper/RssHelper.php
Expand Up @@ -30,7 +30,7 @@ class RssHelper extends Helper {
*
* @var array
*/
public $helpers = array('Time');
public $helpers = ['Url', 'Time'];

/**
* Base URL
Expand Down Expand Up @@ -127,7 +127,7 @@ public function channel($attrib = array(), $elements = array(), $content = null)
if (!isset($elements['description'])) {
$elements['description'] = '';
}
$elements['link'] = $this->url($elements['link'], true);
$elements['link'] = $this->Url->url($elements['link'], true);

$elems = '';
foreach ($elements as $elem => $data) {
Expand Down Expand Up @@ -228,14 +228,14 @@ public function item($att = array(), $elements = array()) {
unset($attrib['url']);
$val = $val['url'];
}
$val = $this->url($val, true);
$val = $this->Url->url($val, true);
break;
case 'source':
if (is_array($val) && isset($val['url'])) {
$attrib['url'] = $this->url($val['url'], true);
$attrib['url'] = $this->Url->url($val['url'], true);
$val = $val['title'];
} elseif (is_array($val)) {
$attrib['url'] = $this->url($val[0], true);
$attrib['url'] = $this->Url->url($val[0], true);
$val = $val[1];
}
break;
Expand All @@ -248,7 +248,7 @@ public function item($att = array(), $elements = array()) {
$val['type'] = mime_content_type(WWW_ROOT . $val['url']);
}
}
$val['url'] = $this->url($val['url'], true);
$val['url'] = $this->Url->url($val['url'], true);
$attrib = $val;
$val = null;
break;
Expand Down
13 changes: 7 additions & 6 deletions tests/TestCase/View/Helper/FormHelperTest.php
Expand Up @@ -142,12 +142,13 @@ public function setUp() {
$this->View = new View();

$this->Form = new FormHelper($this->View);
$this->Form->request = new Request('articles/add');
$this->Form->request->here = '/articles/add';
$this->Form->request['controller'] = 'articles';
$this->Form->request['action'] = 'add';
$this->Form->request->webroot = '';
$this->Form->request->base = '';
$request = new Request('articles/add');
$request->here = '/articles/add';
$request['controller'] = 'articles';
$request['action'] = 'add';
$request->webroot = '';
$request->base = '';
$this->Form->Url->request = $this->Form->request = $request;

$this->dateRegex = array(
'daysRegex' => 'preg:/(?:<option value="0?([\d]+)">\\1<\/option>[\r\n]*)*/',
Expand Down
23 changes: 12 additions & 11 deletions tests/TestCase/View/Helper/HtmlHelperTest.php
Expand Up @@ -68,6 +68,7 @@ public function setUp() {
$this->Html = new HtmlHelper($this->View);
$this->Html->request = new Request();
$this->Html->request->webroot = '';
$this->Html->Url->request = $this->Html->request;

Configure::write('App.namespace', 'TestApp');
Plugin::load(['TestTheme']);
Expand Down Expand Up @@ -390,12 +391,12 @@ public function testImagePathPrefix() {
*/
public function testImageWithFullBase() {
$result = $this->Html->image('test.gif', array('fullBase' => true));
$here = $this->Html->url('/', true);
$here = $this->Html->Url->url('/', true);
$expected = array('img' => array('src' => $here . 'img/test.gif', 'alt' => ''));
$this->assertHtml($expected, $result);

$result = $this->Html->image('sub/test.gif', array('fullBase' => true));
$here = $this->Html->url('/', true);
$here = $this->Html->Url->url('/', true);
$expected = array('img' => array('src' => $here . 'img/sub/test.gif', 'alt' => ''));
$this->assertHtml($expected, $result);

Expand All @@ -405,7 +406,7 @@ public function testImageWithFullBase() {
Router::pushRequest($request);

$result = $this->Html->image('sub/test.gif', array('fullBase' => true));
$here = $this->Html->url('/', true);
$here = $this->Html->Url->url('/', true);
$expected = array('img' => array('src' => $here . 'img/sub/test.gif', 'alt' => ''));
$this->assertHtml($expected, $result);
}
Expand Down Expand Up @@ -452,8 +453,8 @@ public function testImageTagWithTheme() {
Configure::write('Asset.timestamp', true);
Configure::write('debug', true);

$this->Html->request->webroot = '/';
$this->Html->theme = 'TestTheme';
$this->Html->Url->request->webroot = '/';
$this->Html->Url->theme = 'TestTheme';
$result = $this->Html->image('__cake_test_image.gif');
$expected = array(
'img' => array(
Expand All @@ -462,7 +463,7 @@ public function testImageTagWithTheme() {
));
$this->assertHtml($expected, $result);

$this->Html->request->webroot = '/testing/';
$this->Html->Url->request->webroot = '/testing/';
$result = $this->Html->image('__cake_test_image.gif');
$expected = array(
'img' => array(
Expand All @@ -481,7 +482,7 @@ public function testThemeAssetsInMainWebrootPath() {
$webRoot = Configure::read('App.www_root');
Configure::write('App.www_root', TEST_APP . 'webroot/');

$this->Html->theme = 'TestTheme';
$this->Html->Url->theme = 'TestTheme';
$result = $this->Html->css('webroot_test');
$expected = array(
'link' => array('rel' => 'stylesheet', 'href' => 'preg:/.*test_theme\/css\/webroot_test\.css/')
Expand Down Expand Up @@ -618,7 +619,7 @@ public function testCssLinkOnce() {
*/
public function testCssWithFullBase() {
Configure::write('Asset.filter.css', false);
$here = $this->Html->url('/', true);
$here = $this->Html->Url->url('/', true);

$result = $this->Html->css('screen', array('fullBase' => true));
$expected = array(
Expand Down Expand Up @@ -993,7 +994,7 @@ public function testScriptWithBlocks() {
* @return void
*/
public function testScriptWithFullBase() {
$here = $this->Html->url('/', true);
$here = $this->Html->Url->url('/', true);

$result = $this->Html->script('foo', array('fullBase' => true));
$expected = array(
Expand Down Expand Up @@ -1022,8 +1023,8 @@ public function testScriptInTheme() {
$testfile = WWW_ROOT . '/test_theme/js/__test_js.js';
new File($testfile, true);

$this->Html->request->webroot = '/';
$this->Html->theme = 'TestTheme';
$this->Html->Url->request->webroot = '/';
$this->Html->Url->theme = 'TestTheme';
$result = $this->Html->script('__test_js.js');
$expected = array(
'script' => array('src' => '/test_theme/js/__test_js.js')
Expand Down
6 changes: 3 additions & 3 deletions tests/TestCase/View/Helper/RssHelperTest.php
Expand Up @@ -104,7 +104,7 @@ public function testChannel() {
'Title',
'/title',
'<link',
$this->Rss->url('/', true),
$this->Rss->Url->url('/', true),
'/link',
'<description',
'content',
Expand Down Expand Up @@ -551,7 +551,7 @@ public function testItemCdata() {
'<description',
'<![CDATA[descriptive words]]',
'/description',
'enclosure' => array('url' => $this->Rss->url('/test.flv', true)),
'enclosure' => array('url' => $this->Rss->Url->url('/test.flv', true)),
'<pubDate',
date('r', strtotime('2008-05-31 12:00:00')),
'/pubDate',
Expand Down Expand Up @@ -633,7 +633,7 @@ public function testItemEnclosureLength() {
'<![CDATA[descriptive words]]',
'/description',
'enclosure' => array(
'url' => $this->Rss->url('/tests/cakephp.file.test.tmp', true),
'url' => $this->Rss->Url->url('/tests/cakephp.file.test.tmp', true),
'length' => filesize($tmpFile),
'type' => $type
),
Expand Down

0 comments on commit 6cd3dca

Please sign in to comment.