5
5
module RSpec
6
6
module Support
7
7
RSpec . describe Differ do
8
- include Spec ::DiffHelpers
9
-
10
8
describe '#diff' do
11
9
let ( :differ ) { RSpec ::Support ::Differ . new }
12
10
13
11
it "outputs unified diff of two strings" do
14
12
expected = "foo\n zap\n bar\n this\n is\n soo\n very\n very\n equal\n insert\n a\n another\n line\n "
15
13
actual = "foo\n bar\n zap\n this\n is\n soo\n very\n very\n equal\n insert\n a\n line\n "
16
14
17
- if Diff ::LCS ::VERSION . to_f < 1.4 || Diff ::LCS ::VERSION >= "1.4.4"
18
- expected_diff = dedent ( <<-'EOD' )
19
- |
20
- |
21
- |@@ -1,6 +1,6 @@
22
- | foo
23
- |-zap
24
- | bar
25
- |+zap
26
- | this
27
- | is
28
- | soo
29
- |@@ -9,6 +9,5 @@
30
- | equal
31
- | insert
32
- | a
33
- |-another
34
- | line
35
- |
36
- EOD
37
- else
38
- expected_diff = dedent ( <<-'EOD' )
39
- |
40
- |
41
- |@@ -1,4 +1,6 @@
42
- | foo
43
- |-zap
44
- | bar
45
- |+zap
46
- | this
47
- |@@ -9,6 +11,7 @@
48
- | equal
49
- | insert
50
- | a
51
- |-another
52
- | line
53
- |
54
- EOD
55
- end
56
-
15
+ expected_diff = dedent ( <<-'EOD' )
16
+ |
17
+ |
18
+ |@@ -1,6 +1,6 @@
19
+ | foo
20
+ |-zap
21
+ | bar
22
+ |+zap
23
+ | this
24
+ | is
25
+ | soo
26
+ |@@ -9,6 +9,5 @@
27
+ | equal
28
+ | insert
29
+ | a
30
+ |-another
31
+ | line
32
+ |
33
+ EOD
57
34
58
35
diff = differ . diff ( actual , expected )
59
36
expect ( diff ) . to be_diffed_as ( expected_diff )
@@ -63,45 +40,25 @@ module Support
63
40
expected = "foo\n zap\n bar\n this\n is\n soo\n very\n very\n equal\n insert\n a\n another\n line\n "
64
41
actual = "foo\n bar\n zap\n this\n is\n soo\n very\n very\n equal\n insert\n a\n line\n "
65
42
66
- if Diff ::LCS ::VERSION . to_f < 1.4 || Diff ::LCS ::VERSION >= "1.4.4"
67
- expected_diff = dedent ( <<-'EOS' )
68
- |
69
- |
70
- |@@ -1,6 +1,6 @@
71
- | foo
72
- |-zap
73
- | bar
74
- |+zap
75
- | this
76
- | is
77
- | soo
78
- |@@ -9,6 +9,5 @@
79
- | equal
80
- | insert
81
- | a
82
- |-another
83
- | line
84
- |
85
- EOS
86
- else
87
- expected_diff = dedent ( <<-'EOS' )
88
- |
89
- |
90
- |@@ -1,4 +1,6 @@
91
- | foo
92
- |-zap
93
- | bar
94
- |+zap
95
- | this
96
- |@@ -9,6 +11,7 @@
97
- | equal
98
- | insert
99
- | a
100
- |-another
101
- | line
102
- |
103
- EOS
104
- end
43
+ expected_diff = dedent ( <<-'EOS' )
44
+ |
45
+ |
46
+ |@@ -1,6 +1,6 @@
47
+ | foo
48
+ |-zap
49
+ | bar
50
+ |+zap
51
+ | this
52
+ | is
53
+ | soo
54
+ |@@ -9,6 +9,5 @@
55
+ | equal
56
+ | insert
57
+ | a
58
+ |-another
59
+ | line
60
+ |
61
+ EOS
105
62
106
63
diff = differ . diff ( actual , expected )
107
64
expect ( diff ) . to be_diffed_as ( expected_diff )
@@ -133,7 +90,7 @@ def differ_ivars
133
90
actual = "Tu avec carté {count} itém has\n " . encode ( 'UTF-16LE' )
134
91
expected_diff = dedent ( <<-EOD ) . encode ( 'UTF-16LE' )
135
92
|
136
- |@@ #{ one_line_header } @@
93
+ |@@ -1 +1 @@
137
94
|-Tu avec carte {count} item has
138
95
|+Tu avec carté {count} itém has
139
96
|
@@ -146,15 +103,15 @@ def differ_ivars
146
103
it 'handles differently encoded strings that are compatible' do
147
104
expected = "abc\n " . encode ( 'us-ascii' )
148
105
actual = "강인철\n " . encode ( 'UTF-8' )
149
- expected_diff = "\n @@ #{ one_line_header } @@\n -abc\n +강인철\n "
106
+ expected_diff = "\n @@ -1 +1 @@\n -abc\n +강인철\n "
150
107
diff = differ . diff ( actual , expected )
151
108
expect ( diff ) . to be_diffed_as ( expected_diff )
152
109
end
153
110
154
111
it 'uses the default external encoding when the two strings have incompatible encodings' do
155
112
expected = "Tu avec carte {count} item has\n "
156
113
actual = "Tu avec carté {count} itém has\n " . encode ( 'UTF-16LE' )
157
- expected_diff = "\n @@ #{ one_line_header } @@\n -Tu avec carte {count} item has\n +Tu avec carté {count} itém has\n "
114
+ expected_diff = "\n @@ -1 +1 @@\n -Tu avec carte {count} item has\n +Tu avec carté {count} itém has\n "
158
115
159
116
diff = differ . diff ( actual , expected )
160
117
expect ( diff ) . to be_diffed_as ( expected_diff )
@@ -245,7 +202,7 @@ def inspect; "<BrokenObject>"; end
245
202
246
203
expected_diff = dedent ( <<-EOD )
247
204
|
248
- |@@ #{ one_line_header } @@
205
+ |@@ -1 +1 @@
249
206
|-[]
250
207
|+[<BrokenObject>]
251
208
|
@@ -257,7 +214,7 @@ def inspect; "<BrokenObject>"; end
257
214
diff = differ . diff ( [ "a\r \n b" ] , [ "a\r \n c" ] )
258
215
expected_diff = dedent ( <<-EOD )
259
216
|
260
- |@@ #{ one_line_header } @@
217
+ |@@ -1 +1 @@
261
218
|-a\\ r\\ nc
262
219
|+a\\ r\\ nb
263
220
|
@@ -308,7 +265,7 @@ def inspect; "<BrokenObject>"; end
308
265
it 'outputs unified diff message of two hashes with differing encoding' do
309
266
expected_diff = dedent ( <<-"EOD" )
310
267
|
311
- |@@ #{ one_line_header } @@
268
+ |@@ -1 +1 @@
312
269
|-"a" => "a",
313
270
|+"ö" => "ö",
314
271
|
@@ -321,7 +278,7 @@ def inspect; "<BrokenObject>"; end
321
278
it 'outputs unified diff message of two hashes with encoding different to key encoding' do
322
279
expected_diff = dedent ( <<-"EOD" )
323
280
|
324
- |@@ #{ one_line_header } @@
281
+ |@@ -1 +1 @@
325
282
|-:a => "a",
326
283
|+\" 한글\" => \" 한글2\" ,
327
284
|
@@ -334,7 +291,7 @@ def inspect; "<BrokenObject>"; end
334
291
it "outputs unified diff message of two hashes with object keys" do
335
292
expected_diff = dedent ( <<-"EOD" )
336
293
|
337
- |@@ #{ one_line_header } @@
294
+ |@@ -1 +1 @@
338
295
|-["a", "c"] => "b",
339
296
|+["d", "c"] => "b",
340
297
|
@@ -351,7 +308,7 @@ def inspect; "<BrokenObject>"; end
351
308
it "outputs unified diff message of two hashes with Time object keys" do
352
309
expected_diff = dedent ( <<-"EOD" )
353
310
|
354
- |@@ #{ one_line_header } @@
311
+ |@@ -1 +1 @@
355
312
|-#{ formatted_time } => "b",
356
313
|+#{ formatted_time } => "c",
357
314
|
@@ -364,7 +321,7 @@ def inspect; "<BrokenObject>"; end
364
321
it "outputs unified diff message of two hashes with hashes inside them" do
365
322
expected_diff = dedent ( <<-"EOD" )
366
323
|
367
- |@@ #{ one_line_header } @@
324
+ |@@ -1 +1 @@
368
325
|-"b" => {"key_1"=>#{ formatted_time } },
369
326
|+"c" => {"key_1"=>#{ formatted_time } },
370
327
|
@@ -384,7 +341,7 @@ def inspect; "<BrokenObject>"; end
384
341
it "outputs unified diff message of two arrays with Time object keys" do
385
342
expected_diff = dedent ( <<-"EOD" )
386
343
|
387
- |@@ #{ one_line_header } @@
344
+ |@@ -1 +1 @@
388
345
|-[#{ formatted_time } , "b"]
389
346
|+[#{ formatted_time } , "c"]
390
347
|
@@ -397,7 +354,7 @@ def inspect; "<BrokenObject>"; end
397
354
it "outputs unified diff message of two arrays with hashes inside them" do
398
355
expected_diff = dedent ( <<-"EOD" )
399
356
|
400
- |@@ #{ one_line_header } @@
357
+ |@@ -1 +1 @@
401
358
|-[{"b"=>#{ formatted_time } }, "c"]
402
359
|+[{"a"=>#{ formatted_time } }, "c"]
403
360
|
@@ -430,7 +387,7 @@ def inspect; "<BrokenObject>"; end
430
387
it "splits items with newlines" do
431
388
expected_diff = dedent ( <<-"EOD" )
432
389
|
433
- |@@ #{ removing_two_line_header } @@
390
+ |@@ -1,3 +1 @@
434
391
|-a\\ nb
435
392
|-c\\ nd
436
393
|
@@ -443,7 +400,7 @@ def inspect; "<BrokenObject>"; end
443
400
it "shows inner arrays on a single line" do
444
401
expected_diff = dedent ( <<-"EOD" )
445
402
|
446
- |@@ #{ removing_two_line_header } @@
403
+ |@@ -1,3 +1 @@
447
404
|-a\\ nb
448
405
|-["c\\ nd"]
449
406
|
@@ -496,7 +453,7 @@ def inspect; "<BrokenObject>"; end
496
453
497
454
expected_diff = dedent ( <<-EOS )
498
455
|
499
- |@@ #{ one_line_header } @@
456
+ |@@ -1 +1 @@
500
457
|-[#<SimpleDelegator(#{ object . inspect } )>]
501
458
|+[#{ object . inspect } ]
502
459
|
@@ -518,7 +475,7 @@ def inspect; "<BrokenObject>"; end
518
475
519
476
expected_diff = dedent ( <<-EOS )
520
477
|
521
- |@@ #{ one_line_header } @@
478
+ |@@ -1 +1 @@
522
479
|-"oop"
523
480
|+"oof"
524
481
|
@@ -535,7 +492,7 @@ def inspect; "<BrokenObject>"; end
535
492
it "outputs colored diffs" do
536
493
expected = "foo bar baz\n "
537
494
actual = "foo bang baz\n "
538
- expected_diff = "\e [0m\n \e [0m\e [34m@@ #{ one_line_header } @@\n \e [0m\e [31m-foo bang baz\n \e [0m\e [32m+foo bar baz\n \e [0m"
495
+ expected_diff = "\e [0m\n \e [0m\e [34m@@ -1 +1 @@\n \e [0m\e [31m-foo bang baz\n \e [0m\e [32m+foo bar baz\n \e [0m"
539
496
540
497
diff = differ . diff ( expected , actual )
541
498
expect ( diff ) . to be_diffed_as ( expected_diff )
0 commit comments