function test_diff_words()
 {
     $lines1 = ouwiki_diff_html_to_lines($this->html1);
     $lines2 = ouwiki_diff_html_to_lines($this->html2);
     list($deleted, $added) = ouwiki_diff_words($lines1, $lines2);
     $delarray = array();
     foreach ($deleted as $word) {
         $delarray[] = $word->word;
     }
     sort($delarray);
     $addarray = array();
     foreach ($added as $word) {
         $addarray[] = $word->word;
     }
     sort($addarray);
     $this->assertEqual($delarray, array('With', 'items', 'list', 'multiple', 'paragraph.'));
     $this->assertEqual($addarray, array('I', 'added', 'have', 'paragraph', 'some', 'text', 'to.', 'which'));
     /*
             $result1=ouwiki_diff_add_markers($this->html1,$deleted,'ouw_deleted');
             $result2=ouwiki_diff_add_markers($this->html2,$added,'ouw_added');
             print '<div style="float:left;width:48%"><h1>Before</h1>';
     //        print_object($deleted);
             print $result1;
             print '</div><div style="float:right;width:48%"><h1>After</h1>';
     //        print_object($added);
             print $result2;
             print '</div>';
             exit;*/
 }
Ejemplo n.º 2
0
 public function test_diff_words()
 {
     $lines1 = ouwiki_diff_html_to_lines($this->html1);
     $lines2 = ouwiki_diff_html_to_lines($this->html2);
     list($deleted, $added) = ouwiki_diff_words($lines1, $lines2);
     $delarray = array();
     foreach ($deleted as $word) {
         $delarray[] = $word->word;
     }
     sort($delarray);
     $addarray = array();
     foreach ($added as $word) {
         $addarray[] = $word->word;
     }
     sort($addarray);
     $this->assertEquals(array('With', 'items', 'list', 'multiple', 'paragraph.'), $delarray);
     $this->assertEquals(array('I', 'added', 'have', 'paragraph', 'some', 'text', 'to.', 'which'), $addarray);
 }
/**
 * Compares two HTML files. (This is the main function that everything else supports.)
 * @param string $html1 XHTML for file 1  
 * @param string $html2 XHTML for file 2
 * @return array ($result1,$result2,$changes); result1 and result2 are XHTML 
 *   to be displayed indicating the differences, while $changes is the total
 *   number of changed (added or deleted) words. May be 0 if there are no
 *   differences or if differences are only to HTML 
 */
function ouwiki_diff_html($html1, $html2)
{
    $lines1 = ouwiki_diff_html_to_lines($html1);
    $lines2 = ouwiki_diff_html_to_lines($html2);
    list($deleted, $added) = ouwiki_diff_words($lines1, $lines2);
    $changes = count($deleted) + count($added);
    $result1 = ouwiki_diff_add_markers($html1, $deleted, 'ouw_deleted', '<img src="diff_deleted_begins.gif" alt="' . get_string('deletedbegins', 'ouwiki') . '" />', '<img src="diff_added_ends.gif" alt="' . get_string('deletedends', 'ouwiki') . '" />');
    $result2 = ouwiki_diff_add_markers($html2, $added, 'ouw_added', '<img src="diff_added_begins.gif" alt="' . get_string('addedbegins', 'ouwiki') . '" />', '<img src="diff_added_ends.gif" alt="' . get_string('addedends', 'ouwiki') . '" />');
    return array($result1, $result2, $changes);
}
Ejemplo n.º 4
0
/**
 * Compares two HTML files. (This is the main function that everything else supports.)
 * @param string $html1 XHTML for file 1  
 * @param string $html2 XHTML for file 2
 * @return array ($result1,$result2) to be displayed indicating the differences  
 */
function ouwiki_diff_html($html1, $html2)
{
    $lines1 = ouwiki_diff_html_to_lines($html1);
    $lines2 = ouwiki_diff_html_to_lines($html2);
    list($deleted, $added) = ouwiki_diff_words($lines1, $lines2);
    $result1 = ouwiki_diff_add_markers($html1, $deleted, 'ouw_deleted', '<strong class="accesshide">' . get_string('deletedbegins', 'wiki') . '</strong>', '<strong class="accesshide">' . get_string('deletedends', 'wiki') . '</strong>');
    $result2 = ouwiki_diff_add_markers($html2, $added, 'ouw_added', '<strong class="accesshide">' . get_string('addedbegins', 'wiki') . '</strong>', '<strong class="accesshide">' . get_string('addedends', 'wiki') . '</strong>');
    return array($result1, $result2);
}