+ $this->callAPISuccess('Setting', 'create', $settings);
+ $result = $this->callAPISuccess('contact', 'getquick', $searchParameters);
+ $this->assertEquals($firstContact, $result['values'][0]['sort_name']);
+ $this->assertEquals($secondContact, $result['values'][1]['sort_name']);
+ $this->callAPISuccess('Setting', 'create', array('includeWildCardInName' => TRUE, 'includeOrderByClause' => TRUE));
+ }
+
+ public function getSearchSortOptions() {
+ $firstAlphabeticalContactBySortName = 'A Bobby, Bobby';
+ $secondAlphabeticalContactBySortName = 'Aadvark, Bob';
+ $secondAlphabeticalContactWithEmailBySortName = 'Bob, Bob';
+ $firstAlphabeticalContactFirstNameBob = 'Aadvark, Bob';
+ $secondAlphabeticalContactFirstNameBob = 'Bob, Bob';
+ $firstByIDContactFirstNameBob = 'Bob, Bob';
+ $secondByIDContactFirstNameBob = 'K Bobby, Bob';
+ $firstContactByID = 'Bob, Bob';
+ $secondContactByID = 'E Bobby, Bobby';
+ $bobLikeEmail = 'A Bobby, Bobby';
+
+ return array(
+ 'empty_search_basic' => array(
+ 'search_parameters' => array('name' => '%'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactBySortName,
+ 'second_contact' => $secondAlphabeticalContactBySortName,
+ ),
+ 'empty_search_basic_no_wildcard' => array(
+ 'search_parameters' => array('name' => '%'),
+ 'settings' => array('includeWildCardInName' => FALSE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactBySortName,
+ 'second_contact' => $secondAlphabeticalContactBySortName,
+ ),
+ 'single_letter_search_basic' => array(
+ 'search_parameters' => array('name' => 'b'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactBySortName,
+ 'second_contact' => $secondAlphabeticalContactBySortName,
+ ),
+ 'bob_search_basic' => array(
+ 'search_parameters' => array('name' => 'bob'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactBySortName,
+ 'second_contact' => $secondAlphabeticalContactBySortName,
+ ),
+ 'bob_search_no_orderby' => array(
+ 'search_parameters' => array('name' => 'bob'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => FALSE),
+ 'first_contact' => $firstContactByID,
+ 'second_contact' => $secondContactByID,
+ ),
+ 'bob_search_no_wildcard' => array(
+ 'search_parameters' => array('name' => 'bob'),
+ 'settings' => array('includeWildCardInName' => FALSE, 'includeOrderByClause' => TRUE),
+ 'second_contact' => $bobLikeEmail,
+ 'first_contact' => $secondAlphabeticalContactFirstNameBob,
+ ),
+ // This should be the same as just no wildcard as if we had an exactMatch while searching by
+ // sort name it would rise to the top CRM-19547
+ 'bob_search_no_wildcard_no_orderby' => array(
+ 'search_parameters' => array('name' => 'bob'),
+ 'settings' => array('includeWildCardInName' => FALSE, 'includeOrderByClause' => TRUE),
+ 'second_contact' => $bobLikeEmail,
+ 'first_contact' => $secondAlphabeticalContactFirstNameBob,
+ ),
+ 'first_name_search_basic' => array(
+ 'search_parameters' => array('name' => 'bob', 'field_name' => 'first_name'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactFirstNameBob,
+ 'second_contact' => $secondAlphabeticalContactFirstNameBob,
+ ),
+ 'first_name_search_no_wildcard' => array(
+ 'search_parameters' => array('name' => 'bob', 'field_name' => 'first_name'),
+ 'settings' => array('includeWildCardInName' => FALSE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactFirstNameBob,
+ 'second_contact' => $secondAlphabeticalContactFirstNameBob,
+ ),
+ 'first_name_search_no_orderby' => array(
+ 'search_parameters' => array('name' => 'bob', 'field_name' => 'first_name'),
+ 'settings' => array('includeWildCardInName' => TRUE, 'includeOrderByClause' => FALSE),
+ 'first_contact' => $firstByIDContactFirstNameBob,
+ 'second_contact' => $secondByIDContactFirstNameBob,
+ ),
+ 'email_search_basic' => array(
+ 'search_parameters' => array('name' => 'bob', 'field_name' => 'email', 'table_name' => 'eml'),
+ 'settings' => array('includeWildCardInName' => FALSE, 'includeOrderByClause' => TRUE),
+ 'first_contact' => $firstAlphabeticalContactBySortName,
+ 'second_contact' => $secondAlphabeticalContactWithEmailBySortName,
+ ),
+ );