diff --git a/cake/console/libs/tasks/extract.php b/cake/console/libs/tasks/extract.php index 8ce1be0689e..5dc928b049a 100644 --- a/cake/console/libs/tasks/extract.php +++ b/cake/console/libs/tasks/extract.php @@ -488,7 +488,7 @@ function __searchFiles() { foreach ($this->__paths as $path) { $Folder = new Folder($path); $files = $Folder->findRecursive('.*\.(php|ctp|thtml|inc|tpl)', true); - $this->__files += $files; + $this->__files = array_merge($this->__files, $files); } } } diff --git a/cake/tests/cases/console/libs/tasks/extract.test.php b/cake/tests/cases/console/libs/tasks/extract.test.php index 29c4f2bd886..f93a9a6a7f6 100644 --- a/cake/tests/cases/console/libs/tasks/extract.test.php +++ b/cake/tests/cases/console/libs/tasks/extract.test.php @@ -155,4 +155,33 @@ function testExecute() { $Folder = new Folder($path); $Folder->delete(); } + function getTests() { + return array('start', 'startCase', 'testExtractMultiplePaths', 'endCase', 'end'); + } + +/** + * test extract can read more than one path. + * + * @return void + */ + function testExtractMultiplePaths() { + $path = TMP . 'tests' . DS . 'extract_task_test'; + new Folder($path . DS . 'locale', true); + + $this->Task->interactive = false; + + $this->Task->params['paths'] = + TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS . 'pages,' . + TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS . 'posts'; + + $this->Task->params['output'] = $path . DS; + $this->Task->Dispatch->expectNever('stderr'); + $this->Task->Dispatch->expectNever('_stop'); + $this->Task->execute(); + + $result = file_get_contents($path . DS . 'default.pot'); + + $pattern = '/msgid "Add User"/'; + $this->assertPattern($pattern, $result); + } }