public static function modified_params(array $modified, array $expected = NULL) { if ($expected) { $modified = Jam::permit($expected, $modified); } $modified = array_filter($modified); return array_map(function ($param) { return $param === '__clear' ? FALSE : (is_array($param) ? Tart_Request::modified_params($param) : $param); }, $modified); }
public function test_permit() { $data = array('test' => 10, 'test2' => 20, 'test_object' => array('var1' => 5, 'var2' => 10), 'test_array' => array(array('name' => 8, 'id' => 1), array('name' => 9, 'id' => 2))); $clean = Jam::permit(array('test'), $data); $this->assertEquals(array('test' => 10), $clean); $clean = Jam::permit(array('test', 'test2'), $data); $this->assertEquals(array('test' => 10, 'test2' => 20), $clean); $clean = Jam::permit(array('test', 'test2', 'test_object', 'test_array'), $data); $this->assertEquals($data, $clean); $clean = Jam::permit(array('test', 'test2', 'test_object' => array('var1')), $data); $this->assertEquals(array('test' => 10, 'test2' => 20, 'test_object' => array('var1' => 5)), $clean); $clean = Jam::permit(array('test', 'test2', 'test_array' => array('name')), $data); $this->assertEquals(array('test' => 10, 'test2' => 20, 'test_array' => array(array('name' => 8), array('name' => 9))), $clean); }