Changeset 35810
- Timestamp:
- 12/06/2015 11:21:46 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-customize-manager.php
r35781 r35810 1050 1050 $setting = $id; 1051 1051 } else { 1052 $setting = new WP_Customize_Setting( $this, $id, $args ); 1052 $class = 'WP_Customize_Setting'; 1053 1054 /** This filter is documented in wp-includes/class-wp-customize-manager.php */ 1055 $args = apply_filters( 'customize_dynamic_setting_args', $args, $id ); 1056 1057 /** This filter is documented in wp-includes/class-wp-customize-manager.php */ 1058 $class = apply_filters( 'customize_dynamic_setting_class', $class, $id, $args ); 1059 1060 $setting = new $class( $this, $id, $args ); 1053 1061 } 1054 1062 -
trunk/tests/phpunit/tests/customize/manager.php
r35781 r35810 246 246 */ 247 247 function filter_customize_dynamic_setting_args_for_test_dynamic_settings( $setting_args, $setting_id ) { 248 $this->assertEquals( false, $setting_args, 'Expected $setting_args to be false by default.' );249 248 $this->assertInternalType( 'string', $setting_id ); 250 249 if ( in_array( $setting_id, array( 'foo', 'bar' ) ) ) { … … 543 542 544 543 /** 544 * @ticket 34597 545 */ 546 function test_add_setting_honoring_dynamic() { 547 $manager = new WP_Customize_Manager(); 548 549 $setting_id = 'dynamic'; 550 $setting = $manager->add_setting( $setting_id ); 551 $this->assertEquals( 'WP_Customize_Setting', get_class( $setting ) ); 552 $this->assertObjectNotHasAttribute( 'custom', $setting ); 553 $manager->remove_setting( $setting_id ); 554 555 add_filter( 'customize_dynamic_setting_class', array( $this, 'return_dynamic_customize_setting_class' ), 10, 3 ); 556 add_filter( 'customize_dynamic_setting_args', array( $this, 'return_dynamic_customize_setting_args' ), 10, 2 ); 557 $setting = $manager->add_setting( $setting_id ); 558 $this->assertEquals( 'Test_Dynamic_Customize_Setting', get_class( $setting ) ); 559 $this->assertObjectHasAttribute( 'custom', $setting ); 560 $this->assertEquals( 'foo', $setting->custom ); 561 } 562 563 /** 564 * Return 'Test_Dynamic_Customize_Setting' in 'customize_dynamic_setting_class. 565 * 566 * @param string $class Setting class. 567 * @param array $args Setting args. 568 * @param string $id Setting ID. 569 * @return string Setting class. 570 */ 571 function return_dynamic_customize_setting_class( $class, $id, $args ) { 572 unset( $args ); 573 if ( 0 === strpos( $id, 'dynamic' ) ) { 574 $class = 'Test_Dynamic_Customize_Setting'; 575 } 576 return $class; 577 } 578 579 /** 580 * Return 'Test_Dynamic_Customize_Setting' in 'customize_dynamic_setting_class. 581 * 582 * @param array $args Setting args. 583 * @param string $id Setting ID. 584 * @return string Setting args. 585 */ 586 function return_dynamic_customize_setting_args( $args, $id ) { 587 if ( 0 === strpos( $id, 'dynamic' ) ) { 588 $args['custom'] = 'foo'; 589 } 590 return $args; 591 } 592 593 /** 545 594 * @ticket 34596 546 595 */ … … 603 652 } 604 653 } 654 655 require_once ABSPATH . WPINC . '/class-wp-customize-setting.php'; 656 657 /** 658 * Class Test_Dynamic_Customize_Setting 659 * 660 * @see Tests_WP_Customize_Manager::test_add_setting_honoring_dynamic() 661 */ 662 class Test_Dynamic_Customize_Setting extends WP_Customize_Setting { 663 public $type = 'dynamic'; 664 public $custom; 665 }
Note: See TracChangeset
for help on using the changeset viewer.