Index: wp-testcase/test_includes_functions.php
===================================================================
--- wp-testcase/test_includes_functions.php	(revision 417)
+++ wp-testcase/test_includes_functions.php	(working copy)
@@ -255,9 +255,9 @@
 	var $object_list = array();
 
 	function setUp() {
-		$this->object_list['foo'] = (object) array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true );
-		$this->object_list['bar'] = (object) array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false );
-		$this->object_list['baz'] = (object) array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false );		
+		$this->object_list['foo'] = (object) array( 'name' => 'foo', 'field1' => true, 'field2' => true, 'field3' => true, 'field4' => array( 'red' ) );
+		$this->object_list['bar'] = (object) array( 'name' => 'bar', 'field1' => true, 'field2' => true, 'field3' => false, 'field4' => array( 'green' ) );
+		$this->object_list['baz'] = (object) array( 'name' => 'baz', 'field1' => true, 'field2' => false, 'field3' => false, 'field4' => array( 'blue' ) );		
 	}
 
 	function test_filter_object_list_and() {
@@ -298,6 +298,45 @@
 		$this->assertEquals( 1, count( $list ) );
 		$this->assertEquals( array( 'baz' => 'baz' ) , $list );
 	}
+
+	function test_filter_object_list_nested_array_and() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND' );
+		$this->assertEquals( 1, count( $list ) );
+		$this->assertArrayHasKey( 'baz', $list );
+	}
+
+	function test_filter_object_list_nested_array_not() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'red' ) ), 'NOT' );
+		$this->assertEquals( 2, count( $list ) );
+		$this->assertArrayHasKey( 'bar', $list );
+		$this->assertArrayHasKey( 'baz', $list );
+	}
+
+	function test_filter_object_list_nested_array_or() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR' );
+		$this->assertEquals( 3, count( $list ) );
+		$this->assertArrayHasKey( 'foo', $list );
+		$this->assertArrayHasKey( 'bar', $list );
+		$this->assertArrayHasKey( 'baz', $list );
+	}
+
+	function test_filter_object_list_nested_array_and_field() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'AND', 'name' );
+		$this->assertEquals( 1, count( $list ) );
+		$this->assertEquals( array( 'baz' => 'baz' ) , $list );
+	}
+
+	function test_filter_object_list_not_nested_array_not_field() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'green' ) ), 'NOT', 'name' );
+		$this->assertEquals( 2, count( $list ) );
+		$this->assertEquals( array( 'foo' => 'foo', 'baz' => 'baz' ), $list );
+	}
+
+	function test_filter_object_list_or_nested_array_or_field() {
+		$list = wp_filter_object_list( $this->object_list, array( 'field4' => array( 'blue' ) ), 'OR', 'name' );
+		$this->assertEquals( 3, count( $list ) );
+		$this->assertEquals( array( 'foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz' ), $list );
+	}
 }
 
 class TestHTTPFunctions extends WPTestCase {
