diff --git a/modules/statistics/statistics.install b/modules/statistics/statistics.install index 553b3033ae184bfab6afa446812c45cfb63937a2..aa9b70ee93801818299032e64b8152cb106f5fab 100644 --- a/modules/statistics/statistics.install +++ b/modules/statistics/statistics.install @@ -34,7 +34,7 @@ function statistics_schema() { ), 'sid' => array( 'type' => 'varchar', - 'length' => 64, + 'length' => 128, 'not null' => TRUE, 'default' => '', 'description' => 'Browser session ID of user that visited page.', @@ -141,6 +141,19 @@ function statistics_schema() { * @{ */ +/** + * Update the {accesslog}.sid column to match the length of {sessions}.sid + */ +function statistics_update_7000() { + db_change_field('accesslog', 'sid', 'sid', array( + 'type' => 'varchar', + 'length' => 128, + 'not null' => TRUE, + 'default' => '', + 'description' => 'Browser session ID of user that visited page.', + )); +} + /** * @} End of "defgroup updates-6.x-to-7.x" * The next series of updates should start at 8000. diff --git a/modules/statistics/statistics.test b/modules/statistics/statistics.test index cbc58ae133719cd017dc0664ceb138b60dcaa8d0..98f35b45cd5fa66dfcb0c96f626a7ea913cad13e 100644 --- a/modules/statistics/statistics.test +++ b/modules/statistics/statistics.test @@ -61,6 +61,7 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { // Ensure we have a node page to access. $this->node = $this->drupalCreateNode(); + $this->auth_user = $this->drupalCreateUser(); // Enable page caching. variable_set('cache', TRUE); @@ -101,6 +102,16 @@ class StatisticsLoggingTestCase extends DrupalWebTestCase { $this->assertEqual(array_intersect_key($log[1], $expected), $expected); $node_counter = statistics_get($this->node->nid); $this->assertIdentical($node_counter['totalcount'], '2'); + + // Test logging from authenticated users + $this->drupalLogin($this->auth_user); + $this->drupalGet($path); + $log = db_query('SELECT * FROM {accesslog}')->fetchAll(PDO::FETCH_ASSOC); + // Check the 6th item since login and account pages are also logged + $this->assertTrue(is_array($log) && count($log) == 6, t('Page request was logged.')); + $this->assertEqual(array_intersect_key($log[5], $expected), $expected); + $node_counter = statistics_get($this->node->nid); + $this->assertIdentical($node_counter['totalcount'], '3'); } }