Merge pull request #7797 from JKingsnorth/CRM-17977
[civicrm-core.git] / tests / phpunit / CRM / Utils / QueryFormatterTest.php
index c3f416c70efba0d1c921a11042ae5ada8f186e0f..d568dd729b91ef6c721c2ba7ef993287a7d14123 100644 (file)
 <?php
 
-require_once 'CiviTest/CiviUnitTestCase.php';
-
 /**
  * Class CRM_Utils_QueryFormatterTest
+ * @group headless
  */
 class CRM_Utils_QueryFormatterTest extends CiviUnitTestCase {
 
+  /**
+   * Generate data for tests to iterate through.
+   *
+   * @return array
+   */
   public function dataProvider() {
-    $cases = array(); // array(0=>$inputText, 1=>$language, 2=>$options, 3=>$expectedText)
+    // Array(0=>$inputText, 1=>$language, 2=>$options, 3=>$expectedText).
+    $cases = array();
 
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, CRM_Utils_QueryFormatter::MODE_NONE, '%first second%');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, CRM_Utils_QueryFormatter::MODE_PHRASE, '%first second%');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, CRM_Utils_QueryFormatter::MODE_WILDPHRASE, '%first second%');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, CRM_Utils_QueryFormatter::MODE_WILDWORDS, '%first%second%');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX, '%first%second%');
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+      CRM_Utils_QueryFormatter::MODE_NONE,
+      '%first second%',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+      CRM_Utils_QueryFormatter::MODE_PHRASE,
+      '%first second%',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+      CRM_Utils_QueryFormatter::MODE_WILDPHRASE,
+      '%first second%',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS,
+      '%first%second%',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX,
+      '%first%second%',
+    );
 
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, CRM_Utils_QueryFormatter::MODE_NONE, 'first second');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, CRM_Utils_QueryFormatter::MODE_PHRASE, '"first second"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, CRM_Utils_QueryFormatter::MODE_WILDPHRASE, '"*first second*"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, CRM_Utils_QueryFormatter::MODE_WILDWORDS, '*first* *second*');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX, 'first* second*');
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+      CRM_Utils_QueryFormatter::MODE_NONE,
+      'first second',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+      CRM_Utils_QueryFormatter::MODE_PHRASE,
+      '"first second"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+      CRM_Utils_QueryFormatter::MODE_WILDPHRASE,
+      '"*first second*"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS,
+      '*first* *second*',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX,
+      'first* second*',
+    );
 
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, CRM_Utils_QueryFormatter::MODE_NONE, '+first +second');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, CRM_Utils_QueryFormatter::MODE_PHRASE, '+"first second"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, CRM_Utils_QueryFormatter::MODE_WILDPHRASE, '+"*first second*"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, CRM_Utils_QueryFormatter::MODE_WILDWORDS, '+*first* +*second*');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX, '+first* +second*');
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+      CRM_Utils_QueryFormatter::MODE_NONE,
+      '+first +second',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+      CRM_Utils_QueryFormatter::MODE_PHRASE,
+      '+"first second"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+      CRM_Utils_QueryFormatter::MODE_WILDPHRASE,
+      '+"*first second*"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS,
+      '+*first* +*second*',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX,
+      '+first* +second*',
+    );
 
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SOLR, CRM_Utils_QueryFormatter::MODE_NONE, 'first second');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SOLR, CRM_Utils_QueryFormatter::MODE_PHRASE, '"first second"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SOLR, CRM_Utils_QueryFormatter::MODE_WILDPHRASE, '"*first second*"');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SOLR, CRM_Utils_QueryFormatter::MODE_WILDWORDS, '*first* *second*');
-    $cases[] = array('first second', CRM_Utils_QueryFormatter::LANG_SOLR, CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX, 'first* second*');
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SOLR,
+      CRM_Utils_QueryFormatter::MODE_NONE,
+      'first second',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SOLR,
+      CRM_Utils_QueryFormatter::MODE_PHRASE,
+      '"first second"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SOLR,
+      CRM_Utils_QueryFormatter::MODE_WILDPHRASE,
+      '"*first second*"',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SOLR,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS,
+      '*first* *second*',
+    );
+    $cases[] = array(
+      'first second',
+      CRM_Utils_QueryFormatter::LANG_SOLR,
+      CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX,
+      'first* second*',
+    );
 
