Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Adding proper -plugin parameter handling

Fixtures can now be baked into plugins.
Adding test cases.
  • Loading branch information...
commit 84a496083fc324071014c282b1e2010642ced00b 1 parent d312cd3
@markstory markstory authored
View
9 cake/console/libs/tasks/fixture.php
@@ -61,7 +61,8 @@ class FixtureTask extends Shell {
*
* @access public
*/
- function initialize() {
+ function __construct(&$dispatch) {
+ parent::__construct($dispatch);
$this->path = $this->params['working'] . DS . 'tests' . DS . 'fixtures' . DS;
if (!class_exists('CakeSchema')) {
App::import('Model', 'Schema');
@@ -210,12 +211,10 @@ function bake($model, $useTable = false, $importOptions = array()) {
function generateFixtureFile($model, $otherVars) {
$defaults = array('table' => null, 'schema' => null, 'records' => null, 'import' => null, 'fields' => null);
$vars = array_merge($defaults, $otherVars);
-
- //@todo fix plugin pathing.
+
$path = $this->path;
if (isset($this->plugin)) {
- $pluginPath = 'plugins' . DS . Inflector::underscore($this->plugin) . DS;
- $path = APP . $pluginPath . 'tests' . DS . 'fixtures' . DS;
+ $path = $this->_pluginPath($this->plugin) . 'tests' . DS . 'fixtures' . DS;
}
$filename = Inflector::underscore($model) . '_fixture.php';
View
22 cake/tests/cases/console/libs/tasks/fixture.test.php
@@ -92,12 +92,12 @@ function endTest() {
*
* @return void
**/
- function testInitialize() {
- $this->Task->params['working'] = '/my/path';
- $this->Task->initialize();
+ function testConstruct() {
+ $this->Dispatch->params['working'] = '/my/path';
+ $Task =& new FixtureTask($this->Dispatch);
$expected = '/my/path/tests/fixtures/';
- $this->assertEqual($this->Task->path, $expected);
+ $this->assertEqual($Task->path, $expected);
}
/**
* test import option array generation
@@ -219,5 +219,19 @@ function testGenerateFixtureFile() {
$this->Task->expectAt(1, 'createFile', array($filename, new PatternExpectation('/\<\?php(.*)\?\>/ms')));
$result = $this->Task->generateFixtureFile('Article', array());
}
+/**
+ * test generating files into plugins.
+ *
+ * @return void
+ **/
+ function testGeneratePluginFixtureFile() {
+ $this->Task->connection = 'test_suite';
+ $this->Task->path = '/my/path/';
+ $this->Task->plugin = 'TestFixture';
+ $filename = APP . 'plugins' . DS . 'test_fixture' . DS . 'tests' . DS . 'fixtures' . DS . 'article_fixture.php';
+
+ $this->Task->expectAt(0, 'createFile', array($filename, new PatternExpectation('/Article/')));
+ $result = $this->Task->generateFixtureFile('Article', array());
+ }
}
?>
Please sign in to comment.
Something went wrong with that request. Please try again.