WordPress.org

Make WordPress Core

Changeset 433 in tests


Ignore:
Timestamp:
08/25/11 19:51:22 (3 years ago)
Author:
ryan
Message:

Nested array tests for wp_list_filter(). Props ampt. see #WP16137

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_includes_functions.php

    r431 r433  
    257257 
    258258    function setUp() { 
    259         $this->array_list['foo'] = array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true ); 
    260         $this->array_list['bar'] = array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false ); 
    261         $this->array_list['baz'] = array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false ); 
     259        $this->array_list['foo'] = array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true, 'field4' => array( 'red' ) ); 
     260        $this->array_list['bar'] = array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false, 'field4' => array( 'green' ) ); 
     261        $this->array_list['baz'] = array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false, 'field4' => array( 'blue' ) ); 
    262262        foreach ( $this->array_list as $key => $value ) { 
    263263            $this->object_list[ $key ] = (object) $value; 
     
    310310        $list = wp_list_pluck( $this->array_list, 'name' ); 
    311311        $this->assertEquals( array( 'foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz' ) , $list ); 
     312    } 
     313 
     314    function test_filter_object_list_nested_array_and() { 
     315        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND' ); 
     316        $this->assertEquals( 1, count( $list ) ); 
     317        $this->assertArrayHasKey( 'baz', $list ); 
     318    } 
     319 
     320    function test_filter_object_list_nested_array_not() { 
     321        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'red' ) ), 'NOT' ); 
     322        $this->assertEquals( 2, count( $list ) ); 
     323        $this->assertArrayHasKey( 'bar', $list ); 
     324        $this->assertArrayHasKey( 'baz', $list ); 
     325    } 
     326 
     327    function test_filter_object_list_nested_array_or() { 
     328        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR' ); 
     329        $this->assertEquals( 3, count( $list ) ); 
     330        $this->assertArrayHasKey( 'foo', $list ); 
     331        $this->assertArrayHasKey( 'bar', $list ); 
     332        $this->assertArrayHasKey( 'baz', $list ); 
     333    } 
     334 
     335    function test_filter_object_list_nested_array_and_field() { 
     336        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND', 'name' ); 
     337        $this->assertEquals( 1, count( $list ) ); 
     338        $this->assertEquals( array( 'baz' => 'baz' ) , $list ); 
     339    } 
     340 
     341    function test_filter_object_list_nested_array_not_field() { 
     342        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'green' ) ), 'NOT', 'name' ); 
     343        $this->assertEquals( 2, count( $list ) ); 
     344        $this->assertEquals( array( 'foo' => 'foo', 'baz' => 'baz' ), $list ); 
     345    } 
     346 
     347    function test_filter_object_list_nested_array_or_field() { 
     348        $list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR', 'name' ); 
     349        $this->assertEquals( 3, count( $list ) ); 
     350        $this->assertEquals( array( 'foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz' ), $list ); 
    312351    } 
    313352} 
Note: See TracChangeset for help on using the changeset viewer.