[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/ -> difference_engine.test.php (source)

   1  <?php
   2  
   3  require_once  DOKU_INC.'inc/DifferenceEngine.php';
   4  
   5  /**
   6   * Class difference_engine_test
   7   */
   8  class 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">&#160;</td><td class="diff-context"></td><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  21  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">aaa</td><td class="diff-lineheader">&#160;</td><td class="diff-context">aaa</td></tr>
  22  <tr><td colspan="2">&#160;</td><td class="diff-lineheader">+</td><td class="diff-addedline"></td></tr>
  23  <tr><td colspan="2">&#160;</td><td class="diff-lineheader">+</td><td class="diff-addedline">bbb</td></tr>
  24  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  25  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">bbb</td><td class="diff-lineheader">&#160;</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">&#160;</td><td class="diff-context">ccc</td><td class="diff-lineheader">&#160;</td><td class="diff-context">ccc</td></tr>
  30  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td><td class="diff-lineheader">&#160;</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">&#160;</td><td class="diff-context"></td><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  37  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">eee</td><td class="diff-lineheader">&#160;</td><td class="diff-context">eee</td></tr>
  38  <tr><td class="diff-lineheader">-</td><td class="diff-deletedline"></td><td colspan="2">&#160;</td></tr>
  39  <tr><td class="diff-lineheader">-</td><td class="diff-deletedline">fff</td><td colspan="2">&#160;</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 @@&#160;<span class="diff-deletedline"><del>removed</del></span>&#160;<span class="diff-addedline">created</span></td></tr>
  49  
  50  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del>zzz</del></span><span class="diff-addedline">ddd</span></td></tr>
  51  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  52  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">aaa</td></tr>
  53  <tr><td class="diff-lineheader">&#160;</td><td class="diff-addedline"></td></tr>
  54  <tr><td class="diff-lineheader">&#160;</td><td class="diff-addedline">bbb</td></tr>
  55  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  56  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">bbb</td></tr>
  57  <tr><td colspan="2" class="diff-blockheader">@@ Line -7,11 +9,5 @@&#160;<span class="diff-deletedline"><del>removed</del></span>&#160;<span class="diff-addedline">created</span></td></tr>
  58  
  59  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">ccc</td></tr>
  60  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  61  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del>ddd </del></span></td></tr>
  62  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del> </del></span></td></tr>
  63  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del>ddd </del></span></td></tr>
  64  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del> </del></span></td></tr>
  65  <tr><td class="diff-lineheader">&#160;</td><td><span class="diff-deletedline"><del>ddd</del></span><span class="diff-addedline">ccc</span></td></tr>
  66  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context"></td></tr>
  67  <tr><td class="diff-lineheader">&#160;</td><td class="diff-context">eee</td></tr>
  68  <tr><td class="diff-lineheader">&#160;</td><td class="diff-deletedline"><del></del></td></tr>
  69  <tr><td class="diff-lineheader">&#160;</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 :