Permalink
Browse files

Merge branch '2.0' into 2.1

  • Loading branch information...
2 parents 3412c0c + 3f4be3b commit 7d51db9e63d5635068d779d80a0eaa840769007c @markstory markstory committed Mar 3, 2012
View
5 lib/Cake/Console/Command/Task/TestTask.php
@@ -276,7 +276,10 @@ public function getRealClassName($type, $class) {
if (strtolower($type) == 'model' || empty($this->classTypes[$type])) {
return $class;
}
- if (strlen($class) - strpos($class, $type) == strlen($type)) {
+
+ $position = strpos($class, $type);
+
+ if ($position !== false && strlen($class) - $position == strlen($type)) {
return $class;
}
return $class . $type;
View
2 lib/Cake/Console/Command/UpgradeShell.php
@@ -191,7 +191,7 @@ public function locations() {
$defaultOptions = array(
'recursive' => true,
'checkFolder' => true,
- 'regex' => '@class (\S*) .*{@i'
+ 'regex' => '@class (\S*) .*(\s|\v)*{@i'
);
foreach ($sourceDirs as $dir => $options) {
if (is_numeric($dir)) {
View
3 lib/Cake/Test/Case/Console/Command/Task/TestTaskTest.php
@@ -403,6 +403,9 @@ public function testGetRealClassname() {
$result = $this->Task->getRealClassname('Controller', 'PostsController');
$this->assertEquals('PostsController', $result);
+
+ $result = $this->Task->getRealClassname('Controller', 'AlertTypes');
+ $this->assertEquals('AlertTypesController', $result);
$result = $this->Task->getRealClassname('Helper', 'Form');
$this->assertEquals('FormHelper', $result);
View
84 lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
@@ -661,11 +661,12 @@ public function testPassedArgsMergingWithUrlOptions() {
$this->Paginator->request->params['pass'] = array(2);
$this->Paginator->request->params['named'] = array('foo' => 'bar');
+ $this->Paginator->request->query = array('x' => 'y');
$this->Paginator->beforeRender('posts/index');
$result = $this->Paginator->sort('title');
$expected = array(
- 'a' => array('href' => '/articles/index/2/page:1/foo:bar/sort:title/direction:asc'),
+ 'a' => array('href' => '/articles/index/2/page:1/foo:bar/sort:title/direction:asc?x=y'),
'Title',
'/a'
);
@@ -675,24 +676,91 @@ public function testPassedArgsMergingWithUrlOptions() {
$expected = array(
array('span' => array('class' => 'current')), '1', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:2/foo:bar')), '2', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:2/foo:bar?x=y')), '2', '/a', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:3/foo:bar')), '3', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:3/foo:bar?x=y')), '3', '/a', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:4/foo:bar')), '4', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:4/foo:bar?x=y')), '4', '/a', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:5/foo:bar')), '5', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:5/foo:bar?x=y')), '5', '/a', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:6/foo:bar')), '6', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:6/foo:bar?x=y')), '6', '/a', '/span',
' | ',
- array('span' => array()), array('a' => array('href' => '/articles/index/2/page:7/foo:bar')), '7', '/a', '/span',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/page:7/foo:bar?x=y')), '7', '/a', '/span',
);
$this->assertTags($result, $expected);
$result = $this->Paginator->next('Next');
$expected = array(
'span' => array('class' => 'next'),
- 'a' => array('href' => '/articles/index/2/page:2/foo:bar', 'rel' => 'next'),
+ 'a' => array('href' => '/articles/index/2/page:2/foo:bar?x=y', 'rel' => 'next'),
+ 'Next',
+ '/a',
+ '/span'
+ );
+ $this->assertTags($result, $expected);
+ }
+
+/**
+ * testPassedArgsMergingWithUrlOptionsParamTypeQuerystring method
+ *
+ * @return void
+ */
+ public function testPassedArgsMergingWithUrlOptionsParamTypeQuerystring() {
+ Router::reload();
+ Router::parse('/');
+ Router::setRequestInfo(array(
+ array('plugin' => null, 'controller' => 'articles', 'action' => 'index', 'pass' => array('2'), 'named' => array('foo' => 'bar'), 'url' => array('url' => 'articles/index/2/foo:bar')),
+ array('base' => '/', 'here' => '/articles/', 'webroot' => '/')
+ ));
+ $this->Paginator->request->params['paging'] = array(
+ 'Article' => array(
+ 'page' => 1, 'current' => 3, 'count' => 13,
+ 'prevPage' => false, 'nextPage' => true, 'pageCount' => 8,
+ 'options' => array(
+ 'page' => 1,
+ 'order' => array(),
+ 'conditions' => array()
+ ),
+ 'paramType' => 'querystring'
+ )
+ );
+
+ $this->Paginator->request->params['pass'] = array(2);
+ $this->Paginator->request->params['named'] = array('foo' => 'bar');
+ $this->Paginator->request->query = array('x' => 'y');
+ $this->Paginator->beforeRender('posts/index');
+
+ $result = $this->Paginator->sort('title');
+ $expected = array(
+ 'a' => array('href' => '/articles/index/2/foo:bar?x=y&page=1&sort=title&direction=asc'),
+ 'Title',
+ '/a'
+ );
+ $this->assertTags($result, $expected);
+
+ $result = $this->Paginator->numbers();
+ $expected = array(
+ array('span' => array('class' => 'current')), '1', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=2')), '2', '/a', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=3')), '3', '/a', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=4')), '4', '/a', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=5')), '5', '/a', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=6')), '6', '/a', '/span',
+ ' | ',
+ array('span' => array()), array('a' => array('href' => '/articles/index/2/foo:bar?x=y&page=7')), '7', '/a', '/span',
+ );
+ $this->assertTags($result, $expected);
+
+ $result = $this->Paginator->next('Next');
+ $expected = array(
+ 'span' => array('class' => 'next'),
+ 'a' => array('href' => '/articles/index/2/foo:bar?x=y&page=2', 'rel' => 'next'),
'Next',
'/a',
'/span'
View
5 lib/Cake/Utility/Set.php
@@ -319,8 +319,9 @@ public static function format($data, $format, $keys) {
}
/**
- * Implements partial support for XPath 2.0. If $path is an array or $data is empty it the call
- * is delegated to Set::classicExtract.
+ * Implements partial support for XPath 2.0. If $path does not contain a '/' the call
+ * is delegated to Set::classicExtract(). Also the $path and $data arguments are
+ * reversible.
*
* #### Currently implemented selectors:
*
View
3 lib/Cake/View/Helper/PaginatorHelper.php
@@ -109,6 +109,9 @@ public function __construct(View $View, $settings = array()) {
*/
public function beforeRender($viewFile) {
$this->options['url'] = array_merge($this->request->params['pass'], $this->request->params['named']);
+ if (!empty($this->request->query)) {
+ $this->options['url']['?'] = $this->request->query;
+ }
parent::beforeRender($viewFile);
}

0 comments on commit 7d51db9

Please sign in to comment.