亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eclipse.php

?? PHP 知識管理系統(基于樹結構的知識管理系統), 英文原版的PHP源碼。
?? PHP
字號:
<?php
/**
 *  base include file for eclipse plugin  
 *  @package    SimpleTest
 *  @subpackage Eclipse
 *  @version    $Id: eclipse.php 1723 2008-04-08 00:34:10Z lastcraft $
 */
/**#@+
 * simpletest include files
 */
include_once 'unit_tester.php';
include_once 'test_case.php';
include_once 'invoker.php';
include_once 'socket.php';
include_once 'mock_objects.php';
/**#@-*/

/**
 *  base reported class for eclipse plugin  
 *  @package    SimpleTest
 *  @subpackage Eclipse
 */
class EclipseReporter extends SimpleScorer {
    
    /**
     *    Reporter to be run inside of Eclipse interface.
     *    @param object $listener   Eclipse listener (?).
     *    @param boolean $cc        Whether to include test coverage.
     */
    function EclipseReporter(&$listener, $cc=false){
        $this->_listener = &$listener;
        $this->SimpleScorer();
        $this->_case = "";
        $this->_group = "";
        $this->_method = "";
        $this->_cc = $cc;
        $this->_error = false;
        $this->_fail = false;
    }
    
    /**
     *    Means to display human readable object comparisons.
     *    @return SimpleDumper        Visual comparer.
     */
    function getDumper() {
        return new SimpleDumper();
    }
    
    /**
     *    Localhost connection from Eclipse.
     *    @param integer $port      Port to connect to Eclipse.
     *    @param string $host       Normally localhost.
     *    @return SimpleSocket      Connection to Eclipse.
     */
    function &createListener($port, $host="127.0.0.1"){
        $tmplistener = &new SimpleSocket($host, $port, 5);
        return $tmplistener;
    }
    
    /**
     *    Wraps the test in an output buffer.
     *    @param SimpleInvoker $invoker     Current test runner.
     *    @return EclipseInvoker            Decorator with output buffering.
     *    @access public
     */
    function &createInvoker(&$invoker){
        $eclinvoker = &new EclipseInvoker($invoker, $this->_listener);
        return $eclinvoker;
    }
    
    /**
     *    C style escaping.
     *    @param string $raw    String with backslashes, quotes and whitespace.
     *    @return string        Replaced with C backslashed tokens.
     */
    function escapeVal($raw){
        $needle = array("\\","\"","/","\b","\f","\n","\r","\t");
        $replace = array('\\\\','\"','\/','\b','\f','\n','\r','\t');
        return str_replace($needle, $replace, $raw);
    }
    
    /**
     *    Stash the first passing item. Clicking the test
     *    item goes to first pass.
     *    @param string $message    Test message, but we only wnat the first.
     *    @access public
     */
    function paintPass($message){
        if (! $this->_pass){
            $this->_message = $this->escapeVal($message);
        }
        $this->_pass = true;
    }
    
    /**
     *    Stash the first failing item. Clicking the test
     *    item goes to first fail.
     *    @param string $message    Test message, but we only wnat the first.
     *    @access public
     */
    function paintFail($message){
        //only get the first failure or error
        if (! $this->_fail && ! $this->_error){
            $this->_fail = true;
            $this->_message = $this->escapeVal($message);
            $this->_listener->write('{status:"fail",message:"'.$this->_message.'",group:"'.$this->_group.'",case:"'.$this->_case.'",method:"'.$this->_method.'"}');
        }
    }
    
