Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl

Issue 1253013003: Remove all perl scripts from Tools/Scripts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove the python code to invoke Perl \o/ Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/perl -w
2 #
3 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
4 # Copyright (C) 2012 Daniel Bates (dbates@intudata.com)
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are
8 # met:
9 #
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following disclaimer
14 # in the documentation and/or other materials provided with the
15 # distribution.
16 # * Neither the name of Apple Computer, Inc. ("Apple") nor the names of
17 # its contributors may be used to endorse or promote products derived
18 # from this software without specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32 # Unit tests of parseSvnDiffHeader().
33
34 use strict;
35 use warnings;
36
37 use Test::More;
38 use VCSUtils;
39
40 # The array of test cases.
41 my @testCaseHashRefs = (
42 {
43 # New test
44 diffName => "simple diff",
45 inputText => <<'END',
46 Index: WebKitTools/Scripts/VCSUtils.pm
47 ===================================================================
48 --- WebKitTools/Scripts/VCSUtils.pm (revision 53004)
49 +++ WebKitTools/Scripts/VCSUtils.pm (working copy)
50 @@ -32,6 +32,7 @@ use strict;
51 use warnings;
52 END
53 expectedReturn => [
54 {
55 svnConvertedText => <<'END',
56 Index: WebKitTools/Scripts/VCSUtils.pm
57 ===================================================================
58 --- WebKitTools/Scripts/VCSUtils.pm (revision 53004)
59 +++ WebKitTools/Scripts/VCSUtils.pm (working copy)
60 END
61 indexPath => "WebKitTools/Scripts/VCSUtils.pm",
62 sourceRevision => "53004",
63 },
64 "@@ -32,6 +32,7 @@ use strict;\n"],
65 expectedNextLine => " use warnings;\n",
66 },
67 {
68 # New test
69 diffName => "new file",
70 inputText => <<'END',
71 Index: WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl
72 ===================================================================
73 --- WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl (revisio n 0)
74 +++ WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl (revisio n 0)
75 @@ -0,0 +1,262 @@
76 +#!/usr/bin/perl -w
77 END
78 expectedReturn => [
79 {
80 svnConvertedText => <<'END',
81 Index: WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl
82 ===================================================================
83 --- WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl (revisio n 0)
84 +++ WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl (revisio n 0)
85 END
86 indexPath => "WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHead er.pl",
87 isNew => 1,
88 },
89 "@@ -0,0 +1,262 @@\n"],
90 expectedNextLine => "+#!/usr/bin/perl -w\n",
91 },
92 {
93 # New test
94 diffName => "new file with spaces in its name",
95 inputText => <<'END',
96 Index: WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess). xcscheme
97 ===================================================================
98 --- WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcs cheme (revision 0)
99 +++ WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcs cheme (revision 0)
100 @@ -0,0 +1,8 @@
101 +<?xml version="1.0" encoding="UTF-8"?>
102 END
103 expectedReturn => [
104 {
105 svnConvertedText => <<'END',
106 Index: WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess). xcscheme
107 ===================================================================
108 --- WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcs cheme (revision 0)
109 +++ WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcs cheme (revision 0)
110 END
111 indexPath => "WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target W ebProcess).xcscheme",
112 isNew => 1,
113 },
114 "@@ -0,0 +1,8 @@\n"],
115 expectedNextLine => "+<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
116 },
117 {
118 # New test
119 diffName => "copied file",
120 inputText => <<'END',
121 Index: index_path.py
122 ===================================================================
123 --- index_path.py (revision 53048) (from copied_from_path.py:53048)
124 +++ index_path.py (working copy)
125 @@ -0,0 +1,7 @@
126 +# Python file...
127 END
128 expectedReturn => [
129 {
130 svnConvertedText => <<'END',
131 Index: index_path.py
132 ===================================================================
133 --- index_path.py (revision 53048) (from copied_from_path.py:53048)
134 +++ index_path.py (working copy)
135 END
136 copiedFromPath => "copied_from_path.py",
137 indexPath => "index_path.py",
138 sourceRevision => 53048,
139 },
140 "@@ -0,0 +1,7 @@\n"],
141 expectedNextLine => "+# Python file...\n",
142 },
143 {
144 # New test
145 diffName => "contains \\r\\n lines",
146 inputText => <<END, # No single quotes to allow interpolation of "\r"
147 Index: index_path.py\r
148 ===================================================================\r
149 --- index_path.py (revision 53048)\r
150 +++ index_path.py (working copy)\r
151 @@ -0,0 +1,7 @@\r
152 +# Python file...\r
153 END
154 expectedReturn => [
155 {
156 svnConvertedText => <<END, # No single quotes to allow interpolation of "\r"
157 Index: index_path.py\r
158 ===================================================================\r
159 --- index_path.py (revision 53048)\r
160 +++ index_path.py (working copy)\r
161 END
162 indexPath => "index_path.py",
163 sourceRevision => 53048,
164 },
165 "@@ -0,0 +1,7 @@\r\n"],
166 expectedNextLine => "+# Python file...\r\n",
167 },
168 {
169 # New test
170 diffName => "contains path corrections",
171 inputText => <<'END',
172 Index: index_path.py
173 ===================================================================
174 --- bad_path (revision 53048) (from copied_from_path.py:53048)
175 +++ bad_path (working copy)
176 @@ -0,0 +1,7 @@
177 +# Python file...
178 END
179 expectedReturn => [
180 {
181 svnConvertedText => <<'END',
182 Index: index_path.py
183 ===================================================================
184 --- index_path.py (revision 53048) (from copied_from_path.py:53048)
185 +++ index_path.py (working copy)
186 END
187 copiedFromPath => "copied_from_path.py",
188 indexPath => "index_path.py",
189 sourceRevision => 53048,
190 },
191 "@@ -0,0 +1,7 @@\n"],
192 expectedNextLine => "+# Python file...\n",
193 },
194 ####
195 # Binary test cases
196 ##
197 {
198 # New test
199 diffName => "binary file",
200 inputText => <<'END',
201 Index: test_file.swf
202 ===================================================================
203 Cannot display: file marked as a binary type.
204 svn:mime-type = application/octet-stream
205
206 Property changes on: test_file.swf
207 ___________________________________________________________________
208 Name: svn:mime-type
209 + application/octet-stream
210
211
212 Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==
213 END
214 expectedReturn => [
215 {
216 svnConvertedText => <<'END',
217 Index: test_file.swf
218 ===================================================================
219 Cannot display: file marked as a binary type.
220 svn:mime-type = application/octet-stream
221
222 END
223 indexPath => "test_file.swf",
224 isBinary => 1,
225 },
226 "Property changes on: test_file.swf\n"],
227 expectedNextLine => "_______________________________________________________ ____________\n",
228 },
229 {
230 # New test
231 diffName => "binary file using SVN 1.7 syntax",
232 inputText => <<'END',
233 Index: test_file.swf
234 ===================================================================
235 Cannot display: file marked as a binary type.
236 svn:mime-type = application/octet-stream
237 Index: test_file.swf
238 ===================================================================
239 --- test_file.swf
240 +++ test_file.swf
241
242 Property changes on: test_file.swf
243 ___________________________________________________________________
244 Added: svn:mime-type
245 ## -0,0 +1 ##
246 +application/octet-stream
247 \ No newline at end of property
248
249 Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==
250 END
251 expectedReturn => [
252 {
253 svnConvertedText => <<'END',
254 Index: test_file.swf
255 ===================================================================
256 Cannot display: file marked as a binary type.
257 svn:mime-type = application/octet-stream
258 Index: test_file.swf
259 ===================================================================
260 --- test_file.swf
261 +++ test_file.swf
262 END
263 indexPath => "test_file.swf",
264 isBinary => 1,
265 },
266 "\n"],
267 expectedNextLine => "Property changes on: test_file.swf\n",
268 },
269 );
270
271 my $testCasesCount = @testCaseHashRefs;
272 plan(tests => 2 * $testCasesCount); # Total number of assertions.
273
274 foreach my $testCase (@testCaseHashRefs) {
275 my $testNameStart = "parseSvnDiffHeader(): $testCase->{diffName}: comparing" ;
276
277 my $fileHandle;
278 open($fileHandle, "<", \$testCase->{inputText});
279 my $line = <$fileHandle>;
280
281 my @got = VCSUtils::parseSvnDiffHeader($fileHandle, $line);
282 my $expectedReturn = $testCase->{expectedReturn};
283
284 is_deeply(\@got, $expectedReturn, "$testNameStart return value.");
285
286 my $gotNextLine = <$fileHandle>;
287 is($gotNextLine, $testCase->{expectedNextLine}, "$testNameStart next read l ine.");
288 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698