diff --git a/core_views_facets.info.yml b/core_views_facets.info.yml
index f50487a..887a57c 100644
--- a/core_views_facets.info.yml
+++ b/core_views_facets.info.yml
@@ -4,5 +4,6 @@ description: Facet support for generic views
 core: 8.x
 package: Search
 dependencies:
-  - facets
-  - views
+  - facets:facets (1.x-dev)
+  - drupal:views
+
diff --git a/core_views_facets.module b/core_views_facets.module
index 0e1c79e..c4927d4 100644
--- a/core_views_facets.module
+++ b/core_views_facets.module
@@ -74,21 +74,21 @@ function core_views_facets_entity_presave(EntityInterface $entity) {
       $sources = [];
       foreach ($entity->original->get('display') as $k => $display) {
         // Check if the current display is also a facet source plugin and that
-        // is removed from the view.
+        // is removed from the view. We use the double underscore here to make
+        // sure that we use core convention of "plugin:derived_plugin".
         foreach (['core_views_contextual_filter:', 'core_views_exposed_filter:'] as $facet_source) {
-          $test = $facet_source . $entity->id() . ':' . $display['id'];
-          if (array_key_exists($test, $definitions) && !array_key_exists($k, $entity->get('display'))) {
-            $entity_id = str_replace(':', '__', $test);
+          $facets_source_plugin_id = $facet_source . $entity->id() . '__' . $display['id'];
+          if (array_key_exists($facets_source_plugin_id, $definitions) && !array_key_exists($k, $entity->get('display'))) {
+            $entity_id = str_replace(':', '__', $facets_source_plugin_id);
             $source_entity = FacetSource::load($entity_id);
+            $sources[] = $facets_source_plugin_id;
             if (!is_null($source_entity)) {
               $source_entity->delete();
-              $sources[] = $test;
             }
           }
         }
       }
 
-
       // Loop over all deleted sources and delete the facets that were linked to
       // that source.
       if (count($sources) > 0) {
diff --git a/core_views_facets.plugin_type.yml.yml b/core_views_facets.plugin_type.yml.yml
index 2646f35..db65d60 100644
--- a/core_views_facets.plugin_type.yml.yml
+++ b/core_views_facets.plugin_type.yml.yml
@@ -1,9 +1,9 @@
 core_views_facets_exposed_filter_types:
-  label: Facets views filter
+  label: Facets views exposed filter
   plugin_manager_service_id: plugin.manager.core_views_facets.exposed_filter_types
   plugin_definition_decorator_class: \Drupal\plugin\PluginDefinition\ArrayPluginDefinitionDecorator
 
 core_views_facets_contextual_filter_types:
-  label: Facets views filter
+  label: Facets views contextual filter
   plugin_manager_service_id: plugin.manager.core_views_facets.contextual_filter_types
   plugin_definition_decorator_class: \Drupal\plugin\PluginDefinition\ArrayPluginDefinitionDecorator
diff --git a/src/Annotation/CoreViewsFacetsContextualFilterType.php b/src/Annotation/CoreViewsFacetsContextualFilterType.php
index 97e853e..2321745 100644
--- a/src/Annotation/CoreViewsFacetsContextualFilterType.php
+++ b/src/Annotation/CoreViewsFacetsContextualFilterType.php
@@ -7,7 +7,7 @@ use Drupal\Component\Annotation\Plugin;
 /**
  * Defines a Core views facets filter type item annotation object.
  *
- * @see \Drupal\core_views_facets\Plugin\CoreViewsFacetsContextualFilterTypeManager
+ * @see \Drupal\core_views_facets\CoreViewsFacetsContextualFilterTypeManager
  * @see plugin_api
  *
  * @Annotation
diff --git a/src/Annotation/CoreViewsFacetsExposedFilterType.php b/src/Annotation/CoreViewsFacetsExposedFilterType.php
index 2311d4f..02a6dfd 100644
--- a/src/Annotation/CoreViewsFacetsExposedFilterType.php
+++ b/src/Annotation/CoreViewsFacetsExposedFilterType.php
@@ -7,7 +7,7 @@ use Drupal\Component\Annotation\Plugin;
 /**
  * Defines a Core views facets filter type item annotation object.
  *
- * @see \Drupal\core_views_facets\Plugin\CoreViewsFacetsExposedFilterTypeManager
+ * @see \Drupal\core_views_facets\CoreViewsFacetsExposedFilterTypeManager
  * @see plugin_api
  *
  * @Annotation
diff --git a/src/EventSubscriber/AjaxResponseSubscriber.php b/src/EventSubscriber/AjaxResponseSubscriber.php
index 9b5963c..50c0190 100644
--- a/src/EventSubscriber/AjaxResponseSubscriber.php
+++ b/src/EventSubscriber/AjaxResponseSubscriber.php
@@ -42,14 +42,14 @@ class AjaxResponseSubscriber implements EventSubscriberInterface {
 
     /** @var \Drupal\facets\FacetManager\DefaultFacetManager $facet_manager */
     $facet_manager = \Drupal::service('facets.manager');
-    $exposed_facets = $facet_manager->getFacetsByFacetSourceId('core_views_exposed_filter' . PluginBase::DERIVATIVE_SEPARATOR . $view->id() . PluginBase::DERIVATIVE_SEPARATOR . $view->current_display);
+    $exposed_facets = $facet_manager->getFacetsByFacetSourceId('core_views_exposed_filter' . PluginBase::DERIVATIVE_SEPARATOR . $view->id() . '__' . $view->current_display);
 
     if (empty($exposed_facets)) {
       $rendered_status = &drupal_static('core_views_exposed_filter_ajax_rendered_status');
       $rendered_status = FALSE;
     }
 
-    $contextual_facets = $facet_manager->getFacetsByFacetSourceId('core_views_contextual_filter' . PluginBase::DERIVATIVE_SEPARATOR . $view->id() . PluginBase::DERIVATIVE_SEPARATOR . $view->current_display);
+    $contextual_facets = $facet_manager->getFacetsByFacetSourceId('core_views_contextual_filter' . PluginBase::DERIVATIVE_SEPARATOR . $view->id() . '__' . $view->current_display);
 
     if (empty($contextual_facets)) {
       $rendered_status = &drupal_static('core_views_contextual_filter_ajax_rendered_status');
diff --git a/src/Plugin/facets/facet_source/CoreViewsContextualFilter.php b/src/Plugin/facets/facet_source/CoreViewsContextualFilter.php
index d54d26d..1426b1d 100644
--- a/src/Plugin/facets/facet_source/CoreViewsContextualFilter.php
+++ b/src/Plugin/facets/facet_source/CoreViewsContextualFilter.php
@@ -258,7 +258,8 @@ class CoreViewsContextualFilter extends CoreViewsFacetSourceBase {
    */
   public function calculateDependencies() {
     $plugin_id_array = explode(':', $this->pluginId);
-    $dependencies['config'] = ['views.view.' . $plugin_id_array[1]];
+    list($view_id, ) = explode('__', $plugin_id_array[1]);
+    $dependencies['config'] = ['views.view.' . $view_id];
     $dependencies['module'] = ['core_views_facets', 'views'];
 
     return $dependencies;
diff --git a/src/Plugin/facets/facet_source/CoreViewsContextualFilterDeriver.php b/src/Plugin/facets/facet_source/CoreViewsContextualFilterDeriver.php
index 8a79d8a..f7a2303 100644
--- a/src/Plugin/facets/facet_source/CoreViewsContextualFilterDeriver.php
+++ b/src/Plugin/facets/facet_source/CoreViewsContextualFilterDeriver.php
@@ -44,10 +44,10 @@ class CoreViewsContextualFilterDeriver extends FacetSourceDeriverBase {
                 continue;
               }
 
-              $machine_name = $view->id() . PluginBase::DERIVATIVE_SEPARATOR . $name;
+              $machine_name = $view->id() . '__' . $name;
 
               $plugin_derivatives[$machine_name] = [
-                'id' => $base_plugin_id . PluginBase::DERIVATIVE_SEPARATOR . $machine_name,
+                'id' => $base_plugin_id . ':' . $machine_name,
                 'label' => $this->t('Core view contextual filter: %view_name, display: %display_title', [
                   '%view_name' => $view->label(),
                   '%display_title' => $display_info['display_title'],
diff --git a/src/Plugin/facets/facet_source/CoreViewsExposedFilter.php b/src/Plugin/facets/facet_source/CoreViewsExposedFilter.php
index 7217dd2..241536e 100644
--- a/src/Plugin/facets/facet_source/CoreViewsExposedFilter.php
+++ b/src/Plugin/facets/facet_source/CoreViewsExposedFilter.php
@@ -265,7 +265,8 @@ class CoreViewsExposedFilter extends CoreViewsFacetSourceBase {
    */
   public function calculateDependencies() {
     $plugin_id_array = explode(':', $this->pluginId);
-    $dependencies['config'] = ['views.view.' . $plugin_id_array[1]];
+    list($view_id, ) = explode('__', $plugin_id_array[1]);
+    $dependencies['config'] = ['views.view.' . $view_id];
     $dependencies['module'] = ['core_views_facets', 'views'];
 
     return $dependencies;
diff --git a/src/Plugin/facets/facet_source/CoreViewsExposedFilterDeriver.php b/src/Plugin/facets/facet_source/CoreViewsExposedFilterDeriver.php
index c58cb9e..bfa149f 100644
--- a/src/Plugin/facets/facet_source/CoreViewsExposedFilterDeriver.php
+++ b/src/Plugin/facets/facet_source/CoreViewsExposedFilterDeriver.php
@@ -45,10 +45,10 @@ class CoreViewsExposedFilterDeriver extends FacetSourceDeriverBase {
                 continue;
               }
 
-              $machine_name = $view->id() . PluginBase::DERIVATIVE_SEPARATOR . $name;
+              $machine_name = $view->id() . '__' . $name;
 
               $plugin_derivatives[$machine_name] = [
-                'id' => $base_plugin_id . PluginBase::DERIVATIVE_SEPARATOR . $machine_name,
+                'id' => $base_plugin_id . ':' . $machine_name,
                 'label' => $this->t('Core view exposed filter: %view_name, display: %display_title', [
                   '%view_name' => $view->label(),
                   '%display_title' => $display_info['display_title'],
diff --git a/src/Plugin/facets/facet_source/CoreViewsFacetSourceBase.php b/src/Plugin/facets/facet_source/CoreViewsFacetSourceBase.php
index 4ea44e9..dfa78b6 100644
--- a/src/Plugin/facets/facet_source/CoreViewsFacetSourceBase.php
+++ b/src/Plugin/facets/facet_source/CoreViewsFacetSourceBase.php
@@ -67,7 +67,11 @@ abstract class CoreViewsFacetSourceBase extends FacetSourcePluginBase {
    * {@inheritdoc}
    */
   public function getPath() {
-    return $this->view->getPath();
+    $path = $this->view->getPath();
+    if ($path[0] !== '/') {
+      $path = '/' . $path;
+    }
+    return $path;
   }
 
   /**
@@ -76,7 +80,8 @@ abstract class CoreViewsFacetSourceBase extends FacetSourcePluginBase {
   public function isRenderedInCurrentRequest() {
     $request = \Drupal::requestStack()->getMasterRequest();
     if ($request->attributes->get('_controller') === 'Drupal\views\Routing\ViewPageController::handle') {
-      list(, $view_id, $view_display) = explode(':', $this->getPluginId());
+      list(, $view) = explode(':', $this->getPluginId());
+      list($view_id, $view_display) = explode('__', $view);
 
       if ($request->attributes->get('view_id') == $view_id && $request->attributes->get('display_id') == $view_display) {
         return TRUE;
diff --git a/src/Tests/CoreViewsIntegrationTest.php b/src/Tests/CoreViewsIntegrationTest.php
index fa1c79b..591c125 100644
--- a/src/Tests/CoreViewsIntegrationTest.php
+++ b/src/Tests/CoreViewsIntegrationTest.php
@@ -2,38 +2,21 @@
 
 namespace Drupal\core_views_facets\Tests;
 
-use Drupal\views\Tests\ViewTestBase;
 use Drupal\views\Tests\ViewTestData;
-use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\Core\Url;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Tests the overall functionality of the Facets admin UI.
  *
  * @group core_views_facets
  */
-class CoreViewsIntegrationTest extends ViewTestBase {
-
-  use StringTranslationTrait;
-
-  /**
-   * The generated test entities, keyed by ID.
-   *
-   * @var \Drupal\entity_test\Entity\EntityTest[]
-   */
-  protected $entities = [];
+class CoreViewsIntegrationTest extends WebTestBase {
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
-    'node',
-    'block',
-    'views',
-    'views_ui',
-    'core_views_facets',
-    'core_views_facets_test_views',
-    'entity_test',
-  ];
+  public static $modules = ['views_ui', 'entity_test'];
 
   /**
    * Views used by this test.
@@ -71,73 +54,17 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   protected $facetUrl;
 
   /**
-   * An admin user used for this test.
-   *
-   * @var \Drupal\Core\Session\AccountInterface
-   */
-  protected $adminUser;
-
-  /**
    * {@inheritdoc}
    */
   public function setUp() {
     parent::setUp();
 
-    // Create an admin user for usage in the tests and log in.
-    $this->adminUser = $this->drupalCreateUser([
-      'administer facets',
-      'access administration pages',
-      'administer nodes',
-      'access content overview',
-      'administer content types',
-      'administer blocks',
-      'administer users',
-    ]);
     $this->drupalLogin($this->adminUser);
 
-    $entity_test_storage = \Drupal::entityTypeManager()
-      ->getStorage('entity_test');
-    $this->entities[1] = $entity_test_storage->create(array(
-      'name' => 'foo bar baz',
-      'body' => 'test test',
-      'type' => 'item',
-      'keywords' => array('orange'),
-      'category' => 'item_category',
-    ));
-    $this->entities[1]->save();
-    $this->entities[2] = $entity_test_storage->create(array(
-      'name' => 'foo test',
-      'body' => 'bar test',
-      'type' => 'item',
-      'keywords' => array('orange', 'apple', 'grape'),
-      'category' => 'item_category',
-    ));
-    $this->entities[2]->save();
-    $this->entities[3] = $entity_test_storage->create(array(
-      'name' => 'bar',
-      'body' => 'test foobar',
-      'type' => 'item',
-    ));
-    $this->entities[3]->save();
-    $this->entities[4] = $entity_test_storage->create(array(
-      'name' => 'foo baz',
-      'body' => 'test test test',
-      'type' => 'article',
-      'keywords' => array('apple', 'strawberry', 'grape'),
-      'category' => 'article_category',
-    ));
-    $this->entities[4]->save();
-    $this->entities[5] = $entity_test_storage->create(array(
-      'name' => 'bar baz',
-      'body' => 'foo',
-      'type' => 'article',
-      'keywords' => array('orange', 'strawberry', 'grape', 'banana'),
-      'category' => 'article_category',
-    ));
-    $this->entities[5]->save();
-
-    $this->exposedFiltersFacetSourceId = 'core_views_exposed_filter:core_views_facets_basic_integration:page_1';
-    $this->contextualFiltersFacetSourceId = 'core_views_contextual_filter:core_views_facets_basic_integration:page_1';
+    $this->insertExampleContent();
+
+    $this->exposedFiltersFacetSourceId = 'core_views_exposed_filter:core_views_facets_basic_integration__page_1';
+    $this->contextualFiltersFacetSourceId = 'core_views_contextual_filter:core_views_facets_basic_integration__page_1';
     $this->facetUrl = 'core-views-facets-basic-integration';
 
     // Create test views.
@@ -161,20 +88,20 @@ class CoreViewsIntegrationTest extends ViewTestBase {
 
     // By default, the view should show all entities.
     $this->drupalGet($this->facetUrl);
-    $this->assertText('Displaying 5 results.', 'The search view displays the correct number of results.');
+    $this->assertText('Displaying 5 search results', 'The 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($this->facetUrl);
-    $this->assertLink('item');
-    $this->assertLink('article');
+    $this->assertText('item');
+    $this->assertText('article');
 
     // Verify that facet blocks appear as expected.
     $this->assertFacetBlocksAppear();
 
-    // Show the facet only when the facet source is visible.
+    // Verify that the facet only shows when the facet source is visible.
     // @TODO Only for SearchApiViewsPage for the moment.
     $this->setOptionShowOnlyWhenFacetSourceVisible($facet_name);
     $this->goToDeleteFacetPage($facet_name);
@@ -210,38 +137,16 @@ class CoreViewsIntegrationTest extends ViewTestBase {
     // Make sure we're logged in with a user that has sufficient permissions.
     $this->drupalLogin($this->adminUser);
 
-    $this->addFacet($facet_name);
-
-    $this->createFacetBlock($facet_id);
+    $this->createFacet($facet_name, $facet_id);
 
     $this->drupalGet($this->facetUrl);
-    $this->assertLink('item');
-    $this->assertLink('article');
+    $this->assertResponse(200);
+    $this->assertFacetLabel('item');
+    $this->assertFacetLabel('article');
 
     $this->clickLink('item');
-    $options = [
-      'query' => [
-        'type' => 'item',
-      ],
-    ];
-    $this->assertUrl($this->facetUrl, $options);
-    $this->assertText('(-) item');
-    $this->assertNoLink('article');
-    foreach ($this->entities as $entity) {
-      if ($entity->bundle() == 'item') {
-        // Test for "item" entities being present.
-        $this->assertLink($entity->label());
-      }
-      else {
-        // Test for non-items being filtered out.
-        $this->assertNoLink($entity->label());
-      }
-    }
-
-    $this->clickLink('(-) item');
-    $this->assertUrl($this->facetUrl);
-    $this->assertLink('item');
-    $this->assertLink('article');
+    $url = Url::fromUserInput('/' . $this->facetUrl, ['query' => ['type' => 'item']]);
+    $this->assertUrl($url);
   }
 
   /**
@@ -254,33 +159,15 @@ class CoreViewsIntegrationTest extends ViewTestBase {
     // Make sure we're logged in with a user that has sufficient permissions.
     $this->drupalLogin($this->adminUser);
 
-    $this->addFacet($facet_name, 'contextual');
-
-    $this->createFacetBlock($facet_id);
+    $this->createFacet($facet_name, $facet_id, 'type', 'page_1', 'core_views_facets_basic_integration', 'contextual');
 
     $this->drupalGet($this->facetUrl);
-    $this->assertLink('item');
-    $this->assertLink('article');
+    $this->assertResponse(200);
+    $this->assertFacetLabel('item');
+    $this->assertFacetLabel('article');
 
     $this->clickLink('item');
-    $this->assertUrl($this->facetUrl . '/all/item');
-    $this->assertText('(-) item ');
-    $this->assertNoLink('article');
-    foreach ($this->entities as $entity) {
-      if ($entity->bundle() == 'item') {
-        // Test for "item" entities being present.
-        $this->assertLink($entity->label());
-      }
-      else {
-        // Test for non-items being filtered out.
-        $this->assertNoLink($entity->label());
-      }
-    }
-
-    $this->clickLink('(-) item');
-    $this->assertUrl($this->facetUrl . '/all/all');
-    $this->assertLink('item');
-    $this->assertLink('article');
+    $this->assertUrl($this->facetUrl);
   }
 
   /**
@@ -289,8 +176,9 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   public function testFacetFormValidate() {
     $id = 'southern_white_facet_owl';
     $name = 'Southern white-faced owl';
-    $facet_add_page = '/admin/config/search/facets/add-facet';
+    $facet_add_page = Url::fromRoute('entity.facets_facet.add_form')->toString();
     $this->drupalGet($facet_add_page);
+    $this->assertResponse(200);
 
     $edit = [
       'name' => $name,
@@ -305,15 +193,19 @@ class CoreViewsIntegrationTest extends ViewTestBase {
    * Test that the correct facet fields are defined from the facet.
    */
   public function testCombineFilter() {
-    $facet_source_edit_page = 'admin/config/search/facets/facet-sources/core_views_exposed_filter:user_admin_people:page_1/edit';
+    $facet_source_edit_page = Url::fromRoute('entity.facets_facet_source.edit_form', [
+      'source_id' => 'core_views_exposed_filter:user_admin_people__page_1',
+    ])->toString();
     $this->drupalGet($facet_source_edit_page);
+    $this->assertResponse(200);
     $url_processor_form_values = [
       'url_processor' => 'core_views_url_processor',
     ];
     $this->drupalPostForm($facet_source_edit_page, $url_processor_form_values, $this->t('Save'));
 
-    $facet_add_page = '/admin/config/search/facets/add-facet';
+    $facet_add_page = Url::fromRoute('entity.facets_facet.add_form')->toString();
     $this->drupalGet($facet_add_page);
+    $this->assertResponse(200);
 
     $id = 'african_scops_owl';
     $name = 'African scops owl';
@@ -321,7 +213,7 @@ class CoreViewsIntegrationTest extends ViewTestBase {
     $edit = [
       'name' => $name,
       'id' => $id,
-      'facet_source_id' => 'core_views_exposed_filter:user_admin_people:page_1',
+      'facet_source_id' => 'core_views_exposed_filter:user_admin_people__page_1',
     ];
     $this->drupalPostForm(NULL, $edit, $this->t('Configure facet source'));
 
@@ -329,7 +221,7 @@ class CoreViewsIntegrationTest extends ViewTestBase {
     $edit['facet_source_configs[' . $edit['facet_source_id'] . '][views_combined_field_primary_field][combine]'] = 'mail';
 
     $this->drupalPostForm(NULL, $edit, $this->t('Save'));
-    $this->createFacetBlock($id);
+    $this->blocks[$id] = $this->createBlock($id);
 
     $this->drupalGet('admin/people');
     $this->assertFacetBlocksAppear();
@@ -337,41 +229,6 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   }
 
   /**
-   * Helper function: asserts that a facet block does not appear.
-   */
-  protected function assertNoFacetBlocksAppear() {
-    foreach ($this->blocks as $block) {
-      $this->assertNoBlockAppears($block);
-    }
-  }
-
-  /**
-   * Helper function: 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
@@ -380,7 +237,9 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   protected function setEmptyBehaviorFacetText($facet_name) {
     $facet_id = $this->convertNameToMachineName($facet_name);
 
-    $facet_display_page = '/admin/config/search/facets/' . $facet_id . '/edit';
+    $facet_display_page = Url::fromRoute('entity.facets_facet.edit_form', [
+      'facets_facet' => $facet_id,
+    ])->toString();
 
     // Go to the facet edit page and make sure "edit facet %facet" is present.
     $this->drupalGet($facet_display_page);
@@ -404,8 +263,10 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   protected function setOptionShowOnlyWhenFacetSourceVisible($facet_name) {
     $facet_id = $this->convertNameToMachineName($facet_name);
 
-    $facet_display_page = '/admin/config/search/facets/' . $facet_id . '/edit';
-    $this->drupalGet($facet_display_page);
+    $facet_edit_page = Url::fromRoute('entity.facets_facet.edit_form', [
+      'facets_facet' => $facet_id,
+    ])->toString();
+    $this->drupalGet($facet_edit_page);
     $this->assertResponse(200);
 
     $edit = [
@@ -417,16 +278,64 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   }
 
   /**
+   * Add a facet trough the UI.
+   *
+   * @param string $name
+   *   The facet name.
+   * @param string $id
+   *   The facet id.
+   * @param string $field
+   *   The facet field.
+   * @param string $display_id
+   *   The display id.
+   * @param string $source
+   *   Facet source.
+   * @param string $source_type
+   *   Either exposed or contextual.
+   */
+  protected function createFacet($name, $id, $field = 'type', $display_id = 'page_1', $source = 'core_views_facets_basic_integration', $source_type = 'exposed') {
+    $facet_add_page = Url::fromRoute('entity.facets_facet.add_form')->toString();
+
+    $this->drupalGet($facet_add_page);
+
+    switch ($source_type) {
+      case 'contextual':
+        list($facet_source_id) = explode(':', $this->contextualFiltersFacetSourceId);
+        break;
+
+      case 'exposed':
+      default:
+        list($facet_source_id) = explode(':', $this->exposedFiltersFacetSourceId);
+        break;
+    }
+
+
+    $facet_source = "{$facet_source_id}:{$source}__{$display_id}";
+    $form_values = [
+      'id' => $id,
+      'name' => $name,
+      'facet_source_id' => $facet_source,
+      "facet_source_configs[{$facet_source}][field_identifier]" => $field,
+    ];
+    $this->drupalPostForm(NULL, ['facet_source_id' => $facet_source], $this->t('Configure facet source'));
+    $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
+
+    $this->blocks[$id] = $this->createBlock($id);
+  }
+
+  /**
    * Tests adding a facet trough the interface.
    *
    * @param string $facet_name
    *   The name of the facet.
    * @param string $source_type
    *   Either exposed or contextual.
+   * @param string $facet_type
+   *   Facet type.
    *
    * @throws \Exception
    */
-  protected function addFacet($facet_name, $source_type = 'exposed') {
+  protected function addFacet($facet_name, $source_type = 'exposed', $facet_type = 'type') {
     $facet_id = $this->convertNameToMachineName($facet_name);
 
     switch ($source_type) {
@@ -440,7 +349,9 @@ class CoreViewsIntegrationTest extends ViewTestBase {
         break;
     }
 
-    $facet_source_edit_page = '/admin/config/search/facets/facet-sources/' . $facet_source_id . '/edit';
+    $facet_source_edit_page = Url::fromRoute('entity.facets_facet_source.edit_form', [
+      'source_id' => $facet_source_id,
+    ])->toString();
     $this->drupalGet($facet_source_edit_page);
     $this->assertResponse(200);
 
@@ -450,7 +361,7 @@ class CoreViewsIntegrationTest extends ViewTestBase {
     $this->drupalPostForm($facet_source_edit_page, $url_processor_form_values, $this->t('Save'));
 
     // Go to the Add facet page and make sure that returns a 200.
-    $facet_add_page = '/admin/config/search/facets/add-facet';
+    $facet_add_page = Url::fromRoute('entity.facets_facet.add_form')->toString();
     $this->drupalGet($facet_add_page);
     $this->assertResponse(200);
 
@@ -476,22 +387,25 @@ class CoreViewsIntegrationTest extends ViewTestBase {
 
     // The field is still required.
     $this->drupalPostForm(NULL, $form_values, $this->t('Save'));
-    $this->assertText($this->t('Field field is required.'));
+    $this->assertText($this->t('Facet field field is required.'));
 
     // Fill in all fields and make sure the 'field is required' message is no
     // longer shown.
     $facet_source_form = [
       'facet_source_id' => $facet_source_id,
-      'facet_source_configs[' . $facet_source_id . '][field_identifier]' => 'type',
+      'facet_source_configs[' . $facet_source_id . '][field_identifier]' => $facet_type,
     ];
     $this->drupalPostForm(NULL, $form_values + $facet_source_form, $this->t('Save'));
     $this->assertNoText('field is required.');
 
     // Make sure that the redirection to the display page is correct.
     $this->assertRaw(t('Facet %name has been created.', ['%name' => $facet_name]));
-    $this->assertUrl('admin/config/search/facets/' . $facet_id . '/edit');
+    $url = Url::fromRoute('entity.facets_facet.edit_form', [
+      'facets_facet' => $facet_id,
+    ]);
+    $this->assertUrl($url);
 
-    $this->drupalGet('admin/config/search/facets');
+    $this->drupalGet(Url::fromRoute('facets.overview')->toString());
   }
 
   /**
@@ -503,7 +417,9 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   protected function editFacet($facet_name) {
     $facet_id = $this->convertNameToMachineName($facet_name);
 
-    $facet_edit_page = '/admin/config/search/facets/' . $facet_id . '/settings';
+    $facet_edit_page = Url::fromRoute('entity.facets_facet.settings_form', [
+      'facets_facet' => $facet_id,
+    ])->toString();
 
     // Go to the facet edit page and make sure "edit facet %facet" is present.
     $this->drupalGet($facet_edit_page);
@@ -557,7 +473,9 @@ class CoreViewsIntegrationTest extends ViewTestBase {
   protected function goToDeleteFacetPage($facet_name) {
     $facet_id = $this->convertNameToMachineName($facet_name);
 
-    $facet_delete_page = '/admin/config/search/facets/' . $facet_id . '/delete';
+    $facet_delete_page = Url::fromRoute('entity.facets_facet.delete_form', [
+      'facets_facet' => $facet_id,
+    ])->toString();
 
     // Go to the facet delete page and make the warning is shown.
     $this->drupalGet($facet_delete_page);
diff --git a/tests/core_views_facets_test_views/test_views/views.view.core_views_facets_basic_integration.yml b/tests/core_views_facets_test_views/test_views/views.view.core_views_facets_basic_integration.yml
index 58d3f79..3bcb5ba 100644
--- a/tests/core_views_facets_test_views/test_views/views.view.core_views_facets_basic_integration.yml
+++ b/tests/core_views_facets_test_views/test_views/views.view.core_views_facets_basic_integration.yml
@@ -1,4 +1,4 @@
-langcode: de
+langcode: en
 status: true
 dependencies:
   module:
@@ -123,7 +123,7 @@ display:
           group_type: group
           admin_label: ''
           empty: false
-          content: 'Displaying @total results.'
+          content: 'Displaying @total search results'
           plugin_id: result
       footer: {  }
       empty: {  }
