public function HandlerTest::testBreakString in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/views/src/Tests/Handler/HandlerTest.php \Drupal\views\Tests\Handler\HandlerTest::testBreakString()
Tests the breakString method.
File
- core/
modules/ views/ src/ Tests/ Handler/ HandlerTest.php, line 74 - Contains \Drupal\views\Tests\Handler\HandlerTest.
Class
- HandlerTest
- Tests abstract handler definitions.
Namespace
Drupal\views\Tests\HandlerCode
public function testBreakString() {
// Check defaults.
$this
->assertEqual((object) array(
'value' => array(),
'operator' => NULL,
), HandlerBase::breakString(''));
// Test ors
$handler = HandlerBase::breakString('word1 word2+word');
$this
->assertEqualValue(array(
'word1',
'word2',
'word',
), $handler);
$this
->assertEqual('or', $handler->operator);
$handler = HandlerBase::breakString('word1+word2+word');
$this
->assertEqualValue(array(
'word1',
'word2',
'word',
), $handler);
$this
->assertEqual('or', $handler->operator);
$handler = HandlerBase::breakString('word1 word2 word');
$this
->assertEqualValue(array(
'word1',
'word2',
'word',
), $handler);
$this
->assertEqual('or', $handler->operator);
$handler = HandlerBase::breakString('word-1+word-2+word');
$this
->assertEqualValue(array(
'word-1',
'word-2',
'word',
), $handler);
$this
->assertEqual('or', $handler->operator);
$handler = HandlerBase::breakString('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::breakString('word1,word2,word');
$this
->assertEqualValue(array(
'word1',
'word2',
'word',
), $handler);
$this
->assertEqual('and', $handler->operator);
$handler = HandlerBase::breakString('word1 word2,word');
$this
->assertEqualValue(array(
'word1 word2',
'word',
), $handler);
$this
->assertEqual('and', $handler->operator);
$handler = HandlerBase::breakString('word1,word2 word');
$this
->assertEqualValue(array(
'word1',
'word2 word',
), $handler);
$this
->assertEqual('and', $handler->operator);
$handler = HandlerBase::breakString('word-1,word-2,word');
$this
->assertEqualValue(array(
'word-1',
'word-2',
'word',
), $handler);
$this
->assertEqual('and', $handler->operator);
$handler = HandlerBase::breakString('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::breakString('word');
$this
->assertEqualValue(array(
'word',
), $handler);
$this
->assertEqual('and', $handler->operator);
$s1 = $this
->randomMachineName();
// Generate three random numbers which can be used below;
$n1 = rand(0, 100);
$n2 = rand(0, 100);
$n3 = rand(0, 100);
// Test "or"s.
$handlerBase = HandlerBase::breakString("{$s1} {$n2}+{$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1}+{$n2}+{$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1} {$n2} {$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1} {$n2}++{$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
// Test "and"s.
$handlerBase = HandlerBase::breakString("{$s1},{$n2},{$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('and', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1},,{$n2},{$n3}");
$this
->assertEqualValue(array(
$s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('and', $handlerBase->operator);
// Enforce int values.
$handlerBase = HandlerBase::breakString("{$n1},{$n2},{$n3}", TRUE);
$this
->assertEqualValue(array(
$n1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('and', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$n1}+{$n2}+{$n3}", TRUE);
$this
->assertEqualValue(array(
$n1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1},{$n2},{$n3}", TRUE);
$this
->assertEqualValue(array(
(int) $s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('and', $handlerBase->operator);
$handlerBase = HandlerBase::breakString("{$s1}+{$n2}+{$n3}", TRUE);
$this
->assertEqualValue(array(
(int) $s1,
$n2,
$n3,
), $handlerBase);
$this
->assertEqual('or', $handlerBase->operator);
}