SearchIntegrationTest.php in Zircon Profile 8
File
core/modules/views/src/Tests/SearchIntegrationTest.php
View source
<?php
namespace Drupal\views\Tests;
use Drupal\Component\Utility\SafeMarkup;
class SearchIntegrationTest extends ViewTestBase {
public static $modules = array(
'node',
'search',
);
public static $testViews = array(
'test_search',
);
public function testSearchIntegration() {
$type = $this
->drupalCreateContentType();
$node['title'] = 'pizza';
$node['body'] = array(
array(
'value' => 'pizza',
),
);
$node['type'] = $type
->id();
$this
->drupalCreateNode($node);
$this
->drupalGet('node/1');
$node_url = $this
->getUrl();
$node['title'] = 'sandwich';
$node['body'] = array(
array(
'value' => 'sandwich with a <a href="' . $node_url . '">link to first node</a>',
),
);
$this
->drupalCreateNode($node);
$node['title'] = 'cola';
$node['body'] = array(
array(
'value' => 'cola is good with pizza',
),
);
$node['type'] = $type
->id();
$this
->drupalCreateNode($node);
$this
->cronRun();
$this
->drupalGet('test-filter');
$this
->assertLink('pizza');
$this
->assertNoLink('sandwich');
$this
->assertLink('cola');
$this
->drupalGet('test-arg/pizza');
$this
->assertOneLink('pizza');
$this
->assertNoLink('sandwich');
$this
->assertOneLink('cola');
$this
->drupalGet('test-arg/sandwich');
$this
->assertNoLink('pizza');
$this
->assertOneLink('sandwich');
$this
->assertNoLink('cola');
$this
->drupalGet('test-arg/pizza OR sandwich');
$this
->assertOneLink('pizza');
$this
->assertOneLink('sandwich');
$this
->assertOneLink('cola');
$this
->drupalGet('test-arg/pizza sandwich OR cola');
$this
->assertNoLink('pizza');
$this
->assertNoLink('sandwich');
$this
->assertOneLink('cola');
$this
->drupalGet('test-arg/cola pizza');
$this
->assertNoLink('pizza');
$this
->assertNoLink('sandwich');
$this
->assertOneLink('cola');
$this
->drupalGet('test-arg/"cola is good"');
$this
->assertNoLink('pizza');
$this
->assertNoLink('sandwich');
$this
->assertOneLink('cola');
$node = [
'title' => "Drupal's search rocks.",
'type' => $type
->id(),
];
$this
->drupalCreateNode($node);
$node['title'] = "Drupal's search rocks <em>really</em> rocks!";
$this
->drupalCreateNode($node);
$this
->cronRun();
$this
->drupalGet('test-arg/rocks');
$xpath = '//div[@class="views-row"]//a';
$results = $this
->xpath($xpath);
$this
->assertEqual((string) $results[0], "Drupal's search rocks <em>really</em> rocks!");
$this
->assertEqual((string) $results[1], "Drupal's search rocks.");
$this
->assertEscaped("Drupal's search rocks <em>really</em> rocks!");
$node = [
'title' => "Testing one two two two",
'type' => $type
->id(),
];
$this
->drupalCreateNode($node);
$node['title'] = "Testing one one one";
$this
->drupalCreateNode($node);
$this
->cronRun();
$this
->drupalGet('test-arg/one');
$xpath = '//div[@class="views-row"]//a';
$results = $this
->xpath($xpath);
$this
->assertEqual((string) $results[0], "Testing one one one");
$this
->assertEqual((string) $results[1], "Testing one two two two");
}
protected function assertOneLink($label) {
$links = $this
->xpath('//a[normalize-space(text())=:label]', array(
':label' => $label,
));
$message = SafeMarkup::format('Link with label %label found once.', array(
'%label' => $label,
));
return $this
->assert(isset($links[0]) && !isset($links[1]), $message);
}
}