WordPress.org

Make WordPress Core

Changeset 1096 in tests


Ignore:
Timestamp:
10/28/12 19:26:47 (18 months ago)
Author:
westi
Message:

Actions/Filters: Add a test case for filter removal during processing. See #WP21169.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/filters.php

    r909 r1096  
    241241 
    242242    } 
     243 
     244    function _self_removal($tag) { 
     245        remove_action( $tag, array(&$this, '_self_removal'), 10, 1 ); 
     246        return $tag; 
     247    } 
     248 
     249        /** 
     250         * @ticket 21169 
     251         */ 
     252    function test_filter_removal_during_filter() { 
     253        $tag = rand_str(); 
     254        $a = new MockAction(); 
     255        $b = new MockAction(); 
     256 
     257        add_action( $tag, array(&$a, 'filter_append'), 11, 1 ); 
     258        add_action( $tag, array(&$b, 'filter_append'), 12, 1 ); 
     259        add_action( $tag, array(&$this, '_self_removal'), 10, 1 ); 
     260 
     261        $result = apply_filters($tag, $tag); 
     262        $this->assertEquals( 1, $a->get_call_count(), 'priority 11 filters should run after priority 10 empties itself' ); 
     263        $this->assertEquals( 1, $b->get_call_count(), 'priority 12 filters should run after priority 10 empties itself and priority 11 runs' ); 
     264        $this->assertEquals( $result, $tag . '_append_append', 'priority 11 and 12 filters should run after priority 10 empties itself' ); 
     265    } 
    243266} 
Note: See TracChangeset for help on using the changeset viewer.