Make WordPress Core

Changeset 128 in tests for wp-testcase/test_query.php


Ignore:
Timestamp:
12/07/2007 02:16:19 AM (19 years ago)
Author:
tellyworth
Message:

add date archive tests, fix cat/tag paged tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_query.php

    r127 r128  
    88class TestWPQuery extends _WPDataset1 {
    99        var $use_verbose_page_rules = true;
    10        
     10
    1111        function setUp() {
    1212                parent::setUp();
     
    1515                $wp_rewrite->flush_rules();
    1616                $wp_rewrite->use_verbose_page_rules = $this->use_verbose_page_rules;
    17                
     17
    1818        }
    1919
     
    3232        }
    3333
     34        function _all_post_ids($type='post') {
     35                global $wpdb;
     36                $type = $wpdb->escape($type);
     37                return $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type='{$type}' and post_status='publish'");
     38        }
    3439
    3540        // this will check each of the wp_query is_* functions/properties
     
    8792                $page_id = $this->_get_post_id_by_name('about');
    8893                $this->http(get_permalink($page_id));
    89                
     94
    9095                $this->assertQueryTrue('is_page');
    9196        }
     
    97102                $this->assertQueryTrue('is_page');
    98103        }
    99        
     104
    100105        function test_child_page_1() {
    101106                $page_id = $this->_get_post_id_by_name('child-page-1');
     
    104109                $this->assertQueryTrue('is_page');
    105110        }
    106        
     111
    107112        function test_child_page_2() {
    108113                $page_id = $this->_get_post_id_by_name('child-page-2');
     
    111116                $this->assertQueryTrue('is_page');
    112117        }
    113        
     118
    114119        // '(about)/trackback/?$' => 'index.php?pagename=$matches[1]&tb=1'
    115120        function test_page_trackback() {
     
    119124                        $url = get_permalink($page_id);
    120125                        $this->http("{$url}trackback/");
    121                
     126
    122127                        // make sure the correct wp_query flags are set
    123128                        $this->assertQueryTrue('is_page', 'is_trackback');
    124                        
     129
    125130                        // make sure the correct page was fetched
    126131                        global $wp_query;
     
    128133                }
    129134        }
    130        
     135
    131136        //'(about)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?pagename=$matches[1]&feed=$matches[2]'
    132137        function test_page_feed() {
     
    136141                        $url = get_permalink($page_id);
    137142                        $this->http("{$url}feed/");
    138                
     143
    139144                        // make sure the correct wp_query flags are set
    140145                        $this->assertQueryTrue('is_page', 'is_feed', 'is_comment_feed');
    141                        
     146
    142147                        // make sure the correct page was fetched
    143148                        global $wp_query;
     
    154159                        $url = get_permalink($page_id);
    155160                        $this->http("{$url}feed/atom/");
    156                
     161
    157162                        // make sure the correct wp_query flags are set
    158163                        $this->assertQueryTrue('is_page', 'is_feed', 'is_comment_feed');
    159                        
     164
    160165                        // make sure the correct page was fetched
    161166                        global $wp_query;
     
    171176                        $url = get_permalink($page_id);
    172177                        $this->http("{$url}page/2/");
    173                
     178
    174179                        // make sure the correct wp_query flags are set
    175180                        $this->assertQueryTrue('is_page', 'is_paged');
    176                        
     181
    177182                        // make sure the correct page was fetched
    178183                        global $wp_query;
     
    187192                // identical to /about/page/2/ ?
    188193                $this->http('/about/2/');
    189                
     194
    190195                $this->assertQueryTrue('is_page', 'is_paged');
    191196        }
    192        
     197
    193198        // FIXME: no tests for these yet
    194199        // 'about/attachment/([^/]+)/?$' => 'index.php?attachment=$matches[1]',
     
    201206        function test_main_feed_2() {
    202207                $feeds = array('feed', 'rdf', 'rss', 'rss2', 'atom');
    203                
     208
    204209                // long version
    205210                foreach ($feeds as $feed) {
    206211                        $this->http("/feed/{$feed}/");
    207                        
     212
    208213                        $this->assertQueryTrue('is_feed');
    209214                }
    210                
     215
    211216                // short version
    212217                foreach ($feeds as $feed) {
    213218                        $this->http("/{$feed}/");
    214                        
     219
    215220                        $this->assertQueryTrue('is_feed');
    216221                }
    217                
    218         }
    219        
     222
     223        }
     224
    220225        function test_main_feed() {
    221226
     
    227232        }
    228233
    229        
     234
    230235        // 'page/?([0-9]{1,})/?$' => 'index.php?&paged=$matches[1]',
    231236        function test_paged() {
     
    235240                }
    236241        }
    237        
     242
    238243        // 'comments/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]&withcomments=1',
    239244        // 'comments/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?&feed=$matches[1]&withcomments=1',
     
    242247                $this->http(get_post_comments_feed_link($this->_get_post_id_by_name('hello-world')));
    243248                $this->assertQueryTrue('is_feed', 'is_single', 'is_singular', 'is_comment_feed');
    244                
     249
    245250                // check the long form
    246251                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     
    265270                $this->assertQueryTrue('is_home', 'is_paged');
    266271        }
    267        
    268        
     272
     273
    269274        // 'search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[1]&feed=$matches[2]',
    270275        // 'search/(.+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[1]&feed=$matches[2]',
     
    284289                }
    285290        }
    286        
     291
    287292        // 'search/(.+)/page/?([0-9]{1,})/?$' => 'index.php?s=$matches[1]&paged=$matches[2]',
    288293        function test_search_paged() {
     
    290295                $this->assertQueryTrue('is_search', 'is_paged');
    291296        }
    292        
     297
    293298        // 'search/(.+)/?$' => 'index.php?s=$matches[1]',
    294299        function test_search() {
     
    296301                $this->assertQueryTrue('is_search');
    297302        }
    298        
     303
    299304        // 'category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',
    300305        // 'category/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?category_name=$matches[1]&feed=$matches[2]',
     
    314319                }
    315320        }
    316        
     321
    317322        // 'category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]',
    318323        function test_category_paged() {
    319                 $this->http('/category/cat-a/page/2/');
     324                $this->http('/category/cat-a/page/1/');
    320325                $this->assertQueryTrue('is_archive', 'is_category', 'is_paged');
    321326        }
    322        
     327
    323328        // 'category/(.+?)/?$' => 'index.php?category_name=$matches[1]',
    324329        function test_category() {
     
    326331                $this->assertQueryTrue('is_archive', 'is_category');
    327332        }
    328        
     333
    329334        // 'tag/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[1]&feed=$matches[2]',
    330335        // 'tag/(.+?)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag=$matches[1]&feed=$matches[2]',
     
    344349                }
    345350        }
    346        
     351
    347352        // 'tag/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?tag=$matches[1]&paged=$matches[2]',
    348353        function test_tag_paged() {
    349                 $this->http('/tag/tag-a/page/2/');
     354                $this->http('/tag/tag-a/page/1/');
    350355                $this->assertQueryTrue('is_archive', 'is_tag', 'is_paged');
    351356        }
    352        
     357
    353358        // 'tag/(.+?)/?$' => 'index.php?tag=$matches[1]',
    354359        function test_tag() {
     
    356361                $this->assertQueryTrue('is_archive', 'is_tag');
    357362        }
    358        
     363
    359364        // 'author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',
    360365        // 'author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',
     
    380385                $this->assertQueryTrue('is_archive', 'is_author', 'is_paged');
    381386        }
    382        
     387
    383388        // 'author/([^/]+)/?$' => 'index.php?author_name=$matches[1]',
    384389        function test_author() {
     
    386391                $this->assertQueryTrue('is_archive', 'is_author');
    387392        }
    388        
    389393
    390394        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]',
    391395        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]',
     396        function test_ymd_feed() {
     397                // check the long form
     398                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     399                foreach ($types as $type) {
     400                                $this->http("/2007/09/04/feed/{$type}");
     401                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_day', 'is_date');
     402                }
     403
     404                // check the short form
     405                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     406                foreach ($types as $type) {
     407                                $this->http("/2007/09/04/{$type}");
     408                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_day', 'is_date');
     409                }
     410        }
     411
    392412        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]',
     413        function test_ymd_paged() {
     414                $this->http('/2007/09/04/page/2/');
     415                $this->assertQueryTrue('is_archive', 'is_day', 'is_date', 'is_paged');
     416        }
     417
    393418        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]',
     419        function test_ymd() {
     420                $this->http('/2007/09/04/');
     421                $this->assertQueryTrue('is_archive', 'is_day', 'is_date');
     422        }
     423       
    394424        // '([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]',
    395425        // '([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]',
     426        function test_ym_feed() {
     427                // check the long form
     428                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     429                foreach ($types as $type) {
     430                                $this->http("/2007/09/feed/{$type}");
     431                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_month', 'is_date');
     432                }
     433
     434                // check the short form
     435                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     436                foreach ($types as $type) {
     437                                $this->http("/2007/09/{$type}");
     438                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_month', 'is_date');
     439                }
     440        }
     441
    396442        // '([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]',
     443        function test_ym_paged() {
     444                $this->http('/2007/09/page/2/');
     445                $this->assertQueryTrue('is_archive', 'is_date', 'is_month', 'is_paged');
     446        }
     447
    397448        // '([0-9]{4})/([0-9]{1,2})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]',
     449        function test_ym() {
     450                $this->http('/2007/09/');
     451                $this->assertQueryTrue('is_archive', 'is_date', 'is_month');
     452        }
     453
    398454        // '([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&feed=$matches[2]',
    399455        // '([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&feed=$matches[2]',
     456        function test_y_feed() {
     457                // check the long form
     458                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     459                foreach ($types as $type) {
     460                                $this->http("/2007/feed/{$type}");
     461                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_year', 'is_date');
     462                }
     463
     464                // check the short form
     465                $types = array('feed', 'rdf', 'rss', 'rss2', 'atom');
     466                foreach ($types as $type) {
     467                                $this->http("/2007/{$type}");
     468                                $this->assertQueryTrue('is_archive', 'is_feed', 'is_year', 'is_date');
     469                }
     470        }
     471
    400472        // '([0-9]{4})/page/?([0-9]{1,})/?$' => 'index.php?year=$matches[1]&paged=$matches[2]',
     473        function test_y_paged() {
     474                $this->http('/2007/page/2/');
     475                $this->assertQueryTrue('is_archive', 'is_date', 'is_year', 'is_paged');
     476        }
     477
    401478        // '([0-9]{4})/?$' => 'index.php?year=$matches[1]',
     479        function test_y() {
     480                $this->http('/2007/');
     481                $this->assertQueryTrue('is_archive', 'is_date', 'is_year');
     482        }
     483
     484
    402485        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1',
    403486        // '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]',
     
    413496        // '[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',
    414497        // '[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?attachment=$matches[1]&feed=$matches[2]',
    415         //
    416 
    417                
     498        //
     499
    418500}
    419501
Note: See TracChangeset for help on using the changeset viewer.