Make WordPress Core


Ignore:
Timestamp:
10/08/2015 07:06:32 PM (11 years ago)
Author:
DrewAPicture
Message:

Administration: Add the ability to pass an array of screen IDs to add_meta_box() and remove_meta_box().

The $screen parameter in both functions can now accept a single screen ID, WP_Screen object, or an array of screen IDs.

Adds tests.

Props coffee2code, iamfriendly, madalinungureanu, mordauk, igmoweb, meloniq, DrewAPicture.
See #15000.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/admin/includesTemplate.php

    r25002 r34951  
    4646                $this->assertEquals('', checked(0,false,false));
    4747        }
     48
     49        public function test_add_meta_box() {
     50                global $wp_meta_boxes;
     51
     52                add_meta_box( 'testbox1', 'Test Metabox', '__return_false', 'post' );
     53               
     54                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['post']['advanced']['default'] );
     55        }
     56
     57        public function test_remove_meta_box() {
     58                global $wp_meta_boxes;
     59
     60                // Add a meta boxes to remove.
     61                add_meta_box( 'testbox1', 'Test Metabox', '__return_false', $current_screen = 'post' );
     62
     63                // Confirm it's there.
     64                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes[ $current_screen ]['advanced']['default'] );
     65
     66                // Remove the meta box.
     67                remove_meta_box( 'testbox1', $current_screen, 'advanced' );
     68
     69                // Check that it was removed properly (The meta box should be set to false once that it has been removed)
     70                $this->assertFalse( $wp_meta_boxes[ $current_screen ]['advanced']['default']['testbox1'] );
     71        }
     72
     73        /**
     74         * @ticket 15000
     75         */
     76        public function test_add_meta_box_on_multiple_screens() {
     77                global $wp_meta_boxes;
     78
     79                // Add a meta box to three different post types
     80                add_meta_box( 'testbox1', 'Test Metabox', '__return_false', array( 'post', 'comment', 'attachment' ) );
     81
     82                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['post']['advanced']['default'] );
     83                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['comment']['advanced']['default'] );
     84                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['attachment']['advanced']['default'] );
     85        }
     86
     87        /**
     88         * @ticket 15000
     89         */
     90        public function test_remove_meta_box_from_multiple_screens() {
     91                global $wp_meta_boxes;
     92
     93                // Add a meta box to three different screens.
     94                add_meta_box( 'testbox1', 'Test Metabox', '__return_false', array( 'post', 'comment', 'attachment' ) );
     95
     96                // Remove meta box from posts.
     97                remove_meta_box( 'testbox1', 'post', 'advanced' );
     98
     99                // Check that we have removed the meta boxes only from posts
     100                $this->assertFalse( $wp_meta_boxes['post']['advanced']['default']['testbox1'] );
     101                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['comment']['advanced']['default'] );
     102                $this->assertArrayHasKey( 'testbox1', $wp_meta_boxes['attachment']['advanced']['default'] );
     103
     104                // Remove the meta box from the other screens.
     105                remove_meta_box( 'testbox1', array( 'comment', 'attachment' ), 'advanced' );
     106
     107                $this->assertFalse( $wp_meta_boxes['comment']['advanced']['default']['testbox1'] );
     108                $this->assertFalse( $wp_meta_boxes['attachment']['advanced']['default']['testbox1'] );
     109        }
     110
    48111}
Note: See TracChangeset for help on using the changeset viewer.