9
9
"encoding/json"
10
10
"fmt"
11
11
"html/template"
12
+ "strconv"
12
13
"strings"
13
14
"testing"
14
15
@@ -95,11 +96,11 @@ func TestParsePatch_singlefile(t *testing.T) {
95
96
name : "really weird filename" ,
96
97
gitdiff : `diff --git "\\a/a b/file b/a a/file" "\\b/a b/file b/a a/file"
97
98
index d2186f1..f5c8ed2 100644
98
- --- "\\a/a b/file b/a a/file"
99
- +++ "\\b/a b/file b/a a/file"
99
+ --- "\\a/a b/file b/a a/file" ` + `
100
+ +++ "\\b/a b/file b/a a/file" ` + `
100
101
@@ -1,3 +1,2 @@
101
102
Create a weird file.
102
-
103
+ ` + `
103
104
-and what does diff do here?
104
105
\ No newline at end of file` ,
105
106
addition : 0 ,
@@ -112,7 +113,7 @@ index d2186f1..f5c8ed2 100644
112
113
gitdiff : `diff --git "\\a/file with blanks" "\\b/file with blanks"
113
114
deleted file mode 100644
114
115
index 898651a..0000000
115
- --- "\\a/file with blanks"
116
+ --- "\\a/file with blanks" ` + `
116
117
+++ /dev/null
117
118
@@ -1,5 +0,0 @@
118
119
-a blank file
@@ -205,7 +206,83 @@ index 6961180..9ba1a00 100644
205
206
})
206
207
}
207
208
208
- var diff = `diff --git "a/README.md" "b/README.md"
209
+ // Test max lines
210
+ diffBuilder := & strings.Builder {}
211
+
212
+ var diff = `diff --git a/newfile2 b/newfile2
213
+ new file mode 100644
214
+ index 0000000..6bb8f39
215
+ --- /dev/null
216
+ +++ b/newfile2
217
+ @@ -0,0 +1,35 @@
218
+ `
219
+ diffBuilder .WriteString (diff )
220
+
221
+ for i := 0 ; i < 35 ; i ++ {
222
+ diffBuilder .WriteString ("+line" + strconv .Itoa (i ) + "\n " )
223
+ }
224
+ diff = diffBuilder .String ()
225
+ result , err := ParsePatch (20 , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
226
+ if err != nil {
227
+ t .Errorf ("There should not be an error: %v" , err )
228
+ }
229
+ if ! result .Files [0 ].IsIncomplete {
230
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
231
+ }
232
+ result , err = ParsePatch (40 , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
233
+ if err != nil {
234
+ t .Errorf ("There should not be an error: %v" , err )
235
+ }
236
+ if result .Files [0 ].IsIncomplete {
237
+ t .Errorf ("Files should not be incomplete! %v" , result .Files [0 ])
238
+ }
239
+ result , err = ParsePatch (40 , 5 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
240
+ if err != nil {
241
+ t .Errorf ("There should not be an error: %v" , err )
242
+ }
243
+ if ! result .Files [0 ].IsIncomplete {
244
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
245
+ }
246
+
247
+ // Test max characters
248
+ diff = `diff --git a/newfile2 b/newfile2
249
+ new file mode 100644
250
+ index 0000000..6bb8f39
251
+ --- /dev/null
252
+ +++ b/newfile2
253
+ @@ -0,0 +1,35 @@
254
+ `
255
+ diffBuilder .Reset ()
256
+ diffBuilder .WriteString (diff )
257
+
258
+ for i := 0 ; i < 33 ; i ++ {
259
+ diffBuilder .WriteString ("+line" + strconv .Itoa (i ) + "\n " )
260
+ }
261
+ diffBuilder .WriteString ("+line33" )
262
+ for i := 0 ; i < 512 ; i ++ {
263
+ diffBuilder .WriteString ("0123456789ABCDEF" )
264
+ }
265
+ diffBuilder .WriteByte ('\n' )
266
+ diffBuilder .WriteString ("+line" + strconv .Itoa (34 ) + "\n " )
267
+ diffBuilder .WriteString ("+line" + strconv .Itoa (35 ) + "\n " )
268
+ diff = diffBuilder .String ()
269
+
270
+ result , err = ParsePatch (20 , 4096 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
271
+ if err != nil {
272
+ t .Errorf ("There should not be an error: %v" , err )
273
+ }
274
+ if ! result .Files [0 ].IsIncomplete {
275
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
276
+ }
277
+ result , err = ParsePatch (40 , 4096 , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
278
+ if err != nil {
279
+ t .Errorf ("There should not be an error: %v" , err )
280
+ }
281
+ if ! result .Files [0 ].IsIncomplete {
282
+ t .Errorf ("Files should be incomplete! %v" , result .Files [0 ])
283
+ }
284
+
285
+ diff = `diff --git "a/README.md" "b/README.md"
209
286
--- a/README.md
210
287
+++ b/README.md
211
288
@@ -1,3 +1,6 @@
@@ -216,7 +293,7 @@ index 6961180..9ba1a00 100644
216
293
Docker Pulls
217
294
+ cut off
218
295
+ cut off`
219
- result , err : = ParsePatch (setting .Git .MaxGitDiffLines , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
296
+ result , err = ParsePatch (setting .Git .MaxGitDiffLines , setting .Git .MaxGitDiffLineCharacters , setting .Git .MaxGitDiffFiles , strings .NewReader (diff ))
220
297
if err != nil {
221
298
t .Errorf ("ParsePatch failed: %s" , err )
222
299
}
0 commit comments