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

Side by Side Diff: Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.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) Research in Motion Limited 2010. All Rights Reserved.
4 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
5 # Copyright (C) 2012 Daniel Bates (dbates@intudata.com)
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions are
9 # met:
10 #
11 # * Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above
14 # copyright notice, this list of conditions and the following disclaimer
15 # in the documentation and/or other materials provided with the
16 # distribution.
17 # * Neither the name of Apple Computer, Inc. ("Apple") nor the names of
18 # its contributors may be used to endorse or promote products derived
19 # from this software without specific prior written permission.
20 #
21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
33 # Unit tests of parseSvnPropertyValue().
34
35 use strict;
36 use warnings;
37
38 use Test::More;
39 use VCSUtils;
40
41 my @testCaseHashRefs = (
42 {
43 # New test
44 diffName => "singe-line '+' change",
45 inputText => <<'END',
46 + *
47 END
48 expectedReturn => ["*", undef],
49 expectedNextLine => undef,
50 },
51 {
52 # New test
53 diffName => "single-line '-' change",
54 inputText => <<'END',
55 - *
56 END
57 expectedReturn => ["*", undef],
58 expectedNextLine => undef,
59 },
60 {
61 # New test
62 diffName => "'Merged' change",
63 inputText => <<'END',
64 Merged /trunk/Makefile:r33020
65 END
66 expectedReturn => ["/trunk/Makefile:r33020", undef],
67 expectedNextLine => undef,
68 },
69 {
70 # New test
71 diffName => "'Reverse-merged' change",
72 inputText => <<'END',
73 Reverse-merged /trunk/Makefile:r33020
74 END
75 expectedReturn => ["/trunk/Makefile:r33020", undef],
76 expectedNextLine => undef,
77 },
78 {
79 # New test
80 diffName => "single-line '-' change followed by empty line with Unix line en dings",
81 inputText => <<'END',
82 - *
83
84 END
85 expectedReturn => ["*", "\n"],
86 expectedNextLine => undef,
87 },
88 {
89 # New test
90 diffName => "single-line '-' change followed by empty line with Windows line endings",
91 inputText => toWindowsLineEndings(<<'END',
92 - *
93
94 END
95 ),
96 expectedReturn => ["*", "\r\n"],
97 expectedNextLine => undef,
98 },
99 {
100 # New test
101 diffName => "single-line '-' change followed by the next property",
102 inputText => <<'END',
103 - *
104 Deleted: svn:executable
105 END
106 expectedReturn => ["*", "Deleted: svn:executable\n"],
107 expectedNextLine => undef,
108 },
109 {
110 # New test
111 diffName => "multi-line '+' change and start of binary patch",
112 inputText => <<'END',
113 + A
114 long sentence that spans
115 multiple lines.
116
117 Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==
118 END
119 expectedReturn => ["A\nlong sentence that spans\nmultiple lines.", "\n"],
120 expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\n" ,
121 },
122 {
123 # New test
124 diffName => "multi-line '+' change and start of binary patch with Windows li ne endings",
125 inputText => toWindowsLineEndings(<<'END',
126 + A
127 long sentence that spans
128 multiple lines.
129
130 Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==
131 END
132 ),
133 expectedReturn => ["A\r\nlong sentence that spans\r\nmultiple lines.", "\r\n "],
134 expectedNextLine => "Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA==\r\ n",
135 },
136 {
137 # New test
138 diffName => "multi-line '-' change followed by '+' single-line change",
139 inputText => <<'END',
140 - A
141 long sentence that spans
142 multiple lines.
143 + A single-line.
144 END
145 expectedReturn => ["A\nlong sentence that spans\nmultiple lines.", " + A s ingle-line.\n"],
146 expectedNextLine => undef,
147 },
148 {
149 # New test
150 diffName => "multi-line '-' change followed by the next property",
151 inputText => <<'END',
152 - A
153 long sentence that spans
154 multiple lines.
155 Added: svn:executable
156 END
157 expectedReturn => ["A\nlong sentence that spans\nmultiple lines.", "Added: s vn:executable\n"],
158 expectedNextLine => undef,
159 },
160 {
161 # New test
162 diffName => "multi-line '-' change followed by '+' multi-line change",
163 inputText => <<'END',
164 - A
165 long sentence that spans
166 multiple lines.
167 + Another
168 long sentence that spans
169 multiple lines.
170 END
171 expectedReturn => ["A\nlong sentence that spans\nmultiple lines.", " + Ano ther\n"],
172 expectedNextLine => "long sentence that spans\n",
173 },
174 {
175 # New test
176 diffName => "'Reverse-merged' change followed by 'Merge' change",
177 inputText => <<'END',
178 Reverse-merged /trunk/Makefile:r33020
179 Merged /trunk/Makefile:r41697
180 END
181 expectedReturn => ["/trunk/Makefile:r33020", " Merged /trunk/Makefile:r416 97\n"],
182 expectedNextLine => undef,
183 },
184 {
185 # New test
186 diffName => "'Merged' change followed by 'Merge' change",
187 inputText => <<'END',
188 Merged /trunk/Makefile:r33020
189 Merged /trunk/Makefile.shared:r58350
190 END
191 expectedReturn => ["/trunk/Makefile:r33020", " Merged /trunk/Makefile.shar ed:r58350\n"],
192 expectedNextLine => undef,
193 },
194 {
195 # New test
196 diffName => "'Reverse-merged' change followed by 'Reverse-merged' change",
197 inputText => <<'END',
198 Reverse-merged /trunk/Makefile:r33020
199 Reverse-merged /trunk/Makefile.shared:r58350
200 END
201 expectedReturn => ["/trunk/Makefile:r33020", " Reverse-merged /trunk/Makef ile.shared:r58350\n"],
202 expectedNextLine => undef,
203 },
204 {
205 # New test
206 diffName => "'Reverse-merged' change followed by 'Reverse-merged' change fol lowed by 'Merged' change",
207 inputText => <<'END',
208 Reverse-merged /trunk/Makefile:r33020
209 Reverse-merged /trunk/Makefile.shared:r58350
210 Merged /trunk/ChangeLog:r64190
211 END
212 expectedReturn => ["/trunk/Makefile:r33020", " Reverse-merged /trunk/Makef ile.shared:r58350\n"],
213 expectedNextLine => " Merged /trunk/ChangeLog:r64190\n",
214 },
215 ##
216 # Using SVN 1.7 syntax
217 ##
218 {
219 # New test
220 diffName => "singe-line '+' change using SVN 1.7 syntax",
221 inputText => <<'END',
222 +*
223 \ No newline at end of property
224 END
225 expectedReturn => ["*", "\\ No newline at end of property\n"],
226 expectedNextLine => undef,
227 },
228 {
229 # New test
230 diffName => "single-line '-' change using SVN 1.7 syntax",
231 inputText => <<'END',
232 -*
233 \ No newline at end of property
234 END
235 expectedReturn => ["*", "\\ No newline at end of property\n"],
236 expectedNextLine => undef,
237 },
238 );
239
240 my $testCasesCount = @testCaseHashRefs;
241 plan(tests => 2 * $testCasesCount); # Total number of assertions.
242
243 foreach my $testCase (@testCaseHashRefs) {
244 my $testNameStart = "parseSvnPropertyValue(): $testCase->{diffName}: compari ng";
245
246 my $fileHandle;
247 open($fileHandle, "<", \$testCase->{inputText});
248 my $line = <$fileHandle>;
249
250 my @got = VCSUtils::parseSvnPropertyValue($fileHandle, $line);
251 my $expectedReturn = $testCase->{expectedReturn};
252
253 is_deeply(\@got, $expectedReturn, "$testNameStart return value.");
254
255 my $gotNextLine = <$fileHandle>;
256 is($gotNextLine, $testCase->{expectedNextLine}, "$testNameStart next read l ine.");
257 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698