SearchPageTest.php in Opigno Search 8
File
tests/src/Functional/SearchPageTest.php
View source
<?php
namespace Drupal\Tests\opigno_learning_path\Functional;
use Drupal\search_api\Entity\Index;
class SearchPageTest extends LearningPathBrowserTestBase {
use TrainingContentTrait;
protected $key = 'OMJ29zyMZ3nL';
public static $modules = [
'h5p',
'block',
'user',
'node',
'group',
'language',
'search',
'views_ui',
'opigno_messaging',
'opigno_learning_path',
'config_rewrite',
'search_api_db_defaults',
'opigno_search',
];
protected function setUp() {
parent::setUp();
$adminUser = $this
->drupalCreateUser([
'administer search_api',
'access administration pages',
], 'TestUser');
$this
->drupalLogin($adminUser);
}
protected function SearchConfigs() {
$server_name = 'Database Server';
$server_description = 'Default database server created by the Database Search Defaults module';
$index_name = 'Default content index';
$index_description = 'Default content index created by the Database Search Defaults module';
$this
->drupalGet('admin/config/search/search-api/server/default_server');
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains($server_name);
$this
->assertSession()
->pageTextContains($server_description);
$this
->assertSession()
->pageTextContains($index_name);
$this
->drupalGet('admin/config/search/search-api');
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains($index_name);
$this
->assertSession()
->pageTextContains($index_description);
}
protected function IndexationContent() {
for ($i = 0; $i < 5; $i++) {
$training = $this
->createGroup([
'label' => $this->key . ' ' . $this
->randomMachineName(),
'field_learning_path_visibility' => 'public',
'field_learning_path_published' => TRUE,
]);
$this
->assertNotEmpty($training);
}
$index = Index::load('default_index');
$this
->assertNotEmpty($index);
if (!empty($index)) {
$index
->indexItems();
}
$this
->drupalGet('admin/config/search/search-api/index/default_index');
$this
->assertSession()
->pageTextContains('100%');
}
public function testSearchPageContent() {
$this
->SearchConfigs();
$this
->IndexationContent();
$this
->drupalGet('/search', [
'query' => [
'keys' => $this->key,
],
]);
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains($this->key);
$this
->assertSession()
->elementExists('css', 'body.user-logged-in');
$this
->assertSession()
->elementsCount('css', '.field-content strong', 5);
}
}