コード例 #1
0
ファイル: test.php プロジェクト: knyazushka/mdash
    public function on_tested($num, $test, $ret)
    {
        $cc = urlencode($test['text']);
        $text = nl2br(htmlspecialchars($test['text']));
        $result = htmlspecialchars($test['result']);
        $out = htmlspecialchars($ret['result']);
        $diffx = new FineDiff($out, $result, FineDiff::$characterGranularity);
        $diff = $diffx->renderDiffToHTML2();
        //$diffy = new FineDiff($ret['result'], $test['result'], FineDiff::$characterGranularity);
        //$diff_text = $diffy->renderDiffToHTML2();
        $block_html_inline = $this->build_posle_nuzhno_raznica_block($test['result_classes'] ? 1 : 0, $out, $result, $diff);
        $block_text_inline = $this->build_posle_nuzhno_raznica_block($test['result_classes'] ? 1 : 0, $ret['result'], $test['text']);
        $block_html_classes = "";
        $block_text_classes = "";
        if (isset($test['result_classes']) && $test['result_classes']) {
            $diffc_h = new FineDiff(htmlspecialchars($ret['result_classes']), htmlspecialchars($test['result_classes']), FineDiff::$characterGranularity);
            $diff_h = $diffc_h->renderDiffToHTML2();
            //$diffc_t = new FineDiff($ret['result_classes'], $test['result_classes'], FineDiff::$characterGranularity);
            //$diff_t = $diffc_t->renderDiffToHTML2();
            $block_html_classes = "<br>" . $this->build_posle_nuzhno_raznica_block(2, htmlspecialchars($ret['result_classes']), htmlspecialchars($test['result_classes']), $diff_h);
            $block_text_classes = "<br>" . $this->build_posle_nuzhno_raznica_block(2, $ret['result_classes'], $test['result_classes']);
        }
        // повторное тестирование<br>
        $second_html = "";
        $second_text = "";
        if (isset($ret['result_second']) && $ret['result_second']) {
            $out_second = htmlspecialchars($ret['result_second']);
            $diffx2 = new FineDiff($out_second, $result, FineDiff::$characterGranularity);
            $diff_second = $diffx2->renderDiffToHTML2();
            $block_second_html_inline = $this->build_posle_nuzhno_raznica_block($test['result_classes'] ? 1 : 0, $out_second, $result, $diff_second);
            $block_second_text_inline = $this->build_posle_nuzhno_raznica_block($test['result_classes'] ? 1 : 0, $ret['result_second'], $test['text']);
            $block_second_html_classes = "";
            $block_second_text_classes = "";
            if (isset($test['result_classes_second']) && $test['result_classes_second']) {
                $diffc_h2 = new FineDiff(htmlspecialchars($ret['result_classes_second']), htmlspecialchars($test['result_classes']), FineDiff::$characterGranularity);
                $diff_second_h = $diffc_h2->renderDiffToHTML2();
                $block_second_html_classes = "<br>" . $this->build_posle_nuzhno_raznica_block(2, htmlspecialchars($ret['result_classes_second']), htmlspecialchars($test['result_classes']), $diff_second_h);
                $block_second_text_classes = "<br>" . $this->build_posle_nuzhno_raznica_block(2, $ret['result_classes_second'], $test['result_classes']);
            }
            $second_html = <<<HTML
\t\t\t<br>
\t\t\t<h4>Повторное типографирование</h4>
\t\t\t{$block_second_html_inline}
\t\t\t{$block_second_html_classes}
HTML;
            $second_text = <<<HTML
\t\t\t<br>
\t\t\t<h4>Повторное типографирование</h4>
\t\t\t{$block_second_text_inline}
\t\t\t{$block_second_text_classes}
HTML;
        }
        $infoblock = <<<HTML
\t\t<div id="test{$num}_block" style="display:none;margin: 30px;">
\t\t<div id="test{$num}_block_html" >
\t\t\t<a href="#test{$num}" class="togglehtmlcode">Посмотреть текст</a>&nbsp;&nbsp;<a href="debug.php?inputdata={$cc}" target="_blank">Открыть в отладчике</a><br>
\t\t\tДО: {$text}<br>
\t\t\t<br>
\t\t\t{$block_html_inline}
\t\t\t{$block_html_classes}
\t\t\t{$second_html}
\t\t</div>
\t\t<div id="test{$num}_block_code" style="display:none;">
\t\t\t<a href="#test{$num}" class="togglehtmlcode">Посмотреть HTML</a>&nbsp;&nbsp;<a href="debug.php?inputdata={$cc}" target="_blank">Открыть в отладчике</a><br>
\t\t\tДО: {$text}<br>
\t\t\t<br>
\t\t\t{$block_text_inline}
\t\t\t{$block_text_classes}
\t\t\t{$second_text}
\t\t</div>
\t\t
\t\t</div>
HTML;
        $cnt = $this->get_test_count();
        // первый тест в группе тестов
        if ($test['grnum'] == 1) {
            echo <<<HTML
\t</ul>
\t<h3 style="margin-left: 20px">{$test['grtitle']}</h3>
\t<ul style="list-style: none">
HTML;
        }
        echo "\t\t<li id='test{$num}'><span class='openlink " . ($ret['error'] ? "witherror" : "") . "'><a href='#test{$num}' class='seetest'><img style='margin-right: 0.7em' src='../misc/" . ($ret['error'] ? "no" : "yes") . ".png'>Тест {$test['grid']}" . sprintf("%02d", $test['grnum']) . " (" . sprintf("%02d", $num) . "/{$cnt})" . (isset($test['title']) ? ": " . $test['title'] . "" : "") . "</a></span> {$infoblock}</li>\n";
        $this->doflush();
    }