/** * Validate that the version 1 export includes custom field datetime data in the output. * * @dataProvider entity_provider */ public function test_exportincludes_customfield_datetime_data($entityname, $entitytable) { global $CFG, $DB; // Set the export to be incremental. set_config('nonincremental', 0, 'dhexport_version1elis'); $this->load_csv_data(); // Set up necessary custom field information in the database. // Create category. $categoryid = $this->create_custom_field_category(); // Create custom field. $field = $this->create_test_field($entityname, 'rlipdate', 'int', 'datetime', $categoryid); $this->create_field_mapping('testcustomfields', 'field_' . $field->id); // Create data record for custom field. $entity = $DB->get_records($entitytable); $entity = current($entity); $result = $this->update_data_record($entityname, $entity, $field, mktime(0, 0, 0, 1, 1, 2012)); // Obtain our export data based on the current DB state. $data = $this->get_export_data(); // Data validation. $this->assertEquals(2, count($data)); $row = $data[1]; $this->assertEquals(11, count($row)); $this->assertEquals('Jan/01/2012', $row[10]); // Set inctime to true. $fieldowner = new field_owner($field->owners['manual']->id); $fieldowner->load(); $fieldowner->param_inctime = 1; $fieldowner->save(); // Test with other value. $value = mktime(10, 10, 0, 1, 1, 2012); $result = $this->update_data_record($entityname, $entity, $field, $value); $data = $this->get_export_data(); $this->assertEquals(2, count($data)); $row = $data[1]; $this->assertEquals(11, count($row)); $this->assertEquals('Jan/01/2012:10:10', $row[10]); }
/** * Test rlipexport_version1elis_extrafieldsetcustomfieldbase::get_columns() */ public function test_rlipexport_version1elis_extrafieldsetcustomfieldbase_getdata() { $this->load_csv_data(); // Create Fields. // Normal Field. $fieldid1 = $this->create_custom_field('testcf1', 0, true, CONTEXT_ELIS_USER); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid1, ''); $this->create_field_data($fieldid1, 'option1'); // Second Normal Field. $fieldid2 = $this->create_custom_field('testcf2', 0, true, CONTEXT_ELIS_USER); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid2, ''); $this->create_field_data($fieldid2, 'option2'); // Multivalued field with multiple values. $fieldid3 = $this->create_custom_field('testcf3', 1, true, CONTEXT_ELIS_USER); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid3, ''); $this->create_field_data($fieldid3, array('option1', 'option2')); // Multivalued field with single value. $fieldid4 = $this->create_custom_field('testcf4', 1, true, CONTEXT_ELIS_USER); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid4, ''); $this->create_field_data($fieldid4, array('option1')); // Historical multivalued field. $fieldid5 = $this->create_custom_field('testcf5', 1, true, CONTEXT_ELIS_USER); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid5, ''); $this->create_field_data($fieldid5, array('option1', 'option2')); // Update field to not multivalued to create historical multivalue state. $field = new field($fieldid5); $field->load(); $field->multivalued = 0; $field->save(); // Datetime field. $fieldid6 = $this->create_custom_field('testcf6', 0, false, CONTEXT_ELIS_USER, 'datetime'); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid6, ''); $this->create_field_data($fieldid6, mktime(0, 0, 0, 7, 24, 2012)); // Datetime with time field. $fieldid7 = $this->create_custom_field('testcf7', 0, false, CONTEXT_ELIS_USER, 'datetime'); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid7, ''); $this->create_field_data($fieldid7, mktime(10, 20, 30, 7, 24, 2012)); $field = new field($fieldid7); $field->load(); $fieldowner = new field_owner($field->owners['manual']->id); $fieldowner->load(); $fieldowner->param_inctime = 1; $fieldowner->save(); // Fields with HTML. $fieldid8 = $this->create_custom_field('testcf8', 0, false, CONTEXT_ELIS_USER, 'text'); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid8, ''); $this->create_field_data($fieldid8, '<b>Test Text One</b>'); $fieldid9 = $this->create_custom_field('testcf9', 0, false, CONTEXT_ELIS_USER, 'textarea'); $this->create_field_mapping('testcustomfields', 'field_' . $fieldid9, ''); $this->create_field_data($fieldid9, '<i>Test Text Two</i>'); // Mock database record. $record = new stdClass(); $record->userid = 200; $record->{'custom_field_' . $fieldid1} = 'option1'; $record->{'custom_field_' . $fieldid2} = 'option2'; $record->{'custom_field_' . $fieldid3} = ''; $record->{'custom_field_' . $fieldid4} = 'option1'; $record->{'custom_field_' . $fieldid5} = ''; $record->{'custom_field_' . $fieldid6} = mktime(0, 0, 0, 7, 24, 2012); $record->{'custom_field_' . $fieldid7} = mktime(10, 20, 30, 7, 24, 2012); $record->{'custom_field_' . $fieldid8} = '<b>Test Text One</b>'; $record->{'custom_field_' . $fieldid9} = '<i>Test Text Two</i>'; // Perform Test. $enabledfields = rlipexport_version1elis_extrafields::get_enabled_fields(); $fieldset = new rlipexport_version1elis_extrafieldset_testcustomfields($enabledfields['testcustomfields']); $data = $fieldset->get_data($record); // Verify Result. $expecteddata = array('field_' . $fieldid1 => 'option1', 'field_' . $fieldid2 => 'option2', 'field_' . $fieldid3 => 'option1 / option2', 'field_' . $fieldid4 => 'option1', 'field_' . $fieldid5 => 'option1', 'field_' . $fieldid6 => 'Jul/24/2012', 'field_' . $fieldid7 => 'Jul/24/2012:10:20', 'field_' . $fieldid8 => 'TEST TEXT ONE', 'field_' . $fieldid9 => '_Test Text Two_'); $this->assertEquals($expecteddata, $data); }