Changeset 36586 for trunk/tests/phpunit/tests/customize/nav-menus.php
- Timestamp:
- 02/19/2016 06:40:06 PM (10 years ago)
- File:
-
- 1 edited
-
trunk/tests/phpunit/tests/customize/nav-menus.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/customize/nav-menus.php
r36414 r36586 354 354 $expected = array( 'type' => 'nav_menu_item' ); 355 355 $results = $menus->filter_dynamic_setting_args( $this->wp_customize, 'nav_menu_item[123]' ); 356 $this->assertEquals( $expected , $results);356 $this->assertEquals( $expected['type'], $results['type'] ); 357 357 358 358 $expected = array( 'type' => 'nav_menu' ); 359 359 $results = $menus->filter_dynamic_setting_args( $this->wp_customize, 'nav_menu[123]' ); 360 $this->assertEquals( $expected , $results);360 $this->assertEquals( $expected['type'], $results['type'] ); 361 361 } 362 362 … … 524 524 525 525 /** 526 * Test WP_Customize_Nav_Menus::customize_dynamic_partial_args(). 527 * 528 * @see WP_Customize_Nav_Menus::customize_dynamic_partial_args() 529 */ 530 function test_customize_dynamic_partial_args() { 531 do_action( 'customize_register', $this->wp_customize ); 532 533 $args = apply_filters( 'customize_dynamic_partial_args', false, 'nav_menu_instance[68b329da9893e34099c7d8ad5cb9c940]' ); 534 $this->assertInternalType( 'array', $args ); 535 $this->assertEquals( 'nav_menu_instance', $args['type'] ); 536 $this->assertEquals( array( $this->wp_customize->nav_menus, 'render_nav_menu_partial' ), $args['render_callback'] ); 537 $this->assertTrue( $args['container_inclusive'] ); 538 539 $args = apply_filters( 'customize_dynamic_partial_args', array( 'fallback_refresh' => false ), 'nav_menu_instance[4099c7d8ad5cb9c94068b329da9893e3]' ); 540 $this->assertInternalType( 'array', $args ); 541 $this->assertEquals( 'nav_menu_instance', $args['type'] ); 542 $this->assertEquals( array( $this->wp_customize->nav_menus, 'render_nav_menu_partial' ), $args['render_callback'] ); 543 $this->assertTrue( $args['container_inclusive'] ); 544 $this->assertFalse( $args['fallback_refresh'] ); 545 } 546 547 /** 526 548 * Test the customize_preview_init method. 527 549 * … … 533 555 534 556 $menus->customize_preview_init(); 535 $this->assertEquals( 10, has_action( 'template_redirect', array( $menus, 'render_menu' ) ) );536 557 $this->assertEquals( 10, has_action( 'wp_enqueue_scripts', array( $menus, 'customize_preview_enqueue_deps' ) ) ); 537 538 if ( ! isset( $_REQUEST[ WP_Customize_Nav_Menus::RENDER_QUERY_VAR ] ) ) { 539 $this->assertEquals( 1000, has_filter( 'wp_nav_menu_args', array( $menus, 'filter_wp_nav_menu_args' ) ) ); 540 $this->assertEquals( 10, has_filter( 'wp_nav_menu', array( $menus, 'filter_wp_nav_menu' ) ) ); 541 } 558 $this->assertEquals( 1000, has_filter( 'wp_nav_menu_args', array( $menus, 'filter_wp_nav_menu_args' ) ) ); 559 $this->assertEquals( 10, has_filter( 'wp_nav_menu', array( $menus, 'filter_wp_nav_menu' ) ) ); 542 560 } 543 561 … … 549 567 function test_filter_wp_nav_menu_args() { 550 568 do_action( 'customize_register', $this->wp_customize ); 551 $menus = new WP_Customize_Nav_Menus( $this->wp_customize );569 $menus = $this->wp_customize->nav_menus; 552 570 553 571 $results = $menus->filter_wp_nav_menu_args( array( … … 556 574 'walker' => '', 557 575 'menu' => wp_create_nav_menu( 'Foo' ), 576 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 558 577 ) ); 559 $this->assertEquals( 1, $results['can_partial_refresh'] ); 560 561 $expected = array( 562 'echo', 563 'can_partial_refresh', 564 'fallback_cb', 565 'instance_number', 566 'walker', 567 ); 578 $this->assertArrayHasKey( 'customize_preview_nav_menus_args', $results ); 579 568 580 $results = $menus->filter_wp_nav_menu_args( array( 569 581 'echo' => false, 570 582 'fallback_cb' => 'wp_page_menu', 571 583 'walker' => new Walker_Nav_Menu(), 584 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 572 585 ) ); 573 $this->assert EqualSets( $expected, array_keys( $results ));586 $this->assertArrayNotHasKey( 'customize_preview_nav_menus_args', $results ); 574 587 $this->assertEquals( 'wp_page_menu', $results['fallback_cb'] ); 575 $this->assertEquals( 0, $results['can_partial_refresh'] ); 576 577 $this->assertNotEmpty( $menus->preview_nav_menu_instance_args[ $results['instance_number'] ] ); 578 $preview_nav_menu_instance_args = $menus->preview_nav_menu_instance_args[ $results['instance_number'] ]; 579 $this->assertEquals( '', $preview_nav_menu_instance_args['fallback_cb'] ); 580 $this->assertEquals( '', $preview_nav_menu_instance_args['walker'] ); 581 $this->assertNotEmpty( $preview_nav_menu_instance_args['args_hash'] ); 588 589 $nav_menu_term = get_term( wp_create_nav_menu( 'Bar' ) ); 590 $results = $menus->filter_wp_nav_menu_args( array( 591 'echo' => true, 592 'fallback_cb' => 'wp_page_menu', 593 'walker' => '', 594 'menu' => $nav_menu_term, 595 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 596 ) ); 597 $this->assertArrayHasKey( 'customize_preview_nav_menus_args', $results ); 598 $this->assertEquals( $nav_menu_term->term_id, $results['customize_preview_nav_menus_args']['menu'] ); 582 599 } 583 600 … … 596 613 'fallback_cb' => 'wp_page_menu', 597 614 'walker' => '', 615 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 598 616 ) ); 599 617 … … 602 620 $nav_menu_content = ob_get_clean(); 603 621 604 $object_args = json_decode( json_encode( $args ), false ); 605 $result = $menus->filter_wp_nav_menu( $nav_menu_content, $object_args ); 606 $expected = sprintf( 607 '<div class="partial-refreshable-nav-menu partial-refreshable-nav-menu-%1$d menu">', 608 $args['instance_number'] 609 ); 610 $this->assertStringStartsWith( $expected, $result ); 622 $result = $menus->filter_wp_nav_menu( $nav_menu_content, (object) $args ); 623 624 $this->assertContains( sprintf( ' data-customize-partial-id="nav_menu_instance[%s]"', $args['customize_preview_nav_menus_args']['args_hmac'] ), $result ); 625 $this->assertContains( ' data-customize-partial-type="nav_menu_instance"', $result ); 626 $this->assertContains( ' data-customize-partial-placement-context="', $result ); 611 627 } 612 628 … … 623 639 624 640 $this->assertTrue( wp_script_is( 'customize-preview-nav-menus' ) ); 625 $this->assertEquals( 10, has_action( 'wp_print_footer_scripts', array( $menus, 'export_preview_data' ) ) ); 626 } 627 628 /** 629 * Test the export_preview_data method. 641 } 642 643 /** 644 * Test WP_Customize_Nav_Menus::export_preview_data() method. 630 645 * 631 646 * @see WP_Customize_Nav_Menus::export_preview_data() 632 647 */ 633 648 function test_export_preview_data() { 634 do_action( 'customize_register', $this->wp_customize ); 635 $menus = new WP_Customize_Nav_Menus( $this->wp_customize ); 636 637 $request_uri = $_SERVER['REQUEST_URI']; 638 639 ob_start(); 640 $_SERVER['REQUEST_URI'] = '/wp-admin'; 641 $menus->export_preview_data(); 642 $data = ob_get_clean(); 643 644 $_SERVER['REQUEST_URI'] = $request_uri; 645 646 $this->assertContains( '_wpCustomizePreviewNavMenusExports', $data ); 647 $this->assertContains( 'renderQueryVar', $data ); 648 $this->assertContains( 'renderNonceValue', $data ); 649 $this->assertContains( 'renderNoncePostKey', $data ); 650 $this->assertContains( 'navMenuInstanceArgs', $data ); 649 $this->setExpectedDeprecated( 'WP_Customize_Nav_Menus::export_preview_data' ); 650 $this->wp_customize->nav_menus->export_preview_data(); 651 } 652 653 /** 654 * Test WP_Customize_Nav_Menus::render_nav_menu_partial() method. 655 * 656 * @see WP_Customize_Nav_Menus::render_nav_menu_partial() 657 */ 658 function test_render_nav_menu_partial() { 659 $this->wp_customize->nav_menus->customize_preview_init(); 660 661 $menu = wp_create_nav_menu( 'Foo' ); 662 wp_update_nav_menu_item( $menu, 0, array( 663 'menu-item-type' => 'custom', 664 'menu-item-title' => 'WordPress.org', 665 'menu-item-url' => 'https://wordpress.org', 666 'menu-item-status' => 'publish', 667 ) ); 668 669 $nav_menu_args = $this->wp_customize->nav_menus->filter_wp_nav_menu_args( array( 670 'echo' => true, 671 'menu' => $menu, 672 'fallback_cb' => 'wp_page_menu', 673 'walker' => '', 674 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 675 ) ); 676 677 $partial_id = sprintf( 'nav_menu_instance[%s]', $nav_menu_args['customize_preview_nav_menus_args']['args_hmac'] ); 678 $partials = $this->wp_customize->selective_refresh->add_dynamic_partials( array( $partial_id ) ); 679 $this->assertNotEmpty( $partials ); 680 $partial = array_shift( $partials ); 681 $this->assertEquals( $partial_id, $partial->id ); 682 683 $missing_args_hmac_args = array_merge( 684 $nav_menu_args['customize_preview_nav_menus_args'], 685 array( 'args_hmac' => null ) 686 ); 687 $this->assertFalse( $partial->render( $missing_args_hmac_args ) ); 688 689 $args_hmac_mismatch_args = array_merge( 690 $nav_menu_args['customize_preview_nav_menus_args'], 691 array( 'args_hmac' => strrev( $nav_menu_args['customize_preview_nav_menus_args']['args_hmac'] ) ) 692 ); 693 $this->assertFalse( $partial->render( $args_hmac_mismatch_args ) ); 694 695 $rendered = $partial->render( $nav_menu_args['customize_preview_nav_menus_args'] ); 696 $this->assertContains( 'data-customize-partial-type="nav_menu_instance"', $rendered ); 697 $this->assertContains( 'WordPress.org', $rendered ); 651 698 } 652 699 }
Note: See TracChangeset
for help on using the changeset viewer.