function HandlerTest::testBreakPhraseString

Tests the breakPhraseString() method.

File

drupal/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerTest.php, line 95
Definition of Drupal\views\Tests\Handler\HandlerTest.

Class

HandlerTest
Tests abstract handlers of views.

Namespace

Drupal\views\Tests\Handler

Code

function testBreakPhraseString() {
  $empty_stdclass = new \stdClass();
  $empty_stdclass->operator = 'or';
  $empty_stdclass->value = array();

  // check defaults
  $null = NULL;
  $this
    ->assertEqual($empty_stdclass, HandlerBase::breakPhraseString('', $null));
  $item = array(
    'table' => 'node',
    'field' => 'title',
  );
  $handler = views_get_handler($item, 'argument');
  $this
    ->assertEqual($handler, HandlerBase::breakPhraseString('', $handler), 'The breakPhraseString() method works correctly.');

  // test ors
  $handler = HandlerBase::breakPhraseString('word1 word2+word');
  $this
    ->assertEqualValue(array(
    'word1',
    'word2',
    'word',
  ), $handler);
  $this
    ->assertEqual('or', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word1+word2+word');
  $this
    ->assertEqualValue(array(
    'word1',
    'word2',
    'word',
  ), $handler);
  $this
    ->assertEqual('or', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word1 word2 word');
  $this
    ->assertEqualValue(array(
    'word1',
    'word2',
    'word',
  ), $handler);
  $this
    ->assertEqual('or', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word-1+word-2+word');
  $this
    ->assertEqualValue(array(
    'word-1',
    'word-2',
    'word',
  ), $handler);
  $this
    ->assertEqual('or', $handler->operator);
  $handler = HandlerBase::breakPhraseString('wõrd1+wõrd2+wõrd');
  $this
    ->assertEqualValue(array(
    'wõrd1',
    'wõrd2',
    'wõrd',
  ), $handler);
  $this
    ->assertEqual('or', $handler->operator);

  // test ands.
  $handler = HandlerBase::breakPhraseString('word1,word2,word');
  $this
    ->assertEqualValue(array(
    'word1',
    'word2',
    'word',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word1 word2,word');
  $this
    ->assertEqualValue(array(
    'word1 word2',
    'word',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word1,word2 word');
  $this
    ->assertEqualValue(array(
    'word1',
    'word2 word',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);
  $handler = HandlerBase::breakPhraseString('word-1,word-2,word');
  $this
    ->assertEqualValue(array(
    'word-1',
    'word-2',
    'word',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);
  $handler = HandlerBase::breakPhraseString('wõrd1,wõrd2,wõrd');
  $this
    ->assertEqualValue(array(
    'wõrd1',
    'wõrd2',
    'wõrd',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);

  // test a single word
  $handler = HandlerBase::breakPhraseString('word');
  $this
    ->assertEqualValue(array(
    'word',
  ), $handler);
  $this
    ->assertEqual('and', $handler->operator);
}