Make WordPress Core

Changeset 26456


Ignore:
Timestamp:
11/28/2013 05:09:06 AM (8 years ago)
Author:
helen
Message:

Add remove_option(), remove_options(), and get_options() methods to WP_Screen, along with unit tests. props ocean90, DrewAPicture. fixes #25799.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/screen.php

    r24415 r26456  
    617617    public function add_option( $option, $args = array() ) {
    618618        $this->_options[ $option ] = $args;
     619    }
     620
     621    /**
     622     * Remove an option from the screen.
     623     *
     624     * @since 3.8.0
     625     *
     626     * @param string $option Option ID.
     627     */
     628    public function remove_option( $option ) {
     629        unset( $this->_options[ $option ] );
     630    }
     631
     632    /**
     633     * Remove all options from the screen.
     634     *
     635     * @since 3.8.0
     636     */
     637    public function remove_options() {
     638        $this->_options = array();
     639    }
     640
     641    /**
     642     * Get the options registered for the screen.
     643     *
     644     * @since 3.8.0
     645     *
     646     * @return array Options with arguments.
     647     */
     648    public function get_options() {
     649        return $this->_options;
    619650    }
    620651
  • trunk/tests/phpunit/tests/admin/includesScreen.php

    r25002 r26456  
    176176    }
    177177
     178    /**
     179     * @ticket 25799
     180     */
     181    function test_options() {
     182        $option = rand_str();
     183        $option_args = array(
     184            'label'   => 'Option',
     185            'default' => 10,
     186            'option'  => $option
     187        );
     188
     189        $screen = get_current_screen();
     190
     191        $screen->add_option( $option, $option_args );
     192        $this->assertEquals( $screen->get_option( $option ), $option_args );
     193
     194        $options = $screen->get_options();
     195        $this->assertArrayHasKey( $option, $options );
     196
     197        $screen->remove_option( $option );
     198        $this->assertNull( $screen->get_option( $option ) );
     199
     200        $screen->remove_options();
     201        $this->assertEquals( $screen->get_options(), array() );
     202    }
     203
    178204    function test_in_admin() {
    179205        $screen = get_current_screen();
Note: See TracChangeset for help on using the changeset viewer.