    /**
     *    Stash the first error. Clicking the test
     *    item goes to first error.
     *    @param string $message    Test message, but we only wnat the first.
     *    @access public
     */
    function paintError($message){
        if (! $this->_fail && ! $this->_error){
            $this->_error = true;
            $this->_message = $this->escapeVal($message);
            $this->_listener->write('{status:"error",message:"'.$this->_message.'",group:"'.$this->_group.'",case:"'.$this->_case.'",method:"'.$this->_method.'"}');
        }
    }
    
    
    /**
     *    Stash the first exception. Clicking the test
     *    item goes to first message.
     *    @param string $message    Test message, but we only wnat the first.
     *    @access public
     */
    function paintException($exception){
        if (! $this->_fail && ! $this->_error){
            $this->_error = true;
            $message = 'Unexpected exception of type[' . get_class($exception) .
                    '] with message [' . $exception->getMessage() . '] in [' .
                    $exception->getFile() .' line '. $exception->getLine() . ']';
            $this->_message = $this->escapeVal($message);
            $this->_listener->write(
                    '{status:"error",message:"' . $this->_message . '",group:"' .
                    $this->_group . '",case:"' . $this->_case . '",method:"' . $this->_method
                    . '"}');
        }
    }
    

    /**
     *    We don't display any special header.
     *    @param string $test_name     First test top level
     *                                 to start.
     *    @access public
     */
    function paintHeader($test_name) {
    }

    /**
     *    We don't display any special footer.
     *    @param string $test_name        The top level test.
     *    @access public
     */
    function paintFooter($test_name) {
    }
    
    /**
     *    Paints nothing at the start of a test method, but stash
     *    the method name for later.
     *    @param string $test_name   Name of test that is starting.
     *    @access public
     */
    function paintMethodStart($method) {
        $this->_pass = false;
        $this->_fail = false;
        $this->_error = false;
        $this->_method = $this->escapeVal($method);
    }
        
    /**
     *    Only send one message if the test passes, after that
     *    suppress the message.
     *    @param string $test_name   Name of test that is ending.
     *    @access public
     */
    function paintMethodEnd($method){   
        if ($this->_fail || $this->_error || ! $this->_pass){
        } else {
            $this->_listener->write(
                        '{status:"pass",message:"' . $this->_message . '",group:"' .
                        $this->_group . '",case:"' . $this->_case . '",method:"' .
                        $this->_method . '"}');
        }
    }
    
    /**
     *    Stashes the test case name for the later failure message.
     *    @param string $test_name     Name of test or other label.
     *    @access public
     */
    function paintCaseStart($case){
        $this->_case = $this->escapeVal($case);
    }
    
    /**
     *    Drops the name.
     *    @param string $test_name     Name of test or other label.
     *    @access public
     */
    function paintCaseEnd($case){
        $this->_case = "";
    }
    
    /**
     *    Stashes the name of the test suite. Starts test coverage
     *    if enabled.
     *    @param string $group     Name of test or other label.
     *    @param integer $size     Number of test cases starting.
     *    @access public
     */
    function paintGroupStart($group, $size){
        $this->_group = $this->escapeVal($group);
        if ($this->_cc){
            if (extension_loaded('xdebug')){
                xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); 
            }
        }
    }

    /**
     *    Paints coverage report if enabled.
     *    @param string $group     Name of test or other label.
     *    @access public
     */
    function paintGroupEnd($group){
        $this->_group = "";
        $cc = "";
        if ($this->_cc){
            if (extension_loaded('xdebug')){
                $arrfiles = xdebug_get_code_coverage();
                xdebug_stop_code_coverage();
                $thisdir = dirname(__FILE__);
                $thisdirlen = strlen($thisdir);
                foreach ($arrfiles as $index=>$file){
                    if (substr($index, 0, $thisdirlen)===$thisdir){
                        continue;
                    }
                    $lcnt = 0;
                    $ccnt = 0;
                    foreach ($file as $line){
                        if ($line == -2){
                            continue;
                        }
                        $lcnt++;
                        if ($line==1){
                            $ccnt++;
                        }
                    }
                    if ($lcnt > 0){
                        $cc .= round(($ccnt/$lcnt) * 100, 2) . '%';
                    }else{
                        $cc .= "0.00%";
                    }
                    $cc.= "\t". $index . "\n";
                }
            }
        }
        $this->_listener->write('{status:"coverage",message:"' .
                                EclipseReporter::escapeVal($cc) . '"}');
    }
}

