@@ -21,4 +21,58 @@ public function testMergedRendererReplaceCase()
21
21
$ this ->assertStringContainsString ('<del ' , $ output );
22
22
$ this ->assertStringContainsString ('<ins ' , $ output );
23
23
}
24
+
25
+ public function testInsertCase ()
26
+ {
27
+ $ a = "line1 \nline2 " ;
28
+ $ b = "line1 \nline2 \nline3 " ;
29
+
30
+ $ diff = new Diff ($ a , $ b );
31
+ $ output = $ diff ->render (new Merged ());
32
+
33
+ $ this ->assertStringContainsString ('<ins ' , $ output );
34
+ $ this ->assertStringContainsString ('line3 ' , $ output );
35
+ }
36
+
37
+ public function testDeleteCase ()
38
+ {
39
+ $ a = "line1 \nline2 \nline3 " ;
40
+ $ b = "line1 \nline3 " ;
41
+
42
+ $ diff = new Diff ($ a , $ b );
43
+ $ output = $ diff ->render (new Merged ());
44
+
45
+ $ this ->assertStringContainsString ('ChangeDelete ' , $ output );
46
+ $ this ->assertStringContainsString ('line2 ' , $ output );
47
+ }
48
+
49
+ public function testMixedChanges ()
50
+ {
51
+ $ a = "alpha \nbeta \ngamma \ndelta " ;
52
+ $ b = "alpha \nBETA \ngamma \nnew-delta " ;
53
+
54
+ $ diff = new Diff ($ a , $ b );
55
+ $ output = $ diff ->render (new Merged ());
56
+
57
+ $ this ->assertStringContainsString ('<del>beta</del> ' , $ output );
58
+ $ this ->assertStringContainsString ('<ins>BETA</ins> ' , $ output );
59
+ $ this ->assertStringContainsString ('<ins>new-</ins> ' , $ output );
60
+ $ this ->assertStringContainsString ('delta ' , $ output );
61
+ }
62
+
63
+
64
+ public function testReplaceCaseTriggersMergedBlock ()
65
+ {
66
+ $ a = "line1 \nsame \nline3 " ;
67
+ $ b = "line1 \nchanged \nline3 " ;
68
+
69
+ $ diff = new Diff ($ a , $ b );
70
+ $ output = $ diff ->render (new Merged ());
71
+
72
+ // Hier sollte der Block ab Zeile 250 greifen:
73
+ $ this ->assertStringContainsString ('<del ' , $ output );
74
+ $ this ->assertStringContainsString ('<ins ' , $ output );
75
+ $ this ->assertStringContainsString ('same ' , $ output );
76
+ $ this ->assertStringContainsString ('changed ' , $ output );
77
+ }
24
78
}
0 commit comments