1
// TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2018 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #include "RepositoryFixtures.h"
27 EXPECT_EQ(0, patch
.GetNumberOfFiles());
28 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
29 EXPECT_STREQ(L
"", patch
.GetRevision(0));
30 EXPECT_STREQ(L
"", patch
.GetRevision2(0));
31 EXPECT_STREQ(L
"", patch
.GetRevision(1));
32 EXPECT_STREQ(L
"", patch
.GetFilename(0));
33 EXPECT_STREQ(L
"", patch
.GetFilename2(0));
36 TEST(CPatch
, Parse_Manual
)
39 ASSERT_TRUE(GetResourcesDir(resourceDir
));
42 EXPECT_TRUE(patch
.OpenUnifiedDiffFile(resourceDir
+ L
"\\patches\\manual.patch"));
43 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
44 EXPECT_EQ(1, patch
.GetNumberOfFiles());
46 EXPECT_STREQ(L
"src\\Git\\GitPatch.cpp", patch
.GetFilename(0));
47 EXPECT_STREQ(L
"src\\Git\\GitPatch.cpp", patch
.GetFilename2(0));
48 EXPECT_STREQ(L
"some path\\prefix\\src\\Git\\GitPatch.cpp", patch
.GetFullPath(L
"some path\\prefix", 0, 0));
49 EXPECT_STREQ(L
"some path\\prefix\\src\\Git\\GitPatch.cpp", patch
.GetFullPath(L
"some path\\prefix\\", 0, 0));
50 EXPECT_STREQ(L
"some path\\prefix\\src\\Git\\GitPatch.cpp", patch
.GetFullPath(L
"some path\\prefix", 0, 1));
51 EXPECT_STREQ(L
"some path\\prefix\\src\\Git\\GitPatch.cpp", patch
.GetFullPath(L
"some path\\prefix\\", 0, 1));
52 EXPECT_STREQ(L
"", patch
.GetRevision(0));
53 EXPECT_STREQ(L
"", patch
.GetRevision2(0));
56 TEST(CPatch
, Parse_OldGitDiffPatch
)
59 ASSERT_TRUE(GetResourcesDir(resourceDir
));
62 EXPECT_TRUE(patch
.OpenUnifiedDiffFile(resourceDir
+ L
"\\patches\\old-git-diff.patch"));
63 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
64 EXPECT_EQ(4, patch
.GetNumberOfFiles());
66 EXPECT_STREQ(L
"doc\\doc.build", patch
.GetFilename(0));
67 EXPECT_STREQ(L
"doc\\doc.build", patch
.GetFilename2(0));
68 EXPECT_STREQ(L
"36d19f2", patch
.GetRevision(0));
69 EXPECT_STREQ(L
"365406a", patch
.GetRevision2(0));
71 EXPECT_STREQ(L
"doc\\doc.build.include", patch
.GetFilename(1));
72 EXPECT_STREQ(L
"doc\\doc.build.include", patch
.GetFilename2(1));
73 EXPECT_STREQ(L
"69bd153", patch
.GetRevision(1));
74 EXPECT_STREQ(L
"ca2f366", patch
.GetRevision2(1));
76 EXPECT_STREQ(L
"doc\\source\\styles_chm.css", patch
.GetFilename(2));
77 EXPECT_STREQ(L
"doc\\source\\styles_chm.css", patch
.GetFilename2(2));
78 EXPECT_STREQ(L
"607887c", patch
.GetRevision(2));
79 EXPECT_STREQ(L
"f87bca1", patch
.GetRevision2(2));
81 EXPECT_STREQ(L
"doc\\source\\styles_html.css", patch
.GetFilename(3));
82 EXPECT_STREQ(L
"doc\\source\\styles_html.css", patch
.GetFilename2(3));
83 EXPECT_STREQ(L
"b2127f7", patch
.GetRevision(3));
84 EXPECT_STREQ(L
"d41e7c3", patch
.GetRevision2(3));
87 TEST(CPatch
, Parse_GitDiffPatch
)
90 ASSERT_TRUE(GetResourcesDir(resourceDir
));
93 EXPECT_TRUE(patch
.OpenUnifiedDiffFile(resourceDir
+ L
"\\patches\\git-diff.patch"));
94 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
95 EXPECT_EQ(6, patch
.GetNumberOfFiles());
97 EXPECT_STREQ(L
"appveyor.yml", patch
.GetFilename(0));
98 EXPECT_STREQ(L
"NUL", patch
.GetFilename2(0));
99 EXPECT_STREQ(L
"e6b688767", patch
.GetRevision(0));
100 EXPECT_STREQ(L
"", patch
.GetRevision2(0));
102 EXPECT_STREQ(L
"src\\Git\\GitPatch.cpp", patch
.GetFilename(1));
103 EXPECT_STREQ(L
"src\\Git\\GitPatch.cpp", patch
.GetFilename2(1));
104 EXPECT_STREQ(L
"c85b034cd", patch
.GetRevision(1));
105 EXPECT_STREQ(L
"9f99b1cc4", patch
.GetRevision2(1));
107 EXPECT_STREQ(L
"NUL", patch
.GetFilename(5));
108 EXPECT_STREQ(L
"wusel dusel.txt", patch
.GetFilename2(5));
109 EXPECT_STREQ(L
"NUL", patch
.GetFullPath(L
"some path\\prefix", 5, 0));
110 EXPECT_STREQ(L
"some path\\prefix\\wusel dusel.txt", patch
.GetFullPath(L
"some path\\prefix", 5, 1));
111 EXPECT_STREQ(L
"some path\\prefix\\wusel dusel.txt", patch
.GetFullPath(L
"some path\\prefix\\", 5, 1));
112 EXPECT_STREQ(L
"000000000", patch
.GetRevision(5));
113 EXPECT_STREQ(L
"", patch
.GetRevision2(5));
116 TEST(CPatch
, Parse_GitFormatPatchNoPrefix
)
119 ASSERT_TRUE(GetResourcesDir(resourceDir
));
122 EXPECT_TRUE(patch
.OpenUnifiedDiffFile(resourceDir
+ L
"\\patches\\git-format-patch-no-prefix.patch"));
123 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
124 EXPECT_EQ(1, patch
.GetNumberOfFiles());
126 EXPECT_STREQ(L
"src\\TortoiseProc\\AppUtils.cpp", patch
.GetFilename(0));
127 EXPECT_STREQ(L
"fe40643e9", patch
.GetRevision(0));
128 EXPECT_STREQ(L
"f74cfec7e", patch
.GetRevision2(0));
131 TEST(CPatch
, Parse_SVNDiffPatch
)
134 ASSERT_TRUE(GetResourcesDir(resourceDir
));
137 EXPECT_TRUE(patch
.OpenUnifiedDiffFile(resourceDir
+ L
"\\patches\\SVN-diff.patch"));
138 EXPECT_STREQ(L
"", patch
.GetErrorMessage());
139 EXPECT_EQ(2, patch
.GetNumberOfFiles());
141 EXPECT_STREQ(L
"new file.txt", patch
.GetFilename(0));
142 EXPECT_STREQ(L
"", patch
.GetRevision(0));
143 EXPECT_STREQ(L
"", patch
.GetRevision2(0));
145 EXPECT_STREQ(L
"Utils\\StringUtils.cpp", patch
.GetFilename(1));
146 EXPECT_STREQ(L
"", patch
.GetRevision(1));
147 EXPECT_STREQ(L
"", patch
.GetRevision2(1));