This goes back to the days of yore and combined with
b8320fdbb7 it causes issues. The specific
issue at hand was testing a helper that uses other aliased helpers
(HtmlHelper specifically). The core helper would always be loaded
instead of the aliased one.
I believe I found a fix for this issue. I am here at #CakeFest2013 and during the #HourOfContribution I ran across this issue.
Currently in CakePHP 2.4 on Line 1522 - 1524 you can see the following code:
@@@ php
if ($label) {
$optTitle = $this->Html->useTag('label', $tagName, '', $optTitle);
}
@@@
The $label variable here the is the $label array passed into the input method in Sethathi example above. The problem is that the $label array is completely ignored and instead a label is created using the HtmlHelper->useTag method.
I have what I believe is a fix for this issue but it hasn't been extensively tested. I tested against Sethathi example in the ticket and it produced the correct result.
The fix is simple. We detect if an array is passed in and then send it to the FormHelper label method instead of the HtmlHelper useTag method. The FormHelper label methods accepts an options array, so we pass in the $label array.
This will probably need to be fixed for checkbox also
"ask":https://cakephp.lighthouseapp.com/users/235987 helped me with this fix
Loading helpers earlier in View's lifecycle allows for the removal of
many duplicated code segments and a now useless property. It slightly
modifies how View behaves in a test case, but that issue is easily
remedied by calling loadHelpers() a second time.
This primarily fixes issues where helpers may not be loaded in View
subclasses if they override any of View's methods. This is particularly
problematic when aliased helpers are involved.
Refs #4030
https://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3515
I used (string) because it is faster than strval() and there are no real benefits in this case.
Also enabled assign(), append() and prepend() to take any values convertible to string.
Removed try/catch as discussed with ADmad.
Changed the three exception expecting tests to check for PHPUnit_Framework_Error now.
The link was the current URL instead of a link to the first
page. This only happened with named parameters. This commit
also includes a test for querystring parameters.
Refs #1432.