From a088cc47a7104e11d78eac44851779d20bae9cbc Mon Sep 17 00:00:00 2001 From: Zach Ploskey Date: Wed, 4 Oct 2017 05:24:53 -0700 Subject: Fix issue 5202 Fix attempting to access data_ref before it is defined when validating an array input with multiple explicitly specified keys. Adds a test for the issue. Signed-off-by: Zach Ploskey --- tests/codeigniter/libraries/Form_validation_test.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tests/codeigniter') diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index ebb14983e..b70f950a2 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -482,6 +482,20 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals('bar2', $this->form_validation->set_value('bar[]', $default)); } + public function test_issue_5202() + { + $data = array('person' => array('firstname' => 'Dick', 'lastname' => 'Tracy ')); + $this->form_validation->reset_validation(); + $this->form_validation->set_rules('person[firstname]', 'First Name', 'required|trim'); + $this->form_validation->set_rules('person[lastname]', 'Last Name', 'required|trim'); + $this->form_validation->set_data($data); + $valid = $this->form_validation->run('', $data); + + $this->assertEquals(TRUE, $valid); + $this->assertEquals('Dick', $data['person']['firstname']); + $this->assertEquals('Tracy', $data['person']['lastname']); + } + public function test_set_select() { // Test 1: No options selected -- cgit v1.2.3-24-g4f1b