From 6c860bf8506f7068bbfc876cd9239a3c91d0e932 Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 21 Jan 2014 14:02:40 -0800 Subject: [PATCH] Add even more Subversion unit tests Summary: Ref T4327. Adds additional tests: - Property changes on the root directory (which has special handling). - Copying a file from a previous revision (this is `svn cp svn://server.com/root/some_file@123 some_file`). - "Multicopying" a file: this is where a file is copied to several places and moved in the same commit. Test Plan: Ran unit tests. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4327 Differential Revision: https://secure.phabricator.com/D8018 --- .../engine/__tests__/data/CHC.svn.tgz | Bin 11360 -> 12028 bytes .../PhabricatorChangeParserTestCase.php | 92 ++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/src/applications/repository/engine/__tests__/data/CHC.svn.tgz b/src/applications/repository/engine/__tests__/data/CHC.svn.tgz index dbd99c1f1b4f4eea597bd0412537cc4d066b5c0e..e12a64c97f9fd9eb5ed80149f296ebb3d18bbf3b 100644 GIT binary patch delta 11879 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

;$81sT{o`$ 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 diff --git a/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php b/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php index 170cda5df6..616de159d4 100644 --- a/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php +++ b/src/applications/repository/worker/__tests__/PhabricatorChangeParserTestCase.php @@ -406,6 +406,98 @@ final class PhabricatorChangeParserTestCase $repository, $commits, array( + '15' => array( + array( + '/', + null, + null, + DifferentialChangeType::TYPE_CHILD, + DifferentialChangeType::FILE_DIRECTORY, + 0, + 15, + ), + array( + '/file_copy', + null, + null, + DifferentialChangeType::TYPE_MULTICOPY, + DifferentialChangeType::FILE_NORMAL, + 1, + 15, + ), + array( + '/file_copy_x', + '/file_copy', + '12', + DifferentialChangeType::TYPE_MOVE_HERE, + DifferentialChangeType::FILE_NORMAL, + 1, + 15, + ), + array( + '/file_copy_y', + '/file_copy', + '12', + DifferentialChangeType::TYPE_MOVE_HERE, + DifferentialChangeType::FILE_NORMAL, + 1, + 15, + ), + array( + '/file_copy_z', + '/file_copy', + '12', + DifferentialChangeType::TYPE_MOVE_HERE, + DifferentialChangeType::FILE_NORMAL, + 1, + 15, + ), + ), + + // Add a file from a different revision + '14' => array( + array( + '/', + null, + null, + DifferentialChangeType::TYPE_CHILD, + DifferentialChangeType::FILE_DIRECTORY, + 0, + 14, + ), + array( + '/file', + null, + null, + DifferentialChangeType::TYPE_COPY_AWAY, + DifferentialChangeType::FILE_NORMAL, + 0, + 14, + ), + array( + '/file_1', + '/file', + '1', + DifferentialChangeType::TYPE_COPY_HERE, + DifferentialChangeType::FILE_NORMAL, + 1, + 14, + ), + ), + + // Property change on "/" + '13' => array( + array( + '/', + null, + null, + DifferentialChangeType::TYPE_CHANGE, + DifferentialChangeType::FILE_DIRECTORY, + 1, + 13, + ), + ), + // Copy a directory, removing and adding files to the copy '12' => array( array( -- 2.51.2