WordPress.org

Make WordPress Core

Ticket #7: trash.mu.stuff.diff

File trash.mu.stuff.diff, 8.3 KB (added by duck_, 3 years ago)
  • wp-test.php

     
    11<?php 
    22/** 
    33 * wp-test.php 
    4  *  
     4 * 
    55 * WordPress Testrunner 
    6  *  
     6 * 
    77 * Example: 
    8  *  
     8 * 
    99 * # php wp-test.php -l 
    10  *  
     10 * 
    1111 */ 
    1212 
    1313// parse options 
    14 $options = 'v:t:r:sfln'; 
    15 if (is_callable('getopt')) { 
    16         $opts = getopt($options); 
    17 } else {         
     14$options = 't:r:sfln'; 
     15if ( is_callable('getopt') ) { 
     16        $opts = getopt( $options ); 
     17} else { 
    1818        include( dirname(__FILE__) . '/wp-testlib/getopt.php' ); 
    19         $opts = getoptParser::getopt($options); 
     19        $opts = getoptParser::getopt( $options ); 
    2020} 
    2121 
    22 define('DIR_TESTROOT', realpath(dirname(__FILE__))); 
    23 if (!defined('DIR_TESTCASE')) { 
    24         define('DIR_TESTCASE', './wp-testcase'); 
    25 } 
    26 if (!defined('DIR_TESTDATA')) 
    27         define('DIR_TESTDATA', './wp-testdata'); 
    28 define('TEST_WP', true); 
    29 define('TEST_MU', (@$opts['v'] == 'mu')); 
    30 define('TEST_SKIP_KNOWN_BUGS', array_key_exists('s', $opts)); 
    31 define('TEST_FORCE_KNOWN_BUGS', array_key_exists('f', $opts)); 
    32 #define('SAVEQUERIES', true); 
     22define( 'DIR_TESTROOT', realpath(dirname(__FILE__)) ); 
    3323 
    34 if (!empty($opts['r'])) 
    35         define('DIR_WP', realpath($opts['r'])); 
     24if ( ! defined('DIR_TESTCASE') ) 
     25        define( 'DIR_TESTCASE', './wp-testcase' ); 
     26 
     27if ( ! defined('DIR_TESTDATA') ) 
     28        define( 'DIR_TESTDATA', './wp-testdata' ); 
     29 
     30define( 'TEST_SKIP_KNOWN_BUGS', array_key_exists('s', $opts) ); 
     31define( 'TEST_FORCE_KNOWN_BUGS', array_key_exists('f', $opts) ); 
     32// define('SAVEQUERIES', true); 
     33 
     34if ( ! empty($opts['r']) ) 
     35        define( 'DIR_WP', realpath($opts['r']) ); 
    3636else 
    37         if (!empty($opts['v'])) 
    38                 define('DIR_WP', DIR_TESTROOT.'/wordpress-'.$opts['v']); 
    39         else 
    40                 define('DIR_WP', DIR_TESTROOT.'/wordpress'); 
     37        define( 'DIR_WP', DIR_TESTROOT.'/wordpress' ); 
    4138 
    4239// make sure all useful errors are displayed during setup 
    43 error_reporting(E_ALL & ~E_DEPRECATED); 
    44 ini_set('display_errors', true); 
     40error_reporting( E_ALL & ~E_DEPRECATED ); 
     41ini_set( 'display_errors', true ); 
    4542 
    46 require_once(DIR_TESTROOT.'/wp-testlib/base.php'); 
    47 require_once(DIR_TESTROOT.'/wp-testlib/utils.php'); 
     43require_once( DIR_TESTROOT.'/wp-testlib/base.php' ); 
     44require_once( DIR_TESTROOT.'/wp-testlib/utils.php' ); 
    4845 
    4946// configure wp 
    5047 
    51 require_once(DIR_TESTROOT.'/wp-config.php'); 
    52 define('ABSPATH', realpath(DIR_WP).'/'); 
     48require_once( DIR_TESTROOT.'/wp-config.php' ); 
     49define( 'ABSPATH', DIR_WP.'/' ); 
    5350 
    54 if (!defined('DIR_TESTPLUGINS')) 
    55         define('DIR_TESTPLUGINS', './wp-plugins'); 
     51if ( ! defined('DIR_TESTPLUGINS') ) 
     52        define( 'DIR_TESTPLUGINS', DIR_TESTROOT.'/wp-plugins' ); 
    5653 
    5754// override stuff 
    58  
    59 require_once(DIR_TESTROOT.'/wp-testlib/mock-mailer.php'); 
     55require_once( DIR_TESTROOT.'/wp-testlib/mock-mailer.php' ); 
    6056$GLOBALS['phpmailer'] = new MockPHPMailer(); 
    6157 
    6258// install wp 
    63 define('WP_BLOG_TITLE', rand_str()); 
    64 define('WP_USER_NAME', rand_str()); 
    65 define('WP_USER_EMAIL', rand_str().'@example.com'); 
     59define( 'WP_BLOG_TITLE', rand_str() ); 
     60define( 'WP_USER_NAME', rand_str() ); 
     61define( 'WP_USER_EMAIL', rand_str().'@example.com' ); 
    6662 
    67  
    6863// initialize wp 
    69 define('WP_INSTALLING', 1); 
     64define( 'WP_INSTALLING', 1 ); 
    7065$_SERVER['PATH_INFO'] = $_SERVER['SCRIPT_NAME']; // prevent a warning from some sloppy code in wp-settings.php 
    71 require_once(ABSPATH.'wp-settings.php'); 
     66require_once( ABSPATH.'wp-settings.php' ); 
    7267 
    7368// Allow tests to override wp_die 
    7469add_filter( 'wp_die_handler', '_wp_die_handler_filter' ); 
    7570 
    7671drop_tables(); 
    7772 
    78 if (TEST_MU) 
    79         require_once(ABSPATH.'wp-admin/upgrade-functions.php'); 
    80 else 
    81         require_once(ABSPATH.'wp-admin/includes/upgrade.php'); 
    82 wp_install(WP_BLOG_TITLE, WP_USER_NAME, WP_USER_EMAIL, true); 
    8373 
    84 if (TEST_MU) { 
    85                 // wp-settings.php would normally init this stuff, but that doesn't work because we've 
    86                 // only just installed 
    87                 $GLOBALS['blog_id'] = 1; 
    88                 $GLOBALS['wpdb']->blogid = 1; 
    89                 $GLOBALS['current_blog'] = $GLOBALS['wpdb']->get_results('SELECT * from wp_blogs where blog_id=1'); 
    90 } 
     74require_once( ABSPATH.'wp-admin/includes/upgrade.php' ); 
     75wp_install( WP_BLOG_TITLE, WP_USER_NAME, WP_USER_EMAIL, true ); 
    9176 
    9277// make sure we're installed 
    93 assert(true == is_blog_installed()); 
     78assert( is_blog_installed() ); 
    9479 
    9580// include plugins for testing, if any 
    96 if (is_dir(DIR_TESTPLUGINS)) { 
     81if ( is_dir(DIR_TESTPLUGINS) ) { 
    9782        $plugins = glob(realpath(DIR_TESTPLUGINS).'/*.php'); 
    98         foreach ($plugins as $plugin) 
     83        foreach ( $plugins as $plugin ) 
    9984                include_once($plugin); 
    10085} 
    10186 
    10287// needed for jacob's tests 
    103 ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . ABSPATH . '/wp-includes'); 
    104 define('PHPUnit_MAIN_METHOD', false); 
     88ini_set( 'include_path', ini_get('include_path') . PATH_SEPARATOR . ABSPATH . '/wp-includes' ); 
     89define( 'PHPUnit_MAIN_METHOD', false ); 
    10590$original_wpdb = $GLOBALS['wpdb']; 
    10691 
    107 include_once(DIR_TESTDATA . '/sample_blogs.php'); 
     92include_once( DIR_TESTDATA . '/sample_blogs.php' ); 
    10893// include all files in DIR_TESTCASE, and fetch all the WPTestCase descendents 
    109 $files = wptest_get_all_test_files(DIR_TESTCASE); 
    110 foreach ($files as $file) { 
     94$files = wptest_get_all_test_files( DIR_TESTCASE ); 
     95foreach ( $files as $file ) 
    11196        require_once($file); 
    112 } 
    11397$classes = wptest_get_all_test_cases(); 
    11498 
    11599// some of jacob's tests clobber the wpdb object, so restore it 
     
    119103        wptest_listall_testcases($classes); 
    120104} else { 
    121105        do_action('test_start'); 
    122          
     106 
    123107        // hide warnings during testing, since that's the normal WP behaviour 
    124         if ( !WP_DEBUG ) { 
    125                 error_reporting(E_ALL ^ E_NOTICE); 
    126         } 
     108        if ( ! WP_DEBUG ) 
     109                error_reporting( E_ALL ^ E_NOTICE ); 
     110 
    127111        // run the tests and print the results 
    128         list ($result, $printer) = wptest_run_tests($classes, @$opts['t']); 
    129         wptest_print_result($printer,$result); 
     112        list( $result, $printer ) = wptest_run_tests( $classes, @$opts['t'] ); 
     113        wptest_print_result( $printer, $result ); 
    130114} 
    131 if ( !isset($opts['n']) ) { 
     115if ( ! isset($opts['n']) ) { 
    132116        // clean up the database 
    133117        drop_tables(); 
    134118} 
  • wp-testlib/base.php

     
    172172        function _delete_all_posts() { 
    173173                global $wpdb; 
    174174 
    175                 $all_posts = $wpdb->get_col("SELECT ID from {$wpdb->posts}"); 
    176                 if ($all_posts) { 
    177                         foreach ($all_posts as $id) 
    178                                 wp_delete_post($id); 
     175                $posts = $wpdb->get_col( "SELECT ID from {$wpdb->posts}" ); 
     176                if ( $posts ) { 
     177                        foreach ( $posts as $id ) 
     178                                wp_delete_post( $id, true ); 
    179179                } 
    180180        } 
    181181 
     
    421421        } 
    422422 
    423423        /** 
    424          * Skips the current test if there is open WordPress MU ticket with id $ticket_id 
    425          */ 
    426         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                 } 
    430         } 
    431  
    432         /** 
    433424         * Skips the current test if there is open plugin ticket with id $ticket_id 
    434425         */ 
    435426        function knownPluginBug($ticket_id) { 
    436                 if (!TEST_FORCE_KNOWN_BUGS && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed('http://dev.wp-plugins.org', $ticket_id))) { 
     427                if (!TEST_FORCE_KNOWN_BUGS && (TEST_SKIP_KNOWN_BUGS || !$this->isTracTicketClosed('http://plugins.trac.wordpress.org', $ticket_id))) { 
    437428                        $this->markTestSkipped(); 
    438429                } 
    439430        } 
  • wp-testcase/test_includes_theme.php

     
    1313        function test_get_themes_default() { 
    1414                $themes = get_themes(); 
    1515 
    16                 // two themes are included by default: Classic and Default 
    17                 $this->assertTrue(is_array($themes['WordPress Classic'])); 
    18                 if (TEST_MU) { 
    19                         $this->assertTrue(is_array($themes['WordPress mu Default'])); 
    20                         $this->assertTrue(is_array($themes['WordPress mu Default/home'])); 
    21                 } 
    22                 else 
    23                         $this->assertTrue(is_array($themes['WordPress Default'])); 
     16                // Twenty Ten is the default theme 
     17                $this->assertTrue(is_array($themes['Twenty Ten'])); 
    2418        } 
    2519 
    2620        function test_get_themes_contents() {                    
  • wp-testcase/test_admin_includes_theme.php

     
    2424        } 
    2525         
    2626        function test_page_templates() { 
    27                 $this->knownWPBug(10959); 
    2827                $themes = get_themes(); 
    2928 
    3029                $theme = $themes['Page Template Theme'];