Loading dbee.module +15 −2 Changes for dbee.module: 15 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -644,7 +644,8 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { // Provide a tag to disabling this behavior, needed for testing or // for custom modules : dbee_mail_disable_insensitive_case and // dbee_init_disable_insensitive_case. if (empty($query->alterTags["dbee_{$dbee_field}_disable_insensitive_case"])) { $connection = \Drupal::service('database'); if (empty($query->alterTags["dbee_{$dbee_field}_disable_insensitive_case"]) && !($connection->databaseType() == 'pgsql' && $dbee_field == 'init')) { $insensitive_search = 'TRUE'; } Loading Loading @@ -695,7 +696,7 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { if ($need_rewrite) { if (!$where_match && $new_field == $users_alias . '.uid') { if (!$where_match) { // Add to ignore empty values values. // Retreive empty values. // @TODO fix depreciated db_or by orConditionGroup(). Loading @@ -703,10 +704,22 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { ->fields('ufd', ['uid']) ->condition(db_or()->condition("ufd.{$dbee_field}", '', '=')->isNull("ufd.{$dbee_field}")) ->execute(); $added_empty = FALSE; foreach ($empty_users as $account) { if (array_search($account->uid, $new_values) === FALSE) { if ($new_field == $users_alias . '.uid') { $new_values[] = $account->uid; $added_empty = TRUE; } else { // Case 1 = 0 but need to eliminate some result. $new_field = $users_alias . '.uid'; $new_values[] = $account->uid; } } } if ($added_empty) { sort($new_values); } } Loading tests/src/Functional/DbeeQueryUsersTest.php 100644 → 100755 +6 −5 Changes for tests/src/Functional/DbeeQueryUsersTest.php: 6 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\Tests\dbee\Functional; use Drupal\Core\Database\Query\Condition; use Drupal\KernelTests\AssertLegacyTrait; /** * Database queries on user emails. Loading Loading @@ -258,9 +259,9 @@ class DbeeQueryUsersTest extends DbeeWebSwitchTestBase { $query_args = $query->arguments(); $this->queryResults[$test][$dbee][$dbee_field] = $result_uids; $verbose[$test][$dbee][$dbee_field] = "test #{$test}, dbee " . (($dbee) ? 'enabled' : 'uninstalled') . ", field : {$dbee_field}" . (($dbee) ? '' : (($this->queryResults[$test][0][$dbee_field] == $this->queryResults[$test][1][$dbee_field]) ? '<br />Test succeed' : '<br /><strong>Test Failed</strong>')) . '<br />' . (($dbee) ? 'Transformed query' : 'Query') . ' --> ' . strtr($query->__toString(), $query_args) . '<br /> ===> returned users ids : ' . implode(' ,', $result_uids); (($dbee) ? '' : (($this->queryResults[$test][0][$dbee_field] == $this->queryResults[$test][1][$dbee_field]) ? "\n" . 'Test succeed' : "\n" . '<strong>Test Failed</strong>')) . "\n" . (($dbee) ? 'Transformed query' : 'Query') . ' --> ' . strtr($query->__toString(), $query_args) . "\n" . ' ===> returned users ids : ' . implode(' ,', $result_uids); } } } Loading @@ -268,9 +269,9 @@ class DbeeQueryUsersTest extends DbeeWebSwitchTestBase { // Explore results. foreach ($this->queryResults as $test => $data) { foreach (['mail', 'init'] as $dbee_field) { $this->verbose($verbose[$test][0][$dbee_field] . '<br /><br />' . $verbose[$test][1][$dbee_field]); $debug = "\n\n\n" . $verbose[$test][0][$dbee_field] . "\n\n" . $verbose[$test][1][$dbee_field]; $this->assertEquals($data[0][$dbee_field], $data[1][$dbee_field], "test #{$test} succeed : {$test_title[$test]} ({$dbee_field})" . $debug); } $this->assertEquals($data[0], $data[1], "test #{$test} succeed : {$test_title[$test]}"); } } Loading Loading
dbee.module +15 −2 Changes for dbee.module: 15 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -644,7 +644,8 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { // Provide a tag to disabling this behavior, needed for testing or // for custom modules : dbee_mail_disable_insensitive_case and // dbee_init_disable_insensitive_case. if (empty($query->alterTags["dbee_{$dbee_field}_disable_insensitive_case"])) { $connection = \Drupal::service('database'); if (empty($query->alterTags["dbee_{$dbee_field}_disable_insensitive_case"]) && !($connection->databaseType() == 'pgsql' && $dbee_field == 'init')) { $insensitive_search = 'TRUE'; } Loading Loading @@ -695,7 +696,7 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { if ($need_rewrite) { if (!$where_match && $new_field == $users_alias . '.uid') { if (!$where_match) { // Add to ignore empty values values. // Retreive empty values. // @TODO fix depreciated db_or by orConditionGroup(). Loading @@ -703,10 +704,22 @@ function _dbee_where_clause(&$query, $users_alias, $dbee_alias) { ->fields('ufd', ['uid']) ->condition(db_or()->condition("ufd.{$dbee_field}", '', '=')->isNull("ufd.{$dbee_field}")) ->execute(); $added_empty = FALSE; foreach ($empty_users as $account) { if (array_search($account->uid, $new_values) === FALSE) { if ($new_field == $users_alias . '.uid') { $new_values[] = $account->uid; $added_empty = TRUE; } else { // Case 1 = 0 but need to eliminate some result. $new_field = $users_alias . '.uid'; $new_values[] = $account->uid; } } } if ($added_empty) { sort($new_values); } } Loading
tests/src/Functional/DbeeQueryUsersTest.php 100644 → 100755 +6 −5 Changes for tests/src/Functional/DbeeQueryUsersTest.php: 6 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\Tests\dbee\Functional; use Drupal\Core\Database\Query\Condition; use Drupal\KernelTests\AssertLegacyTrait; /** * Database queries on user emails. Loading Loading @@ -258,9 +259,9 @@ class DbeeQueryUsersTest extends DbeeWebSwitchTestBase { $query_args = $query->arguments(); $this->queryResults[$test][$dbee][$dbee_field] = $result_uids; $verbose[$test][$dbee][$dbee_field] = "test #{$test}, dbee " . (($dbee) ? 'enabled' : 'uninstalled') . ", field : {$dbee_field}" . (($dbee) ? '' : (($this->queryResults[$test][0][$dbee_field] == $this->queryResults[$test][1][$dbee_field]) ? '<br />Test succeed' : '<br /><strong>Test Failed</strong>')) . '<br />' . (($dbee) ? 'Transformed query' : 'Query') . ' --> ' . strtr($query->__toString(), $query_args) . '<br /> ===> returned users ids : ' . implode(' ,', $result_uids); (($dbee) ? '' : (($this->queryResults[$test][0][$dbee_field] == $this->queryResults[$test][1][$dbee_field]) ? "\n" . 'Test succeed' : "\n" . '<strong>Test Failed</strong>')) . "\n" . (($dbee) ? 'Transformed query' : 'Query') . ' --> ' . strtr($query->__toString(), $query_args) . "\n" . ' ===> returned users ids : ' . implode(' ,', $result_uids); } } } Loading @@ -268,9 +269,9 @@ class DbeeQueryUsersTest extends DbeeWebSwitchTestBase { // Explore results. foreach ($this->queryResults as $test => $data) { foreach (['mail', 'init'] as $dbee_field) { $this->verbose($verbose[$test][0][$dbee_field] . '<br /><br />' . $verbose[$test][1][$dbee_field]); $debug = "\n\n\n" . $verbose[$test][0][$dbee_field] . "\n\n" . $verbose[$test][1][$dbee_field]; $this->assertEquals($data[0][$dbee_field], $data[1][$dbee_field], "test #{$test} succeed : {$test_title[$test]} ({$dbee_field})" . $debug); } $this->assertEquals($data[0], $data[1], "test #{$test} succeed : {$test_title[$test]}"); } } Loading