| | 49 | |
| | 50 | function _option_filter() { |
| | 51 | return current_filter(); |
| | 52 | } |
| | 53 | |
| | 54 | function test_filter_order() { |
| | 55 | $option = rand_str(); |
| | 56 | add_option( $option, 'value' ); |
| | 57 | |
| | 58 | // override update_option() |
| | 59 | add_filter( 'pre_update_option_' . $option, array( $this, '_option_filter' ) ); |
| | 60 | $this->assertTrue( update_option( $option, 'value' ) ); |
| | 61 | $this->assertEquals( 'pre_update_option_' . $option, get_option( $option ) ); |
| | 62 | |
| | 63 | remove_filter( 'pre_update_option_' . $option, array( $this, '_option_filter' ) ); |
| | 64 | update_option( $option, 'value' ); |
| | 65 | |
| | 66 | $this->assertEquals( 'value', get_option( $option ) ); |
| | 67 | // override get_option() at the end |
| | 68 | add_filter( 'option_' . $option, array( $this, '_option_filter' ) ); |
| | 69 | $this->assertEquals( 'option_' . $option, get_option( $option ) ); |
| | 70 | |
| | 71 | delete_option( $option ); |
| | 72 | // the default value trumps the option_$option filter |
| | 73 | $this->assertEquals( 'default', get_option( $option, 'default' ) ); |
| | 74 | // but pre_option_$option beats default |
| | 75 | add_filter( 'pre_option_' . $option, array( $this, '_option_filter' ) ); |
| | 76 | $this->assertEquals( 'pre_option_' . $option, get_option( $option, 'default' ) ); |
| | 77 | } |
| | 146 | |
| | 147 | function _option_filter() { |
| | 148 | return current_filter(); |
| | 149 | } |
| | 150 | |
| | 151 | function test_filter_order() { |
| | 152 | $option = rand_str(); |
| | 153 | add_site_option( $option, 'value' ); |
| | 154 | |
| | 155 | // override update_site_option() |
| | 156 | add_filter( 'pre_update_site_option_' . $option, array( $this, '_option_filter' ) ); |
| | 157 | $this->assertTrue( update_site_option( $option, 'value' ) ); |
| | 158 | $this->assertEquals( 'pre_update_site_option_' . $option, get_site_option( $option ) ); |
| | 159 | |
| | 160 | remove_filter( 'pre_update_site_option_' . $option, array( $this, '_option_filter' ) ); |
| | 161 | update_site_option( $option, 'value' ); |
| | 162 | |
| | 163 | $this->assertEquals( 'value', get_site_option( $option ) ); |
| | 164 | // override get_site_option() at the end |
| | 165 | add_filter( 'site_option_' . $option, array( $this, '_option_filter' ) ); |
| | 166 | $this->assertEquals( 'site_option_' . $option, get_site_option( $option ) ); |
| | 167 | |
| | 168 | delete_site_option( $option ); |
| | 169 | // the default value trumps the site_option_$option filter |
| | 170 | $this->assertEquals( 'default', get_site_option( $option, 'default' ) ); |
| | 171 | // but pre_site_option_$option beats default |
| | 172 | add_filter( 'pre_site_option_' . $option, array( $this, '_option_filter' ) ); |
| | 173 | $this->assertEquals( 'pre_site_option_' . $option, get_site_option( $option, 'default' ) ); |
| | 174 | } |