9
9
"encoding/json"
10
10
"fmt"
11
11
"html/template"
12
+ "strconv"
12
13
"strings"
13
14
"testing"
14
15
@@ -153,11 +154,11 @@ func TestParsePatch_singlefile(t *testing.T) {
153
154
name : "really weird filename" ,
154
155
gitdiff : `diff --git "\\a/a b/file b/a a/file" "\\b/a b/file b/a a/file"
155
156
index d2186f1..f5c8ed2 100644
156
- --- "\\a/a b/file b/a a/file"
157
- +++ "\\b/a b/file b/a a/file"
157
+ --- "\\a/a b/file b/a a/file" ` + `
158
+ +++ "\\b/a b/file b/a a/file" ` + `
158
159
@@ -1,3 +1,2 @@
159
160
Create a weird file.
160
-
161
+ ` + `
161
162
-and what does diff do here?
162
163
\ No newline at end of file` ,
163
164
addition : 0 ,
@@ -170,7 +171,7 @@ index d2186f1..f5c8ed2 100644
170
171
gitdiff : `diff --git "\\a/file with blanks" "\\b/file with blanks"
171
172
deleted file mode 100644
172
173
index 898651a..0000000
173
- --- "\\a/file with blanks"
174
+ --- "\\a/file with blanks" ` + `
174
175
+++ /dev/null
175
176
@@ -1,5 +0,0 @@
176
177
-a blank file
@@ -263,7 +264,83 @@ index 6961180..9ba1a00 100644
263
264
})
264
265
}
265
266
266
- var diff = `diff --git "a/README.md" "b/README.md"
267
+ // Test max lines
268
+ diffBuilder := & strings.Builder {}
269
+
270
+ var diff = `diff --git a/newfile2 b/newfile2
271
+ new file mode 100644
272
+ index 0000000..6bb8f39
273
+ --- /dev/null
274
+ +++ b/newfile2
275
+ @@ -0,0 +1,35 @@
276
+ `
277
+ diffBuilder .WriteString (diff )
278
+
279
+ for i := 0 ; i < 35 ; i ++ {
280
+ diffBuilder .WriteString ("+line" + strconv .Itoa (i ) + "\n " )
281
+ }
282
+ diff = diffBuilder .String ()
283
+ result , err := ParsePatch (20 , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
284
+ if err != nil {
285
+ t .Errorf ("There should not be an error: %v" , err )
286
+ }
287
+ if ! result .Files [0 ].IsIncomplete {
288
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
289
+ }
290
+ result , err = ParsePatch (40 , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
291
+ if err != nil {
292
+ t .Errorf ("There should not be an error: %v" , err )
293
+ }
294
+ if result .Files [0 ].IsIncomplete {
295
+ t .Errorf ("Files should not be incomplete! %v" , result .Files [0 ])
296
+ }
297
+ result , err = ParsePatch (40 , 5 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
298
+ if err != nil {
299
+ t .Errorf ("There should not be an error: %v" , err )
300
+ }
301
+ if ! result .Files [0 ].IsIncomplete {
302
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
303
+ }
304
+
305
+ // Test max characters
306
+ diff = `diff --git a/newfile2 b/newfile2
307
+ new file mode 100644
308
+ index 0000000..6bb8f39
309
+ --- /dev/null
310
+ +++ b/newfile2
311
+ @@ -0,0 +1,35 @@
312
+ `
313
+ diffBuilder .Reset ()
314
+ diffBuilder .WriteString (diff )
315
+
316
+ for i := 0 ; i < 33 ; i ++ {
317
+ diffBuilder .WriteString ("+line" + strconv .Itoa (i ) + "\n " )
318
+ }
319
+ diffBuilder .WriteString ("+line33" )
320
+ for i := 0 ; i < 512 ; i ++ {
321
+ diffBuilder .WriteString ("0123456789ABCDEF" )
322
+ }
323
+ diffBuilder .WriteByte ('\n' )
324
+ diffBuilder .WriteString ("+line" + strconv .Itoa (34 ) + "\n " )
325
+ diffBuilder .WriteString ("+line" + strconv .Itoa (35 ) + "\n " )
326
+ diff = diffBuilder .String ()
327
+
328
+ result , err = ParsePatch (20 , 4096 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
329
+ if err != nil {
330
+ t .Errorf ("There should not be an error: %v" , err )
331
+ }
332
+ if ! result .Files [0 ].IsIncomplete {
333
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
334
+ }
335
+ result , err = ParsePatch (40 , 4096 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
336
+ if err != nil {
337
+ t .Errorf ("There should not be an error: %v" , err )
338
+ }
339
+ if ! result .Files [0 ].IsIncomplete {
340
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
341
+ }
342
+
343
+ diff = `diff --git "a/README.md" "b/README.md"
267
344
--- a/README.md
268
345
+++ b/README.md
269
346
@@ -1,3 +1,6 @@
@@ -274,7 +351,7 @@ index 6961180..9ba1a00 100644
274
351
Docker Pulls
275
352
+ cut off
276
353
+ cut off`
277
- result , err : = ParsePatch (setting .Git .MaxGitDiffLines , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
354
+ result , err = ParsePatch (setting .Git .MaxGitDiffLines , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
278
355
if err != nil {
279
356
t .Errorf ("ParsePatch failed: %s" , err )
280
357
}
0 commit comments