Issue #1012620 by Berdir, kbasarab, YesCT: Fixed Unique key on date_formats().(format|type) is problematic for case insensitive collations.
parent
ad244e2cb8
commit
297665a471
|
@ -2298,6 +2298,12 @@ class FormatDateUnitTest extends DrupalWebTestCase {
|
|||
$edit = array('date_format' => $admin_date_format);
|
||||
$this->drupalPost('admin/config/regional/date-time/formats/add', $edit, t('Add format'));
|
||||
|
||||
// Add a new date format which just differs in the case.
|
||||
$admin_date_format_uppercase = 'j M Y';
|
||||
$edit = array('date_format' => $admin_date_format_uppercase);
|
||||
$this->drupalPost('admin/config/regional/date-time/formats/add', $edit, t('Add format'));
|
||||
$this->assertText(t('Custom date format added.'));
|
||||
|
||||
// Add new date type.
|
||||
$edit = array(
|
||||
'date_type' => 'Example Style',
|
||||
|
@ -2306,8 +2312,18 @@ class FormatDateUnitTest extends DrupalWebTestCase {
|
|||
);
|
||||
$this->drupalPost('admin/config/regional/date-time/types/add', $edit, t('Add date type'));
|
||||
|
||||
// Add a second date format with a different case than the first.
|
||||
$edit = array(
|
||||
'machine_name' => 'example_style_uppercase',
|
||||
'date_type' => 'Example Style Uppercase',
|
||||
'date_format' => $admin_date_format_uppercase,
|
||||
);
|
||||
$this->drupalPost('admin/config/regional/date-time/types/add', $edit, t('Add date type'));
|
||||
$this->assertText(t('New date type added successfully.'));
|
||||
|
||||
$timestamp = strtotime('2007-03-10T00:00:00+00:00');
|
||||
$this->assertIdentical(format_date($timestamp, 'example_style', '', 'America/Los_Angeles'), '9 Mar 07', t('Test format_date() using an admin-defined date type.'));
|
||||
$this->assertIdentical(format_date($timestamp, 'example_style_uppercase', '', 'America/Los_Angeles'), '9 Mar 2007', 'Test format_date() using an admin-defined date type with different case.');
|
||||
$this->assertIdentical(format_date($timestamp, 'undefined_style'), format_date($timestamp, 'medium'), t('Test format_date() defaulting to medium when $type not found.'));
|
||||
}
|
||||
|
||||
|
|
|
@ -566,6 +566,20 @@ class BasicMinimalUpdatePath extends UpdatePathTestCase {
|
|||
// Confirm that no {menu_links} entry exists for user/autocomplete.
|
||||
$result = db_query('SELECT COUNT(*) FROM {menu_links} WHERE link_path = :user_autocomplete', array(':user_autocomplete' => 'user/autocomplete'))->fetchField();
|
||||
$this->assertFalse($result, t('No {menu_links} entry exists for user/autocomplete'));
|
||||
|
||||
// Confirm that a date format that just differs in the case can be added.
|
||||
$admin_date_format = 'j M y';
|
||||
$edit = array('date_format' => $admin_date_format);
|
||||
$this->drupalPost('admin/config/regional/date-time/formats/add', $edit, t('Add format'));
|
||||
|
||||
// Add a new date format which just differs in the case.
|
||||
$admin_date_format_uppercase = 'j M Y';
|
||||
$edit = array('date_format' => $admin_date_format_uppercase);
|
||||
$this->drupalPost('admin/config/regional/date-time/formats/add', $edit, t('Add format'));
|
||||
$this->assertText(t('Custom date format added.'));
|
||||
|
||||
// Verify that the unique key on {date_formats}.format still exists.
|
||||
$this->assertTrue(db_index_exists('date_formats', 'formats'), 'Unique key on {date_formats} exists');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -744,6 +744,7 @@ function system_schema() {
|
|||
'type' => 'varchar',
|
||||
'length' => 100,
|
||||
'not null' => TRUE,
|
||||
'binary' => TRUE,
|
||||
),
|
||||
'type' => array(
|
||||
'description' => 'The date format type, e.g. medium.',
|
||||
|
@ -3088,6 +3089,21 @@ function system_update_7077() {
|
|||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add binary to {date_formats}.format.
|
||||
*/
|
||||
function system_update_7078() {
|
||||
db_drop_unique_key('date_formats', 'formats');
|
||||
db_change_field('date_formats', 'format', 'format', array(
|
||||
'description' => 'The date format string.',
|
||||
'type' => 'varchar',
|
||||
'length' => 100,
|
||||
'not null' => TRUE,
|
||||
'binary' => TRUE,
|
||||
), array('unique keys' => array('formats' => array('format', 'type'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @} End of "defgroup updates-7.x-extra".
|
||||
* The next series of updates should start at 8000.
|
||||
|
|
Loading…
Reference in New Issue