1<?php 2 3require_once DOKU_INC.'inc/DifferenceEngine.php'; 4 5/** 6 * Class difference_engine_test 7 */ 8class difference_engine_test extends DokuWikiTest { 9 public $x = "zzz\n\naaa\n\nbbb\n\nccc\n\nddd\n\nddd\n\nddd\n\neee\n\nfff"; 10 public $y = "ddd\n\naaa\n\nbbb\n\nbbb\n\nccc\n\nccc\n\neee"; 11 12 function test_render_table(){ 13 $diff = new Diff(explode("\n", $this->x), explode("\n", $this->y)); 14 $diffformatter = new TableDiffFormatter(); 15 $actual = $diffformatter->format($diff); 16 $expected = '<tr><td class="diff-blockheader" colspan="2">Line 1:</td> 17<td class="diff-blockheader" colspan="2">Line 1:</td> 18</tr> 19<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark">zzz</strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"><strong class="diff-mark">ddd</strong></td></tr> 20<tr><td class="diff-lineheader"> </td><td class="diff-context"></td><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 21<tr><td class="diff-lineheader"> </td><td class="diff-context">aaa</td><td class="diff-lineheader"> </td><td class="diff-context">aaa</td></tr> 22<tr><td colspan="2"> </td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr> 23<tr><td colspan="2"> </td><td class="diff-lineheader">+</td><td class="diff-addedline">bbb</td></tr> 24<tr><td class="diff-lineheader"> </td><td class="diff-context"></td><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 25<tr><td class="diff-lineheader"> </td><td class="diff-context">bbb</td><td class="diff-lineheader"> </td><td class="diff-context">bbb</td></tr> 26<tr><td class="diff-blockheader" colspan="2">Line 7:</td> 27<td class="diff-blockheader" colspan="2">Line 9:</td> 28</tr> 29<tr><td class="diff-lineheader"> </td><td class="diff-context">ccc</td><td class="diff-lineheader"> </td><td class="diff-context">ccc</td></tr> 30<tr><td class="diff-lineheader"> </td><td class="diff-context"></td><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 31<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark">ddd </strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"><strong class="diff-mark">ccc</strong></td></tr> 32<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark"> </strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr> 33<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark">ddd </strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr> 34<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark"> </strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr> 35<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"><strong class="diff-mark">ddd</strong></td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr> 36<tr><td class="diff-lineheader"> </td><td class="diff-context"></td><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 37<tr><td class="diff-lineheader"> </td><td class="diff-context">eee</td><td class="diff-lineheader"> </td><td class="diff-context">eee</td></tr> 38<tr><td class="diff-lineheader">-</td><td class="diff-deletedline"></td><td colspan="2"> </td></tr> 39<tr><td class="diff-lineheader">-</td><td class="diff-deletedline">fff</td><td colspan="2"> </td></tr> 40'; 41 $this->assertEquals($expected, $actual); 42 } 43 44 function test_render_inline(){ 45 $diff = new Diff(explode("\n", $this->x), explode("\n", $this->y)); 46 $diffformatter = new InlineDiffFormatter(); 47 $actual = $diffformatter->format($diff); 48 $expected = '<tr><td colspan="2" class="diff-blockheader">@@ Line -1,5 +1,7 @@ <span class="diff-deletedline"><del>removed</del></span> <span class="diff-addedline">created</span></td></tr> 49 50<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del>zzz</del></span><span class="diff-addedline">ddd</span></td></tr> 51<tr><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 52<tr><td class="diff-lineheader"> </td><td class="diff-context">aaa</td></tr> 53<tr><td class="diff-lineheader"> </td><td class="diff-addedline"></td></tr> 54<tr><td class="diff-lineheader"> </td><td class="diff-addedline">bbb</td></tr> 55<tr><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 56<tr><td class="diff-lineheader"> </td><td class="diff-context">bbb</td></tr> 57<tr><td colspan="2" class="diff-blockheader">@@ Line -7,11 +9,5 @@ <span class="diff-deletedline"><del>removed</del></span> <span class="diff-addedline">created</span></td></tr> 58 59<tr><td class="diff-lineheader"> </td><td class="diff-context">ccc</td></tr> 60<tr><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 61<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del>ddd </del></span></td></tr> 62<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del> </del></span></td></tr> 63<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del>ddd </del></span></td></tr> 64<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del> </del></span></td></tr> 65<tr><td class="diff-lineheader"> </td><td><span class="diff-deletedline"><del>ddd</del></span><span class="diff-addedline">ccc</span></td></tr> 66<tr><td class="diff-lineheader"> </td><td class="diff-context"></td></tr> 67<tr><td class="diff-lineheader"> </td><td class="diff-context">eee</td></tr> 68<tr><td class="diff-lineheader"> </td><td class="diff-deletedline"><del></del></td></tr> 69<tr><td class="diff-lineheader"> </td><td class="diff-deletedline"><del>fff</del></td></tr> 70'; 71 $this->assertEquals($expected, $actual); 72 } 73 74 function test_engine_diag(){ 75 // initialize 76 $eng = new _DiffEngine; 77 $eng->diff(explode("\n", $this->x), explode("\n", $this->y)); 78 // check 79 $this->assertEquals( 80 array(9, array(array(0,0),array(1,2),array(3,4),array(4,5),array(5,7),array(6,9),array(7,10),array(9,12),array(15,13))), 81 $eng->_diag(0, 15, 0, 13, 8) 82 ); 83 } 84} 85//Setup VIM: ex: et ts=4 : 86