summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorborisson_2016-05-04 09:47:39 +0200
committerJoris Vercammen2016-05-04 09:47:39 +0200
commitba4f21ec0d103f2aa59b7a2e94deb88e5d68ae78 (patch)
tree208bd0965d179dba627f26577cccc85ba32197f1
parente75d01a1fd972c50dad267dc50e8107c363d1ba6 (diff)
Issue #2717903 by borisson_: Cleanup for tests
-rw-r--r--core_search_facets/src/Tests/HooksTest.php26
-rw-r--r--core_search_facets/src/Tests/IntegrationTest.php100
-rw-r--r--core_search_facets/src/Tests/WebTestBase.php4
-rw-r--r--src/Tests/BlockTestTrait.php93
-rw-r--r--src/Tests/ExampleContentTrait.php28
-rw-r--r--src/Tests/FacetSourceTest.php25
-rw-r--r--src/Tests/IntegrationTest.php113
-rw-r--r--src/Tests/ProcessorIntegrationTest.php22
-rw-r--r--src/Tests/UrlIntegrationTest.php46
-rw-r--r--src/Tests/WebTestBase.php1
-rw-r--r--src/Tests/WidgetIntegrationTest.php97
11 files changed, 172 insertions, 383 deletions
diff --git a/core_search_facets/src/Tests/HooksTest.php b/core_search_facets/src/Tests/HooksTest.php
index bc9572d..66fa934 100644
--- a/core_search_facets/src/Tests/HooksTest.php
+++ b/core_search_facets/src/Tests/HooksTest.php
@@ -29,23 +29,19 @@ class HooksTest extends WebTestBase {
parent::setUp();
// Create a field of type float.
- FieldStorageConfig::create(
- [
- 'field_name' => 'float',
- 'entity_type' => 'node',
- 'type' => 'float',
- ]
- )->save();
+ FieldStorageConfig::create([
+ 'field_name' => 'float',
+ 'entity_type' => 'node',
+ 'type' => 'float',
+ ])->save();
// Create an instance of the float field on the "page" content type.
- FieldConfig::create(
- [
- 'field_name' => 'float',
- 'entity_type' => 'node',
- 'bundle' => 'page',
- 'label' => 'Float Field Label',
- ]
- )->save();
+ FieldConfig::create([
+ 'field_name' => 'float',
+ 'entity_type' => 'node',
+ 'bundle' => 'page',
+ 'label' => 'Float Field Label',
+ ])->save();
// Log in, so we can test all the things.
$this->drupalLogin($this->adminUser);
diff --git a/core_search_facets/src/Tests/IntegrationTest.php b/core_search_facets/src/Tests/IntegrationTest.php
index 5fa869a..e0499a5 100644
--- a/core_search_facets/src/Tests/IntegrationTest.php
+++ b/core_search_facets/src/Tests/IntegrationTest.php
@@ -2,7 +2,7 @@
namespace Drupal\core_search_facets\Tests;
-use Drupal\facets\Tests\ExampleContentTrait;
+use Drupal\facets\Tests\BlockTestTrait;
use Drupal\node\Entity\Node;
/**
@@ -12,14 +12,7 @@ use Drupal\node\Entity\Node;
*/
class IntegrationTest extends WebTestBase {
- use ExampleContentTrait;
-
- /**
- * The block entities used by this test.
- *
- * @var \Drupal\block\BlockInterface[]
- */
- protected $blocks;
+ use BlockTestTrait;
/**
* {@inheritdoc}
@@ -30,7 +23,9 @@ class IntegrationTest extends WebTestBase {
$this->drupalLogin($this->adminUser);
// Index the content.
- \Drupal::service('plugin.manager.search')->createInstance('node_search')->updateIndex();
+ \Drupal::service('plugin.manager.search')
+ ->createInstance('node_search')
+ ->updateIndex();
search_update_totals();
// Make absolutely sure the ::$blocks variable doesn't pass information
@@ -42,7 +37,6 @@ class IntegrationTest extends WebTestBase {
* Tests various operations via the Facets' admin UI.
*/
public function testFramework() {
-
$facet_id = 'test_facet_name';
$facet_name = 'Test Facet Name';
@@ -50,10 +44,10 @@ class IntegrationTest extends WebTestBase {
$this->checkEmptyOverview();
// Add a new facet and edit it.
- $this->addFacet($facet_id, $facet_name, 'type');
+ $this->addFacet($facet_id, $facet_name);
// Create and place a block for "Test Facet name" facet.
- $this->createFacetBlock($facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
// Verify that the facet results are correct.
$this->drupalGet('search/node', ['query' => ['keys' => 'test']]);
@@ -74,10 +68,10 @@ class IntegrationTest extends WebTestBase {
$this->clickLinkPartialName('page');
$this->assertRaw('<span class="facet-deactivate">(-)</span> page <span class="facet-count">(19)</span>');
- // Do not show the block on empty behaviors.
- // Truncate the search_index table because, for the moment, we don't have
- // the possibility to clear the index from the API.
- // See https://www.drupal.org/node/326062
+ // To make sure we have an empty result, we truncate the search_index table
+ // because, for the moment, we don't have the possibility to clear the index
+ // from the API.
+ // @see https://www.drupal.org/node/326062
\Drupal::database()->truncate('search_index')->execute();
// Verify that no facet blocks appear. Empty behavior "None" is selected by
@@ -97,7 +91,6 @@ class IntegrationTest extends WebTestBase {
// Delete the facet and make sure the overview is empty again.
$this->deleteUnusedFacet($facet_id, $facet_name);
$this->checkEmptyOverview();
-
}
/**
@@ -108,7 +101,7 @@ class IntegrationTest extends WebTestBase {
$facet_id = 'tardigrade';
$this->addFacet($facet_id, $facet_name, 'created');
- $this->createFacetBlock($facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
$this->setShowAmountOfResults($facet_id, TRUE);
// Assert date facets.
@@ -144,7 +137,7 @@ class IntegrationTest extends WebTestBase {
$facet_id = 'tardigrade';
$this->addFacet($facet_id, $facet_name, 'changed');
- $this->createFacetBlock($facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
$this->setShowAmountOfResults($facet_id, TRUE);
// Update the changed date. The nodes were created on February/March 2016
@@ -155,7 +148,9 @@ class IntegrationTest extends WebTestBase {
$node->save();
// Index the content.
- \Drupal::service('plugin.manager.search')->createInstance('node_search')->updateIndex();
+ \Drupal::service('plugin.manager.search')
+ ->createInstance('node_search')
+ ->updateIndex();
search_update_totals();
$this->drupalGet('search/node', ['query' => ['keys' => 'test']]);
@@ -165,30 +160,22 @@ class IntegrationTest extends WebTestBase {
$this->assertRaw('December 3, 2016 <span class="facet-count">(1)</span>');
$this->clickLinkPartialName('December 3, 2016');
$this->assertResponse(200);
-
}
/**
- * Tests for CRUD operations.
+ * Tests for CRUD operations in the admin UI.
*/
public function testCrudFacet() {
$facet_name = "Test Facet name";
$facet_id = 'test_facet_name';
- // Check if the overview is empty.
$this->checkEmptyOverview();
- // Add a new facet and edit it.
$this->addFacetCheck($facet_id, $facet_name, 'type');
$this->editFacetCheck($facet_id, $facet_name);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
- // Create and place a block.
- $this->createFacetBlock($facet_id);
-
- // Delete the block.
$this->deleteBlock($facet_id);
-
- // Delete the facet.
$this->deleteUnusedFacet($facet_id, $facet_name);
}
@@ -202,7 +189,7 @@ class IntegrationTest extends WebTestBase {
* @param string $type
* The field type.
*/
- public function addFacet($id, $name, $type) {
+ protected function addFacet($id, $name, $type = 'type') {
$this->drupalGet('admin/config/search/facets/add-facet');
$form_values = [
'id' => $id,
@@ -216,7 +203,7 @@ class IntegrationTest extends WebTestBase {
}
/**
- * Configures the possibility to show the amount of results for facet blocks.
+ * Configures the possibility to show the amount of results for facet items.
*
* @param string $facet_id
* The id of the facet.
@@ -224,14 +211,11 @@ class IntegrationTest extends WebTestBase {
* Boolean to determine if we want to show the amount of results.
*/
protected function setShowAmountOfResults($facet_id, $show = TRUE) {
-
$facet_edit_page = '/admin/config/search/facets/' . $facet_id . '/edit';
- // Go to the facet edit page and make sure "edit facet %facet" is present.
$this->drupalGet($facet_edit_page);
$this->assertResponse(200);
- // Configure the text for empty results behavior.
$edit = [
'widget_configs[show_numbers]' => $show,
];
@@ -239,48 +223,6 @@ class IntegrationTest extends WebTestBase {
}
/**
- * Deletes a facet block by id.
- *
- * @param string $id
- * The id of the block.
- */
- protected function deleteBlock($id) {
- $this->drupalGet('admin/structure/block/manage/' . $this->blocks[$id]->id(), array('query' => array('destination' => 'admin')));
- $this->clickLink(t('Delete'));
- $this->drupalPostForm(NULL, array(), t('Delete'));
- $this->assertRaw(t('The block %name has been deleted.', array('%name' => $this->blocks[$id]->label())));
- }
-
- /**
- * Asserts that a facet block does not appear.
- */
- protected function assertNoFacetBlocksAppear() {
- foreach ($this->blocks as $block) {
- $this->assertNoBlockAppears($block);
- }
- }
-
- /**
- * Asserts that a facet block appears.
- */
- protected function assertFacetBlocksAppear() {
- foreach ($this->blocks as $block) {
- $this->assertBlockAppears($block);
- }
- }
-
- /**
- * Creates a facet block by id.
- *
- * @param string $id
- * The id of the block.
- */
- protected function createFacetBlock($id) {
- $block_values = ['region' => 'footer', 'id' => str_replace('_', '-', $id)];
- $this->blocks[$id] = $this->drupalPlaceBlock('facet_block:' . $id, $block_values);
- }
-
- /**
* Configures empty behavior option to show a text on empty results.
*
* @param string $facet_name
@@ -401,7 +343,7 @@ class IntegrationTest extends WebTestBase {
* @param string $facet_name
* The name of the facet.
*/
- public function editFacetCheck($facet_id, $facet_name) {
+ protected function editFacetCheck($facet_id, $facet_name) {
$facet_edit_page = '/admin/config/search/facets/' . $facet_id . '/settings';
// Go to the facet edit page and make sure "edit facet %facet" is present.
diff --git a/core_search_facets/src/Tests/WebTestBase.php b/core_search_facets/src/Tests/WebTestBase.php
index 5b41816..eca7e03 100644
--- a/core_search_facets/src/Tests/WebTestBase.php
+++ b/core_search_facets/src/Tests/WebTestBase.php
@@ -70,7 +70,7 @@ abstract class WebTestBase extends SimpletestWebTestBase {
$field_storage->setTranslatable(TRUE);
$field_storage->save();
- // Adding 10 pages.
+ // Add 9 nodes of the type page.
for ($i = 1; $i <= 9; $i++) {
// Adding a different created time per language to avoid to have exactly
// the same value per nid and langcode.
@@ -102,7 +102,7 @@ abstract class WebTestBase extends SimpletestWebTestBase {
'langcode' => 'en',
));
- // Adding 10 articles.
+ // Add 10 nodes of the type article.
for ($i = 1; $i <= 10; $i++) {
$created_time = new \DateTime('April ' . $i . ' 2016 ' . str_pad($i, 2, STR_PAD_LEFT, 0) . 'PM');
$this->drupalCreateNode(array(
diff --git a/src/Tests/BlockTestTrait.php b/src/Tests/BlockTestTrait.php
new file mode 100644
index 0000000..fb4de56
--- /dev/null
+++ b/src/Tests/BlockTestTrait.php
@@ -0,0 +1,93 @@
+<?php
+
+namespace Drupal\facets\Tests;
+
+/**
+ * Shared test methods for facet blocks.
+ */
+trait BlockTestTrait {
+
+ /**
+ * The block entities used by this test.
+ *
+ * @var \Drupal\block\BlockInterface[]
+ */
+ protected $blocks;
+
+ /**
+ * Add a facet trough the UI.
+ *
+ * @param string $name
+ * The facet name.
+ * @param string $id
+ * The facet id.
+ * @param string $field
+ * The facet field.
+ */
+ protected function createFacet($name, $id, $field = 'type') {
+ $facet_add_page = 'admin/config/search/facets/add-facet';
+
+ $this->drupalGet($facet_add_page);
+
+ $form_values = [
+ 'id' => $id,
+ 'status' => 1,
+ 'name' => $name,
+ 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
+ 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => $field,
+ ];
+ $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
+ $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
+
+ $this->blocks[$id] = $this->createBlock($id);
+ }
+
+ /**
+ * Creates a facet block by id.
+ *
+ * @param string $id
+ * The id of the block.
+ *
+ * @return \Drupal\block\Entity\Block
+ * The block entity.
+ */
+ protected function createBlock($id) {
+ $block = [
+ 'region' => 'footer',
+ 'id' => str_replace('_', '-', $id),
+ ];
+ return $this->drupalPlaceBlock('facet_block:' . $id, $block);
+ }
+
+ /**
+ * Asserts that a facet block does not appear.
+ */
+ protected function assertNoFacetBlocksAppear() {
+ foreach ($this->blocks as $block) {
+ $this->assertNoBlockAppears($block);
+ }
+ }
+
+ /**
+ * Asserts that a facet block appears.
+ */
+ protected function assertFacetBlocksAppear() {
+ foreach ($this->blocks as $block) {
+ $this->assertBlockAppears($block);
+ }
+ }
+
+ /**
+ * Deletes a facet block by id.
+ *
+ * @param string $id
+ * The id of the block.
+ */
+ protected function deleteBlock($id) {
+ $this->drupalGet('admin/structure/block/manage/' . $this->blocks[$id]->id(), array('query' => array('destination' => 'admin')));
+ $this->clickLink(t('Delete'));
+ $this->drupalPostForm(NULL, array(), t('Delete'));
+ $this->assertRaw(t('The block %name has been deleted.', array('%name' => $this->blocks[$id]->label())));
+ }
+
+}
diff --git a/src/Tests/ExampleContentTrait.php b/src/Tests/ExampleContentTrait.php
index 140ce1a..1cfd0ea 100644
--- a/src/Tests/ExampleContentTrait.php
+++ b/src/Tests/ExampleContentTrait.php
@@ -15,7 +15,7 @@ trait ExampleContentTrait {
*
* @var \Drupal\entity_test\Entity\EntityTest[]
*/
- protected $entities = array();
+ protected $entities = [];
/**
* Sets up the necessary bundles on the test entity type.
@@ -91,32 +91,6 @@ trait ExampleContentTrait {
}
/**
- * Add a facet trough the UI.
- *
- * @param string $name
- * The facet name.
- * @param string $id
- * The facet id.
- * @param string $field
- * The facet field.
- */
- protected function createFacet($name, $id, $field = 'type') {
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => $field,
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
- }
-
- /**
* Asserts that a string is found before another string in the source.
*
* This uses the simpletest's getRawContent method to search in the source of
diff --git a/src/Tests/FacetSourceTest.php b/src/Tests/FacetSourceTest.php
index 2fd2335..51fcfc6 100644
--- a/src/Tests/FacetSourceTest.php
+++ b/src/Tests/FacetSourceTest.php
@@ -22,18 +22,25 @@ class FacetSourceTest extends WebTestBase {
];
/**
- * Tests the facet source editing.
+ * {@inheritdoc}
*/
- public function testEditFilterKey() {
+ public function setUp() {
+ parent::setUp();
+
// Make sure we're logged in with a user that has sufficient permissions.
$this->drupalLogin($this->adminUser);
- // Test the overview.
+ // Go to the overview and click the first configure link.
$this->drupalGet('admin/config/search/facets');
$this->assertLink($this->t('Configure'));
$this->clickLink($this->t('Configure'));
+ }
- // Test the edit page.
+ /**
+ * Tests the facet source editing.
+ */
+ public function testEditFilterKey() {
+ // Change the filter key.
$edit = array(
'filter_key' => 'fq',
);
@@ -52,15 +59,7 @@ class FacetSourceTest extends WebTestBase {
* Tests editing the url processor.
*/
public function testEditUrlProcessor() {
- // Make sure we're logged in with a user that has sufficient permissions.
- $this->drupalLogin($this->adminUser);
-
- // Test the overview.
- $this->drupalGet('admin/config/search/facets');
- $this->assertLink($this->t('Configure'));
- $this->clickLink($this->t('Configure'));
-
- // Test the edit page.
+ // Change the url processor.
$edit = array(
'url_processor' => 'dummy_query',
);
diff --git a/src/Tests/IntegrationTest.php b/src/Tests/IntegrationTest.php
index 5bb0bd5..bc71790 100644
--- a/src/Tests/IntegrationTest.php
+++ b/src/Tests/IntegrationTest.php
@@ -13,13 +13,6 @@ use Drupal\facets\Entity\Facet;
class IntegrationTest extends WebTestBase {
/**
- * The block entities used by this test.
- *
- * @var \Drupal\block\BlockInterface[]
- */
- protected $blocks;
-
- /**
* {@inheritdoc}
*/
public function setUp() {
@@ -37,7 +30,7 @@ class IntegrationTest extends WebTestBase {
}
/**
- * Tests Facets' permissions.
+ * Tests permissions.
*/
public function testOverviewPermissions() {
$facet_overview = '/admin/config/search/facets';
@@ -76,7 +69,7 @@ class IntegrationTest extends WebTestBase {
$this->assertText('Displaying 5 search results', 'The search view displays the correct number of results.');
// Create and place a block for "Test Facet name" facet.
- $this->createFacetBlock($facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
// Verify that the facet results are correct.
$this->drupalGet('search-api-test-fulltext');
@@ -152,7 +145,7 @@ class IntegrationTest extends WebTestBase {
$this->assertText('Fulltext test index', 'The search view displays the correct number of results.');
// Create and place a block for the test facet.
- $this->createFacetBlock($facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
// Verify that the facet results are correct displayed.
$this->drupalGet('<front>');
@@ -170,15 +163,10 @@ class IntegrationTest extends WebTestBase {
* @see https://www.drupal.org/node/2629504
*/
public function testRenameFacet() {
-
- // Set names.
$facet_id = 'ab_facet';
$new_facet_id = 'facet__ab';
$facet_name = 'ab>Facet';
- // Make sure we're logged in with a user that has sufficient permissions.
- $this->drupalLogin($this->adminUser);
-
// Add a new facet.
$this->addFacet($facet_name);
@@ -201,28 +189,8 @@ class IntegrationTest extends WebTestBase {
public function testUrlAlias() {
$facet_id = 'ab_facet';
$facet_name = 'ab>Facet';
-
- // Make sure we're logged in with a user that has sufficient permissions.
- $this->drupalLogin($this->adminUser);
-
- $facet_add_page = '/admin/config/search/facets/add-facet';
$facet_edit_page = '/admin/config/search/facets/' . $facet_id . '/edit';
-
- $this->drupalGet($facet_add_page);
- $this->assertResponse(200);
-
- $form_values = [
- 'name' => $facet_name,
- 'id' => $facet_id,
- 'status' => 1,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
- $this->assertRaw(t('Facet %name has been created.', ['%name' => $facet_name]));
-
- $this->createFacetBlock($facet_id);
+ $this->createFacet($facet_name, $facet_id);
$this->drupalGet('search-api-test-fulltext');
$this->assertLink('item');
@@ -250,15 +218,16 @@ class IntegrationTest extends WebTestBase {
public function testFacetDependencies() {
$facet_name = "DependableFacet";
$facet_id = 'dependablefacet';
- $this->addFacet($facet_name);
$depending_facet_name = "DependingFacet";
$depending_facet_id = "dependingfacet";
+
+ $this->addFacet($facet_name);
$this->addFacet($depending_facet_name, 'keywords');
// Create both facets as blocks and add them on the page.
- $this->createFacetBlock($facet_id);
- $this->createFacetBlock($depending_facet_id);
+ $this->blocks[$facet_id] = $this->createBlock($facet_id);
+ $this->blocks[$depending_facet_id] = $this->createBlock($depending_facet_id);
// Go the the view and test that both facets are shown. Item and article
// come from the DependableFacet, orange and grape come from DependingFacet.
@@ -334,16 +303,11 @@ class IntegrationTest extends WebTestBase {
$facet_id = 'test_facet';
$facet_edit_page = 'admin/config/search/facets/' . $facet_id . '/edit';
- $this->drupalLogin($this->adminUser);
- $this->addFacet($facet_name);
- $this->createFacetBlock('test_facet');
+ $this->createFacet($facet_name, $facet_id);
$this->drupalGet($facet_edit_page);
$this->drupalPostForm(NULL, ['facet_settings[query_operator]' => 'AND'], $this->t('Save'));
- $this->insertExampleContent();
- $this->assertEqual($this->indexItems($this->indexId), 5, '5 items were indexed.');
-
$this->drupalGet('search-api-test-fulltext');
$this->assertLink('item');
$this->assertLink('article');
@@ -364,7 +328,7 @@ class IntegrationTest extends WebTestBase {
}
/**
- * Tests that we disallow unwanted values.
+ * Tests that we disallow unwanted values when creating a facet trough the UI.
*/
public function testUnwantedValues() {
// Go to the Add facet page and make sure that returns a 200.
@@ -409,9 +373,7 @@ class IntegrationTest extends WebTestBase {
$facet_name = 'test & facet';
$facet_id = 'test_facet';
$facet_edit_page = 'admin/config/search/facets/' . $facet_id . '/edit';
-
- $this->addFacet($facet_name);
- $this->createFacetBlock($facet_id);
+ $this->createFacet($facet_name, $facet_id);
$this->drupalGet($facet_edit_page);
$this->assertNoFieldChecked('edit-facet-settings-exclude');
@@ -456,8 +418,7 @@ class IntegrationTest extends WebTestBase {
$facet_id = 'spotted_wood_owl';
$facet_edit_page = 'admin/config/search/facets/' . $facet_id;
- $this->addFacet($facet_name, 'keywords');
- $this->createFacetBlock($facet_id);
+ $this->createFacet($facet_name, $facet_id, 'keywords');
$this->drupalGet($facet_edit_page . '/edit');
$edit = ['facet_settings[show_only_one_result]' => TRUE];
@@ -485,7 +446,7 @@ class IntegrationTest extends WebTestBase {
public function testWeight() {
$facet_name = "Forest owlet";
$id = "forest_owlet";
- $this->addFacet($facet_name);
+ $this->createFacet($facet_name, $id);
/** @var \Drupal\facets\FacetInterface $facet */
$facet = Facet::load($id);
@@ -494,54 +455,6 @@ class IntegrationTest extends WebTestBase {
}
/**
- * Deletes a facet block by id.
- *
- * @param string $id
- * The id of the block.
- */
- protected function deleteBlock($id) {
- $this->drupalGet('admin/structure/block/manage/' . $this->blocks[$id]->id(), array('query' => array('destination' => 'admin')));
- $this->clickLink(t('Delete'));
- $this->drupalPostForm(NULL, array(), t('Delete'));
- $this->assertRaw(t('The block %name has been deleted.', array('%name' => $this->blocks[$id]->label())));
- }
-
- /**
- * Asserts that a facet block does not appear.
- */
- protected function assertNoFacetBlocksAppear() {
- foreach ($this->blocks as $block) {
- $this->assertNoBlockAppears($block);
- }
- }
-
- /**
- * Asserts that a facet block appears.
- */
- protected function assertFacetBlocksAppear() {
- foreach ($this->blocks as $block) {
- $this->assertBlockAppears($block);
- }
- }
-
- /**
- * Creates a facet block by id.
- *
- * @param string $id
- * The id of the block.
- */
- protected function createFacetBlock($id) {
- $block = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->blocks[$id] = $this->drupalPlaceBlock($block['plugin_id'], $block['settings']);
- }
-
- /**
* Configures empty behavior option to show a text on empty results.
*
* @param string $facet_name
diff --git a/src/Tests/ProcessorIntegrationTest.php b/src/Tests/ProcessorIntegrationTest.php
index a8ba341..02f0815 100644
--- a/src/Tests/ProcessorIntegrationTest.php
+++ b/src/Tests/ProcessorIntegrationTest.php
@@ -97,7 +97,6 @@ class ProcessorIntegrationTest extends WebTestBase {
$this->editForm = 'admin/config/search/facets/' . $facet_id . '/edit';
$this->createFacet($facet_name, $facet_id, 'keywords');
- $this->createFacetBlock($facet_id);
$this->drupalGet('search-api-test-fulltext');
$this->assertText('Displaying 10 search results');
@@ -122,7 +121,6 @@ class ProcessorIntegrationTest extends WebTestBase {
$this->editForm = 'admin/config/search/facets/' . $facet_id . '/edit';
$this->createFacet($facet_name, $facet_id, 'keywords');
- $this->createFacetBlock($facet_id);
$this->checkSortByActive();
$this->checkSortByCount();
@@ -133,7 +131,7 @@ class ProcessorIntegrationTest extends WebTestBase {
/**
* Tests the count limit processor.
*/
- private function checkCountLimitProcessor() {
+ protected function checkCountLimitProcessor() {
$this->drupalGet($this->editForm);
$form = [
@@ -185,7 +183,7 @@ class ProcessorIntegrationTest extends WebTestBase {
/**
* Tests the exclude items.
*/
- private function checkExcludeItems() {
+ protected function checkExcludeItems() {
$form = [
'facet_settings[exclude_specified_items][status]' => TRUE,
];
@@ -223,7 +221,7 @@ class ProcessorIntegrationTest extends WebTestBase {
/**
* Tests hiding non-narrowing results.
*/
- private function checkHideNonNarrowingProcessor() {
+ protected function checkHideNonNarrowingProcessor() {
$this->drupalGet('search-api-test-fulltext');
$this->assertText('Displaying 10 search results');
$this->assertLink('grape');
@@ -254,7 +252,7 @@ class ProcessorIntegrationTest extends WebTestBase {
/**
* Tests hiding active results.
*/
- private function checkHideActiveItems() {
+ protected function checkHideActiveItems() {
$form = [
'facet_settings[hide_active_items_processor][status]' => TRUE,
];
@@ -341,10 +339,8 @@ class ProcessorIntegrationTest extends WebTestBase {
/**
* Tests the display order.
*/
- public function checkSortByDisplay() {
- $form = [
- 'facet_sorting[display_value_widget_order][status]' => TRUE,
- ];
+ protected function checkSortByDisplay() {
+ $form = ['facet_sorting[display_value_widget_order][status]' => TRUE];
$this->drupalPostForm($this->editForm, $form, $this->t('Save'));
$this->drupalGet('search-api-test-fulltext');
@@ -361,16 +357,14 @@ class ProcessorIntegrationTest extends WebTestBase {
$this->assertStringPosition('strawberry', 'grape');
$this->assertStringPosition('banana', 'apple');
- $form = [
- 'facet_sorting[display_value_widget_order][status]' => FALSE,
- ];
+ $form = ['facet_sorting[display_value_widget_order][status]' => FALSE];
$this->drupalPostForm($this->editForm, $form, $this->t('Save'));
}
/**
* Tests the display order.
*/
- public function checkSortByRaw() {
+ protected function checkSortByRaw() {
$form = [
'facet_sorting[raw_value_widget_order][status]' => TRUE,
];
diff --git a/src/Tests/UrlIntegrationTest.php b/src/Tests/UrlIntegrationTest.php
index 4d3107f..4c73226 100644
--- a/src/Tests/UrlIntegrationTest.php
+++ b/src/Tests/UrlIntegrationTest.php
@@ -47,28 +47,7 @@ class UrlIntegrationTest extends WebTestBase {
public function testUrlIntegration() {
$id = 'facet';
$name = '&^Facet@#1';
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
-
- $block_values = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->drupalPlaceBlock($block_values['plugin_id'], $block_values['settings']);
+ $this->createFacet($name, $id);
$url = Url::fromUserInput('/search-api-test-fulltext', ['query' => ['f[0]' => 'facet:item']]);
$this->checkClickedFacetUrl($url);
@@ -135,28 +114,7 @@ class UrlIntegrationTest extends WebTestBase {
public function testColonValue() {
$id = 'water_bear';
$name = 'Water bear';
-
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- // Create the facet.
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'keywords',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
-
- // Create / place the block.
- $block_settings = [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ];
- $this->drupalPlaceBlock('facet_block:' . $id, $block_settings);
+ $this->createFacet($name, $id, 'keywords');
// Add a new entity that has a colon in one of it's keywords.
$entity_test_storage = \Drupal::entityTypeManager()
diff --git a/src/Tests/WebTestBase.php b/src/Tests/WebTestBase.php
index 3ce4bfd..ed4b42f 100644
--- a/src/Tests/WebTestBase.php
+++ b/src/Tests/WebTestBase.php
@@ -14,6 +14,7 @@ abstract class WebTestBase extends SimpletestWebTestBase {
use StringTranslationTrait;
use ExampleContentTrait;
+ use BlockTestTrait;
/**
* Modules to enable for this test.
diff --git a/src/Tests/WidgetIntegrationTest.php b/src/Tests/WidgetIntegrationTest.php
index 960a66a..5a49f1a 100644
--- a/src/Tests/WidgetIntegrationTest.php
+++ b/src/Tests/WidgetIntegrationTest.php
@@ -39,35 +39,15 @@ class WidgetIntegrationTest extends WebTestBase {
}
/**
- * Tests various url integration things.
+ * Tests checkbox widget.
*/
public function testCheckboxWidget() {
$id = 't';
$name = 'Facet & checkbox~';
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
+ $this->createFacet($name, $id);
+ $this->drupalGet('admin/config/search/facets/' . $id . '/edit');
$this->drupalPostForm(NULL, ['widget' => 'checkbox'], $this->t('Save'));
- $block_values = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->drupalPlaceBlock($block_values['plugin_id'], $block_values['settings']);
-
$this->drupalGet('search-api-test-fulltext');
$this->assertLink('item');
$this->assertLink('article');
@@ -79,30 +59,10 @@ class WidgetIntegrationTest extends WebTestBase {
public function testLinksWidget() {
$id = 'links_widget';
$name = '>.Facet &* Links';
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
+ $this->createFacet($name, $id);
+ $this->drupalGet('admin/config/search/facets/' . $id . '/edit');
$this->drupalPostForm(NULL, ['widget' => 'links'], $this->t('Save'));
- $block_values = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->drupalPlaceBlock($block_values['plugin_id'], $block_values['settings']);
-
$this->drupalGet('search-api-test-fulltext');
$this->assertLink('item');
$this->assertLink('article');
@@ -117,30 +77,10 @@ class WidgetIntegrationTest extends WebTestBase {
public function testSelectWidget() {
$id = 'select_widget';
$name = 'Select';
- $facet_add_page = 'admin/config/search/facets/add-facet';
-
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
+ $this->createFacet($name, $id);
+ $this->drupalGet('admin/config/search/facets/' . $id . '/edit');
$this->drupalPostForm(NULL, ['widget' => 'select'], $this->t('Save'));
- $block_values = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->drupalPlaceBlock($block_values['plugin_id'], $block_values['settings']);
-
$this->drupalGet('search-api-test-fulltext');
$this->assertField('edit-type', 'Dropdown is visible.');
$this->assertText('Displaying 5 search results');
@@ -159,30 +99,9 @@ class WidgetIntegrationTest extends WebTestBase {
public function testLinksShowHideCount() {
$id = 'links_widget';
$name = '>.Facet &* Links';
- $facet_add_page = 'admin/config/search/facets/add-facet';
$facet_edit_page = 'admin/config/search/facets/' . $id . '/edit';
- $this->drupalGet($facet_add_page);
-
- $form_values = [
- 'id' => $id,
- 'status' => 1,
- 'name' => $name,
- 'facet_source_id' => 'search_api_views:search_api_test_view:page_1',
- 'facet_source_configs[search_api_views:search_api_test_view:page_1][field_identifier]' => 'type',
- ];
- $this->drupalPostForm(NULL, ['facet_source_id' => 'search_api_views:search_api_test_view:page_1'], $this->t('Configure facet source'));
- $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
- $this->drupalPostForm(NULL, ['widget' => 'links'], $this->t('Save'));
-
- $block_values = [
- 'plugin_id' => 'facet_block:' . $id,
- 'settings' => [
- 'region' => 'footer',
- 'id' => str_replace('_', '-', $id),
- ],
- ];
- $this->drupalPlaceBlock($block_values['plugin_id'], $block_values['settings']);
+ $this->createFacet($name, $id);
// Go to the view and check that the facet links are shown with their
// default settings.