/**
 *  Invoker decorator for Eclipse. Captures output until
 *  the end of the test.  
 *  @package    SimpleTest
 *  @subpackage Eclipse
 */
class EclipseInvoker extends SimpleInvokerDecorator{
    function EclipseInvoker(&$invoker, &$listener) {
        $this->_listener = &$listener;
        $this->SimpleInvokerDecorator($invoker);
    }
    
    /**
     *    Starts output buffering.
     *    @param string $method    Test method to call.
     *    @access public
     */
    function before($method){
        ob_start();
        $this->_invoker->before($method);
    }

    /**
     *    Stops output buffering and send the captured output
     *    to the listener.
     *    @param string $method    Test method to call.
     *    @access public
     */
    function after($method) {
        $this->_invoker->after($method);
        $output = ob_get_contents();
        ob_end_clean();
        if ($output !== ""){
            $result = $this->_listener->write('{status:"info",message:"' .
                                              EclipseReporter::escapeVal($output) . '"}');
        }
    }
}
?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧日韩精品视频| 久久久久久久综合| 精品嫩草影院久久| 夜夜嗨av一区二区三区中文字幕| 久久综合综合久久综合| 91美女在线观看| 国产日韩v精品一区二区| 五月天一区二区| 色94色欧美sute亚洲线路一ni | 色悠久久久久综合欧美99| 欧美片在线播放| 一区二区三国产精华液| 国产高清久久久| 91麻豆精品国产综合久久久久久| 亚洲另类色综合网站| 国产成人亚洲精品青草天美| 91精品国产入口在线| 亚洲一区二区三区四区在线免费观看 | 欧美日韩在线播放三区四区| 亚洲视频免费在线| 国产一区二区三区黄视频| 337p亚洲精品色噜噜| 亚洲一区二区三区四区在线| 色噜噜狠狠色综合欧洲selulu| 中文字幕不卡的av| 国产69精品久久久久777| 精品福利视频一区二区三区| 九一九一国产精品| 欧美成人一区二区| 久久福利视频一区二区| 日韩免费福利电影在线观看| 久久99国产精品尤物| 精品少妇一区二区三区| 精品一区中文字幕| 久久女同精品一区二区| 国产麻豆视频一区| 中文字幕精品—区二区四季| 国产91精品一区二区| 国产精品九色蝌蚪自拍| 91丨九色丨黑人外教| 亚洲欧美日韩国产手机在线| 色播五月激情综合网| 亚洲图片有声小说| 欧美精品欧美精品系列| 麻豆精品视频在线观看视频| 久久久精品日韩欧美| 国产成人av一区二区三区在线| 国产精品免费av| 在线中文字幕一区二区| 日本 国产 欧美色综合| 国产日本一区二区| 色网站国产精品| 免费日本视频一区| 欧美高清在线一区二区| 91麻豆成人久久精品二区三区| 亚洲激情在线激情| 精品日本一线二线三线不卡| 波多野结衣视频一区| 亚洲午夜精品网| 久久精品视频免费观看| 91精品办公室少妇高潮对白| 美女网站色91| 亚洲日穴在线视频| 日韩精品资源二区在线| 91亚洲精品久久久蜜桃| 美女视频黄 久久| 日韩一区在线免费观看| 在线播放国产精品二区一二区四区| 久久精品免费观看| 亚洲欧美激情小说另类| 精品国产乱码久久久久久闺蜜| a亚洲天堂av| 精品亚洲成av人在线观看| 日韩毛片一二三区| 久久久久久麻豆| 9191久久久久久久久久久| jlzzjlzz欧美大全| 韩日av一区二区| 日韩av在线播放中文字幕| 国产精品美女久久久久久久久久久 | 蜜臀精品一区二区三区在线观看 | 久久国产精品露脸对白| 亚洲精品一二三| 欧美精彩视频一区二区三区| 欧美日韩久久一区二区| 成人黄色电影在线| 国产裸体歌舞团一区二区| 天天综合天天做天天综合| 亚洲精品伦理在线| 国产精品网站一区| 国产午夜亚洲精品不卡| 日韩欧美中文字幕精品| 欧美理论片在线| 欧美性大战久久| 97久久精品人人做人人爽50路| 国产在线日韩欧美| 久久99国产精品久久99果冻传媒| 午夜精品爽啪视频| 亚洲国产视频一区| 樱花草国产18久久久久| 亚洲人吸女人奶水| 亚洲免费色视频| 亚洲另类色综合网站| 亚洲人吸女人奶水| 亚洲精品成人少妇| 一区二区三区免费| 亚洲国产成人va在线观看天堂| 亚洲精品大片www| 一区二区三区久久久| 亚洲精品午夜久久久| 亚洲三级免费电影| 一区二区免费看| 亚洲免费电影在线| 亚洲网友自拍偷拍| 日韩1区2区3区| 美国毛片一区二区三区| 久久机这里只有精品| 激情深爱一区二区| 国产成人av资源| 99久久精品国产麻豆演员表| 99久久777色| 欧美在线不卡一区| 欧美日韩aaaaa| 欧美大胆一级视频| 久久免费精品国产久精品久久久久| 久久综合久久99| 国产精品嫩草99a| 亚洲综合一区二区精品导航| 日韩成人免费电影| 精品一区二区在线播放| 国产成人精品aa毛片| av男人天堂一区| 精品污污网站免费看| 日韩一区二区在线看片| 久久久九九九九| 亚洲免费观看高清完整版在线观看 | 成人开心网精品视频| 91国偷自产一区二区三区观看| 欧美日本韩国一区二区三区视频 | 国产精品久久毛片a| 一二三四社区欧美黄| 麻豆专区一区二区三区四区五区| 国产乱码一区二区三区| 91麻豆6部合集magnet| 欧美一级一区二区| 国产女同互慰高潮91漫画| 一区二区三区在线观看动漫| 日本 国产 欧美色综合| 波多野结衣中文一区| 欧美一区二区三区四区久久| 欧美国产成人精品| 日本中文在线一区| 不卡视频在线看| 日韩视频在线永久播放| 国产精品久久久久影视| 奇米精品一区二区三区四区| 不卡的电视剧免费网站有什么| 91精品蜜臀在线一区尤物| 欧美激情一区二区三区全黄| 五月婷婷综合在线| 99视频热这里只有精品免费| 日韩欧美中文字幕精品| 亚洲激情五月婷婷| 成人晚上爱看视频| 欧美r级电影在线观看| 亚洲成人一区在线| 99麻豆久久久国产精品免费| 日韩午夜在线观看| 亚洲成人黄色小说| 一本久久综合亚洲鲁鲁五月天| 久久综合丝袜日本网| 日韩国产欧美一区二区三区| 99re这里只有精品视频首页| 2020国产成人综合网| 琪琪久久久久日韩精品| 色94色欧美sute亚洲线路二| 中文av一区特黄| 国产精品白丝av| 精品国产99国产精品| 日本欧美在线看| 欧美精品成人一区二区三区四区| 亚洲视频你懂的| 91影视在线播放| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 蜜桃91丨九色丨蝌蚪91桃色| 555夜色666亚洲国产免| 亚洲最新视频在线观看| av色综合久久天堂av综合| 欧美国产日韩亚洲一区| 国产一区二区影院| 精品国产一区二区三区久久影院| 三级一区在线视频先锋 | 日韩电影在线看| 欧美三级乱人伦电影| 一区二区在线看| 91国产精品成人| 亚洲一区免费观看| 欧美日韩三级一区| 奇米影视一区二区三区小说| 日韩一区二区在线观看视频|