From a5fb2cf8a73ca5f6095a4b271751ac1488f1f0fe Mon Sep 17 00:00:00 2001 From: mark_story Date: Tue, 8 Feb 2011 21:53:12 -0500 Subject: [PATCH] Fixing issue where fixtures without field definitions would drop tables, even though they had no way to re-create them. Fixes #1519 --- cake/tests/cases/libs/cake_test_fixture.test.php | 4 ++++ cake/tests/lib/cake_test_fixture.php | 3 +++ 2 files changed, 7 insertions(+) diff --git a/cake/tests/cases/libs/cake_test_fixture.test.php b/cake/tests/cases/libs/cake_test_fixture.test.php index a64d4e3e6f2..6e6667dde8a 100644 --- a/cake/tests/cases/libs/cake_test_fixture.test.php +++ b/cake/tests/cases/libs/cake_test_fixture.test.php @@ -391,6 +391,10 @@ function testDrop() { $this->criticDb->setReturnValueAt(1, 'execute', false); $return = $Fixture->drop($this->criticDb); $this->assertFalse($return); + + unset($Fixture->fields); + $return = $Fixture->drop($this->criticDb); + $this->assertFalse($return); } /** diff --git a/cake/tests/lib/cake_test_fixture.php b/cake/tests/lib/cake_test_fixture.php index 00daa38ef80..91264d8915f 100644 --- a/cake/tests/lib/cake_test_fixture.php +++ b/cake/tests/lib/cake_test_fixture.php @@ -153,6 +153,9 @@ function create(&$db) { * @access public */ function drop(&$db) { + if (empty($this->fields)) { + return false; + } $this->Schema->_build(array($this->table => $this->fields)); return ( $db->execute($db->dropSchema($this->Schema), array('log' => false)) !== false