Browse Source

Redoing fix done in 155968349f47a67c4af764d40927e47daa5fa738
Adding more test cleanup to try and solve build issues.

mark_story 14 years ago
parent
commit
36928d35f9
2 changed files with 41 additions and 2 deletions
  1. 40 1
      lib/Cake/Test/Case/Utility/FolderTest.php
  2. 1 1
      lib/Cake/Utility/Folder.php

+ 40 - 1
lib/Cake/Test/Case/Utility/FolderTest.php

@@ -26,6 +26,45 @@ App::uses('File', 'Utility');
  */
 class FolderTest extends CakeTestCase {
 
+	protected static $_tmp = array();
+
+/**
+ * Save the directory names in TMP
+ *
+ * @return void
+ */
+	public static function setUpBeforeClass() {
+		foreach (scandir(TMP) as $file) {
+			if (is_dir(TMP . $file) && !in_array($file, array('.', '..'))) {
+				self::$_tmp[] = $file;
+			}
+		}
+	}
+
+/**
+ * setUp clearstatcache() to flush file descriptors.
+ *
+ * @return void
+ */
+	public function setUp() {
+		parent::setUp();
+		clearstatcache();
+	}
+
+/**
+ * Restore the TMP directory to its original state.
+ *
+ * @return void
+ */
+	public function tearDown() {
+		$exclude = array_merge(self::$_tmp, array('.', '..'));
+		foreach (scandir(TMP) as $file) {
+			if (is_dir(TMP . $file) && !in_array($file, $exclude)) {
+				unlink(TMP . $file);
+			}
+		}
+	}
+
 /**
  * testBasic method
  *
@@ -261,7 +300,7 @@ class FolderTest extends CakeTestCase {
 		$expected = array('0', 'cache', 'logs', 'sessions', 'tests');
 		$this->assertEqual($expected, $result[0]);
 
-		$result = $Folder->read(true, array('.', '..', 'logs', '.svn'));
+		$result = $Folder->read(true, array('logs'));
 		$expected = array('0', 'cache', 'sessions', 'tests');
 		$this->assertEqual($expected, $result[0]);
 

+ 1 - 1
lib/Cake/Utility/Folder.php

@@ -415,7 +415,7 @@ class Folder {
 			}
 			if ($item->isFile()) {
 				$files[] = $item->getPathName();
-			} else if ($item->isDir()) {
+			} else if ($item->isDir() && !in_array($name, array('.', '..'))) {
 				$directories[] = $item->getPathName();
 			}
 		}