-    // if user supplies wildcards, then ignore mode
-    foreach (array(CRM_Utils_QueryFormatter::MODE_NONE, CRM_Utils_QueryFormatter::MODE_WILDPHRASE, CRM_Utils_QueryFormatter::MODE_WILDWORDS, CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX) as $mode) {
-      $cases[] = array('first% second', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, $mode, 'first% second');
-      $cases[] = array('first% second', CRM_Utils_QueryFormatter::LANG_SQL_FTS, $mode, 'first* second');
-      $cases[] = array('first% second', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, $mode, '+first* +second');
-      $cases[] = array('first% second', CRM_Utils_QueryFormatter::LANG_SOLR, $mode, 'first* second');
-      $cases[] = array('first second%', CRM_Utils_QueryFormatter::LANG_SQL_LIKE, $mode, 'first second%');
-      $cases[] = array('first second%', CRM_Utils_QueryFormatter::LANG_SQL_FTS, $mode, 'first second*');
-      $cases[] = array('first second%', CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL, $mode, '+first +second*');
-      $cases[] = array('first second%', CRM_Utils_QueryFormatter::LANG_SOLR, $mode, 'first second*');
+    // If user supplies wildcards, then ignore mode.
+    foreach (array(
+               CRM_Utils_QueryFormatter::MODE_NONE,
+               CRM_Utils_QueryFormatter::MODE_WILDPHRASE,
+               CRM_Utils_QueryFormatter::MODE_WILDWORDS,
+               CRM_Utils_QueryFormatter::MODE_WILDWORDS_SUFFIX,
+             ) as $mode) {
+      $cases[] = array(
+        'first% second',
+        CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+        $mode,
+        'first% second',
+      );
+      $cases[] = array(
+        'first% second',
+        CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+        $mode,
+        'first* second',
+      );
+      $cases[] = array(
+        'first% second',
+        CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+        $mode,
+        '+first* +second',
+      );
+      $cases[] = array(
+        'first% second',
+        CRM_Utils_QueryFormatter::LANG_SOLR,
+        $mode,
+        'first* second',
+      );
+      $cases[] = array(
+        'first second%',
+        CRM_Utils_QueryFormatter::LANG_SQL_LIKE,
+        $mode,
+        'first second%',
+      );
+      $cases[] = array(
+        'first second%',
+        CRM_Utils_QueryFormatter::LANG_SQL_FTS,
+        $mode,
+        'first second*',
+      );
+      $cases[] = array(
+        'first second%',
+        CRM_Utils_QueryFormatter::LANG_SQL_FTSBOOL,
+        $mode,
+        '+first +second*',
+      );
+      $cases[] = array(
+        'first second%',
+        CRM_Utils_QueryFormatter::LANG_SOLR,
+        $mode,
+        'first second*',
+      );
     }
 
     return $cases;
   }
 
   /**
-   * @param $text
-   * @param $language
-   * @param $mode
-   * @param $expectedText
+   * Test format.
+   *
+   * @param string $text
+   * @param string $language
+   * @param string $mode
+   * @param string $expectedText
+   *
    * @dataProvider dataProvider
    */
   public function testFormat($text, $language, $mode, $expectedText) {
@@ -61,4 +214,5 @@ class CRM_Utils_QueryFormatterTest extends CiviUnitTestCase {
     $actualText = $formatter->format($text, $language);
     $this->assertEquals($expectedText, $actualText);
   }
+
 }