Commit 5155d6d2 authored by catch's avatar catch

Issue #1274406 by marcingy, grndlvl: Fixed PDO exception is thrown when saving...

Issue #1274406 by marcingy, grndlvl: Fixed PDO exception is thrown when saving a node with a title that is too long.
parent af8e2635
......@@ -75,10 +75,13 @@ function statistics_exit() {
}
if (variable_get('statistics_enable_access_log', 0)) {
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
// For anonymous users unicode.inc will not have been loaded.
include_once DRUPAL_ROOT . '/includes/unicode.inc';
// Log this page access.
db_insert('accesslog')
->fields(array(
'title' => strip_tags(drupal_get_title()),
'title' => truncate_utf8(strip_tags(drupal_get_title()), 255),
'path' => $_GET['q'],
'url' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
'hostname' => ip_address(),
......
......@@ -63,9 +63,10 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase {
function setUp() {
parent::setUp('statistics');
$this->auth_user = $this->drupalCreateUser(array('access content', 'create page content', 'edit own page content'));
// Ensure we have a node page to access.
$this->node = $this->drupalCreateNode();
$this->auth_user = $this->drupalCreateUser();
$this->node = $this->drupalCreateNode(array('title' => $this->randomName(255), 'uid' => $this->auth_user->uid));
// Enable page caching.
variable_set('cache', TRUE);
......@@ -116,6 +117,17 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase {
$this->assertEqual(array_intersect_key($log[5], $expected), $expected);
$node_counter = statistics_get($this->node->nid);
$this->assertIdentical($node_counter['totalcount'], '3');
// Visit edit page to generate a title greater than 255.
$path = 'node/' . $this->node->nid . '/edit';
$expected = array(
'title' => truncate_utf8(t('Edit Basic page') . ' ' . $this->node->title, 255),
'path' => $path,
);
$this->drupalGet($path);
$log = db_query('SELECT * FROM {accesslog}')->fetchAll(PDO::FETCH_ASSOC);
$this->assertTrue(is_array($log) && count($log) == 7, t('Page request was logged.'));
$this->assertEqual(array_intersect_key($log[6], $expected), $expected);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment