WordPress.org

Make WordPress Core

Ticket #13407: 13407.patch

File 13407.patch, 3.8 KB (added by hakre, 5 years ago)
  • wp-testlib/base.php

     
    393393         */ 
    394394        function isTracTicketClosed($trac_url, $ticket_id) { 
    395395                #TODO: cache it 
    396                 $trac_url = rtrim($trac_url, '/'); 
    397                 $ticket_tsv = file_get_contents("$trac_url/ticket/$ticket_id?format=tab"); 
     396                $trac_url   = rtrim($trac_url, '/'); 
     397                $url        = sprintf('%s/ticket/%s?format=tab', $trac_url, $ticket_id); 
     398                $ticket_tsv = file_get_contents($url); 
    398399                if (false === $ticket_tsv) { 
    399400                        return null; 
    400401                } 
     
    410411                $tabs = explode("\t", $lines[1]); 
    411412                return 'closed' === $tabs[$status_idx]; 
    412413        } 
     414         
     415        /** 
     416         * Skips the current test if there is an open ticket in a trac 
     417         * based bug-tracker 
     418         *  
     419         * @param string $trac_domain domain name of trac webapplication 
     420         * @param string $ticket_id ticket id 
     421         * @return void 
     422         */ 
     423        private function _knownBugTrac($trac_domain, $ticket_id) { 
     424                if ( !TEST_FORCE_KNOWN_BUGS  
     425                     && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed( 'http://' . $trac_domain, $ticket_id )) ) { 
     426                        $this->markTestSkipped(); 
     427                } 
     428        } 
    413429 
    414430        /** 
    415431         * Skips the current test if there is open WordPress ticket with id $ticket_id 
    416432         */ 
    417433        function knownWPBug($ticket_id) { 
    418                 if (!TEST_FORCE_KNOWN_BUGS && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed('http://trac.wordpress.org', $ticket_id))) { 
    419                         $this->markTestSkipped(); 
    420                 } 
     434                $this->_knownBugTrac('trac.wordpress.org', $ticket_id); 
    421435        } 
    422436 
    423437        /** 
    424438         * Skips the current test if there is open WordPress MU ticket with id $ticket_id 
    425439         */ 
    426440        function knownMUBug($ticket_id) { 
    427                 if (!TEST_FORCE_KNOWN_BUGS && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed('http://trac.mu.wordpress.org', $ticket_id))) { 
    428                         $this->markTestSkipped(); 
    429                 } 
     441                $this->_knownBugTrac('trac.mu.wordpress.org', $ticket_id); 
    430442        } 
    431443 
    432444        /**i 
    433445         * Skips the current test if there is open plugin ticket with id $ticket_id 
    434446         */ 
    435447        function knownPluginBug($ticket_id) { 
    436                 if (!TEST_FORCE_KNOWN_BUGS && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed('http://dev.wp-plugins.org', $ticket_id))) { 
    437                         $this->markTestSkipped(); 
    438                 } 
     448                $this->_knownBugTrac('dev.wp-plugins.org', $ticket_id); 
    439449        } 
    440450 
    441451        // convenience function: return the # of posts associated with a tag 
     
    513523        echo "\n\nUse -t TestCaseName to run individual test cases\n";   
    514524} 
    515525 
    516 function wptest_run_tests($classes, $classname='') { 
    517         $suite = new PHPUnit_Framework_TestSuite(); 
    518         foreach ($classes as $testcase) 
    519                 if (!$classname or strtolower($testcase) == strtolower($classname)) { 
     526function wptest_run_tests($classes, $filter='') { 
     527        $suite  = new PHPUnit_Framework_TestSuite(); 
     528         
     529        $filter_do = (bool) strlen($filter); 
     530        $filter_ok = true; 
     531        if ($filter_do) { 
     532                if ('!' == $filter[0]) { 
     533                        $filter = substr($filter, 1); 
     534                        $filter_ok = false; 
     535                } 
     536                $filter_classes = explode(',',$filter); 
     537                $filter_classes = array_map('strtolower', $filter_classes); 
     538                $filter_classes = array_map('trim', $filter_classes); 
     539        }        
     540         
     541        foreach ($classes as $testcase) {                
     542                $match = $filter_do ? in_array(strtolower($testcase), $filter_classes) : true; 
     543                $add   = $filter_ok ? $match : !$match;           
     544                if ($add) 
    520545                        $suite->addTestSuite($testcase); 
    521                 } 
     546        } 
    522547 
    523548        #return PHPUnit::run($suite); 
    524549        $result = new PHPUnit_Framework_TestResult; 
    525550        require_once('PHPUnit/TextUI/ResultPrinter.php'); 
    526         $printer = new PHPUnit_TextUI_ResultPrinter(NULL,true,true); 
     551        $printer = new PHPUnit_TextUI_ResultPrinter( NULL, true, $colors = !((bool) stristr(PHP_OS, 'WIN')) ); 
    527552        $result->addListener($printer); 
    528553        return array($suite->run($result), $printer); 
    529554} 
  • wp-test.cmd

     
     1@ECHO OFF 
     2php wp-test.php %* 
     3pause 
     4 No newline at end of file