// This is required only until all fields are converted to datepicker fields as the new format is truer to the
// form format and simply saves (e.g) custom_3_relative => "this.year"
$relativeDates = ['relative_dates' => []];
- $specialDateFields = ['event_relative', 'case_from_relative', 'case_to_relative', 'participant_relative'];
+ $specialDateFields = ['event_relative', 'case_from_relative', 'case_to_relative', 'participant_relative', 'log_date_relative'];
foreach ($formValues as $id => $value) {
if ((preg_match('/_date$/', $id) || in_array($id, $specialDateFields)) && !empty($value)) {
$entityName = strstr($id, '_date', TRUE);
$this->checkArrayEquals($result['relative_dates'], $expectedResult);
}
+ /**
+ * Test if change log relative dates are stored correctly
+ * in civicrm_saved_search table.
+ */
+ public function testRelativeDateChangeLog() {
+ $savedSearch = new CRM_Contact_BAO_SavedSearch();
+ $formValues = [
+ 'operator' => 'AND',
+ 'log_date_relative' => 'this.month',
+ 'radio_ts' => 'ts_all',
+ ];
+ $queryParams = [];
+ CRM_Contact_BAO_SavedSearch::saveRelativeDates($queryParams, $formValues);
+ CRM_Contact_BAO_SavedSearch::saveSkippedElement($queryParams, $formValues);
+ $savedSearch->form_values = serialize($queryParams);
+ $savedSearch->save();
+
+ $result = CRM_Contact_BAO_SavedSearch::getFormValues(CRM_Core_DAO::singleValueQuery('SELECT LAST_INSERT_ID()'));
+ $expectedResult = [
+ 'log' => 'this.month',
+ ];
+ $this->checkArrayEquals($result['relative_dates'], $expectedResult);
+ }
+
/**
* Test relative dates
*