public function testCopyDirectory_コピー先のファイルが元々存在する場合_上書きされる() { /** * tests/tmp/src * /dir10 * /dir20/dir21 * /file22.txt */ mkdir(self::$TMP_DIR . "/src", 0700, true); mkdir(self::$TMP_DIR . "/src/dir10", 0700, true); mkdir(self::$TMP_DIR . "/src/dir20", 0700, true); mkdir(self::$TMP_DIR . "/src/dir20/dir21", 0700, true); $fp = fopen(self::$TMP_DIR . "/src/dir20/file22.txt", "w"); fwrite($fp, "ec-cube test"); fclose($fp); mkdir(self::$TMP_DIR . "/dst"); mkdir(self::$TMP_DIR . "/dst/dir20"); $fp_dist = fopen(self::$TMP_DIR . "/dst/dir20/file22.txt", "w"); fwrite($fp_dist, "hello"); fclose($fp_dist); SC_Utils::copyDirectory(self::$TMP_DIR . "/src/", self::$TMP_DIR . "/dst/"); $this->expected = array("dir10", "dir20", "dir21", "file22.txt", "ec-cube test"); $this->actual = array(); Test_Utils::array_append($this->actual, Test_Utils::mapCols(SC_Helper_FileManager::sfGetFileList(self::$TMP_DIR . "/dst"), "file_name")); Test_Utils::array_append($this->actual, Test_Utils::mapCols(SC_Helper_FileManager::sfGetFileList(self::$TMP_DIR . "/dst/dir20"), "file_name")); $fp_final = fopen(self::$TMP_DIR . "/dst/dir20/file22.txt", "r"); $read_result = fread($fp_final, 100); fclose($fp_final); $this->actual[] = $read_result; $this->verify('コピー先のファイル一覧'); }
public function testSfCopyDir_上書きフラグがONかつ書き込み権限がない場合_同名ファイルが上書きされない() { mkdir(self::$TMP_DIR . "/src", 0777, true); mkdir(self::$TMP_DIR . "/dst", 0777, true); // コピー先も作成しておく $fp = fopen(self::$TMP_DIR . "/src/test.txt", "w"); fwrite($fp, "hello"); fclose($fp); // 上書きされないファイル $test_file = self::$TMP_DIR . "/dst/test.txt"; $fp = fopen($test_file, "w"); fwrite($fp, "good morning"); fclose($fp); chmod($test_file, 0444); // いったん読取専用にする $src = self::$TMP_DIR . "/src/"; $dst = self::$TMP_DIR . "/dst/"; $this->expected = array('dir_exists' => TRUE, 'files' => array('test.txt'), 'file_content' => 'good morning'); SC_Utils::sfCopyDir($src, $dst, '', TRUE); $this->actual['dir_exists'] = is_dir($dst); $this->actual['files'] = Test_Utils::mapCols(SC_Helper_FileManager::sfGetFileList($dst), 'file_name'); $fp = fopen($test_file, "r"); $this->actual['file_content'] = fread($fp, 100); chmod($test_file, 0777); // verifyする前にパーミッションを戻す $this->verify(); }