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();
 }