diff --git a/composer.json b/composer.json
index 7d9fe33f..e2fae4db 100644
--- a/composer.json
+++ b/composer.json
@@ -56,8 +56,7 @@
     "drupal/layout_builder_at": "dev-2.x",
     "drupal/layout_builder_st": "dev-1.x",
     "drupal/tablefield": "dev-2.x",
-    "acquia/cohesion": "6.3.*",
-    "drupal/webform": "dev-6.x"
+    "drupal/webform": "dev-6.2.x"
   },
   "suggest": {
     "drupal/potx": "dev-1.x"
diff --git a/config/install/lingotek.account.yml b/config/install/lingotek.account.yml
index 90c5ea27..2142ada2 100644
--- a/config/install/lingotek.account.yml
+++ b/config/install/lingotek.account.yml
@@ -1,5 +1,4 @@
 host: 'https://myaccount.lingotek.com'
-new_registeration_landing: 'https://insight.strakertranslations.com/lingotek-freemium-upgrade-connectors'
 authorize_path: 'auth/authorize.html'
 default_client_id: 'e39e24c7-6c69-4126-946d-cf8fbff38ef0'
 plan_type: 'basic'
diff --git a/drupalci.yml b/drupalci.yml
index 08a5eb2d..e1bafeb7 100644
--- a/drupalci.yml
+++ b/drupalci.yml
@@ -1,6 +1,16 @@
 build:
   assessment:
     validate_codebase:
+      container_command:
+        commands:
+          - cd ${SOURCE_DIR}
+          - sudo -u www-data composer config --no-plugins allow-plugins.cweagans/composer-patches true
+          - sudo -u www-data composer config extra.enable-patching true
+          - sudo -u www-data composer config extra.composer-exit-on-patch-failure true
+          # Note: this must be kept up to date with what's in our composer.json.
+          - sudo -u www-data composer require "acquia/cohesion:7.0.*"
+          - sudo -u www-data composer update acquia/cohesion --with-dependencies
+        halt-on-fail: true
       phplint: {  }
       csslint:
         halt-on-fail: false
diff --git a/js/lingotek-locales.listing.js b/js/lingotek-locales.listing.js
index 0cf7ea92..1f6b0864 100644
--- a/js/lingotek-locales.listing.js
+++ b/js/lingotek-locales.listing.js
@@ -1,7 +1,8 @@
-(function ($, Drupal) {
+(function ($, once, Drupal) {
   Drupal.behaviors.lingotekLocalesTableFilterByText = {
     attach: function attach(context, settings) {
-      var $input = $('input.locales-filter-text').once('locales-filter-text');
+      //var $input = $('input.locales-filter-text').once('locales-filter-text');
+      var $input = $(once('locales-filter-text','input.locales-filter-text' ));
       var $table = $($input.attr('data-table'));
       var $rows;
 
@@ -28,4 +29,4 @@
       }
     }
   };
-})(jQuery, Drupal);
+})(jQuery, once, Drupal);
diff --git a/js/lingotek.actions.js b/js/lingotek.actions.js
index 2779ad50..423ae38f 100644
--- a/js/lingotek.actions.js
+++ b/js/lingotek.actions.js
@@ -3,7 +3,7 @@
  * Lingotek target actions JS code for lingotek target actions button.
  */
 
-(function ($, Drupal) {
+(function ($, once, Drupal) {
 
   'use strict';
 
@@ -17,7 +17,8 @@
    */
   Drupal.behaviors.lingotekTargetActions = {
     attach: function (context, settings) {
-      var $actionsElement = $(context).find('.lingotek-target-dropdown,.lingotek-source-dropdown').once('lingotek-target-dropdown');
+      //var $actionsElement = $(context).find('.lingotek-target-dropdown,.lingotek-source-dropdown').once('lingotek-target-dropdown');
+      var $actionsElement = $(once('lingotek-target-dropdown', '.lingotek-target-dropdown,.lingotek-source-dropdown', context));
       // Attach event handlers to toggle button.
       $actionsElement.each(function () {
         var $this = $(this);
@@ -40,4 +41,4 @@
     }
   };
 
-})(jQuery, Drupal);
+})(jQuery, once, Drupal);
diff --git a/js/lingotek.job.js b/js/lingotek.job.js
index f4ccc923..dc1755e2 100644
--- a/js/lingotek.job.js
+++ b/js/lingotek.job.js
@@ -1,4 +1,4 @@
-(function ($, Drupal, drupalSettings) {
+(function ($, Drupal,once, drupalSettings) {
   Drupal.behaviors.lingotekJobId = {
     attach: function attach(context, settings) {
       var $context = $(context);
@@ -15,7 +15,8 @@
       Object.keys(settings.lingotekJobId).forEach(function (elementId) {
         var options = settings.lingotekJobId[elementId];
 
-        var $element = $context.find(elementId).once('job-id');
+       // var $element = $context.find(elementId).once('job-id');
+        var $element = $(once('job-id', elementId , context));
 
         var eventData = {
           element: $element,
@@ -33,4 +34,4 @@
       return transliteration;
     }
   };
-})(jQuery, Drupal, drupalSettings);
\ No newline at end of file
+})(jQuery, Drupal, once, drupalSettings);
\ No newline at end of file
diff --git a/lingotek.libraries.yml b/lingotek.libraries.yml
index 7a56a8d5..2e7260ae 100644
--- a/lingotek.libraries.yml
+++ b/lingotek.libraries.yml
@@ -51,7 +51,7 @@ lingotek.job:
     'js/lingotek.job.js': {}
   dependencies:
     - core/jquery
-    - core/jquery.once
+    - core/once
     - core/drupal
     - core/drupalSettings
     - core/drupal.form
@@ -63,7 +63,7 @@ lingotek.locales_listing:
   dependencies:
     - core/jquery
     - core/drupal
-    - core/jquery.once
+    - core/once
 
 lingotek.target_actions:
   css:
@@ -73,7 +73,7 @@ lingotek.target_actions:
     js/lingotek.actions.js: {}
   dependencies:
     - core/drupalSettings
-    - core/jquery.once
+    - core/once
     - core/jquery
     - core/jquery.form
     - core/drupal.ajax
diff --git a/src/Controller/LingotekBatchController.php b/src/Controller/LingotekBatchController.php
index 36fd3315..9bcac203 100644
--- a/src/Controller/LingotekBatchController.php
+++ b/src/Controller/LingotekBatchController.php
@@ -41,7 +41,7 @@ class LingotekBatchController extends LingotekControllerBase {
       'operations' => $this->getUploadOperations($entity_type, [$entity_id]),
       'error_message' => t('An error happened.'),
       'finished' => 'lingotek_operation_content_upload_finished',
-      'file' => drupal_get_path('module', 'lingotek') . '/lingotek.batch.inc',
+      'file' => \Drupal::service('extension.list.module')->getPath('lingotek') . '/lingotek.batch.inc',
     ];
     $redirect_url = \Drupal::urlGenerator()->generate("entity.$entity_type.content_translation_overview",
       [$entity_type => $entity_id], UrlGeneratorInterface::ABSOLUTE_URL);
@@ -54,7 +54,7 @@ class LingotekBatchController extends LingotekControllerBase {
       'title' => $this->t('Downloading translations from Lingotek'),
       'operations' => $this->getDownloadOperations($entity_type, [$entity_id], $locales),
       'finished' => 'lingotek_operation_content_download_finished',
-      'file' => drupal_get_path('module', 'lingotek') . '/lingotek.batch.inc',
+      'file' => \Drupal::service('extension.list.module')->getPath('lingotek') . '/lingotek.batch.inc',
     ];
     $entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($entity_id);
     $redirect_url = \Drupal::urlGenerator()->generate("entity.$entity_type.content_translation_overview",
diff --git a/src/Controller/LingotekConfigTranslationController.php b/src/Controller/LingotekConfigTranslationController.php
index 99e6a4bd..01fc8075 100644
--- a/src/Controller/LingotekConfigTranslationController.php
+++ b/src/Controller/LingotekConfigTranslationController.php
@@ -134,7 +134,7 @@ class LingotekConfigTranslationController extends ConfigTranslationController {
       ]);
     }
     if ($mapper instanceof ConfigEntityMapper) {
-      /** @var $mapper ConfigEntityMapper */
+      /** @var \Drupal\config_translation\ConfigEntityMapper $mapper */
       $entity = $mapper->getEntity();
       $entity_id = $entity->id();
     }
diff --git a/src/Controller/LingotekDashboardController.php b/src/Controller/LingotekDashboardController.php
index 7041a7b1..1e42cc59 100644
--- a/src/Controller/LingotekDashboardController.php
+++ b/src/Controller/LingotekDashboardController.php
@@ -153,6 +153,7 @@ class LingotekDashboardController extends LingotekControllerBase {
           if (isset($language, $lingotek_locale, $direction)) {
             // First, we try if there is a disabled language with that locale.
             $existingLanguage = $languageStorage->getQuery()
+              ->accessCheck(FALSE)
               ->condition('third_party_settings.lingotek.disabled', TRUE)
               ->condition('third_party_settings.lingotek.locale', $lingotek_locale)
               ->execute();
@@ -160,6 +161,7 @@ class LingotekDashboardController extends LingotekControllerBase {
               // If we didn't find it, maybe the language was the default
               // locale, and it didn't have a locale stored.
               $existingLanguage = $languageStorage->getQuery()
+                ->accessCheck(FALSE)
                 ->condition('third_party_settings.lingotek.disabled', TRUE)
                 ->condition('id', LingotekLocale::convertLingotek2Drupal($lingotek_locale, FALSE))
                 ->execute();
@@ -216,14 +218,14 @@ class LingotekDashboardController extends LingotekControllerBase {
         $details = $this->getLanguageDetails($locale_code);
         if (empty($details)) {
           $response['error'] = "language code not found.";
-          return JsonResponse::create($response, Response::HTTP_NOT_FOUND);
+          return (new JsonResponse($response, Response::HTTP_NOT_FOUND));
         }
         $http_status_code = Response::HTTP_OK;
         $response = array_merge($response, $details);
         break;
     }
 
-    return JsonResponse::create($response, $http_status_code);
+    return (new JsonResponse($response, $http_status_code));
   }
 
   private function getLanguageDetails($lingotek_locale_requested = NULL) {
@@ -350,8 +352,9 @@ class LingotekDashboardController extends LingotekControllerBase {
   }
 
   protected function getSourceTypeCount($langcode, $type) {
-    $count = $this->entityTypeManager->getStorage($type)->getQuery()
-      ->condition('langcode', $langcode)
+    $query = $this->entityTypeManager->getStorage($type)->getQuery();
+    $query->accessCheck(FALSE);
+    $count = $query->condition('langcode', $langcode)
       ->condition('default_langcode', 1)
       ->count()
       ->execute();
@@ -368,8 +371,9 @@ class LingotekDashboardController extends LingotekControllerBase {
   }
 
   protected function getTargetTypeCount($langcode, $type) {
-    $count = $this->entityTypeManager->getStorage($type)->getQuery()
-      ->condition('langcode', $langcode)
+    $query = $this->entityTypeManager->getStorage($type)->getQuery();
+    $query->accessCheck(FALSE);
+    $count = $query->condition('langcode', $langcode)
       ->condition('default_langcode', 0)
       ->count()
       ->execute();
diff --git a/src/Controller/LingotekJobManagementController.php b/src/Controller/LingotekJobManagementController.php
index 59837dd4..865be21b 100644
--- a/src/Controller/LingotekJobManagementController.php
+++ b/src/Controller/LingotekJobManagementController.php
@@ -63,6 +63,7 @@ class LingotekJobManagementController extends LingotekControllerBase {
 
   protected function getAllContentJobs(array &$jobs) {
     $entity_query = \Drupal::entityQuery('lingotek_content_metadata');
+    $entity_query->accessCheck(FALSE);
     $entity_query->exists('job_id');
     $ids = $entity_query->execute();
 
@@ -87,6 +88,7 @@ class LingotekJobManagementController extends LingotekControllerBase {
 
   protected function getAllConfigJobs(array &$jobs) {
     $entity_query = \Drupal::entityQuery('lingotek_config_metadata');
+    $entity_query->accessCheck(FALSE);
     $entity_query->exists('job_id');
     $ids = $entity_query->execute();
 
diff --git a/src/Controller/LingotekManagementController.php b/src/Controller/LingotekManagementController.php
index 1c309f4b..afb21335 100644
--- a/src/Controller/LingotekManagementController.php
+++ b/src/Controller/LingotekManagementController.php
@@ -13,6 +13,13 @@ use Symfony\Component\HttpFoundation\Request;
 
 class LingotekManagementController extends LingotekControllerBase {
 
+  /**
+   * The URL generator.
+   *
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface
+   */
+  protected $urlGenerator;
+
   /**
    * Constructs a LingotekManagementController object.
    *
diff --git a/src/Entity/LingotekContentMetadata.php b/src/Entity/LingotekContentMetadata.php
index 9283c5ac..7b915617 100644
--- a/src/Entity/LingotekContentMetadata.php
+++ b/src/Entity/LingotekContentMetadata.php
@@ -105,7 +105,7 @@ class LingotekContentMetadata extends ContentEntityBase {
       return NULL;
     }
     $entity_query = \Drupal::entityQuery('lingotek_content_metadata');
-    $entity_query->condition('content_entity_type_id', $target_entity_type_id)
+    $entity_query->accessCheck(FALSE)->condition('content_entity_type_id', $target_entity_type_id)
       ->condition('content_entity_id', $target_id);
     $result = $entity_query->execute();
     if (!empty($result)) {
@@ -132,6 +132,7 @@ class LingotekContentMetadata extends ContentEntityBase {
     $metadata = NULL;
     if ($document_id !== NULL) {
       $entity_query = \Drupal::entityQuery('lingotek_content_metadata');
+      $entity_query->accessCheck(FALSE);
       $entity_query->condition('document_id', $document_id);
       $result = $entity_query->execute();
       if (!empty($result)) {
diff --git a/src/Exception/LingotekContentEntityStorageException.php b/src/Exception/LingotekContentEntityStorageException.php
index 586bec28..c45d9d44 100644
--- a/src/Exception/LingotekContentEntityStorageException.php
+++ b/src/Exception/LingotekContentEntityStorageException.php
@@ -24,6 +24,7 @@ class LingotekContentEntityStorageException extends LingotekException {
   protected $table;
 
   public function __construct(ContentEntityInterface $entity, \Exception $previous = NULL, $message = NULL, $code = 0) {
+    $message = $message !== NULL ? $message : '';
     parent::__construct($message, $code, $previous);
     $this->entity = $entity;
     $this->table = $this->extractTableFromPreviousExceptionMessage($previous);
diff --git a/src/Form/LingotekConfigManagementForm.php b/src/Form/LingotekConfigManagementForm.php
index 347fd1a6..e794d9f3 100644
--- a/src/Form/LingotekConfigManagementForm.php
+++ b/src/Form/LingotekConfigManagementForm.php
@@ -184,6 +184,7 @@ class LingotekConfigManagementForm extends FormBase {
       $headers['title']['specifier'] = 'label';
 
       $ids = \Drupal::entityQuery('field_config')
+        ->accessCheck(FALSE)
         ->condition('id', $base_entity_type . '.', 'STARTS_WITH')
         ->tableSort($headers)
         ->execute();
@@ -198,6 +199,7 @@ class LingotekConfigManagementForm extends FormBase {
     else {
       $mapper = $this->mappers[$this->filter];
       $query = \Drupal::entityQuery($this->filter);
+      $query->accessCheck(FALSE);
       $label_filter = $temp_store->get('label');
 
       // Determine the machine name of the title for this entity type.
@@ -406,7 +408,7 @@ class LingotekConfigManagementForm extends FormBase {
     $temp_store = $this->getFilterTempStore();
     $temp_store->set('bundle', $value);
     $temp_store->set('job_id', $job_id);
-    $temp_store->set('label', trim($label));
+    $temp_store->set('label', trim($label ?? ''));
     $this->filter = $value;
     // If we apply any filters, we need to go to the first page again.
     $form_state->setRedirect('<current>');
@@ -1934,6 +1936,7 @@ class LingotekConfigManagementForm extends FormBase {
     elseif (substr($this->filter, -7) == '_fields') {
       $mapper = $this->mappers[$this->filter];
       $ids = \Drupal::entityQuery('field_config')
+        ->accessCheck(FALSE)
         ->condition('id', $values)
         ->execute();
       $fields = FieldConfig::loadMultiple($ids);
diff --git a/src/Form/LingotekIntelligenceMetadataForm.php b/src/Form/LingotekIntelligenceMetadataForm.php
index edecf948..331400a2 100644
--- a/src/Form/LingotekIntelligenceMetadataForm.php
+++ b/src/Form/LingotekIntelligenceMetadataForm.php
@@ -356,7 +356,7 @@ class LingotekIntelligenceMetadataForm extends FormBase {
    * @param \Drupal\Core\Form\FormStateInterface $form_state
    *   The current state of the form.
    *
-   * @return LingotekIntelligenceMetadataInterface
+   * @return \Drupal\lingotek\LingotekIntelligenceMetadataInterface
    *   Returns the Lingotek intelligence metadata this form applies to.
    */
   protected function getIntelligenceMetadata(FormStateInterface $form_state) {
diff --git a/src/Form/LingotekJobAssignToMultipleConfigForm.php b/src/Form/LingotekJobAssignToMultipleConfigForm.php
index 04796770..2627057f 100644
--- a/src/Form/LingotekJobAssignToMultipleConfigForm.php
+++ b/src/Form/LingotekJobAssignToMultipleConfigForm.php
@@ -308,6 +308,7 @@ class LingotekJobAssignToMultipleConfigForm extends FormBase {
       elseif (substr($type, -7) == '_fields') {
         $mapper = $this->mappers[$type];
         $ids = \Drupal::entityQuery('field_config')
+          ->accessCheck(FALSE)
           ->condition('id', array_keys($data))
           ->execute();
         $fields = FieldConfig::loadMultiple($ids);
diff --git a/src/Form/LingotekManagementRelatedEntitiesForm.php b/src/Form/LingotekManagementRelatedEntitiesForm.php
index 4c4ad2f4..6d0cf4db 100644
--- a/src/Form/LingotekManagementRelatedEntitiesForm.php
+++ b/src/Form/LingotekManagementRelatedEntitiesForm.php
@@ -33,6 +33,11 @@ class LingotekManagementRelatedEntitiesForm extends LingotekManagementFormBase {
    */
   protected $node;
 
+  /**
+   * @var array
+   */
+  protected $related;
+
   /**
    * Constructs a new LingotekManagementRelatedEntitiesForm object.
    *
diff --git a/src/Form/LingotekProfileAddForm.php b/src/Form/LingotekProfileAddForm.php
index 054e2103..a2f1b212 100644
--- a/src/Form/LingotekProfileAddForm.php
+++ b/src/Form/LingotekProfileAddForm.php
@@ -13,9 +13,10 @@ class LingotekProfileAddForm extends LingotekProfileFormBase {
    * {@inheritdoc}
    */
   public function save(array $form, FormStateInterface $form_state) {
-    parent::save($form, $form_state);
+    $return = parent::save($form, $form_state);
     $this->messenger()->addStatus($this->t('The Lingotek profile has been successfully saved.'));
     $form_state->setRedirect('lingotek.settings');
+    return $return;
   }
 
 }
diff --git a/src/Form/LingotekProfileEditForm.php b/src/Form/LingotekProfileEditForm.php
index 9e6c1b2d..2a5ba451 100644
--- a/src/Form/LingotekProfileEditForm.php
+++ b/src/Form/LingotekProfileEditForm.php
@@ -20,9 +20,10 @@ class LingotekProfileEditForm extends LingotekProfileFormBase {
    * {@inheritdoc}
    */
   public function save(array $form, FormStateInterface $form_state) {
-    parent::save($form, $form_state);
+    $return = parent::save($form, $form_state);
     $this->messenger()->addStatus($this->t('The Lingotek profile has been successfully edited.'));
     $form_state->setRedirect('lingotek.settings');
+    return $return;
   }
 
 }
diff --git a/src/Form/LingotekProfileFormBase.php b/src/Form/LingotekProfileFormBase.php
index 7260ec9c..469859ee 100644
--- a/src/Form/LingotekProfileFormBase.php
+++ b/src/Form/LingotekProfileFormBase.php
@@ -355,7 +355,7 @@ class LingotekProfileFormBase extends EntityForm {
 
     $profile->setIntelligenceMetadataOverrides($form_state->getValue(['intelligence_metadata_overrides', 'override']));
 
-    parent::save($form, $form_state);
+    return parent::save($form, $form_state);
   }
 
 }
diff --git a/src/Form/LingotekSettingsConnectForm.php b/src/Form/LingotekSettingsConnectForm.php
index 0ad02f17..1b3ba209 100644
--- a/src/Form/LingotekSettingsConnectForm.php
+++ b/src/Form/LingotekSettingsConnectForm.php
@@ -28,7 +28,7 @@ class LingotekSettingsConnectForm extends LingotekConfigFormBase {
     $id = $accountConfig->get('default_client_id');
     $return_uri = $this->urlGenerator->generateFromRoute('lingotek.setup_account_handshake', ['success' => 'true', 'prod' => 'prod'], ['absolute' => TRUE]);
 
-    $lingotek_register_link = $accountConfig->get('new_registeration_landing');
+    $lingotek_register_link = 'https://insight.strakertranslations.com/lingotek-freemium-upgrade-connectors';
     $lingotek_connect_link = $host . '/' . $auth_path . '?client_id=' . $id . '&response_type=token&redirect_uri=' . urlencode($return_uri);
     $lingotek_demo_link = 'https://www.lingotek.com/request-demo';
 
diff --git a/src/Form/LingotekSettingsContentSingleForm.php b/src/Form/LingotekSettingsContentSingleForm.php
index 89bd99af..763213f5 100644
--- a/src/Form/LingotekSettingsContentSingleForm.php
+++ b/src/Form/LingotekSettingsContentSingleForm.php
@@ -291,7 +291,8 @@ class LingotekSettingsContentSingleForm extends LingotekConfigFormBase {
           $field_checkboxes[$field_id] = $field_checkbox;
 
           // Display the column translatability configuration widget.
-          module_load_include('inc', 'content_translation', 'content_translation.admin');
+          //module_load_include('inc', 'content_translation', 'content_translation.admin');
+          \Drupal::moduleHandler()->loadInclude('content_translation', 'inc', 'content_translation.admin');
           $column_element = content_translation_field_sync_widget($field_definition);
           if ($column_element) {
             $default_properties = $lingotek_config->getDefaultFieldPropertiesLingotekEnabled($entity_id, $bundle_id, $field_id);
diff --git a/src/Form/LingotekSettingsTabAccountForm.php b/src/Form/LingotekSettingsTabAccountForm.php
index ba946213..61d37aa7 100644
--- a/src/Form/LingotekSettingsTabAccountForm.php
+++ b/src/Form/LingotekSettingsTabAccountForm.php
@@ -140,7 +140,7 @@ class LingotekSettingsTabAccountForm extends LingotekConfigFormBase {
     ];
 
     $filters = $this->lingotekFilterManager->getLocallyAvailableFilters();
-    if ($filters > 0) {
+    if (!empty($filters)) {
       $default_filter = $this->lingotekFilterManager->getDefaultFilter();
       $default_filter_label = $this->lingotekFilterManager->getDefaultFilterLabel();
       $default_subfilter = $this->lingotekFilterManager->getDefaultSubfilter();
diff --git a/src/Form/LingotekSettingsTabContentForm.php b/src/Form/LingotekSettingsTabContentForm.php
index 6487f538..d8a21d81 100644
--- a/src/Form/LingotekSettingsTabContentForm.php
+++ b/src/Form/LingotekSettingsTabContentForm.php
@@ -368,7 +368,8 @@ class LingotekSettingsTabContentForm extends LingotekConfigFormBase {
           $field_checkboxes[$field_id] = $field_checkbox;
 
           // Display the column translatability configuration widget.
-          module_load_include('inc', 'content_translation', 'content_translation.admin');
+          //module_load_include('inc', 'content_translation', 'content_translation.admin');
+          \Drupal::moduleHandler()->loadInclude('content_translation', 'inc', 'content_translation.admin');
           $column_element = content_translation_field_sync_widget($field_definition);
           if ($column_element) {
             $default_properties = $lingotek_config->getDefaultFieldPropertiesLingotekEnabled($entity_id, $bundle_id, $field_id);
diff --git a/src/Form/LingotekSettingsTabPreferencesForm.php b/src/Form/LingotekSettingsTabPreferencesForm.php
index 7931ee16..3299a336 100644
--- a/src/Form/LingotekSettingsTabPreferencesForm.php
+++ b/src/Form/LingotekSettingsTabPreferencesForm.php
@@ -190,6 +190,7 @@ class LingotekSettingsTabPreferencesForm extends LingotekConfigFormBase {
       $theme_default = $this->config('system.theme')->get('default');
       $this->lang_regions = system_region_list($theme_default, BlockRepositoryInterface::REGIONS_VISIBLE);
       $ids = \Drupal::entityQuery('block')
+        ->accessCheck(FALSE)
         ->condition('plugin', 'language_block:language_interface')
         ->condition('theme', $theme_default)
         ->execute();
diff --git a/src/LanguageLocaleMapper.php b/src/LanguageLocaleMapper.php
index 2f56a319..59d0893c 100644
--- a/src/LanguageLocaleMapper.php
+++ b/src/LanguageLocaleMapper.php
@@ -31,6 +31,7 @@ class LanguageLocaleMapper implements LanguageLocaleMapperInterface {
     $drupal_language = NULL;
     $locale = str_replace("-", "_", $locale);
     $id = $this->entityTypeManager->getStorage('configurable_language')->getQuery()
+      ->accessCheck(FALSE)
       ->condition('third_party_settings.lingotek.locale', $locale)
       ->execute();
     if (!empty($id)) {
diff --git a/src/Lingotek.php b/src/Lingotek.php
index fb26f0fc..6ca6a7bd 100644
--- a/src/Lingotek.php
+++ b/src/Lingotek.php
@@ -339,7 +339,7 @@ class Lingotek implements LingotekInterface {
 
     $statusCode = $response->getStatusCode();
     if ($statusCode == Response::HTTP_ACCEPTED) {
-      $responseBody = Json::decode($response->getBody(), TRUE);
+      $responseBody = Json::decode($response->getBody());
       if (!empty($responseBody) && !empty($responseBody['properties']['id'])) {
         $process_id = $responseBody['properties']['process_id'];
         return $responseBody['properties']['id'];
@@ -462,7 +462,7 @@ class Lingotek implements LingotekInterface {
     $response = $this->api->patchDocument($doc_id, $args);
     $statusCode = $response->getStatusCode();
     if ($statusCode == Response::HTTP_ACCEPTED) {
-      $responseBody = Json::decode($response->getBody(), TRUE);
+      $responseBody = Json::decode($response->getBody());
       if (empty($responseBody)) {
         return TRUE;
       }
@@ -857,7 +857,7 @@ class Lingotek implements LingotekInterface {
         // If an exception didn't happen, the document is succesfully imported.
         // The status value there is related with translation status, so we must
         // ignore it.
-        $bodyResponse = Json::decode($response->getBody(), TRUE);
+        $bodyResponse = Json::decode($response->getBody());
         $progress = $bodyResponse['properties']['progress'];
         $completed = ($progress === self::PROGRESS_COMPLETE) &&
           ($bodyResponse['properties']['status'] === 'COMPLETED');
diff --git a/src/LingotekConfigTranslationService.php b/src/LingotekConfigTranslationService.php
index c6c312ac..1689fe07 100644
--- a/src/LingotekConfigTranslationService.php
+++ b/src/LingotekConfigTranslationService.php
@@ -1794,7 +1794,7 @@ class LingotekConfigTranslationService implements LingotekConfigTranslationServi
 
         foreach ($data as $name => $properties) {
           foreach ($properties as $property => $value) {
-            $config_translation->set($property, html_entity_decode($value));
+            $config_translation->set($property, html_entity_decode($value !== NULL ? $value : ''));
           }
           $config_translation->save();
         }
@@ -1825,6 +1825,7 @@ class LingotekConfigTranslationService implements LingotekConfigTranslationServi
           $mapper_id = 'field_config';
         }
         $id = $this->entityTypeManager->getStorage('lingotek_config_metadata')->getQuery()
+          ->accessCheck(FALSE)
           ->condition('document_id', $document_id)
           ->execute();
         if (!empty($id)) {
diff --git a/src/LingotekContentTranslationService.php b/src/LingotekContentTranslationService.php
index 6a32fff1..148d0bf2 100644
--- a/src/LingotekContentTranslationService.php
+++ b/src/LingotekContentTranslationService.php
@@ -182,7 +182,7 @@ class LingotekContentTranslationService implements LingotekContentTranslationSer
         throw $exception;
       }
 
-      if ($status) {
+      if (isset($status) && !empty($status)) {
         $this->setSourceStatus($entity, Lingotek::STATUS_CURRENT);
         return TRUE;
       }
diff --git a/src/LingotekJobManagementService.php b/src/LingotekJobManagementService.php
index c273b469..92c17598 100644
--- a/src/LingotekJobManagementService.php
+++ b/src/LingotekJobManagementService.php
@@ -6,6 +6,7 @@ class LingotekJobManagementService {
 
   public function getAllContentJobs(array &$jobs) {
     $entity_query = \Drupal::entityQuery('lingotek_content_metadata');
+    $entity_query->accessCheck(FALSE);
     $entity_query->exists('job_id');
     $ids = $entity_query->execute();
 
@@ -30,6 +31,7 @@ class LingotekJobManagementService {
 
   public function getAllConfigJobs(array &$jobs) {
     $entity_query = \Drupal::entityQuery('lingotek_config_metadata');
+    $entity_query->accessCheck(FALSE);
     $entity_query->exists('job_id');
     $ids = $entity_query->execute();
 
diff --git a/src/LingotekProfileUsage.php b/src/LingotekProfileUsage.php
index 2f135c81..a82ba446 100644
--- a/src/LingotekProfileUsage.php
+++ b/src/LingotekProfileUsage.php
@@ -63,6 +63,7 @@ class LingotekProfileUsage implements LingotekProfileUsageInterface {
    */
   public function isUsedByContent(LingotekProfileInterface $profile) {
     $entity_query = $this->entityTypeManager->getStorage('lingotek_content_metadata')->getQuery();
+    $entity_query->accessCheck(FALSE);
     $entity_query->condition('profile', $profile->id());
     $result = $entity_query->count()->execute();
     $used = ($result > 0) ? LingotekProfileUsageInterface::USED_BY_CONTENT : LingotekProfileUsageInterface::UNUSED;
@@ -85,6 +86,7 @@ class LingotekProfileUsage implements LingotekProfileUsageInterface {
 
     if ($used !== LingotekProfileUsageInterface::USED_BY_CONFIG) {
       $entity_query = $this->entityTypeManager->getStorage('lingotek_config_metadata')->getQuery();
+      $entity_query->accessCheck(FALSE);
       $entity_query->condition('profile', $profile->id());
       $result = $entity_query->count()->execute();
       $used = ($result > 0) ? LingotekProfileUsageInterface::USED_BY_CONFIG : LingotekProfileUsageInterface::UNUSED;
diff --git a/src/Moderation/LingotekWorkbenchModerationSettingsForm.php b/src/Moderation/LingotekWorkbenchModerationSettingsForm.php
index f63ea706..95056f47 100644
--- a/src/Moderation/LingotekWorkbenchModerationSettingsForm.php
+++ b/src/Moderation/LingotekWorkbenchModerationSettingsForm.php
@@ -108,7 +108,7 @@ class LingotekWorkbenchModerationSettingsForm implements LingotekModerationSetti
     $status = $this->moderationConfiguration->getUploadStatus($entity_type_id, $bundle);
 
     if (!$status) {
-      $published_statuses = $this->entityTypeManager->getStorage('moderation_state')->getQuery()->condition('published', TRUE)->execute();
+      $published_statuses = $this->entityTypeManager->getStorage('moderation_state')->getQuery()->accessCheck(FALSE)->condition('published', TRUE)->execute();
       if (count($published_statuses) > 0) {
         $status = reset($published_statuses);
       }
@@ -139,6 +139,7 @@ class LingotekWorkbenchModerationSettingsForm implements LingotekModerationSetti
 
     if (!$transition) {
       $transitions = $this->entityTypeManager->getStorage('moderation_state_transition')->getQuery()
+        ->accessCheck(FALSE)
         ->condition('stateFrom', $this->getDefaultModerationUploadStatus($entity_type_id, $bundle))
         ->execute();
       if (count($transitions) > 0) {
diff --git a/src/Plugin/Field/LingotekContentMetadataFieldItemList.php b/src/Plugin/Field/LingotekContentMetadataFieldItemList.php
index 60b38455..dda522f3 100644
--- a/src/Plugin/Field/LingotekContentMetadataFieldItemList.php
+++ b/src/Plugin/Field/LingotekContentMetadataFieldItemList.php
@@ -27,6 +27,7 @@ class LingotekContentMetadataFieldItemList extends EntityReferenceFieldItemList
 
     if ($entity->id()) {
       $metadata_result = \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->getQuery()
+        ->accessCheck(FALSE)
         ->condition('content_entity_type_id', $entity->getEntityTypeId())
         ->condition('content_entity_id', $entity->id())
         ->execute();
diff --git a/src/Plugin/LingotekFieldProcessor/LingotekDefaultProcessor.php b/src/Plugin/LingotekFieldProcessor/LingotekDefaultProcessor.php
index 4e2c1c36..2bfdfcdd 100644
--- a/src/Plugin/LingotekFieldProcessor/LingotekDefaultProcessor.php
+++ b/src/Plugin/LingotekFieldProcessor/LingotekDefaultProcessor.php
@@ -69,7 +69,8 @@ class LingotekDefaultProcessor extends PluginBase implements LingotekFieldProces
   public function extract(ContentEntityInterface &$entity, string $field_name, FieldDefinitionInterface $field_definition, array &$data, array &$visited = [], string $revision_mode = LingotekContentTranslationEntityRevisionResolver::RESOLVE_LATEST_TRANSLATION_AFFECTED) {
     // If there is only one relevant attribute, upload it.
     // Get the column translatability configuration.
-    module_load_include('inc', 'content_translation', 'content_translation.admin');
+    //module_load_include('inc', 'content_translation', 'content_translation.admin');
+    \Drupal::moduleHandler()->loadInclude('content_translation', 'inc', 'content_translation.admin');
     $column_element = content_translation_field_sync_widget($field_definition);
     $field = $entity->get($field_name);
     $field_type = $field_definition->getType();
diff --git a/src/Routing/LingotekRouteSubscriber.php b/src/Routing/LingotekRouteSubscriber.php
index dee8d02b..520a43a0 100644
--- a/src/Routing/LingotekRouteSubscriber.php
+++ b/src/Routing/LingotekRouteSubscriber.php
@@ -116,7 +116,7 @@ class LingotekRouteSubscriber extends RouteSubscriberBase {
   /**
    * {@inheritdoc}
    */
-  public static function getSubscribedEvents() {
+  public static function getSubscribedEvents(): array {
     $events = parent::getSubscribedEvents();
     //  ContentTranslationRouteSubscriber is -100.
     $events[RoutingEvents::ALTER] = ['onAlterRoutes', -211];
diff --git a/src/Tests/Kernel/FieldFormatters/LingotekSourceStatusFormatterTest.php b/src/Tests/Kernel/FieldFormatters/LingotekSourceStatusFormatterTest.php
index 993c4b10..e41d76f2 100644
--- a/src/Tests/Kernel/FieldFormatters/LingotekSourceStatusFormatterTest.php
+++ b/src/Tests/Kernel/FieldFormatters/LingotekSourceStatusFormatterTest.php
@@ -20,7 +20,7 @@ class LingotekSourceStatusFormatterTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system', 'field', 'text', 'locale', 'language', 'config_translation', 'content_translation', 'lingotek', 'user', 'entity_test'];
+  protected static $modules = ['system', 'field', 'text', 'locale', 'language', 'config_translation', 'content_translation', 'lingotek', 'user', 'entity_test'];
 
   /**
    * @var string
diff --git a/src/Tests/Kernel/LingotekConfigImportTest.php b/src/Tests/Kernel/LingotekConfigImportTest.php
index df18a93d..5f8d3cc6 100644
--- a/src/Tests/Kernel/LingotekConfigImportTest.php
+++ b/src/Tests/Kernel/LingotekConfigImportTest.php
@@ -24,7 +24,7 @@ class LingotekConfigImportTest extends KernelTestBase {
    *
    * @var array
    */
-  public static $modules = ['config_test', 'system', 'user', 'entity_test', 'language', 'locale', 'content_translation', 'config_translation', 'lingotek'];
+  protected static $modules = ['config_test', 'system', 'user', 'entity_test', 'language', 'locale', 'content_translation', 'config_translation', 'lingotek'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/modules/lingotek_test/src/LingotekFake.php b/tests/modules/lingotek_test/src/LingotekFake.php
index 2df40ef3..4064673e 100644
--- a/tests/modules/lingotek_test/src/LingotekFake.php
+++ b/tests/modules/lingotek_test/src/LingotekFake.php
@@ -23,6 +23,13 @@ class LingotekFake implements LingotekInterface {
   protected $api;
   protected $config;
 
+  /**
+   * The language-locale mapper.
+   *
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageLocaleMapper;
+
   public function __construct(LingotekApiInterface $api, LanguageLocaleMapperInterface $language_locale_mapper, ConfigFactoryInterface $config) {
     $this->api = $api;
     $this->languageLocaleMapper = $language_locale_mapper;
@@ -359,10 +366,10 @@ class LingotekFake implements LingotekInterface {
     \Drupal::state()->set('lingotek.downloaded_locale', $locale);
     $type = \Drupal::state()->get('lingotek.uploaded_content_type', 'node');
     $typeWithLocale = $type . '.' . $locale;
-    $path = drupal_get_path('module', 'lingotek') . '/tests/modules/lingotek_test/document_responses/' . $typeWithLocale . '.json';
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek') . '/tests/modules/lingotek_test/document_responses/' . $typeWithLocale . '.json';
 
     if (!file_exists($path)) {
-      $path = drupal_get_path('module', 'lingotek') . '/tests/modules/lingotek_test/document_responses/' . $type . '.json';
+      $path = \Drupal::service('extension.list.module')->getPath('lingotek') . '/tests/modules/lingotek_test/document_responses/' . $type . '.json';
     }
 
     $input = file_get_contents($path);
diff --git a/tests/src/Functional/Actions/LingotekActionsTest.php b/tests/src/Functional/Actions/LingotekActionsTest.php
index 9f6041ae..9ebce58f 100644
--- a/tests/src/Functional/Actions/LingotekActionsTest.php
+++ b/tests/src/Functional/Actions/LingotekActionsTest.php
@@ -20,7 +20,7 @@ class LingotekActionsTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['action', 'taxonomy', 'node'];
+  protected static $modules = ['action', 'taxonomy', 'node'];
 
   /**
    * @var \Drupal\taxonomy\VocabularyInterface
diff --git a/tests/src/Functional/ChineseBulkTranslationTest.php b/tests/src/Functional/ChineseBulkTranslationTest.php
index 4f799316..5c9b0c1c 100644
--- a/tests/src/Functional/ChineseBulkTranslationTest.php
+++ b/tests/src/Functional/ChineseBulkTranslationTest.php
@@ -17,7 +17,7 @@ class ChineseBulkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'comment'];
+  protected static $modules = ['node', 'comment'];
 
   protected function setUp(): void {
     parent::setUp();
diff --git a/tests/src/Functional/Controller/LingotekNotificationControllerTest.php b/tests/src/Functional/Controller/LingotekNotificationControllerTest.php
index 79c53b06..7b790be2 100644
--- a/tests/src/Functional/Controller/LingotekNotificationControllerTest.php
+++ b/tests/src/Functional/Controller/LingotekNotificationControllerTest.php
@@ -22,7 +22,7 @@ class LingotekNotificationControllerTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'page_cache', 'dynamic_page_cache', 'big_pipe'];
+  protected static $modules = ['block', 'node', 'page_cache', 'dynamic_page_cache', 'big_pipe'];
 
   /**
    * {@inheritdoc}
@@ -106,7 +106,7 @@ class LingotekNotificationControllerTest extends LingotekTestBase {
     $this->assertStringContainsString('max-age=0', $cache_control_header[0]);
 
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     // Simulate again the notification of content successfully uploaded.
@@ -121,7 +121,7 @@ class LingotekNotificationControllerTest extends LingotekTestBase {
     $this->assertStringContainsString('max-age=0', $cache_control_header[0]);
 
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
   }
 
diff --git a/tests/src/Functional/Controller/LingotekWorkbenchRedirectControllerTest.php b/tests/src/Functional/Controller/LingotekWorkbenchRedirectControllerTest.php
index c18b9e0d..3ab8533a 100644
--- a/tests/src/Functional/Controller/LingotekWorkbenchRedirectControllerTest.php
+++ b/tests/src/Functional/Controller/LingotekWorkbenchRedirectControllerTest.php
@@ -17,7 +17,7 @@ class LingotekWorkbenchRedirectControllerTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/Events/TargetSecondaryActionsEventTest.php b/tests/src/Functional/Events/TargetSecondaryActionsEventTest.php
index da497a7c..c42f1d00 100644
--- a/tests/src/Functional/Events/TargetSecondaryActionsEventTest.php
+++ b/tests/src/Functional/Events/TargetSecondaryActionsEventTest.php
@@ -18,7 +18,7 @@ class TargetSecondaryActionsEventTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system', 'block', 'node', 'lingotek_form_test', 'lingotek_secondary_actions_test'];
+  protected static $modules = ['system', 'block', 'node', 'lingotek_form_test', 'lingotek_secondary_actions_test'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/FieldFormatters/LingotekSourceStatusFormatterTest.php b/tests/src/Functional/FieldFormatters/LingotekSourceStatusFormatterTest.php
index 65c202c0..14e7fa7b 100644
--- a/tests/src/Functional/FieldFormatters/LingotekSourceStatusFormatterTest.php
+++ b/tests/src/Functional/FieldFormatters/LingotekSourceStatusFormatterTest.php
@@ -16,7 +16,7 @@ class LingotekSourceStatusFormatterTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'lingotek_visitable_metadata'];
+  protected static $modules = ['node', 'lingotek_visitable_metadata'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/FieldFormatters/LingotekTranslationStatusFormatterTest.php b/tests/src/Functional/FieldFormatters/LingotekTranslationStatusFormatterTest.php
index 7dfd739c..9d172caa 100644
--- a/tests/src/Functional/FieldFormatters/LingotekTranslationStatusFormatterTest.php
+++ b/tests/src/Functional/FieldFormatters/LingotekTranslationStatusFormatterTest.php
@@ -18,7 +18,7 @@ class LingotekTranslationStatusFormatterTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'lingotek_visitable_metadata'];
+  protected static $modules = ['node', 'lingotek_visitable_metadata'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/FieldFormatters/LingotekTranslationStatusesFormatterTest.php b/tests/src/Functional/FieldFormatters/LingotekTranslationStatusesFormatterTest.php
index 188a41c4..831a884b 100644
--- a/tests/src/Functional/FieldFormatters/LingotekTranslationStatusesFormatterTest.php
+++ b/tests/src/Functional/FieldFormatters/LingotekTranslationStatusesFormatterTest.php
@@ -18,7 +18,7 @@ class LingotekTranslationStatusesFormatterTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'lingotek_visitable_metadata_statuses'];
+  protected static $modules = ['node', 'lingotek_visitable_metadata_statuses'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/Form/IntelligenceMetadataFormTestTrait.php b/tests/src/Functional/Form/IntelligenceMetadataFormTestTrait.php
index 492be977..976f06f5 100644
--- a/tests/src/Functional/Form/IntelligenceMetadataFormTestTrait.php
+++ b/tests/src/Functional/Form/IntelligenceMetadataFormTestTrait.php
@@ -13,45 +13,45 @@ trait IntelligenceMetadataFormTestTrait {
    * Assert field defaults are correct.
    */
   protected function assertIntelligenceFieldDefaults() {
-    $this->assertFieldChecked('edit-intelligence-metadata-use-author');
-    $this->assertFieldChecked('edit-intelligence-metadata-use-author-email');
-    $this->assertNoFieldChecked('edit-intelligence-metadata-use-contact-email-for-author');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-author');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-author-email');
+    $this->assertSession()->checkboxNotChecked('edit-intelligence-metadata-use-contact-email-for-author');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-business-unit');
-    $this->assertFieldByName('intelligence_metadata[business_unit]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-business-unit');
+    $this->assertSession()->fieldExists('intelligence_metadata[business_unit]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-business-division');
-    $this->assertFieldByName('intelligence_metadata[business_division]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-business-division');
+    $this->assertSession()->fieldExists('intelligence_metadata[business_division]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-campaign-id');
-    $this->assertFieldByName('intelligence_metadata[campaign_id]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-campaign-id');
+    $this->assertSession()->fieldExists('intelligence_metadata[campaign_id]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-campaign-rating');
-    $this->assertFieldByName('intelligence_metadata[campaign_rating]', '0');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-campaign-rating');
+    $this->assertSession()->fieldExists('intelligence_metadata[campaign_rating]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-channel');
-    $this->assertFieldByName('intelligence_metadata[channel]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-channel');
+    $this->assertSession()->fieldExists('intelligence_metadata[channel]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-contact-name');
-    $this->assertFieldByName('intelligence_metadata[contact_name]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-contact-name');
+    $this->assertSession()->fieldExists('intelligence_metadata[contact_name]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-contact-email');
-    $this->assertFieldByName('intelligence_metadata[contact_email]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-contact-email');
+    $this->assertSession()->fieldExists('intelligence_metadata[contact_email]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-content-description');
-    $this->assertFieldByName('intelligence_metadata[content_description]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-content-description');
+    $this->assertSession()->fieldExists('intelligence_metadata[content_description]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-base-domain');
-    $this->assertFieldChecked('edit-intelligence-metadata-use-reference-url');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-base-domain');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-reference-url');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-external-style-id');
-    $this->assertFieldByName('intelligence_metadata[external_style_id]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-external-style-id');
+    $this->assertSession()->fieldExists('intelligence_metadata[external_style_id]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-purchase-order');
-    $this->assertFieldByName('intelligence_metadata[purchase_order]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-purchase-order');
+    $this->assertSession()->fieldExists('intelligence_metadata[purchase_order]');
 
-    $this->assertFieldChecked('edit-intelligence-metadata-use-region');
-    $this->assertFieldByName('intelligence_metadata[region]', '');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-use-region');
+    $this->assertSession()->fieldExists('intelligence_metadata[region]');
   }
 
 }
diff --git a/tests/src/Functional/Form/LanguageFormTest.php b/tests/src/Functional/Form/LanguageFormTest.php
index b3a61b05..9631db38 100644
--- a/tests/src/Functional/Form/LanguageFormTest.php
+++ b/tests/src/Functional/Form/LanguageFormTest.php
@@ -20,7 +20,7 @@ class LanguageFormTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['lingotek', 'lingotek_test'];
+  protected static $modules = ['lingotek', 'lingotek_test'];
 
   /**
    * {@inheritdoc}
@@ -48,13 +48,13 @@ class LanguageFormTest extends BrowserTestBase {
     $edit = [
       'predefined_langcode' => 'de',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Add language');
+    $this->submitForm($edit, 'Add language');
 
     // Click on edit for German.
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-DE', 'The Lingotek locale is set correctly.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-DE');
   }
 
   /**
@@ -67,9 +67,9 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-DE', 'The Lingotek locale is set correctly.');
-    $this->drupalPostForm(NULL, ['name' => 'German (Germany)'], 'Save language');
-    $this->assertText('German (Germany)');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-DE');
+    $this->submitForm(['name' => 'German (Germany)'], 'Save language');
+    $this->assertSession()->pageTextContains('German (Germany)');
   }
 
   /**
@@ -85,10 +85,10 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-DE', 'The Lingotek locale is set correctly.');
-    $this->drupalPostForm(NULL, ['name' => 'German (Germany)'], 'Save language');
-    $this->assertText('German (Germany)');
-    $this->assertText("The Lingotek locale has not been validated.");
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-DE');
+    $this->submitForm(['name' => 'German (Germany)'], 'Save language');
+    $this->assertSession()->pageTextContains('German (Germany)');
+    $this->assertSession()->pageTextContains("The Lingotek locale has not been validated.");
   }
 
   /**
@@ -97,10 +97,10 @@ class LanguageFormTest extends BrowserTestBase {
   public function testAddingCustomLanguage() {
     // Check that there is a select for locales.
     $this->drupalGet('admin/config/regional/language/add');
-    $this->assertField('lingotek_locale', 'There is a field for adding the Lingotek locale.');
+    $this->assertSession()->fieldExists('lingotek_locale');
 
     // Assert that the locale is empty.
-    $this->assertFieldByName('lingotek_locale', '', 'The Lingotek locale is empty by default.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', '');
     // The Lingotek locale is enabled by default.
     $this->getSession()->getPage()->hasUncheckedField('lingotek_disabled');
 
@@ -111,18 +111,18 @@ class LanguageFormTest extends BrowserTestBase {
       'direction' => 'ltr',
       'lingotek_locale' => 'es-ES',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Add custom language');
-    $this->assertText('The language Spanish (Germany) has been created and can now be used.');
+    $this->submitForm($edit, 'Add custom language');
+    $this->assertSession()->pageTextContains('The language Spanish (Germany) has been created and can now be used.');
 
     // Ensure the language is created and with the right locale.
     $language = ConfigurableLanguage::load('es-DE');
-    $this->assertEqual('es_ES', $language->getThirdPartySetting('lingotek', 'locale'), 'The Lingotek locale has been saved successfully.');
+    $this->assertEquals('es_ES', $language->getThirdPartySetting('lingotek', 'locale'), 'The Lingotek locale has been saved successfully.');
 
     // Ensure the locale and langcode are correctly mapped.
-    /** @var LanguageLocaleMapperInterface $locale_mapper */
+    /** @var \Drupal\lingotek\LanguageLocaleMapperInterface $locale_mapper */
     $locale_mapper = \Drupal::service('lingotek.language_locale_mapper');
-    $this->assertEqual('es_ES', $locale_mapper->getLocaleForLangcode('es-DE'), 'The language locale mapper correctly guesses the locale.');
-    $this->assertEqual('es-DE', $locale_mapper->getConfigurableLanguageForLocale('es_ES')->getId(), 'The language locale mapper correctly guesses the langcode.');
+    $this->assertEquals('es_ES', $locale_mapper->getLocaleForLangcode('es-DE'), 'The language locale mapper correctly guesses the locale.');
+    $this->assertEquals('es-DE', $locale_mapper->getConfigurableLanguageForLocale('es_ES')->getId(), 'The language locale mapper correctly guesses the langcode.');
   }
 
   /**
@@ -142,7 +142,7 @@ class LanguageFormTest extends BrowserTestBase {
     $edit = [
       'lingotek_disabled' => TRUE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save language');
+    $this->submitForm($edit, 'Save language');
 
     // Ensure the language is disabled.
     $language = ConfigurableLanguage::load('es-DE');
@@ -175,7 +175,7 @@ class LanguageFormTest extends BrowserTestBase {
     $edit = [
       'lingotek_disabled' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save language');
+    $this->submitForm($edit, 'Save language');
 
     // Ensure the language is disabled.
     $language = ConfigurableLanguage::load('de-at');
@@ -200,16 +200,16 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-AT', 'The Lingotek locale is set to the right language.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-AT');
 
     // Edit the locale.
     $edit = ['lingotek_locale' => 'de-DE'];
-    $this->drupalPostForm(NULL, $edit, 'Save language');
+    $this->submitForm($edit, 'Save language');
 
     // Click again on edit for German (AT).
     $this->clickLink('Edit', 1);
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-DE', 'The Lingotek locale is set to the right language after editing.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-DE');
   }
 
   /**
@@ -223,12 +223,12 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-AT', 'The Lingotek locale is set to the right language.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-AT');
 
     // Edit the locale.
     $edit = ['lingotek_locale' => 'de-IN'];
-    $this->drupalPostForm(NULL, $edit, 'Save language');
-    $this->assertText('The Lingotek locale de-IN does not exist.');
+    $this->submitForm($edit, 'Save language');
+    $this->assertSession()->pageTextContains('The Lingotek locale de-IN does not exist.');
   }
 
   /**
@@ -242,17 +242,17 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-AT', 'The Lingotek locale is set to the right language.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-AT');
 
     // Edit the locale.
     $edit = ['lingotek_locale' => 'de_AT'];
-    $this->drupalPostForm(NULL, $edit, 'Save language');
+    $this->submitForm($edit, 'Save language');
 
     // Click on edit for German (AT).
     $this->clickLink('Edit', 1);
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-AT', 'The Lingotek locale is set to the right language.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-AT');
   }
 
   /**
@@ -267,10 +267,10 @@ class LanguageFormTest extends BrowserTestBase {
     $this->clickLink('Edit', 1);
 
     // Make sure that the autocomplete library is added.
-    $this->assertRaw('core/misc/autocomplete.js');
+    $this->assertSession()->responseContains('core/misc/autocomplete.js');
 
     // Assert that the locale is correct.
-    $this->assertFieldByName('lingotek_locale', 'de-DE', 'The Lingotek locale is set correctly.');
+    $this->assertSession()->fieldValueEquals('lingotek_locale', 'de-DE');
 
     // Check the autocomplete route.
     $result = $this->xpath('//input[@name="lingotek_locale" and contains(@data-autocomplete-path, "admin/lingotek/supported-locales-autocomplete")]');
diff --git a/tests/src/Functional/Form/LingotekAccountDisconnectFormTest.php b/tests/src/Functional/Form/LingotekAccountDisconnectFormTest.php
index f58b788b..723f1308 100644
--- a/tests/src/Functional/Form/LingotekAccountDisconnectFormTest.php
+++ b/tests/src/Functional/Form/LingotekAccountDisconnectFormTest.php
@@ -17,15 +17,15 @@ class LingotekAccountDisconnectFormTest extends LingotekTestBase {
   public function testAccountDisconnect() {
     // We try to disconnect from an already connected account.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Disconnect'), [], 'lingoteksettings-tab-account-form');
+    $this->submitForm([], t('Disconnect'), 'lingoteksettings-tab-account-form');
 
     \Drupal::state()->set('must_remain_disconnected', TRUE);
 
     // We need to confirm disconnection.
-    $this->drupalPostForm(NULL, [], t('Disconnect'));
+    $this->submitForm([], t('Disconnect'));
 
     // We have been redirected to the account connection form.
-    $this->assertUrl('/admin/lingotek/setup/account');
+    $this->assertSession()->addressEquals('/admin/lingotek/setup/account');
 
     // We don't have an account anymore.
     $lingotek_config = \Drupal::config('lingotek.account');
diff --git a/tests/src/Functional/Form/LingotekAccountFormTest.php b/tests/src/Functional/Form/LingotekAccountFormTest.php
index cd6c97e2..b024b9fa 100644
--- a/tests/src/Functional/Form/LingotekAccountFormTest.php
+++ b/tests/src/Functional/Form/LingotekAccountFormTest.php
@@ -18,13 +18,13 @@ class LingotekAccountFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
 
     $xpath = $this->xpath('//details[@data-drupal-selector="edit-account"]//tr[@data-drupal-selector="edit-account-table-status-row"]//td[text()="Active"]');
-    $this->assertIdentical(1, count($xpath), 'Status indicator found');
+    $this->assertSame(1, count($xpath), 'Status indicator found');
 
     $xpath = $this->xpath('//details[@data-drupal-selector="edit-account"]//tr[@data-drupal-selector="edit-account-table-plan-row"]//td[text()="No"]');
-    $this->assertIdentical(1, count($xpath), 'Enterprise plan indicator found');
+    $this->assertSame(1, count($xpath), 'Enterprise plan indicator found');
 
     $xpath = $this->xpath('//details[@data-drupal-selector="edit-account"]//tr[@data-drupal-selector="edit-account-table-activation-row"]//td[text()="testUser@example.com"]');
-    $this->assertIdentical(1, count($xpath), 'Activation Name found');
+    $this->assertSame(1, count($xpath), 'Activation Name found');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekConfigBulkFormTest.php b/tests/src/Functional/Form/LingotekConfigBulkFormTest.php
index bdd0cdd6..3f78050b 100644
--- a/tests/src/Functional/Form/LingotekConfigBulkFormTest.php
+++ b/tests/src/Functional/Form/LingotekConfigBulkFormTest.php
@@ -17,7 +17,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -63,7 +63,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     // Assert that there is a "Bundle" header on the second position.
     // First position is the checkbox, that's why we care about the second.
     $second_header = $this->xpath('//*[@id="edit-table"]/thead/tr/th[2]')[0];
-    $this->assertEqual($second_header->getHtml(), 'Entity', 'There is a Entity header.');
+    $this->assertEquals($second_header->getHtml(), 'Entity', 'There is a Entity header.');
   }
 
   /**
@@ -76,15 +76,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
 
     // Let's filter by node fields.
     $edit = ['filters[wrapper][bundle]' => 'node_fields'];
-    $this->drupalPostForm(NULL, $edit, t('Filter'));
+    $this->submitForm($edit, t('Filter'));
 
     // Assert that there is a "Bundle" header on the second position.
     // First position is the checkbox, that's why we care about the second.
     $second_header = $this->xpath('//*[@id="edit-table"]/thead/tr/th[2]/a')[0];
-    $this->assertEqual($second_header->getHtml(), 'Bundle', 'There is a Bundle header.');
+    $this->assertEquals($second_header->getHtml(), 'Bundle', 'There is a Bundle header.');
 
     $third_header = $this->xpath('//*[@id="edit-table"]/thead/tr/th[3]/a')[0];
-    $this->assertEqual($third_header->getHtml(), 'Entity', 'There is a Entity header.');
+    $this->assertEquals($third_header->getHtml(), 'Entity', 'There is a Entity header.');
 
     // Assert that there is a bundle printed with the Body field, and by that
     // Body must be appear twice.
@@ -160,7 +160,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'options[job_id]' => 'my_custom_job_id',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertEquals('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
@@ -170,8 +170,8 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       $this->assertEquals('my_custom_job_id', $metadata->getJobId(), 'The job id was saved along with metadata.');
     }
     // The column for Job ID exists and there are values.
-    $this->assertText('Job ID');
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('Job ID');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
   }
 
   /**
@@ -209,7 +209,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'options[job_id]' => 'my_custom_job_id',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertEquals('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
@@ -219,8 +219,8 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       $this->assertEquals('my_custom_job_id', $metadata->getJobId(), 'The job id was saved along with metadata.');
     }
     // The column for Job ID exists and there are values.
-    $this->assertText('Job ID');
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('Job ID');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
   }
 
   /**
@@ -242,27 +242,27 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID without notification to the TMS, no update happens.
     $edit = [
@@ -270,12 +270,12 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
@@ -303,13 +303,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -318,15 +318,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     $edit = [
@@ -334,19 +334,19 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is an update.
     \Drupal::state()->resetCache();
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_content'));
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
   }
 
   /**
@@ -368,13 +368,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -383,15 +383,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
@@ -402,22 +402,22 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node_type Article was not found. Please upload again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node_type Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // But it was saved for future uploads.
-    $this->assertNoText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -439,13 +439,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -454,15 +454,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
@@ -473,21 +473,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node_type Article has been archived. Please upload again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node_type Article has been archived. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -509,13 +509,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -524,15 +524,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
@@ -543,21 +543,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -579,13 +579,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -594,15 +594,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
@@ -613,21 +613,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -649,13 +649,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -664,15 +664,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
@@ -683,21 +683,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -719,13 +719,13 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -734,15 +734,15 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
@@ -753,21 +753,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The Job ID change submission for node_type Article failed. Please try again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The Job ID change submission for node_type Article failed. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -789,14 +789,14 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'job_id' => 'my\invalid\id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -805,8 +805,8 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'job_id' => 'my/invalid/id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -831,20 +831,20 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Article content type');
-    $this->assertNoText('Page content type');
-    $this->drupalPostForm(NULL, [], 'Cancel');
+    $this->assertSession()->pageTextContains('Article content type');
+    $this->assertSession()->pageTextNotContains('Page content type');
+    $this->submitForm([], 'Cancel');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Article content type');
-    $this->assertText('Page content type');
+    $this->assertSession()->pageTextNotContains('Article content type');
+    $this->assertSession()->pageTextContains('Page content type');
   }
 
   /**
@@ -866,10 +866,10 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Article content type');
-    $this->assertNoText('Page content type');
+    $this->assertSession()->pageTextContains('Article content type');
+    $this->assertSession()->pageTextNotContains('Page content type');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -877,10 +877,10 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Article content type');
-    $this->assertText('Page content type');
+    $this->assertSession()->pageTextNotContains('Article content type');
+    $this->assertSession()->pageTextContains('Page content type');
   }
 
   /**
@@ -903,47 +903,47 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[article]' => TRUE,
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, [], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm([], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -966,47 +966,47 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[article]' => TRUE,
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1029,29 +1029,29 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
@@ -1061,18 +1061,18 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('The Job ID change submission for node_type Article failed. Please try again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('The Job ID change submission for node_type Article failed. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1095,29 +1095,29 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
@@ -1127,18 +1127,18 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Document node_type Article has been archived. Please upload again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Document node_type Article has been archived. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1161,29 +1161,29 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
@@ -1193,18 +1193,18 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1227,29 +1227,29 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
@@ -1259,18 +1259,18 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('The Job ID change submission for node_type Article failed. Please try again.');
-    $this->assertText('Job ID for some config failed to sync to the TMS.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('The Job ID change submission for node_type Article failed. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some config failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1292,20 +1292,20 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     }
 
     $this->goToConfigBulkManagementForm('node_type');
-    $this->assertNoText('No content available');
+    $this->assertSession()->pageTextNotContains('No content available');
 
     // After we filter by an unexisting job, there is no content and no rows.
     $edit = [
       'filters[wrapper][job_id]' => 'this job does not exist',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-    $this->assertText('No content available');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+    $this->assertSession()->pageTextContains('No content available');
 
     // After we reset, we get back to having all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     $this->goToConfigBulkManagementForm('node_type');
     foreach (range(1, 9) as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
 
     // I can init the upload of content.
@@ -1318,7 +1318,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
       'options[job_id]' => 'even numbers',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[content_type_1]' => TRUE,
@@ -1329,36 +1329,37 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
       'options[job_id]' => 'prime numbers',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // After we filter by prime, there is no pager and the rows
     // selected are the ones expected.
     $edit = [
       'filters[wrapper][job_id]' => 'prime',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 2, 3, 5, 7] as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
-    $this->assertNoText('Content Type ' . $indexes[4]);
-    $this->assertNoText('Content Type ' . $indexes[6]);
+    //pageTextNotContains considers 'content type EN' as a match so, we need to do a strict check.
+    $this->assertSession()->pageTextNotContains('/(?<!\S)'.preg_quote('Content Type ' . $indexes[4], '/').'(?!.)/');
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[6]);
 
     // After we filter by even, there is no pager and the rows selected are the
     // ones expected.
     $edit = [
       'filters[wrapper][job_id]' => 'even',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([4, 6, 8] as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
-    $this->assertNoText('Content Type ' . $indexes[5]);
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[5]);
 
     // After we reset, we get back to having all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     $this->goToConfigBulkManagementForm('node_type');
     foreach (range(1, 9) as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
   }
 
@@ -1369,7 +1370,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $assert_session = $this->assertSession();
 
     $this->goToConfigBulkManagementForm();
-    $this->assertNoField('filters[wrapper][label]');
+    $this->assertSession()->fieldNotExists('filters[wrapper][label]');
 
     \Drupal::configFactory()->getEditable('lingotek.settings')->set('translate.config.node_type.profile', 'manual')->save();
 
@@ -1384,21 +1385,21 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     }
 
     $this->goToConfigBulkManagementForm('node_type');
-    $this->assertField('filters[wrapper][label]');
-    $this->assertNoText('No content available');
+    $this->assertSession()->fieldExists('filters[wrapper][label]');
+    $this->assertSession()->pageTextNotContains('No content available');
 
     // After we filter by an unexisting label, there is no content and no rows.
     $edit = [
       'filters[wrapper][label]' => 'this label does not exist',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-    $this->assertText('No content available');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+    $this->assertSession()->pageTextContains('No content available');
 
     // After we reset, we get back to having all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     $this->goToConfigBulkManagementForm('node_type');
     foreach (range(1, 9) as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
 
     // After we filter by prime, there is no pager and the rows
@@ -1406,42 +1407,43 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][label]' => 'even',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 3, 5, 7, 9] as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
-    $this->assertNoText('Content Type ' . $indexes[2]);
-    $this->assertNoText('Content Type ' . $indexes[4]);
-    $this->assertNoText('Content Type ' . $indexes[6]);
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[2]);
+    //pageTextNotContains considers 'content type EN' as a match so, we need to do a strict check.
+    $this->assertSession()->pageTextNotContains('/(?<!\S)'.preg_quote('Content Type ' . $indexes[4], '/').'(?!.)/');
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[6]);
 
     // After we filter by even, there is no pager and the rows selected are the
     // ones expected.
     $edit = [
       'filters[wrapper][label]' => 'odd',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([2, 4, 6, 8] as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
-    $this->assertNoText('Content Type ' . $indexes[1]);
-    $this->assertNoText('Content Type ' . $indexes[3]);
-    $this->assertNoText('Content Type ' . $indexes[5]);
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[1]);
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[3]);
+    $this->assertSession()->pageTextNotContains('Content Type ' . $indexes[5]);
 
     // After we reset, we get back to having all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     $this->goToConfigBulkManagementForm('node_type');
     foreach (range(1, 9) as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
     // If we filter with extra spaces, we still show configs.
     $edit = [
       'filters[wrapper][label]' => '  even   ',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 3, 5, 7, 9] as $j) {
-      $this->assertText('Content Type ' . $indexes[$j]);
+      $this->assertSession()->pageTextContains('Content Type ' . $indexes[$j]);
     }
-    $this->assertFieldByName('filters[wrapper][label]', 'even', 'The value is trimmed in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][label]', 'even');
   }
 
   /**
@@ -1451,7 +1453,7 @@ class LingotekConfigBulkFormTest extends LingotekTestBase {
     $assert_session = $this->assertSession();
 
     $this->goToConfigBulkManagementForm();
-    $this->assertText('System maintenance');
+    $this->assertSession()->pageTextContains('System maintenance');
     $assert_session->linkNotExists('System maintenance');
 
     $this->goToConfigBulkManagementForm('configurable_language');
diff --git a/tests/src/Functional/Form/LingotekConnectTest.php b/tests/src/Functional/Form/LingotekConnectTest.php
index a4aa03ec..e087a39b 100644
--- a/tests/src/Functional/Form/LingotekConnectTest.php
+++ b/tests/src/Functional/Form/LingotekConnectTest.php
@@ -21,7 +21,7 @@ class LingotekConnectTest extends BrowserTestBase {
    *
    * @var array
    */
-  public static $modules = ['lingotek', 'lingotek_test'];
+  protected static $modules = ['lingotek', 'lingotek_test'];
 
   /**
    * {@inheritdoc}
@@ -40,19 +40,19 @@ class LingotekConnectTest extends BrowserTestBase {
     $assert_session = $this->assertSession();
 
     $this->drupalGet('admin/lingotek/setup/account');
-    $this->clickLink('Connect Lingotek Account');
-    $this->drupalPostForm(NULL, ['community' => 'test_community'], 'Next');
-    $this->assertText('The configuration options have been saved.');
+    $this->clickLink('Connect Ray Enterprise Account');
+    $this->submitForm(['community' => 'test_community'], 'Next');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
     // Assert there are options for workflows.
-    $this->assertFieldByName('workflow');
+    $this->assertSession()->fieldExists('workflow');
     $option_field = $assert_session->optionExists('edit-workflow', '- Select -');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-workflow', 'test_workflow');
     $assert_session->optionExists('edit-workflow', 'test_workflow2');
 
     // Assert there are options for filters.
-    $this->assertFieldByName('filter');
+    $this->assertSession()->fieldExists('filter');
     $option_field = $assert_session->optionExists('edit-filter', 'drupal_default');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-filter', 'project_default');
@@ -60,7 +60,7 @@ class LingotekConnectTest extends BrowserTestBase {
     $assert_session->optionExists('edit-filter', 'test_filter2');
     $assert_session->optionExists('edit-filter', 'test_filter3');
 
-    $this->assertFieldByName('subfilter');
+    $this->assertSession()->fieldExists('subfilter');
     $option_field = $assert_session->optionExists('edit-subfilter', 'drupal_default');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-subfilter', 'project_default');
@@ -68,14 +68,14 @@ class LingotekConnectTest extends BrowserTestBase {
     $assert_session->optionExists('edit-subfilter', 'test_filter2');
     $assert_session->optionExists('edit-subfilter', 'test_filter3');
 
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'project' => 'test_project',
       'vault' => 'test_vault',
       'workflow' => 'test_workflow',
       'filter' => 'drupal_default',
       'subfilter' => 'drupal_default',
     ], 'Save configuration');
-    $this->assertText('The configuration options have been saved.');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
   }
 
   /**
@@ -86,27 +86,27 @@ class LingotekConnectTest extends BrowserTestBase {
     \Drupal::state()->set('lingotek.no_filters', TRUE);
 
     $this->drupalGet('admin/lingotek/setup/account');
-    $this->clickLink('Connect Lingotek Account');
-    $this->drupalPostForm(NULL, ['community' => 'test_community'], 'Next');
-    $this->assertText('The configuration options have been saved.');
+    $this->clickLink('Connect Ray Enterprise Account');
+    $this->submitForm(['community' => 'test_community'], 'Next');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
     // Assert there are options for workflows.
-    $this->assertFieldByName('workflow');
+    $this->assertSession()->fieldExists('workflow');
     $option_field = $assert_session->optionExists('edit-workflow', '- Select -');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-workflow', 'test_workflow');
     $assert_session->optionExists('edit-workflow', 'test_workflow2');
 
     // Assert there are no options for filters and no select.
-    $this->assertNoFieldByName('filter');
-    $this->assertNoFieldByName('subfilter');
+    $this->assertSession()->fieldNotExists('filter');
+    $this->assertSession()->fieldNotExists('subfilter');
 
-    $this->drupalPostForm(NULL, [
+    $this->submitForm([
       'project' => 'test_project',
       'workflow' => 'test_workflow',
       'vault' => 'test_vault',
     ], 'Save configuration');
-    $this->assertText('The configuration options have been saved.');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekLanguageContentSettingsFormTest.php b/tests/src/Functional/Form/LingotekLanguageContentSettingsFormTest.php
index 9cc56d30..22d1f108 100644
--- a/tests/src/Functional/Form/LingotekLanguageContentSettingsFormTest.php
+++ b/tests/src/Functional/Form/LingotekLanguageContentSettingsFormTest.php
@@ -16,7 +16,7 @@ class LingotekLanguageContentSettingsFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -48,8 +48,8 @@ class LingotekLanguageContentSettingsFormTest extends LingotekTestBase {
   public function testLingotekMetadataFieldNotPresent() {
     $this->drupalGet('admin/config/regional/content-language');
 
-    $this->assertNoText('Lingotek translation source');
-    $this->assertNoText('Lingotek metadata');
+    $this->assertSession()->pageTextNotContains('Lingotek translation source');
+    $this->assertSession()->pageTextNotContains('Lingotek metadata');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekMediaBulkFormTest.php b/tests/src/Functional/Form/LingotekMediaBulkFormTest.php
index 77b3f32e..e4b1cd8f 100644
--- a/tests/src/Functional/Form/LingotekMediaBulkFormTest.php
+++ b/tests/src/Functional/Form/LingotekMediaBulkFormTest.php
@@ -21,7 +21,7 @@ class LingotekMediaBulkFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'node',
     'image',
@@ -83,18 +83,19 @@ class LingotekMediaBulkFormTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_media_image_0]'] = \Drupal::service('file_system')
       ->realpath($test_image->uri);
+    $this->drupalGet('media/add/image');
 
-    $this->drupalPostForm('media/add/image', $edit, 'field_media_image_0_upload_button');
+    $this->submitForm($edit, 'field_media_image_0_upload_button');
 
     unset($edit['files[field_media_image_0]']);
     $edit['field_media_image[0][alt]'] = 'Llamas are cool';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('media');
 
-    $this->assertText('Thumbnail');
+    $this->assertSession()->pageTextContains('Thumbnail');
     $elements = $this->xpath("//img[@alt='Llamas are cool']");
-    $this->assertEqual(1, count($elements), "Found thumbnail.");
+    $this->assertEquals(1, count($elements), "Found thumbnail.");
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekMetadataEditFormTest.php b/tests/src/Functional/Form/LingotekMetadataEditFormTest.php
index 5678c1df..c3b14c5e 100644
--- a/tests/src/Functional/Form/LingotekMetadataEditFormTest.php
+++ b/tests/src/Functional/Form/LingotekMetadataEditFormTest.php
@@ -21,7 +21,7 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'frozenintime'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -68,7 +68,7 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndPublishNodeForm($edit);
-    $this->assertUrl('/node/1', [], 'Node has been created.');
+    $this->assertSession()->addressEquals('/node/1', [], 'Node has been created.');
 
     // The metadata local task should not be visible.
     $assert_session->linkNotExists(t('Lingotek Metadata'));
@@ -79,9 +79,10 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
    */
   public function testMetadataLocalTaskAvailable() {
     $assert_session = $this->assertSession();
+    $this->drupalGet('admin/lingotek/settings');
 
     // Enable debug operations.
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Enable debug operations');
+    $this->submitForm([], 'Enable debug operations');
 
     // Create a node.
     $edit = [];
@@ -90,7 +91,7 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndPublishNodeForm($edit);
-    $this->assertUrl('/node/1', [], 'Node has been created.');
+    $this->assertSession()->addressEquals('/node/1', [], 'Node has been created.');
 
     // The metadata local task should be visible.
     $this->drupalGet('/node/1');
@@ -102,9 +103,10 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
    */
   public function testMetadataEditForm() {
     $assert_session = $this->assertSession();
+    $this->drupalGet('admin/lingotek/settings');
 
     // Enable debug operations.
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Enable debug operations');
+    $this->submitForm([], 'Enable debug operations');
 
     // Create a node.
     $edit = [];
@@ -117,14 +119,14 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
     // The metadata local task should be visible.
     $this->drupalGet('/node/1');
     $this->clickLink(t('Lingotek Metadata'));
-    $this->assertUrl('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
+    $this->assertSession()->addressEquals('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
 
     // Assert that the values are correct.
-    $this->assertFieldById('edit-lingotek-document-id', 'dummy-document-hash-id');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-document-id', 'dummy-document-hash-id');
     $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_IMPORTING);
     $assert_session->optionExists('edit-en', Lingotek::STATUS_IMPORTING);
     $assert_session->optionExists('edit-es', Lingotek::STATUS_REQUEST);
-    $this->assertFieldById('edit-lingotek-job-id', '');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-job-id', '');
     $timestamp = \Drupal::time()->getRequestTime();
     $this->assertSession()->fieldValueEquals('verbatim_area[verbatim]', <<<JSON
 {
@@ -179,7 +181,7 @@ class LingotekMetadataEditFormTest extends LingotekTestBase {
 }
 JSON
     );
-    $this->assertFieldByName('lingotek_translation_management[lingotek_translation_profile]', 'automatic');
+    $this->assertSession()->fieldValueEquals('lingotek_translation_management[lingotek_translation_profile]', 'automatic');
 
     $edit = [
       'lingotek_document_id' => 'another-id',
@@ -189,16 +191,16 @@ JSON
       'lingotek_job_id' => 'a new edited job id',
       'lingotek_translation_management[lingotek_translation_profile]' => 'manual',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save metadata');
+    $this->submitForm($edit, 'Save metadata');
 
     // Assert that the values are correct.
-    $this->assertFieldById('edit-lingotek-document-id', 'another-id');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-document-id', 'another-id');
     // ToDo: We should avoid that an upload is triggered, even if using automatic profile.
     // $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_CURRENT);
     $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-en', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-es', Lingotek::STATUS_READY);
-    $this->assertFieldById('edit-lingotek-job-id', 'a new edited job id');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-job-id', 'a new edited job id');
     $this->assertSession()->fieldValueEquals('verbatim_area[verbatim]', <<<JSON
 {
     "id": [
@@ -256,7 +258,7 @@ JSON
 }
 JSON
     );
-    $this->assertFieldByName('lingotek_translation_management[lingotek_translation_profile]', 'manual');
+    $this->assertSession()->fieldValueEquals('lingotek_translation_management[lingotek_translation_profile]', 'manual');
 
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $configuration_service */
     $configuration_service = \Drupal::service('lingotek.configuration');
@@ -264,16 +266,16 @@ JSON
     $content_translation_service = \Drupal::service('lingotek.content_translation');
     $node = Node::load(1);
     // Assert that the values are correct in the service.
-    $this->assertIdentical('another-id', $content_translation_service->getDocumentId($node));
-    $this->assertIdentical('manual', $configuration_service->getEntityProfile($node, FALSE)->id());
+    $this->assertSame('another-id', $content_translation_service->getDocumentId($node));
+    $this->assertSame('manual', $configuration_service->getEntityProfile($node, FALSE)->id());
     // ToDo: We should avoid that an upload is triggered, even if using automatic profile.
-    // $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getTargetStatus($node, 'en'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    // $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getTargetStatus($node, 'en'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
 
     $metadata = LingotekContentMetadata::load(1);
-    $this->assertIdentical('a new edited job id', $metadata->getJobId(), 'Lingotek metadata job id was saved correctly.');
+    $this->assertSame('a new edited job id', $metadata->getJobId(), 'Lingotek metadata job id was saved correctly.');
   }
 
   /**
@@ -281,9 +283,10 @@ JSON
    */
   public function testMetadataEditFormWithoutEnablingBundle() {
     $assert_session = $this->assertSession();
+    $this->drupalGet('admin/lingotek/settings');
 
     // Enable debug operations.
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Enable debug operations');
+    $this->submitForm([], 'Enable debug operations');
 
     // Create a node.
     $edit = [];
@@ -295,15 +298,15 @@ JSON
     // The metadata local task should be visible.
     $this->drupalGet('/node/1');
     $this->clickLink(t('Lingotek Metadata'));
-    $this->assertUrl('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
+    $this->assertSession()->addressEquals('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
 
     // Assert that the values are defaults.
-    $this->assertFieldById('edit-lingotek-document-id', '');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-document-id', '');
     $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-en', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-es', Lingotek::STATUS_UNTRACKED);
-    $this->assertFieldById('edit-lingotek-job-id', '');
-    $this->assertFieldByName('verbatim_area[verbatim]', 'NULL');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-job-id', '');
+    $this->assertSession()->fieldValueEquals('verbatim_area[verbatim]', 'NULL');
 
     $edit = [
       'lingotek_document_id' => 'another-id',
@@ -312,7 +315,7 @@ JSON
       'es' => Lingotek::STATUS_READY,
       'lingotek_job_id' => 'a new edited job id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save metadata');
+    $this->submitForm($edit, 'Save metadata');
 
     $assert_session->pageTextNotContains('Metadata saved successfully');
     $assert_session->pageTextContains('This entity cannot be managed in Lingotek. Please check your configuration.');
@@ -320,9 +323,10 @@ JSON
 
   public function testMetadataEditFormWithoutExistingMetadata() {
     $assert_session = $this->assertSession();
+    $this->drupalGet('admin/lingotek/settings');
 
     // Enable debug operations.
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Enable debug operations');
+    $this->submitForm([], 'Enable debug operations');
 
     // Create a node.
     $edit = [];
@@ -337,15 +341,15 @@ JSON
     // The metadata local task should be visible.
     $this->drupalGet('/node/1');
     $this->clickLink(t('Lingotek Metadata'));
-    $this->assertUrl('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
+    $this->assertSession()->addressEquals('/node/1/metadata', [], 'Metadata local task enables the metadata form.');
 
     // Assert that the values are defaults.
-    $this->assertFieldById('edit-lingotek-document-id', '');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-document-id', '');
     $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-en', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-es', Lingotek::STATUS_UNTRACKED);
-    $this->assertFieldById('edit-lingotek-job-id', '');
-    $this->assertFieldByName('verbatim_area[verbatim]', 'NULL');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-job-id', '');
+    $this->assertSession()->fieldValueEquals('verbatim_area[verbatim]', 'NULL');
 
     $edit = [
       'lingotek_document_id' => 'another-id',
@@ -354,18 +358,18 @@ JSON
       'es' => Lingotek::STATUS_READY,
       'lingotek_job_id' => 'a new edited job id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save metadata');
+    $this->submitForm($edit, 'Save metadata');
 
     $assert_session->pageTextContains('Metadata saved successfully');
 
     // Assert that the values are correct.
-    $this->assertFieldById('edit-lingotek-document-id', 'another-id');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-document-id', 'another-id');
     // ToDo: We should avoid that an upload is triggered, even if using automatic profile.
     // $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_CURRENT);
     $assert_session->optionExists('edit-lingotek-source-status', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-en', Lingotek::STATUS_UNTRACKED);
     $assert_session->optionExists('edit-es', Lingotek::STATUS_READY);
-    $this->assertFieldById('edit-lingotek-job-id', 'a new edited job id');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-job-id', 'a new edited job id');
     $this->assertSession()->fieldValueEquals('verbatim_area[verbatim]', <<<JSON
 {
     "id": [
@@ -424,15 +428,15 @@ JSON
     $content_translation_service = \Drupal::service('lingotek.content_translation');
     $node = Node::load(1);
     // Assert that the values are correct in the service.
-    $this->assertIdentical('another-id', $content_translation_service->getDocumentId($node));
+    $this->assertSame('another-id', $content_translation_service->getDocumentId($node));
     // ToDo: We should avoid that an upload is triggered, even if using automatic profile.
-    // $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getTargetStatus($node, 'en'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    // $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getTargetStatus($node, 'en'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
 
     $metadata = LingotekContentMetadata::load(1);
-    $this->assertIdentical('a new edited job id', $metadata->getJobId(), 'Lingotek metadata job id was saved correctly.');
+    $this->assertSame('a new edited job id', $metadata->getJobId(), 'Lingotek metadata job id was saved correctly.');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekNodeBulkFormTest.php b/tests/src/Functional/Form/LingotekNodeBulkFormTest.php
index 3fa9ba86..620b50dc 100644
--- a/tests/src/Functional/Form/LingotekNodeBulkFormTest.php
+++ b/tests/src/Functional/Form/LingotekNodeBulkFormTest.php
@@ -20,7 +20,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * A node used for testing.
@@ -88,7 +88,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
 
     // Navigate to page 2.
     $this->clickLink(t('Page 2'));
-    $this->assertUrl('admin/lingotek/manage/node?page=1');
+    $this->assertSession()->addressEquals('admin/lingotek/manage/node?page=1');
 
     // I can init the upload of content.
     $this->assertLingotekUploadLink(11, 'node');
@@ -104,20 +104,20 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The current page is kept.
-    $this->assertUrl('admin/lingotek/manage/node?page=1');
+    $this->assertSession()->addressEquals('admin/lingotek/manage/node?page=1');
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool 11 is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool 11 is complete.');
 
     // The current page is kept.
-    $this->assertUrl('admin/lingotek/manage/node?page=1');
+    $this->assertSession()->addressEquals('admin/lingotek/manage/node?page=1');
   }
 
   /**
@@ -158,7 +158,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][profile][]' => 'automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     foreach ([1, 5, 7, 11, 13] as $j) {
       // The filtered id is shown, but not others.
@@ -166,7 +166,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $assert_session->linkNotExists('Llamas are cool 2');
 
       // The value is retained in the filter.
-      $this->assertFieldByName('filters[advanced_options][profile][]', 'automatic', 'The value is retained in the filter.');
+      $fieldValue = $this->getSession()->getPage()->findField('filters[advanced_options][profile][]')->getValue();
+      $this->assertSame($fieldValue[0], 'automatic');
     }
 
     // After we filter by manual profile, there is no pager and the rows
@@ -174,7 +175,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][profile][]' => 'manual',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     foreach ([2, 4, 6, 8, 10, 12, 14] as $j) {
       // The filtered id is shown, but not others.
@@ -182,7 +183,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $assert_session->linkNotExists('Llamas are cool 2');
 
       // The value is retained in the filter.
-      $this->assertFieldByName('filters[advanced_options][profile][]', 'manual', 'The value is retained in the filter.');
+      $fieldValue = $this->getSession()->getPage()->findField('filters[advanced_options][profile][]')->getValue();
+      $this->assertSame($fieldValue[0], 'manual');
     }
 
     // After we filter by disabled profile, there is no pager and the rows
@@ -190,7 +192,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][profile][]' => 'disabled',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     foreach ([3, 9] as $j) {
       // The filtered id is shown, but not others.
@@ -198,7 +200,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $assert_session->linkNotExists('Llamas are cool 2');
 
       // The value is retained in the filter.
-      $this->assertFieldByName('filters[advanced_options][profile][]', 'disabled', 'The value is retained in the filter.');
+      $fieldValue = $this->getSession()->getPage()->findField('filters[advanced_options][profile][]')->getValue();
+      $this->assertSame($fieldValue[0], 'disabled');
     }
 
     $assert_session->linkNotExists('Llamas are cool 15');
@@ -234,12 +237,12 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][job_id]' => 'this job does not exist',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     $assert_session->linkNotExists('Llamas are cool');
     $assert_session->linkByHrefNotExists('?page=1');
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach (range(1, 10) as $j) {
       $assert_session->linkExists('Llamas are cool ' . $indexes[$j]);
     }
@@ -261,7 +264,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
       'options[job_id]' => 'even numbers',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[1]' => TRUE,
@@ -274,7 +277,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
       'options[job_id]' => 'prime numbers',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Show 10 results.
     \Drupal::service('tempstore.private')->get('lingotek.management.items_per_page')->set('limit', 10);
@@ -285,31 +288,31 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][job_id]' => 'prime',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 2, 3, 5, 7, 11, 13] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $indexes[$j]);
     }
     $assert_session->linkNotExists('Page 2');
     $assert_session->linkNotExists('Llamas are cool ' . $indexes[4]);
 
-    $this->assertFieldByName('filters[wrapper][job_id]', 'prime', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][job_id]', 'prime');
 
     // After we filter by even, there is no pager and the rows selected are the
     // ones expected.
     $edit = [
       'filters[wrapper][job_id]' => 'even',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([4, 6, 8, 10, 12, 14] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $indexes[$j]);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Llamas are cool ' . $indexes[5]);
 
-    $this->assertFieldByName('filters[wrapper][job_id]', 'even', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][job_id]', 'even');
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach (range(1, 10) as $j) {
       $assert_session->linkExists('Llamas are cool ' . $indexes[$j]);
     }
@@ -352,46 +355,46 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][label]' => 'Llamas',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 5, 7, 11, 13] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Dogs are cool 2');
 
-    $this->assertFieldByName('filters[wrapper][label]', 'Llamas', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][label]', 'Llamas');
 
     // After we filter by label 'Dogs', there is no pager and the rows selected
     // are the ones expected.
     $edit = [
       'filters[wrapper][label]' => 'Dogs',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([2, 4, 6, 8, 10, 12, 14] as $j) {
       $assert_session->linkExists('Dogs are cool ' . $j);
     }
     $assert_session->linkNotExists('Page 2');
     $assert_session->linkNotExists('Llamas are cool 1');
 
-    $this->assertFieldByName('filters[wrapper][label]', 'Dogs', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][label]', 'Dogs');
 
     // After we filter by label 'Cats', there is no pager and the rows selected
     // are the ones expected.
     $edit = [
       'filters[wrapper][label]' => 'Cats',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([3, 9] as $j) {
       $assert_session->linkExists('Cats are cool ' . $j);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Dogs are cool 5');
 
-    $this->assertFieldByName('filters[wrapper][label]', 'Cats', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][label]', 'Cats');
 
     // After we reset, we get back to having a pager and all the content under
     // limit of 10.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach ([1, 5, 7] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j);
     }
@@ -408,11 +411,11 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][label]' => '  Cats   ',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([3, 9] as $j) {
       $assert_session->linkExists('Cats are cool ' . $j);
     }
-    $this->assertFieldByName('filters[wrapper][label]', 'Cats', 'The value is trimmed in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[wrapper][label]', 'Cats');
   }
 
   /**
@@ -454,45 +457,45 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][source_language]' => 'es',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 5, 7, 11, 13] as $j) {
       $assert_session->linkExists('Llamas are cool ES ' . $j);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Llamas are cool IT 2');
 
-    $this->assertFieldByName('filters[advanced_options][source_language]', 'es', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][source_language]', 'es');
 
     // After we filter by Italian source language, there is no pager and the
     // rows selected are the ones expected.
     $edit = [
       'filters[advanced_options][source_language]' => 'it',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([2, 4, 6, 8, 10, 12, 14] as $j) {
       $assert_session->linkExists('Llamas are cool IT ' . $j);
     }
     $assert_session->linkNotExists('Page 2');
     $assert_session->linkNotExists('Llamas are cool ES 1');
 
-    $this->assertFieldByName('filters[advanced_options][source_language]', 'it', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][source_language]', 'it');
 
     // After we filter by English source language, there is no pager and the
     // rows selected are the ones expected.
     $edit = [
       'filters[advanced_options][source_language]' => 'en',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([3, 9] as $j) {
       $assert_session->linkExists('Llamas are cool EN ' . $j);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Llamas are cool ES 5');
 
-    $this->assertFieldByName('filters[advanced_options][source_language]', 'en', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][source_language]', 'en');
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach ([1, 5, 7] as $j) {
       $assert_session->linkExists('Llamas are cool ES ' . $j);
     }
@@ -562,21 +565,22 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][bundle][]' => 'page',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 5, 7, 11, 13] as $j) {
       $assert_session->linkExists('Llamas are cool page ' . $j);
     }
     $assert_session->linkByHrefNotExists('?page=1');
     $assert_session->linkNotExists('Llamas are cool article 3');
 
-    $this->assertFieldByName('filters[wrapper][bundle][]', 'page', 'The value is retained in the filter.');
+    $fieldValue = $this->getSession()->getPage()->findField('filters[wrapper][bundle][]')->getValue();
+    $this->assertSame($fieldValue[0], 'page');
 
     // After we filter by custom_type, there is no pager and the rows selected are
     // the ones expected.
     $edit = [
       'filters[wrapper][bundle][]' => 'custom_type',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([2, 4, 8, 10, 14] as $j) {
       $assert_session->linkExists('Llamas are cool custom_type ' . $j);
     }
@@ -584,21 +588,23 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $assert_session->linkNotExists('Llamas are cool article 3');
     $assert_session->linkNotExists('Llamas are cool page 1');
 
-    $this->assertFieldByName('filters[wrapper][bundle][]', 'custom_type', 'The value is retained in the filter.');
+    $fieldValue = $this->getSession()->getPage()->findField('filters[wrapper][bundle][]')->getValue();
+    $this->assertSame($fieldValue[0], 'custom_type');
 
     // After we filter by article, there is no pager and the rows selected are the
     // ones expected.
     $edit = [
       'filters[wrapper][bundle][]' => 'article',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([3, 6, 9, 12] as $j) {
       $assert_session->linkExists('Llamas are cool article ' . $j);
     }
     $assert_session->linkNotExists('Page 2');
     $assert_session->linkNotExists('Llamas are cool page 1');
-
-    $this->assertFieldByName('filters[wrapper][bundle][]', 'article', 'The value is retained in the filter.');
+    
+    $fieldValue = $this->getSession()->getPage()->findField('filters[wrapper][bundle][]')->getValue();
+    $this->assertSame($fieldValue[0], 'article');
 
     // After we filter by both page and article, there is no pager and the rows
     // selected are the ones expected.
@@ -607,7 +613,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
         'page',
         'article',
       ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 5, 7] as $j) {
       $assert_session->linkExists('Llamas are cool page ' . $j);
     }
@@ -616,7 +622,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     }
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach ([1, 5, 7] as $j) {
       $assert_session->linkExists('Llamas are cool page ' . $j);
     }
@@ -761,19 +767,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
@@ -782,7 +788,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The node was re-uploaded and target statuses reset.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -812,19 +818,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
@@ -874,19 +880,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
 
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
-    $this->assertIdentical('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     /** @var \Drupal\lingotek\Entity\LingotekContentMetadata[] $metadatas */
     $metadatas = LingotekContentMetadata::loadMultiple();
     foreach ($metadatas as $metadata) {
-      $this->assertEqual('my_custom_job_id', $metadata->getJobId(), 'The job id was saved along with metadata.');
+      $this->assertEquals('my_custom_job_id', $metadata->getJobId(), 'The job id was saved along with metadata.');
     }
 
     // The column for Job ID exists and there are values.
-    $this->assertText('Job ID');
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('Job ID');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
   }
 
   /**
@@ -928,9 +934,9 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'options[job_id]' => 'my_custom_job_id',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
-    $this->assertIdentical('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     /** @var \Drupal\lingotek\Entity\LingotekContentMetadata[] $metadatas */
     $metadatas = LingotekContentMetadata::loadMultiple();
@@ -939,8 +945,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     }
 
     // The column for Job ID exists and there are values.
-    $this->assertText('Job ID');
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('Job ID');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
   }
 
   /**
@@ -974,27 +980,27 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID without notification to the TMS, no update happens.
     $edit = [
@@ -1002,12 +1008,12 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
@@ -1047,13 +1053,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1062,15 +1068,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     $edit = [
@@ -1078,18 +1084,18 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is an update.
     \Drupal::state()->resetCache();
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
   }
 
   /**
@@ -1123,13 +1129,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1138,15 +1144,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
@@ -1157,21 +1163,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1205,13 +1211,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1220,15 +1226,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
@@ -1239,21 +1245,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertNoText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1287,13 +1293,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1302,15 +1308,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
@@ -1321,21 +1327,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Document node Llamas are cool has been archived. Please upload again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1369,13 +1375,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1384,15 +1390,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
@@ -1403,21 +1409,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1451,13 +1457,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1466,15 +1472,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
@@ -1485,21 +1491,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1533,13 +1539,13 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -1548,15 +1554,15 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
@@ -1566,21 +1572,21 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The Job ID change submission for node Llamas are cool failed. Please try again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The Job ID change submission for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is no update.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
-    $this->assertText('my_custom_job_id');
-    $this->assertText('other_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
+    $this->assertSession()->pageTextContains('other_job_id');
   }
 
   /**
@@ -1615,14 +1621,14 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'job_id' => 'my\invalid\id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -1631,8 +1637,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'job_id' => 'my/invalid/id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -1669,20 +1675,20 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Llamas are cool');
-    $this->assertNoText('Dogs are cool');
-    $this->drupalPostForm(NULL, [], 'Cancel');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextNotContains('Dogs are cool');
+    $this->submitForm([], 'Cancel');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Llamas are cool');
-    $this->assertText('Dogs are cool');
+    $this->assertSession()->pageTextNotContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Dogs are cool');
   }
 
   /**
@@ -1714,10 +1720,10 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Llamas are cool');
-    $this->assertNoText('Dogs are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextNotContains('Dogs are cool');
 
     $this->goToContentBulkManagementForm();
 
@@ -1725,10 +1731,10 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Llamas are cool');
-    $this->assertText('Dogs are cool');
+    $this->assertSession()->pageTextNotContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Dogs are cool');
   }
 
   /**
@@ -1763,47 +1769,47 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[1]' => TRUE,
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, [], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm([], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1838,47 +1844,47 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[1]' => TRUE,
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1913,29 +1919,29 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
@@ -1945,19 +1951,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('The Job ID change submission for node Llamas are cool failed. Please try again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('The Job ID change submission for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -1992,51 +1998,51 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[1]' => TRUE,
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -2071,51 +2077,51 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[1]' => TRUE,
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Document node Llamas are cool has been archived. Please upload again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Please upload again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -2150,29 +2156,29 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
@@ -2182,19 +2188,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -2229,29 +2235,29 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
@@ -2261,19 +2267,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -2308,29 +2314,29 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     // If we update the job ID with notification to the TMS, an update happens.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
@@ -2340,19 +2346,19 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
-    $this->assertText('Job ID for some content failed to sync to the TMS.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Job ID for some content failed to sync to the TMS.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -2379,7 +2385,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $assert_session->linkByHrefExists('?page=1');
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
 
     foreach (range(1, 10) as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j);
@@ -2392,7 +2398,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     'filters[advanced_options][document_id]' => '1',
     ];
 
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     // Our fake doc ids are dummy-document-hash-id-X. We know we will find
     // dummy-document-hash-id, dummy-document-hash-id-1 and those after dummy-document-hash-id-10.
@@ -2405,7 +2411,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $assert_session->linkNotExists('Llamas are cool ' . $j);
     }
 
-    $this->assertFieldByName('filters[advanced_options][document_id]', 1, 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][document_id]', 1);
 
     $assert_session->linkByHrefNotExists('?page=1');
   }
@@ -2438,7 +2444,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'filters[advanced_options][document_id]' => 'dummy-document-hash-id-2, dummy-document-hash-id-3',
     ];
 
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     // Our fake doc ids are dummy-document-hash-id-X. We know we will find
     // dummy-document-hash-id-2 and dummy-document-hash-id-3.
@@ -2446,7 +2452,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $assert_session->linkExists('Llamas are cool 4');
     $assert_session->linkNotExists('Llamas are cool 1');
 
-    $this->assertFieldByName('filters[advanced_options][document_id]', 'dummy-document-hash-id-2, dummy-document-hash-id-3', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][document_id]', 'dummy-document-hash-id-2, dummy-document-hash-id-3');
 
     // Assert there is no pager.
     $assert_session->linkByHrefNotExists('?page=1');
@@ -2477,7 +2483,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][entity_id]' => '1,2,4',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
 
     // The filtered id is shown, but not others.
     $assert_session->linkExists('Llamas are cool 1');
@@ -2486,7 +2492,7 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $assert_session->linkNotExists('Llamas are cool 3');
 
     // The value is retained in the filter.
-    $this->assertFieldByName('filters[advanced_options][entity_id]', '1,2,4', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][entity_id]', '1,2,4');
     $assert_session->linkByHrefNotExists('?page=1');
   }
 
@@ -2517,14 +2523,14 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       $edit = [
         'filters[advanced_options][entity_id]' => $j,
       ];
-      $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+      $this->submitForm($edit, 'edit-filters-actions-submit');
 
       // The filtered id is shown, but not others.
       $assert_session->linkExists('Llamas are cool ' . $j);
       $assert_session->linkNotExists('Llamas are cool ' . ($j + 1));
 
       // The value is retained in the filter.
-      $this->assertFieldByName('filters[advanced_options][entity_id]', $j, 'The value is retained in the filter.');
+      $this->assertSession()->fieldValueEquals('filters[advanced_options][entity_id]', $j);
     }
 
     $assert_session->linkNotExists('Llamas are cool 15');
@@ -2565,10 +2571,10 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][source_status]' => 'IMPORTING',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     $assert_session->linkExists('Llamas are cool');
 
-    $this->assertFieldByName('filters[advanced_options][source_status]', 'IMPORTING', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][source_status]', 'IMPORTING');
 
     // Ensure there is a link to upload and click it.
     $this->assertLingotekCheckSourceStatusLink();
@@ -2579,10 +2585,10 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][source_status]' => 'CURRENT',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     $assert_session->linkExists('Llamas are cool');
 
-    $this->assertFieldByName('filters[advanced_options][source_status]', 'CURRENT', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][source_status]', 'CURRENT');
   }
 
   /**
@@ -2621,12 +2627,12 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][target_status]' => 'PENDING',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-    $this->assertFieldByName('filters[advanced_options][target_status]', 'PENDING', 'The value is retained in the filter.');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][target_status]', 'PENDING');
     $assert_session->linkNotExists('Llamas are cool');
 
     // Reset filters.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
 
     // Ensure there is a link to request and click it.
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -2637,8 +2643,8 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][target_status]' => 'PENDING',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-    $this->assertFieldByName('filters[advanced_options][target_status]', 'PENDING', 'The value is retained in the filter.');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][target_status]', 'PENDING');
     $assert_session->linkExists('Llamas are cool');
   }
 
@@ -2711,112 +2717,112 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
 
     $this->goToContentBulkManagementForm();
 
-    $this->assertText('CustomType edited ready ready');
-    $this->assertText('Article current error current');
-    $this->assertText('Article importing null null');
-    $this->assertText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertText('CustomType edited edited current');
-    $this->assertText('Article error edited ready');
-    $this->assertText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertText('CustomType current current ready');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
-    $this->assertNoText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextContains('Article current error current');
+    $this->assertSession()->pageTextContains('Article importing null null');
+    $this->assertSession()->pageTextContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextContains('CustomType edited edited current');
+    $this->assertSession()->pageTextContains('Article error edited ready');
+    $this->assertSession()->pageTextContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextContains('CustomType current current ready');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
 
     // Change page limit
     \Drupal::service('tempstore.private')->get('lingotek.management.items_per_page')->set('limit', 50);
     $this->goToContentBulkManagementForm();
 
-    $this->assertText('CustomType edited ready ready');
-    $this->assertText('Article current error current');
-    $this->assertText('Article importing null null');
-    $this->assertText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertText('CustomType edited edited current');
-    $this->assertText('Article error edited ready');
-    $this->assertText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertText('CustomType current current ready');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
-    $this->assertText('Article cancelled cancelled cancelled');
-    $this->assertText('Article current request null');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextContains('Article current error current');
+    $this->assertSession()->pageTextContains('Article importing null null');
+    $this->assertSession()->pageTextContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextContains('CustomType edited edited current');
+    $this->assertSession()->pageTextContains('Article error edited ready');
+    $this->assertSession()->pageTextContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextContains('CustomType current current ready');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextContains('Article current request null');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
 
     $edit = [
       'filters[advanced_options][source_status]' => 'UPLOAD_NEEDED',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-
-    $this->assertText('CustomType edited ready ready');
-    $this->assertNoText('Article current error current');
-    $this->assertNoText('Article importing null null');
-    $this->assertText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertText('CustomType edited edited current');
-    $this->assertText('Article error edited ready');
-    $this->assertNoText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertNoText('CustomType current current ready');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
-    $this->assertText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextNotContains('Article current error current');
+    $this->assertSession()->pageTextNotContains('Article importing null null');
+    $this->assertSession()->pageTextContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextContains('CustomType edited edited current');
+    $this->assertSession()->pageTextContains('Article error edited ready');
+    $this->assertSession()->pageTextNotContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextNotContains('CustomType current current ready');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
 
     $edit = [
       'filters[advanced_options][source_status]' => 'UPLOAD_NEEDED',
       'filters[wrapper][bundle][]' => ['custom_type', 'not_configured'],
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-
-    $this->assertText('CustomType edited ready ready');
-    $this->assertNoText('Article current error current');
-    $this->assertNoText('Article importing null null');
-    $this->assertNoText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertText('CustomType edited edited current');
-    $this->assertNoText('Article error edited ready');
-    $this->assertNoText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertNoText('CustomType current current ready');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
-    $this->assertNoText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextNotContains('Article current error current');
+    $this->assertSession()->pageTextNotContains('Article importing null null');
+    $this->assertSession()->pageTextNotContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextContains('CustomType edited edited current');
+    $this->assertSession()->pageTextNotContains('Article error edited ready');
+    $this->assertSession()->pageTextNotContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextNotContains('CustomType current current ready');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
 
     $edit = [
       'filters[advanced_options][source_status]' => 'UPLOAD_NEEDED',
       'filters[wrapper][bundle][]' => ['custom_type', 'not_configured'],
       'filters[advanced_options][source_language]' => 'en',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-
-    $this->assertText('CustomType edited ready ready');
-    $this->assertNoText('Article current error current');
-    $this->assertNoText('Article importing null null');
-    $this->assertNoText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertNoText('CustomType edited edited current');
-    $this->assertNoText('Article error edited ready');
-    $this->assertNoText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertNoText('CustomType current current ready');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
-    $this->assertNoText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertText('CustomType nothing nothing nothing');
-    $this->assertText('NotConfigured nothing nothing nothing');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextNotContains('Article current error current');
+    $this->assertSession()->pageTextNotContains('Article importing null null');
+    $this->assertSession()->pageTextNotContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextNotContains('CustomType edited edited current');
+    $this->assertSession()->pageTextNotContains('Article error edited ready');
+    $this->assertSession()->pageTextNotContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextNotContains('CustomType current current ready');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextContains('NotConfigured nothing nothing nothing');
 
     $edit = [
       'filters[advanced_options][source_status]' => 'UPLOAD_NEEDED',
@@ -2824,24 +2830,24 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'filters[advanced_options][source_language]' => 'en',
       'filters[advanced_options][profile][]' => ['manual', 'automatic'],
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-
-    $this->assertText('CustomType edited ready ready');
-    $this->assertNoText('Article current error current');
-    $this->assertNoText('Article importing null null');
-    $this->assertNoText('Article null null null');
-    $this->assertText('CustomType edited current edited');
-    $this->assertNoText('CustomType edited edited current');
-    $this->assertNoText('Article error edited ready');
-    $this->assertNoText('Article current interim ready');
-    $this->assertText('CustomType error null null');
-    $this->assertNoText('CustomType current current ready');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
-    $this->assertNoText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextNotContains('Article current error current');
+    $this->assertSession()->pageTextNotContains('Article importing null null');
+    $this->assertSession()->pageTextNotContains('Article null null null');
+    $this->assertSession()->pageTextContains('CustomType edited current edited');
+    $this->assertSession()->pageTextNotContains('CustomType edited edited current');
+    $this->assertSession()->pageTextNotContains('Article error edited ready');
+    $this->assertSession()->pageTextNotContains('Article current interim ready');
+    $this->assertSession()->pageTextContains('CustomType error null null');
+    $this->assertSession()->pageTextNotContains('CustomType current current ready');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
 
     $edit = [
       'filters[advanced_options][source_status]' => 'UPLOAD_NEEDED',
@@ -2850,24 +2856,24 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
       'filters[advanced_options][profile][]' => ['manual', 'automatic'],
       'filters[advanced_options][target_status]' => 'READY',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
-
-    $this->assertText('CustomType edited ready ready');
-    $this->assertNoText('Article current error current');
-    $this->assertNoText('Article importing null null');
-    $this->assertNoText('Article null null null');
-    $this->assertNoText('CustomType edited current edited');
-    $this->assertNoText('CustomType edited edited current');
-    $this->assertNoText('Article error edited ready');
-    $this->assertNoText('Article current interim ready');
-    $this->assertNoText('CustomType error null null');
-    $this->assertNoText('CustomType current current ready');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
-    $this->assertNoText('Article cancelled cancelled cancelled');
-    $this->assertNoText('Article current request null');
-    $this->assertNoText('CustomType nothing nothing nothing');
-    $this->assertNoText('NotConfigured nothing nothing nothing');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
+
+    $this->assertSession()->pageTextContains('CustomType edited ready ready');
+    $this->assertSession()->pageTextNotContains('Article current error current');
+    $this->assertSession()->pageTextNotContains('Article importing null null');
+    $this->assertSession()->pageTextNotContains('Article null null null');
+    $this->assertSession()->pageTextNotContains('CustomType edited current edited');
+    $this->assertSession()->pageTextNotContains('CustomType edited edited current');
+    $this->assertSession()->pageTextNotContains('Article error edited ready');
+    $this->assertSession()->pageTextNotContains('Article current interim ready');
+    $this->assertSession()->pageTextNotContains('CustomType error null null');
+    $this->assertSession()->pageTextNotContains('CustomType current current ready');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('Article cancelled cancelled cancelled');
+    $this->assertSession()->pageTextNotContains('Article current request null');
+    $this->assertSession()->pageTextNotContains('CustomType nothing nothing nothing');
+    $this->assertSession()->pageTextNotContains('NotConfigured nothing nothing nothing');
   }
 
   public function testTargetStatusFilterPagination() {
@@ -2922,10 +2928,10 @@ class LingotekNodeBulkFormTest extends LingotekTestBase {
     $edit = [
       'filters[advanced_options][target_status]' => Lingotek::STATUS_CANCELLED,
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     // This ensures that pagination is working correctly with the Target Status filter.
     // If it isn't, there will be fewer than 10 nodes on the content bulk management form
-    $this->assertText('Article 10');
+    $this->assertSession()->pageTextContains('Article 10');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekNodeBulkFormWithContentModerationTest.php b/tests/src/Functional/Form/LingotekNodeBulkFormWithContentModerationTest.php
index e5b46c95..4dd02d67 100644
--- a/tests/src/Functional/Form/LingotekNodeBulkFormWithContentModerationTest.php
+++ b/tests/src/Functional/Form/LingotekNodeBulkFormWithContentModerationTest.php
@@ -17,7 +17,7 @@ class LingotekNodeBulkFormWithContentModerationTest extends LingotekNodeBulkForm
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'content_moderation'];
+  protected static $modules = ['block', 'node', 'content_moderation'];
 
   /**
    * A node used for testing.
@@ -83,10 +83,10 @@ class LingotekNodeBulkFormWithContentModerationTest extends LingotekNodeBulkForm
     $update = [
       'filters[advanced_options][moderation_state]' => 'draft',
     ];
-    $this->drupalPostForm(NULL, $update, 'edit-filters-actions-submit');
+    $this->submitForm($update, 'edit-filters-actions-submit');
     $assert_session->linkExists('Llamas are cool');
 
-    $this->assertFieldByName('filters[advanced_options][moderation_state]', 'draft', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][moderation_state]', 'draft');
 
     // Change the content moderation state to published
     $this->saveAndKeepPublishedNodeForm($edit, 1);
@@ -95,10 +95,10 @@ class LingotekNodeBulkFormWithContentModerationTest extends LingotekNodeBulkForm
     $update = [
       'filters[advanced_options][moderation_state]' => 'published',
     ];
-    $this->drupalPostForm(NULL, $update, 'edit-filters-actions-submit');
+    $this->submitForm($update, 'edit-filters-actions-submit');
     $assert_session->linkExists('Llamas are cool');
 
-    $this->assertFieldByName('filters[advanced_options][moderation_state]', 'published', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][moderation_state]', 'published');
 
     // Change the content moderation state to archived
     $this->saveAndArchiveNodeForm($edit, 1);
@@ -107,15 +107,15 @@ class LingotekNodeBulkFormWithContentModerationTest extends LingotekNodeBulkForm
     $update = [
       'filters[advanced_options][moderation_state]' => 'archived',
     ];
-    $this->drupalPostForm(NULL, $update, 'edit-filters-actions-submit');
+    $this->submitForm($update, 'edit-filters-actions-submit');
     $assert_session->linkExists('Llamas are cool');
 
-    $this->assertFieldByName('filters[advanced_options][moderation_state]', 'archived', 'The value is retained in the filter.');
+    $this->assertSession()->fieldValueEquals('filters[advanced_options][moderation_state]', 'archived');
 
     $update = [
       'filters[advanced_options][moderation_state]' => 'published',
     ];
-    $this->drupalPostForm(NULL, $update, 'edit-filters-actions-submit');
+    $this->submitForm($update, 'edit-filters-actions-submit');
 
     // Make sure the document does not show up when we filter by published and the document is archived
     $assert_session->linkNotExists('Llamas are cool');
@@ -129,9 +129,9 @@ class LingotekNodeBulkFormWithContentModerationTest extends LingotekNodeBulkForm
    */
   protected function enableModerationThroughUI($content_type_id) {
     $this->drupalGet('/admin/config/workflow/workflows/manage/editorial/type/node');
-    $this->assertFieldByName("bundles[$content_type_id]");
+    $this->assertSession()->fieldExists("bundles[$content_type_id]");
     $edit["bundles[$content_type_id]"] = TRUE;
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
   /**
diff --git a/tests/src/Functional/Form/LingotekNodeBulkFormWithGroupModuleTest.php b/tests/src/Functional/Form/LingotekNodeBulkFormWithGroupModuleTest.php
index 4d75bd8a..0ead5189 100644
--- a/tests/src/Functional/Form/LingotekNodeBulkFormWithGroupModuleTest.php
+++ b/tests/src/Functional/Form/LingotekNodeBulkFormWithGroupModuleTest.php
@@ -20,7 +20,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'node',
     'group',
@@ -128,7 +128,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $this->goToContentBulkManagementForm();
 
     // Assert there is a select for group.
-    $this->assertField('filters[wrapper][group]', 'There is a filter for group');
+    $this->assertSession()->fieldExists('filters[wrapper][group]');
   }
 
   /**
@@ -142,7 +142,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $this->goToContentBulkManagementForm();
 
     // Assert there is a select for group.
-    $this->assertNoField('filters[wrapper][group]', 'There is not a filter for group');
+    $this->assertSession()->fieldNotExists('filters[wrapper][group]');
   }
 
   /**
@@ -153,7 +153,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $this->goToContentBulkManagementForm('user');
 
     // Assert there is not a select for group.
-    $this->assertNoField('filters[wrapper][group]', 'There is not a filter for group');
+    $this->assertSession()->fieldNotExists('filters[wrapper][group]');
   }
 
   /**
@@ -180,7 +180,8 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
       'user[user][profiles]' => 'automatic',
       'user[user][fields][changed]' => 1,
     ];
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->drupalGet('admin/lingotek/settings', []);
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
   }
 
   /**
@@ -222,7 +223,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][group]' => '1',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([1, 5, 7, 11, 13] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j . ' at Group My Product 1.0');
     }
@@ -234,7 +235,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][group]' => '2',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([2, 4, 6, 8, 10, 12, 14] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j . ' at Group My Product 2.0');
     }
@@ -246,7 +247,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $edit = [
       'filters[wrapper][group]' => '3',
     ];
-    $this->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');
+    $this->submitForm($edit, 'edit-filters-actions-submit');
     foreach ([3, 9] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j . ' at Group My Product 2.4');
     }
@@ -254,7 +255,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $assert_session->linkNotExists('Llamas are cool 5 at Group My Product 1.0');
 
     // After we reset, we get back to having a pager and all the content.
-    $this->drupalPostForm(NULL, [], 'Reset');
+    $this->submitForm([], 'Reset');
     foreach ([1, 5, 7] as $j) {
       $assert_session->linkExists('Llamas are cool ' . $j . ' at Group My Product 1.0');
     }
@@ -292,8 +293,8 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
     $this->clickLink('Add group');
 
     $edit = ['label[0][value]' => $label];
-    $this->drupalPostForm(NULL, $edit, new FormattableMarkup('Create @group and complete your membership', ['@group' => $group_label]));
-    $this->drupalPostForm(NULL, [], 'Save group and membership');
+    $this->submitForm($edit, new FormattableMarkup('Create @group and complete your membership', ['@group' => $group_label]));
+    $this->submitForm([], 'Save group and membership');
     return $label;
   }
 
@@ -310,7 +311,7 @@ class LingotekNodeBulkFormWithGroupModuleTest extends LingotekTestBase {
   protected function relateNodeToGroup($nid, $gid, $title) {
     $this->drupalGet('/group/' . $gid . '/content/add/group_node%3Aarticle');
     $edit = ['entity_id[0][target_id]' => $title . ' (' . $nid . ')'];
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $this->assertSession()->titleEquals($title . ' | Drupal');
   }
 
diff --git a/tests/src/Functional/Form/LingotekParagraphsBulkFormTest.php b/tests/src/Functional/Form/LingotekParagraphsBulkFormTest.php
index d809bb1c..0b86b37c 100644
--- a/tests/src/Functional/Form/LingotekParagraphsBulkFormTest.php
+++ b/tests/src/Functional/Form/LingotekParagraphsBulkFormTest.php
@@ -18,7 +18,7 @@ class LingotekParagraphsBulkFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'node',
     'image',
@@ -86,12 +86,12 @@ class LingotekParagraphsBulkFormTest extends LingotekTestBase {
     $this->addDemoContent();
 
     $edit = ['contrib[paragraphs][enable_bulk_management]' => 1];
-    $this->drupalPostForm(NULL, $edit, 'Save settings', [], 'lingoteksettings-integrations-form');
-    $this->assertText('The configuration options have been saved.');
+    $this->submitForm($edit, 'Save settings', 'lingoteksettings-integrations-form');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
     $this->goToContentBulkManagementForm('paragraph');
 
-    $this->assertText('Parent');
+    $this->assertSession()->pageTextContains('Parent');
     $assert_session->linkExists('Welcome to the Paragraphs Demo module!', 4);
     $assert_session->linkExists('Library item');
   }
diff --git a/tests/src/Functional/Form/LingotekProfileFormTest.php b/tests/src/Functional/Form/LingotekProfileFormTest.php
index a760efba..4f012456 100644
--- a/tests/src/Functional/Form/LingotekProfileFormTest.php
+++ b/tests/src/Functional/Form/LingotekProfileFormTest.php
@@ -25,12 +25,12 @@ class LingotekProfileFormTest extends LingotekTestBase {
    *
    * @see testProfileSettingsOverride()
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'starterkit_theme';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node'];
+  protected static $modules = ['node'];
 
   /**
    * {@inheritdoc}
@@ -50,12 +50,12 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
 
     // Status of the checkbox matrix is as expected.
-    $this->assertFieldChecked('edit-profile-automatic-auto-upload');
-    $this->assertFieldChecked('edit-profile-automatic-auto-download');
-    $this->assertNoFieldChecked('edit-profile-manual-auto-upload');
-    $this->assertNoFieldChecked('edit-profile-manual-auto-download');
-    $this->assertNoFieldChecked('edit-profile-disabled-auto-upload');
-    $this->assertNoFieldChecked('edit-profile-disabled-auto-download');
+    $this->assertSession()->checkboxChecked('edit-profile-automatic-auto-upload');
+    $this->assertSession()->checkboxChecked('edit-profile-automatic-auto-download');
+    $this->assertSession()->checkboxNotChecked('edit-profile-manual-auto-upload');
+    $this->assertSession()->checkboxNotChecked('edit-profile-manual-auto-download');
+    $this->assertSession()->checkboxNotChecked('edit-profile-disabled-auto-upload');
+    $this->assertSession()->checkboxNotChecked('edit-profile-disabled-auto-download');
 
     // We cannot edit them.
     $assert_session->linkByHrefNotExists('/admin/lingotek/settings/profile/automatic/edit');
@@ -89,16 +89,16 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'auto_download' => 1,
       'append_type_to_title' => 'yes',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
-    $this->assertText(t('The Lingotek profile has been successfully saved.'));
+    $this->assertSession()->pageTextContains(t('The Lingotek profile has been successfully saved.'));
 
     // We can edit them.
     $assert_session->linkByHrefExists("/admin/lingotek/settings/profile/$profile_id/edit");
 
-    $this->assertFieldChecked("edit-profile-$profile_id-auto-upload");
-    $this->assertFieldChecked("edit-profile-$profile_id-auto-request");
-    $this->assertFieldChecked("edit-profile-$profile_id-auto-download");
+    $this->assertSession()->checkboxChecked("edit-profile-$profile_id-auto-upload");
+    $this->assertSession()->checkboxChecked("edit-profile-$profile_id-auto-request");
+    $this->assertSession()->checkboxChecked("edit-profile-$profile_id-auto-download");
     $this->assertFieldEnabled("edit-profile-$profile_id-auto-upload");
     $this->assertFieldEnabled("edit-profile-$profile_id-auto-request");
     $this->assertFieldEnabled("edit-profile-$profile_id-auto-download");
@@ -108,13 +108,13 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->assertTrue($profile->hasAutomaticUpload());
     $this->assertTrue($profile->hasAutomaticRequest());
     $this->assertTrue($profile->hasAutomaticDownload());
-    $this->assertIdentical('yes', $profile->getAppendContentTypeToTitle());
-    $this->assertIdentical('default', $profile->getProject());
-    $this->assertIdentical('default', $profile->getVault());
-    $this->assertIdentical('default', $profile->getWorkflow());
+    $this->assertSame('yes', $profile->getAppendContentTypeToTitle());
+    $this->assertSame('default', $profile->getProject());
+    $this->assertSame('default', $profile->getVault());
+    $this->assertSame('default', $profile->getWorkflow());
     $this->assertFalse($profile->hasIntelligenceMetadataOverrides());
-    $this->assertIdentical('drupal_default', $profile->getFilter());
-    $this->assertIdentical('drupal_default', $profile->getSubfilter());
+    $this->assertSame('drupal_default', $profile->getFilter());
+    $this->assertSame('drupal_default', $profile->getSubfilter());
   }
 
   /**
@@ -126,7 +126,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
     $this->clickLink(t('Add new Translation Profile'));
 
-    $this->assertFieldByName('workflow');
+    $this->assertSession()->fieldExists('workflow');
     $assert_session->optionExists('edit-workflow', 'project_default');
     $assert_session->optionExists('edit-workflow', 'default');
   }
@@ -145,7 +145,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $profile->save();
     $profile_id = $profile->id();
 
-    $this->assertIdentical('global_setting', $profile->getAppendContentTypeToTitle());
+    $this->assertSame('global_setting', $profile->getAppendContentTypeToTitle());
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
 
     $edit = [
@@ -158,22 +158,22 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'subfilter' => 'test_filter2',
       'append_type_to_title' => 'no',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
     $this->assertFalse($profile->hasAutomaticUpload());
     $this->assertTrue($profile->hasAutomaticDownload());
-    $this->assertIdentical('no', $profile->getAppendContentTypeToTitle());
-    $this->assertIdentical('test_project', $profile->getProject());
-    $this->assertIdentical('test_vault', $profile->getVault());
-    $this->assertIdentical('test_workflow', $profile->getWorkflow());
-    $this->assertIdentical('test_filter', $profile->getFilter());
-    $this->assertIdentical('test_filter2', $profile->getSubfilter());
+    $this->assertSame('no', $profile->getAppendContentTypeToTitle());
+    $this->assertSame('test_project', $profile->getProject());
+    $this->assertSame('test_vault', $profile->getVault());
+    $this->assertSame('test_workflow', $profile->getWorkflow());
+    $this->assertSame('test_filter', $profile->getFilter());
+    $this->assertSame('test_filter2', $profile->getSubfilter());
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
-    $this->assertNoFieldChecked("edit-auto-upload");
-    $this->assertFieldChecked("edit-auto-download");
+    $this->assertSession()->checkboxNotChecked("edit-auto-upload");
+    $this->assertSession()->checkboxChecked("edit-auto-download");
     $assert_session->optionExists('edit-append-type-to-title', 'no');
     $assert_session->optionExists('edit-project', 'test_project');
     $assert_session->optionExists('edit-vault', 'test_vault');
@@ -200,7 +200,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
       "profile[$profile_id][auto_request]" => 0,
       "profile[$profile_id][auto_download]" => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration', [], 'lingotek-profile-admin-overview-form');
+    $this->submitForm($edit, 'Save configuration', 'lingotek-profile-admin-overview-form');
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -208,16 +208,16 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->assertFalse($profile->hasAutomaticRequest());
     $this->assertTrue($profile->hasAutomaticDownload());
 
-    $this->assertFieldChecked("profile[$profile_id][auto_upload]");
-    $this->assertNoFieldChecked("profile[$profile_id][auto_request]");
-    $this->assertFieldChecked("profile[$profile_id][auto_download]");
+    $this->assertSession()->checkboxChecked("profile[$profile_id][auto_upload]");
+    $this->assertSession()->checkboxNotChecked("profile[$profile_id][auto_request]");
+    $this->assertSession()->checkboxChecked("profile[$profile_id][auto_download]");
 
     $edit = [
       "profile[$profile_id][auto_upload]" => 1,
       "profile[$profile_id][auto_request]" => 1,
       "profile[$profile_id][auto_download]" => 0,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration', [], 'lingotek-profile-admin-overview-form');
+    $this->submitForm($edit, 'Save configuration', 'lingotek-profile-admin-overview-form');
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -225,16 +225,16 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->assertTrue($profile->hasAutomaticRequest());
     $this->assertFalse($profile->hasAutomaticDownload());
 
-    $this->assertFieldChecked("profile[$profile_id][auto_upload]");
-    $this->assertFieldChecked("profile[$profile_id][auto_request]");
-    $this->assertNoFieldChecked("profile[$profile_id][auto_download]");
+    $this->assertSession()->checkboxChecked("profile[$profile_id][auto_upload]");
+    $this->assertSession()->checkboxChecked("profile[$profile_id][auto_request]");
+    $this->assertSession()->checkboxNotChecked("profile[$profile_id][auto_download]");
 
     $edit = [
       "profile[$profile_id][auto_upload]" => 0,
       "profile[$profile_id][auto_request]" => 1,
       "profile[$profile_id][auto_download]" => 0,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration', [], 'lingotek-profile-admin-overview-form');
+    $this->submitForm($edit, 'Save configuration', 'lingotek-profile-admin-overview-form');
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -242,9 +242,9 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->assertTrue($profile->hasAutomaticRequest());
     $this->assertFalse($profile->hasAutomaticDownload());
 
-    $this->assertNoFieldChecked("profile[$profile_id][auto_upload]");
-    $this->assertFieldChecked("profile[$profile_id][auto_request]");
-    $this->assertNoFieldChecked("profile[$profile_id][auto_download]");
+    $this->assertSession()->checkboxNotChecked("profile[$profile_id][auto_upload]");
+    $this->assertSession()->checkboxChecked("profile[$profile_id][auto_request]");
+    $this->assertSession()->checkboxNotChecked("profile[$profile_id][auto_download]");
   }
 
   /**
@@ -262,11 +262,11 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/delete");
 
     // Confirm the form.
-    $this->assertText('This action cannot be undone.');
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->assertSession()->pageTextContains('This action cannot be undone.');
+    $this->submitForm([], t('Delete'));
 
     // Profile was deleted.
-    $this->assertRaw(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseContains(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -301,16 +301,16 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = $profile_id;
     $this->saveAndPublishNodeForm($edit);
-    $this->assertUrl('/node/1', [], 'Node has been created.');
+    $this->assertSession()->addressEquals('/node/1', [], 'Node has been created.');
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/delete");
 
     // Confirm the form.
-    $this->assertText(t('This action cannot be undone.'));
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->assertSession()->pageTextContains(t('This action cannot be undone.'));
+    $this->submitForm([], t('Delete'));
 
-    $this->assertNoRaw(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
-    $this->assertRaw(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseNotContains(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseContains(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -338,16 +338,16 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:' . $profile_id,
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/delete");
 
     // Confirm the form.
-    $this->assertText(t('This action cannot be undone.'));
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->assertSession()->pageTextContains(t('This action cannot be undone.'));
+    $this->submitForm([], t('Delete'));
 
-    $this->assertNoRaw(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
-    $this->assertRaw(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseNotContains(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseContains(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -378,11 +378,11 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/delete");
 
     // Confirm the form.
-    $this->assertText(t('This action cannot be undone.'));
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->assertSession()->pageTextContains(t('This action cannot be undone.'));
+    $this->submitForm([], t('Delete'));
 
-    $this->assertNoRaw(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
-    $this->assertRaw(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseNotContains(t('The lingotek profile %profile has been deleted.', ['%profile' => $profile->label()]));
+    $this->assertSession()->responseContains(t('The Lingotek profile %profile is being used so cannot be deleted.', ['%profile' => $profile->label()]));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
@@ -426,34 +426,34 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'language_overrides[de][custom][workflow]' => 'default',
       'language_overrides[de][custom][vault]' => 'default',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
     $this->assertFalse($profile->hasAutomaticUpload());
     $this->assertTrue($profile->hasAutomaticDownload());
-    $this->assertIdentical('default', $profile->getProject());
-    $this->assertIdentical('default', $profile->getVault());
-    $this->assertIdentical('test_workflow2', $profile->getWorkflow());
-    $this->assertIdentical('test_workflow', $profile->getWorkflowForTarget('es'));
-    $this->assertIdentical('default', $profile->getWorkflowForTarget('de'));
-    $this->assertIdentical('test_vault', $profile->getVaultForTarget('es'));
-    $this->assertIdentical('default', $profile->getVaultForTarget('de'));
+    $this->assertSame('default', $profile->getProject());
+    $this->assertSame('default', $profile->getVault());
+    $this->assertSame('test_workflow2', $profile->getWorkflow());
+    $this->assertSame('test_workflow', $profile->getWorkflowForTarget('es'));
+    $this->assertSame('default', $profile->getWorkflowForTarget('de'));
+    $this->assertSame('test_vault', $profile->getVaultForTarget('es'));
+    $this->assertSame('default', $profile->getVaultForTarget('de'));
     $this->assertFalse($profile->hasAutomaticDownloadForTarget('es'));
     $this->assertFalse($profile->hasAutomaticDownloadForTarget('de'));
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
-    $this->assertNoFieldChecked("edit-auto-upload");
-    $this->assertFieldChecked("edit-auto-download");
+    $this->assertSession()->checkboxNotChecked("edit-auto-upload");
+    $this->assertSession()->checkboxChecked("edit-auto-download");
     $assert_session->optionExists('edit-project', 'default');
     $assert_session->optionExists('edit-vault', 'default');
     $assert_session->optionExists('edit-workflow', 'test_workflow2');
     $assert_session->optionExists('edit-language-overrides-es-overrides', 'custom');
     $assert_session->optionExists('edit-language-overrides-de-overrides', 'custom');
     $assert_session->optionExists('edit-language-overrides-en-overrides', 'default');
-    $this->assertNoFieldChecked('edit-language-overrides-es-custom-auto-download');
-    $this->assertNoFieldChecked('edit-language-overrides-de-custom-auto-download');
-    $this->assertFieldChecked('edit-language-overrides-en-custom-auto-download');
+    $this->assertSession()->checkboxNotChecked('edit-language-overrides-es-custom-auto-download');
+    $this->assertSession()->checkboxNotChecked('edit-language-overrides-de-custom-auto-download');
+    $this->assertSession()->checkboxChecked('edit-language-overrides-en-custom-auto-download');
     $assert_session->optionExists('edit-language-overrides-es-custom-workflow', 'test_workflow');
     $assert_session->optionExists('edit-language-overrides-de-custom-workflow', 'default');
     $assert_session->optionExists('edit-language-overrides-en-custom-workflow', 'default');
@@ -461,9 +461,9 @@ class LingotekProfileFormTest extends LingotekTestBase {
     // Assert that the override languages are present and ordered alphabetically.
     $selects = $this->xpath('//details[@id="edit-language-overrides"]/*/*//select');
     // There must be 2 select options for each of the 3 languages.
-    $this->assertEqual(count($selects), 3 * 3, 'There are options for all the potential language overrides.');
+    $this->assertEquals(count($selects), 3 * 3, 'There are options for all the potential language overrides.');
     // And the first one must be German alphabetically.
-    $this->assertEqual($selects[0]->getAttribute('id'), 'edit-language-overrides-de-overrides', 'Languages are ordered alphabetically.');
+    $this->assertEquals($selects[0]->getAttribute('id'), 'edit-language-overrides-de-overrides', 'Languages are ordered alphabetically.');
   }
 
   /**
@@ -499,17 +499,17 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'language_overrides[de][custom][workflow]' => 'default',
       'language_overrides[de][custom][vault]' => 'default',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
     $this->assertFalse($profile->hasAutomaticUpload());
     $this->assertTrue($profile->hasAutomaticDownload());
-    $this->assertIdentical('default', $profile->getProject());
-    $this->assertIdentical('default', $profile->getVault());
-    $this->assertIdentical('test_workflow2', $profile->getWorkflow());
-    $this->assertIdentical(NULL, $profile->getWorkflowForTarget('es'));
-    $this->assertIdentical(NULL, $profile->getVaultForTarget('es'));
+    $this->assertSame('default', $profile->getProject());
+    $this->assertSame('default', $profile->getVault());
+    $this->assertSame('test_workflow2', $profile->getWorkflow());
+    $this->assertSame(NULL, $profile->getWorkflowForTarget('es'));
+    $this->assertSame(NULL, $profile->getVaultForTarget('es'));
     $this->assertTrue($profile->hasDisabledTarget('es'));
     $this->assertFalse($profile->hasAutomaticRequestForTarget('es'));
     $this->assertTrue($profile->hasAutomaticRequestForTarget('de'));
@@ -542,7 +542,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $profile_id = $profile->id();
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
-    $this->assertFieldByName('language_overrides[es][overrides]');
+    $this->assertSession()->fieldExists('language_overrides[es][overrides]');
     $assert_session->optionExists('edit-language-overrides-de-overrides', 'default');
     $assert_session->optionExists('edit-language-overrides-de-overrides', 'default');
 
@@ -551,14 +551,14 @@ class LingotekProfileFormTest extends LingotekTestBase {
 
     // The form shouldn't have the field.
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
-    $this->assertNoFieldByName('language_overrides[es][overrides]');
+    $this->assertSession()->fieldNotExists('language_overrides[es][overrides]');
     $assert_session->optionExists('edit-language-overrides-de-overrides', 'default');
 
     // We enable the language back.
     $configLingotek->enableLanguage($es);
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
-    $this->assertFieldByName('language_overrides[es][overrides]');
+    $this->assertSession()->fieldExists('language_overrides[es][overrides]');
     $assert_session->optionExists('edit-language-overrides-es-overrides', 'default');
     $assert_session->optionExists('edit-language-overrides-de-overrides', 'default');
   }
@@ -569,7 +569,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
   public function testIntelligenceOverrideDefaults() {
     $this->drupalGet('admin/lingotek/settings');
     $this->clickLink(t('Add new Translation Profile'));
-    $this->assertNoFieldChecked('edit-intelligence-metadata-overrides-override');
+    $this->assertSession()->checkboxNotChecked('edit-intelligence-metadata-overrides-override');
     $this->assertIntelligenceFieldDefaults();
   }
 
@@ -619,43 +619,43 @@ class LingotekProfileFormTest extends LingotekTestBase {
       'intelligence_metadata[purchase_order]' => 'PO32',
       'intelligence_metadata[region]' => 'region2',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
-    $this->assertText(t('The Lingotek profile has been successfully saved.'));
+    $this->assertSession()->pageTextContains(t('The Lingotek profile has been successfully saved.'));
 
     // We can edit them.
     $assert_session->linkByHrefExists("/admin/lingotek/settings/profile/$profile_id/edit");
 
-    $this->assertFieldChecked("edit-profile-$profile_id-auto-upload");
-    $this->assertFieldChecked("edit-profile-$profile_id-auto-download");
+    $this->assertSession()->checkboxChecked("edit-profile-$profile_id-auto-upload");
+    $this->assertSession()->checkboxChecked("edit-profile-$profile_id-auto-download");
     $this->assertFieldEnabled("edit-profile-$profile_id-auto-upload");
     $this->assertFieldEnabled("edit-profile-$profile_id-auto-download");
 
     $this->drupalGet("/admin/lingotek/settings/profile/$profile_id/edit");
 
     // Assert the intelligence metadata values.
-    $this->assertFieldChecked('edit-intelligence-metadata-overrides-override');
-    $this->assertNoFieldChecked('edit-intelligence-metadata-use-contact-email-for-author');
-    $this->assertFieldByName('intelligence_metadata[default_author_email]', 'test@example.com');
-    $this->assertFieldByName('intelligence_metadata[business_unit]', 'Test Business Unit');
-    $this->assertFieldByName('intelligence_metadata[business_division]', 'Test Business Division');
-    $this->assertFieldByName('intelligence_metadata[campaign_id]', 'Campaign ID');
-    $this->assertFieldByName('intelligence_metadata[campaign_rating]', 5);
-    $this->assertFieldByName('intelligence_metadata[channel]', 'Channel Test');
-    $this->assertFieldByName('intelligence_metadata[contact_name]', 'Test Contact Name');
-    $this->assertFieldByName('intelligence_metadata[contact_email]', 'contact@example.com');
-    $this->assertFieldByName('intelligence_metadata[content_description]', 'Content description');
-    $this->assertFieldByName('intelligence_metadata[external_style_id]', 'my-style-id');
-    $this->assertFieldByName('intelligence_metadata[purchase_order]', 'PO32');
-    $this->assertFieldByName('intelligence_metadata[region]', 'region2');
+    $this->assertSession()->checkboxChecked('edit-intelligence-metadata-overrides-override');
+    $this->assertSession()->checkboxNotChecked('edit-intelligence-metadata-use-contact-email-for-author');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[default_author_email]', 'test@example.com');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[business_unit]', 'Test Business Unit');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[business_division]', 'Test Business Division');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[campaign_id]', 'Campaign ID');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[campaign_rating]', 5);
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[channel]', 'Channel Test');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[contact_name]', 'Test Contact Name');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[contact_email]', 'contact@example.com');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[content_description]', 'Content description');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[external_style_id]', 'my-style-id');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[purchase_order]', 'PO32');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[region]', 'region2');
 
     /** @var \Drupal\lingotek\LingotekProfileInterface $profile */
     $profile = LingotekProfile::load($profile_id);
     $this->assertTrue($profile->hasAutomaticUpload());
     $this->assertTrue($profile->hasAutomaticDownload());
-    $this->assertIdentical('default', $profile->getProject());
-    $this->assertIdentical('default', $profile->getVault());
-    $this->assertIdentical('default', $profile->getWorkflow());
+    $this->assertSame('default', $profile->getProject());
+    $this->assertSame('default', $profile->getVault());
+    $this->assertSame('default', $profile->getWorkflow());
 
     // Assert the intelligence metadata values.
     $this->assertTrue($profile->hasIntelligenceMetadataOverrides());
@@ -677,18 +677,18 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->assertTrue($profile->getBaseDomainPermission());
     $this->assertTrue($profile->getReferenceUrlPermission());
 
-    $this->assertIdentical($profile->getDefaultAuthorEmail(), 'test@example.com');
-    $this->assertIdentical($profile->getBusinessUnit(), 'Test Business Unit');
-    $this->assertIdentical($profile->getBusinessDivision(), 'Test Business Division');
-    $this->assertIdentical($profile->getCampaignId(), 'Campaign ID');
-    $this->assertIdentical($profile->getCampaignRating(), 5);
-    $this->assertIdentical($profile->getChannel(), 'Channel Test');
-    $this->assertIdentical($profile->getContactName(), 'Test Contact Name');
-    $this->assertIdentical($profile->getContactEmail(), 'contact@example.com');
-    $this->assertIdentical($profile->getContentDescription(), 'Content description');
-    $this->assertIdentical($profile->getExternalStyleId(), 'my-style-id');
-    $this->assertIdentical($profile->getPurchaseOrder(), 'PO32');
-    $this->assertIdentical($profile->getRegion(), 'region2');
+    $this->assertSame($profile->getDefaultAuthorEmail(), 'test@example.com');
+    $this->assertSame($profile->getBusinessUnit(), 'Test Business Unit');
+    $this->assertSame($profile->getBusinessDivision(), 'Test Business Division');
+    $this->assertSame($profile->getCampaignId(), 'Campaign ID');
+    $this->assertSame($profile->getCampaignRating(), 5);
+    $this->assertSame($profile->getChannel(), 'Channel Test');
+    $this->assertSame($profile->getContactName(), 'Test Contact Name');
+    $this->assertSame($profile->getContactEmail(), 'contact@example.com');
+    $this->assertSame($profile->getContentDescription(), 'Content description');
+    $this->assertSame($profile->getExternalStyleId(), 'my-style-id');
+    $this->assertSame($profile->getPurchaseOrder(), 'PO32');
+    $this->assertSame($profile->getRegion(), 'region2');
   }
 
   /**
@@ -700,8 +700,8 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
     $this->clickLink(t('Add new Translation Profile'));
 
-    $this->assertFieldByName('filter');
-    $this->assertFieldByName('subfilter');
+    $this->assertSession()->fieldExists('filter');
+    $this->assertSession()->fieldExists('subfilter');
     $assert_session->optionExists('edit-filter', 'default');
     $assert_session->optionExists('edit-filter', 'project_default');
     $assert_session->optionExists('edit-filter', 'drupal_default');
@@ -727,7 +727,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
     $this->clickLink(t('Add new Translation Profile'));
 
-    $this->assertFieldByName('filter');
+    $this->assertSession()->fieldExists('filter');
     $option_field = $assert_session->optionExists('edit-filter', 'drupal_default');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-filter', 'default');
@@ -735,7 +735,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
     $assert_session->optionNotExists('edit-filter', 'test_filter');
     $assert_session->optionNotExists('edit-filter', 'test_filter2');
 
-    $this->assertFieldByName('subfilter');
+    $this->assertSession()->fieldExists('subfilter');
     $option_field = $assert_session->optionExists('edit-subfilter', 'drupal_default');
     $this->assertTrue($option_field->hasAttribute('selected'));
     $assert_session->optionExists('edit-subfilter', 'default');
@@ -757,7 +757,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
    */
   protected function assertFieldDisabled($id, $message = '') {
     $elements = $this->xpath('//input[@id=:id]', [':id' => $id]);
-    return $this->assertTrue(isset($elements[0]) && !empty($elements[0]->getAttribute('disabled')),
+    $this->assertTrue(isset($elements[0]) && !empty($elements[0]->getAttribute('disabled')),
       $message ? $message : t('Field @id is disabled.', ['@id' => $id]), t('Browser'));
   }
 
@@ -774,7 +774,7 @@ class LingotekProfileFormTest extends LingotekTestBase {
    */
   protected function assertFieldEnabled($id, $message = '') {
     $elements = $this->xpath('//input[@id=:id]', [':id' => $id]);
-    return $this->assertTrue(isset($elements[0]) && empty($elements[0]->getAttribute('disabled')),
+    $this->assertTrue(isset($elements[0]) && empty($elements[0]->getAttribute('disabled')),
       $message ? $message : t('Field @id is enabled.', ['@id' => $id]), t('Browser'));
   }
 
diff --git a/tests/src/Functional/Form/LingotekSettingsTabAccountFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabAccountFormTest.php
index 4e023bc5..c4d08042 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabAccountFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabAccountFormTest.php
@@ -17,7 +17,7 @@ class LingotekSettingsTabAccountFormTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'image'];
+  protected static $modules = ['node', 'image'];
 
   /**
    * {@inheritdoc}
@@ -57,7 +57,7 @@ class LingotekSettingsTabAccountFormTest extends LingotekTestBase {
       'filter' => 'test_filter2',
       'subfilter' => 'test_filter3',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration');
+    $this->submitForm($edit, 'Save configuration');
 
     $this->assertTableValue('status', 'Active');
     $this->assertTableValue('plan', 'No');
@@ -80,7 +80,7 @@ class LingotekSettingsTabAccountFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
     $this->clickLink('Edit defaults');
     $edit = ['workflow' => 'project_default'];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertTableValue('workflow', 'Project Default (project_default)');
   }
 
@@ -113,7 +113,7 @@ class LingotekSettingsTabAccountFormTest extends LingotekTestBase {
   protected function assertTableValue($field, $expected, $message = '') {
     $xpathValue = $this->xpath('//tr[@data-drupal-selector="edit-account-table-' . $field . '-row"]//td[2]');
     $value = $xpathValue[0]->getText();
-    return $this->assertEquals($expected, $value, $message);
+    $this->assertEquals($expected, $value, $message);
   }
 
   /**
diff --git a/tests/src/Functional/Form/LingotekSettingsTabConfigurationFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabConfigurationFormTest.php
index f7c87f90..d86e1a74 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabConfigurationFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabConfigurationFormTest.php
@@ -17,17 +17,17 @@ class LingotekSettingsTabConfigurationFormTest extends LingotekTestBase {
   public function testConfigurationForm() {
     $this->drupalGet('admin/lingotek/settings');
     // Nothing is selected.
-    $this->assertNoFieldChecked('edit-table-configurable-language-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-table-configurable-language-enabled');
     // Check the configurable language and set the manual profile.
     $edit = [
       'table[configurable_language][enabled]' => 1,
       'table[configurable_language][profile]' => 'manual',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-configuration-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-configuration-form');
 
     // The values shown are correct.
-    $this->assertFieldChecked('edit-table-configurable-language-enabled');
-    $this->assertFieldByName('table[configurable_language][profile]', 'manual');
+    $this->assertSession()->checkboxChecked('edit-table-configurable-language-enabled');
+    $this->assertSession()->fieldValueEquals('table[configurable_language][profile]', 'manual');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation */
     $config_translation = \Drupal::service('lingotek.config_translation');
@@ -35,8 +35,8 @@ class LingotekSettingsTabConfigurationFormTest extends LingotekTestBase {
     $lingotek_config = \Drupal::service('lingotek.configuration');
 
     $this->assertTrue($config_translation->isEnabled('configurable_language'));
-    $this->assertEqual('manual', $lingotek_config->getConfigEntityDefaultProfileId('configurable_language'));
-    $this->assertEqual(['configurable_language'], $config_translation->getEnabledConfigTypes());
+    $this->assertEquals('manual', $lingotek_config->getConfigEntityDefaultProfileId('configurable_language'));
+    $this->assertEquals(['configurable_language'], $config_translation->getEnabledConfigTypes());
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekSettingsTabContentFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabContentFormTest.php
index 241fe00d..fc6ea734 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabContentFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabContentFormTest.php
@@ -23,7 +23,7 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'field_ui', 'image'];
+  protected static $modules = ['block', 'node', 'field_ui', 'image'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -61,7 +61,7 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
    */
   public function testNoUntranslatableEntitiesAreShown() {
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertText('There are no translatable content entities specified');
+    $this->assertSession()->pageTextContains('There are no translatable content entities specified');
   }
 
   /**
@@ -86,12 +86,12 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
 
     // Check the form contains the article type and only its text-based fields.
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertNoText('There are no translatable content types specified');
-    $this->assertNoField('node[article][fields][langcode]');
-    $this->assertField('node[article][enabled]');
-    $this->assertField('node[article][profiles]');
-    $this->assertField('node[article][fields][title]');
-    $this->assertField('node[article][fields][body]');
+    $this->assertSession()->pageTextNotContains('There are no translatable content types specified');
+    $this->assertSession()->fieldNotExists('node[article][fields][langcode]');
+    $this->assertSession()->fieldExists('node[article][enabled]');
+    $this->assertSession()->fieldExists('node[article][profiles]');
+    $this->assertSession()->fieldExists('node[article][fields][title]');
+    $this->assertSession()->fieldExists('node[article][fields][body]');
 
     // Check the title and body fields.
     $edit = [
@@ -105,16 +105,16 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'user[user][fields][user_picture]' => 1,
       'user[user][fields][user_picture:properties][alt]' => 'alt',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Check that values are kept in the form.
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'automatic');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     // Check that the config is correctly saved.
     $config_data = $this->config('lingotek.settings')->getRawData();
@@ -123,10 +123,10 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     $this->assertTrue($config_data['translate']['entity']['node']['article']['field']['body']);
     $this->assertTrue($config_data['translate']['entity']['node']['article']['field']['field_image']);
     // As the schema here is sequence:ignore, there is no boolean casting.
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['alt'], '1');
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['alt'], '1');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
     $this->assertFalse(array_key_exists('revision_log', $config_data['translate']['entity']['node']['article']['field']));
-    $this->assertEqual('automatic', $config_data['translate']['entity']['node']['article']['profile']);
+    $this->assertEquals('automatic', $config_data['translate']['entity']['node']['article']['profile']);
   }
 
   /**
@@ -149,16 +149,16 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'user[user][fields][user_picture:properties][alt]' => FALSE,
       'user[user][fields][user_picture:properties][title]' => 'title',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Check that values are kept in the form.
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'automatic');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
     // Check that the config is correctly saved.
     $config_data = $this->config('lingotek.settings')->getRawData();
@@ -167,10 +167,10 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     $this->assertTrue($config_data['translate']['entity']['node']['article']['field']['body']);
     $this->assertTrue($config_data['translate']['entity']['node']['article']['field']['field_image']);
     // As the schema here is sequence:ignore, there is no boolean casting.
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['alt'], '0');
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '1');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['alt'], '0');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '1');
     $this->assertFalse(array_key_exists('revision_log', $config_data['translate']['entity']['node']['article']['field']));
-    $this->assertEqual('automatic', $config_data['translate']['entity']['node']['article']['profile']);
+    $this->assertEquals('automatic', $config_data['translate']['entity']['node']['article']['profile']);
 
     // Uncheck a couple of fields: body and image from node.
     $edit = [
@@ -186,16 +186,16 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'user[user][fields][user_picture:properties][alt]' => FALSE,
       'user[user][fields][user_picture:properties][title]' => 'title',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Check that values are kept in the form.
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'automatic');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     // Check that the config is correctly saved.
     $config_data = $this->config('lingotek.settings')->getRawData();
@@ -206,9 +206,9 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     // As the schema here is sequence:ignore, there is no boolean casting.
     // This should probably just be deleted.
     $this->assertFalse(array_key_exists('alt', $config_data['translate']['entity']['node']['article']['field']['field_image:properties']));
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
     $this->assertFalse(array_key_exists('revision_log', $config_data['translate']['entity']['node']['article']['field']));
-    $this->assertEqual('automatic', $config_data['translate']['entity']['node']['article']['profile']);
+    $this->assertEquals('automatic', $config_data['translate']['entity']['node']['article']['profile']);
 
     // Uncheck user for translation.
     $edit = [
@@ -221,21 +221,21 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image:properties][title]' => 'title',
       'user[user][enabled]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Check that values are kept in the form.
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'automatic');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
-
-    $this->assertNoFieldChecked('edit-user-user-enabled');
-    $this->assertFieldByName('user[user][profiles]', 'automatic');
-    $this->assertFieldChecked('edit-user-user-fields-user-picture');
-    $this->assertFieldChecked('edit-user-user-fields-user-pictureproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
+
+    $this->assertSession()->checkboxNotChecked('edit-user-user-enabled');
+    $this->assertSession()->fieldValueEquals('user[user][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-user-user-fields-user-picture');
+    $this->assertSession()->checkboxChecked('edit-user-user-fields-user-pictureproperties-title');
 
     // Check that the config is correctly saved.
     $config_data = $this->config('lingotek.settings')->getRawData();
@@ -246,13 +246,13 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     // As the schema here is sequence:ignore, there is no boolean casting.
     // This should probably just be deleted.
     $this->assertFalse(array_key_exists('alt', $config_data['translate']['entity']['node']['article']['field']['field_image:properties']));
-    $this->assertEqual($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
+    $this->assertEquals($config_data['translate']['entity']['node']['article']['field']['field_image:properties']['title'], '0');
     $this->assertFalse(array_key_exists('revision_log', $config_data['translate']['entity']['node']['article']['field']));
-    $this->assertEqual('automatic', $config_data['translate']['entity']['node']['article']['profile']);
+    $this->assertEquals('automatic', $config_data['translate']['entity']['node']['article']['profile']);
 
     $this->assertFalse($config_data['translate']['entity']['user']['user']['enabled']);
     $this->assertTrue($config_data['translate']['entity']['user']['user']['field']['user_picture']);
-    $this->assertEqual($config_data['translate']['entity']['user']['user']['field']['user_picture:properties']['title'], '1');
+    $this->assertEquals($config_data['translate']['entity']['user']['user']['field']['user_picture:properties']['title'], '1');
   }
 
   public function testICanDisableFields() {
@@ -281,10 +281,10 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image]' => 1,
       'node[article][fields][field_image:properties][alt]' => 'alt',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
     // Assert that body translation is enabled.
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
 
     // Submit again unchecking body and image including subfields.
     $edit = [
@@ -295,11 +295,11 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image]' => FALSE,
       'node[article][fields][field_image:properties][alt]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Those checkboxes should not be checked anymore.
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
 
   }
 
@@ -335,12 +335,12 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image]' => 1,
       'node[article][fields][field_image:properties][alt]' => 'alt',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
     // Assert that body translation is enabled.
-    $this->assertFieldChecked('edit-node-article-fields-title', 'The title field is enabled after enabled for Lingotek translation');
-    $this->assertFieldChecked('edit-node-article-fields-body', 'The body field is enabled after enabled for Lingotek translation');
-    $this->assertFieldChecked('edit-node-article-fields-field-image', 'The image field is enabled after enabled for Lingotek translation');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt', 'The image alt property is enabled after enabled for Lingotek translation');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
 
     // Go to the content language settings, and disable the body field.
     // It should result that the field is disabled in Lingotek too.
@@ -352,14 +352,15 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'settings[node][article][fields][body]' => FALSE,
       'settings[node][article][fields][field_image]' => FALSE,
     ];
-    $this->drupalPostForm('admin/config/regional/content-language', $edit, t('Save configuration'));
+    $this->drupalGet('admin/config/regional/content-language');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Get the form and check the fields are not available, because they cannot be translated.
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldChecked('edit-node-article-fields-title', 'The title field is enabled after other fields were disabled for content translation');
-    $this->assertNoFieldById('edit-node-article-fields-body', 'The body field is not present after disabled for content translation');
-    $this->assertNoFieldById('edit-node-article-fields-field-image', 'The image field is not present after disabled for content translation');
-    $this->assertNoFieldById('edit-node-article-fields-field-imageproperties-alt', 'The image alt property is not present after image was disabled for content translation');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->fieldNotExists('edit-node-article-fields-body');
+    $this->assertSession()->fieldNotExists('edit-node-article-fields-field-image');
+    $this->assertSession()->fieldNotExists('edit-node-article-fields-field-imageproperties-alt');
 
     // But also check that the fields are not enabled.
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $lingotek_config */
@@ -405,23 +406,23 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     // Get the form and check the field is not available, even if the storage
     // is translatable.
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertNoFieldById('edit-node-article-fields-field-image', '', 'The image field is not present after marked as not translatable.');
+    $this->assertSession()->fieldNotExists('edit-node-article-fields-field-image');
 
     // Make the field translatable again.
     $field->setTranslatable(TRUE)->save();
 
     // If the field is translatable, the field is available again.
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldById('edit-node-article-fields-field-image', '', 'The image field is present after marked as translatable.');
+    $this->assertSession()->fieldValueEquals('edit-node-article-fields-field-image', '');
   }
 
   public function testAddContentTypeAndConfigureLingotekToTranslate() {
     // Check the form contains the article type and only its text-based fields.
     $this->drupalGet('admin/structure/types');
     $this->clickLink('Add content type');
-    $this->assertNoFieldChecked('language_configuration[language_alterable]');
-    $this->assertNoFieldChecked('language_configuration[content_translation]');
-    $this->assertNoFieldChecked('language_configuration[content_translation_for_lingotek]');
+    $this->assertSession()->checkboxNotChecked('language_configuration[language_alterable]');
+    $this->assertSession()->checkboxNotChecked('language_configuration[content_translation]');
+    $this->assertSession()->checkboxNotChecked('language_configuration[content_translation_for_lingotek]');
 
     $edit = [
       'name' => 'Test',
@@ -430,17 +431,17 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'language_configuration[content_translation]' => TRUE,
       'language_configuration[content_translation_for_lingotek]' => TRUE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save and manage fields');
-    $this->assertText('The content type Test has been added.');
+    $this->submitForm($edit, 'Save and manage fields');
+    $this->assertSession()->pageTextContains('The content type Test has been added.');
 
     // It should result that the field is enabled in Lingotek settings.
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldChecked('edit-node-test-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-test-enabled');
 
     // We automatically enabled sensible defaults fields according to their type.
-    $this->assertFieldChecked('edit-node-test-fields-title');
-    $this->assertFieldChecked('edit-node-test-fields-body');
-    $this->assertNoFieldChecked('edit-node-test-fields-uid');
+    $this->assertSession()->checkboxChecked('edit-node-test-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-test-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-test-fields-uid');
   }
 
   /**
@@ -470,13 +471,14 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'language_configuration[content_translation]' => FALSE,
       'language_configuration[content_translation_for_lingotek]' => FALSE,
     ];
-    $this->drupalPostForm('admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     // Check the form contains the article type and only its text-based fields.
     $this->drupalGet('admin/structure/types/manage/article');
 
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertText('There are no translatable content entities specified');
+    $this->assertSession()->pageTextContains('There are no translatable content entities specified');
 
     // It should result that the field is enabled in Lingotek.
     $edit = [
@@ -484,19 +486,20 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'language_configuration[content_translation]' => TRUE,
       'language_configuration[content_translation_for_lingotek]' => TRUE,
     ];
-    $this->drupalPostForm('admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
     $this->applyEntityUpdates();
 
     // Check the form contains the article type and only its text-based fields.
     $this->drupalGet('admin/structure/types/manage/article');
 
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
 
     // We automatically enabled sensible defaults fields according to their type.
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-uid');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-uid');
   }
 
   /**
@@ -523,7 +526,7 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
 
     // Check the form contains the fields but they are disabled.
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
 
     // Check body field.
     $edit = [
@@ -531,28 +534,28 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][profiles]' => 'automatic',
       'node[article][fields][body]' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
-    $this->assertFieldChecked('edit-node-article-fields-body');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
 
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
     $this->clickLink(t('Translate'), 0);
     $this->clickLink('Edit');
 
-    $this->assertFieldChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek');
     // There are no properties to show.
-    $this->assertNoRaw('Lingotek translation');
+    $this->assertSession()->responseNotContains('Lingotek translation');
 
     $edit = [
       'translatable_for_lingotek' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
     $this->clickLink('Edit');
 
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek');
 
     $this->drupalGet('/admin/lingotek/settings');
 
-    $this->assertNoFieldChecked("edit-node-article-fields-body");
+    $this->assertSession()->checkboxNotChecked("edit-node-article-fields-body");
 
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
     $this->clickLink(t('Translate'), 0);
@@ -561,13 +564,13 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     $edit = [
       'translatable_for_lingotek' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
     $this->clickLink('Edit');
 
-    $this->assertFieldChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek');
 
     $this->drupalGet('/admin/lingotek/settings');
-    $this->assertFieldChecked("edit-node-article-fields-body");
+    $this->assertSession()->checkboxChecked("edit-node-article-fields-body");
   }
 
   /**
@@ -594,9 +597,9 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
     $this->drupalGet('admin/lingotek/settings');
 
     // Check the form contains the fields but they are disabled.
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
 
     // Check image and alt subfield.
     $edit = [
@@ -607,62 +610,62 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image]' => 1,
       'node[article][fields][field_image:properties][alt]' => 'alt',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     // Submit again unchecking image including subfields.
     $edit = [
       'node[article][fields][field_image]' => FALSE,
       'node[article][fields][field_image:properties][alt]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Those checkboxes should not be checked anymore.
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
     $this->clickLink(t('Translate'), 1);
     $this->clickLink('Edit');
 
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek');
-    $this->assertNoFieldChecked('edit-third-party-settings-content-translation-translation-sync-file');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-alt');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-title');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-file');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-alt');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-title');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxNotChecked('edit-third-party-settings-content-translation-translation-sync-file');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-alt');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-title');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-file');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-title');
 
     $edit = [
       'translatable_for_lingotek' => 1,
       'third_party_settings[content_translation][translation_sync][alt]' => 'alt',
       'translatable_for_lingotek_properties_alt' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
     $this->clickLink('Edit');
 
-    $this->assertFieldChecked('edit-translatable-for-lingotek');
-    $this->assertNoFieldChecked('edit-third-party-settings-content-translation-translation-sync-file');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-alt');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-title');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-file');
-    $this->assertFieldChecked('edit-translatable-for-lingotek-properties-alt');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-title');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxNotChecked('edit-third-party-settings-content-translation-translation-sync-file');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-alt');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-title');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-file');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek-properties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-title');
 
     $this->drupalGet('/admin/lingotek/settings');
 
-    $this->assertFieldChecked("edit-node-article-fields-field-image");
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked("edit-node-article-fields-field-image");
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $edit = [
       'node[article][fields][field_image]' => 1,
@@ -670,11 +673,11 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image:properties][alt]' => FALSE,
       'node[article][fields][field_image:properties][title]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
     $this->clickLink(t('Translate'), 1);
@@ -689,23 +692,23 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'translatable_for_lingotek_properties_title' => 1,
       'translatable_for_lingotek_properties_file' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
     $this->clickLink('Edit');
 
-    $this->assertFieldChecked('edit-translatable-for-lingotek');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-file');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-alt');
-    $this->assertFieldChecked('edit-third-party-settings-content-translation-translation-sync-title');
-    $this->assertFieldChecked('edit-translatable-for-lingotek-properties-file');
-    $this->assertFieldChecked('edit-translatable-for-lingotek-properties-alt');
-    $this->assertFieldChecked('edit-translatable-for-lingotek-properties-title');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-file');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-alt');
+    $this->assertSession()->checkboxChecked('edit-third-party-settings-content-translation-translation-sync-title');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek-properties-file');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek-properties-alt');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek-properties-title');
 
     $this->drupalGet('/admin/lingotek/settings');
 
-    $this->assertFieldChecked("edit-node-article-fields-field-image");
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked("edit-node-article-fields-field-image");
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
     $edit = [
       'node[article][fields][field_image]' => 1,
@@ -713,12 +716,12 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image:properties][alt]' => FALSE,
       'node[article][fields][field_image:properties][title]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
-    $this->assertFieldChecked("edit-node-article-fields-field-image");
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked("edit-node-article-fields-field-image");
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
     $this->clickLink(t('Translate'), 1);
@@ -733,23 +736,23 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'translatable_for_lingotek_properties_title' => 1,
       'translatable_for_lingotek_properties_file' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
     $this->clickLink('Edit');
 
-    $this->assertFieldChecked('edit-translatable-for-lingotek');
-    $this->assertNoFieldChecked('edit-third-party-settings-content-translation-translation-sync-file');
-    $this->assertNoFieldChecked('edit-third-party-settings-content-translation-translation-sync-alt');
-    $this->assertNoFieldChecked('edit-third-party-settings-content-translation-translation-sync-title');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-file');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-alt');
-    $this->assertNoFieldChecked('edit-translatable-for-lingotek-properties-title');
+    $this->assertSession()->checkboxChecked('edit-translatable-for-lingotek');
+    $this->assertSession()->checkboxNotChecked('edit-third-party-settings-content-translation-translation-sync-file');
+    $this->assertSession()->checkboxNotChecked('edit-third-party-settings-content-translation-translation-sync-alt');
+    $this->assertSession()->checkboxNotChecked('edit-third-party-settings-content-translation-translation-sync-title');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-file');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-translatable-for-lingotek-properties-title');
 
     $this->drupalGet('/admin/lingotek/settings');
 
-    $this->assertFieldChecked("edit-node-article-fields-field-image");
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked("edit-node-article-fields-field-image");
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
 
     $edit = [
       'node[article][fields][field_image]' => 1,
@@ -757,11 +760,11 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
       'node[article][fields][field_image:properties][title]' => FALSE,
       'node[article][fields][field_image:properties][file]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
   }
 
   public function testContentTypesAreNotDisabledIfThereAreLotsOfContentTypes() {
@@ -813,16 +816,16 @@ class LingotekSettingsTabContentFormTest extends LingotekTestBase {
 
     // Check the form contains the fields, and have the proper values,
     // but they are disabled.
-    $this->assertFieldChecked('edit-node-article-readonly-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'automatic');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'automatic');
 
     $edit = ['node[article][profiles]' => 'manual'];
-    $this->drupalPostForm(NULL, $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     // Check the form contains the fields, and have the proper values,
     // but they are disabled.
-    $this->assertFieldChecked('edit-node-article-readonly-enabled');
-    $this->assertFieldByName('node[article][profiles]', 'manual');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-enabled');
+    $this->assertSession()->fieldValueEquals('node[article][profiles]', 'manual');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekSettingsTabIntegrationFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabIntegrationFormTest.php
index 0167d445..8804cc6c 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabIntegrationFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabIntegrationFormTest.php
@@ -26,7 +26,7 @@ class LingotekSettingsTabIntegrationFormTest extends LingotekTestBase {
    */
   public function testTabNotShownIfThereAreNoSettings() {
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertNoText('Integrations Settings');
+    $this->assertSession()->pageTextNotContains('Integrations Settings');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekSettingsTabIntelligenceMetadataFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabIntelligenceMetadataFormTest.php
index 6b1ad43b..e5f0adf9 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabIntelligenceMetadataFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabIntelligenceMetadataFormTest.php
@@ -19,8 +19,7 @@ class LingotekSettingsTabIntelligenceMetadataFormTest extends LingotekTestBase {
   public function testIntelligenceMetadataIsSaved() {
     $this->drupalGet('admin/lingotek/settings');
 
-    $this->assertRaw('<summary role="button" aria-controls="edit-intelligence-metadata" aria-expanded="false" aria-pressed="false">Lingotek Intelligence Metadata</summary>',
-      'Lingotek Intelligence Metadata tab is present.');
+    $this->assertSession()->responseContains('<summary role="button" aria-controls="edit-intelligence-metadata" aria-expanded="false" aria-pressed="false">Ray Enterprise Intelligence Metadata</summary>');
 
     // Assert defaults are correct.
     $this->assertIntelligenceFieldDefaults();
@@ -57,24 +56,24 @@ class LingotekSettingsTabIntelligenceMetadataFormTest extends LingotekTestBase {
       'intelligence_metadata[purchase_order]' => 'PO32',
       'intelligence_metadata[region]' => 'region2',
     ];
-    $this->submitForm($edit, 'Save Lingotek Intelligence Metadata', 'lingotekintelligence-metadata-form');
+    $this->submitForm($edit, 'Save Ray Enterprise Intelligence Metadata', 'lingotekintelligence-metadata-form');
 
-    $this->assertText('Lingotek Intelligence Metadata saved correctly.');
+    $this->assertSession()->pageTextContains('Ray Enterprise Intelligence Metadata saved correctly.');
 
     // The values shown are correct.
-    $this->assertNoFieldChecked('edit-intelligence-metadata-use-contact-email-for-author');
-    $this->assertFieldByName('intelligence_metadata[default_author_email]', 'test@example.com');
-    $this->assertFieldByName('intelligence_metadata[business_unit]', 'Test Business Unit');
-    $this->assertFieldByName('intelligence_metadata[business_division]', 'Test Business Division');
-    $this->assertFieldByName('intelligence_metadata[campaign_id]', 'Campaign ID');
-    $this->assertFieldByName('intelligence_metadata[campaign_rating]', 5);
-    $this->assertFieldByName('intelligence_metadata[channel]', 'Channel Test');
-    $this->assertFieldByName('intelligence_metadata[contact_name]', 'Test Contact Name');
-    $this->assertFieldByName('intelligence_metadata[contact_email]', 'contact@example.com');
-    $this->assertFieldByName('intelligence_metadata[content_description]', 'Content description');
-    $this->assertFieldByName('intelligence_metadata[external_style_id]', 'my-style-id');
-    $this->assertFieldByName('intelligence_metadata[purchase_order]', 'PO32');
-    $this->assertFieldByName('intelligence_metadata[region]', 'region2');
+    $this->assertSession()->checkboxNotChecked('edit-intelligence-metadata-use-contact-email-for-author');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[default_author_email]', 'test@example.com');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[business_unit]', 'Test Business Unit');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[business_division]', 'Test Business Division');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[campaign_id]', 'Campaign ID');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[campaign_rating]', 5);
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[channel]', 'Channel Test');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[contact_name]', 'Test Contact Name');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[contact_email]', 'contact@example.com');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[content_description]', 'Content description');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[external_style_id]', 'my-style-id');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[purchase_order]', 'PO32');
+    $this->assertSession()->fieldValueEquals('intelligence_metadata[region]', 'region2');
 
     /** @var \Drupal\lingotek\LingotekIntelligenceMetadataInterface $intelligence */
     $intelligence = \Drupal::service('lingotek.intelligence');
@@ -95,18 +94,18 @@ class LingotekSettingsTabIntelligenceMetadataFormTest extends LingotekTestBase {
     $this->assertTrue($intelligence->getBaseDomainPermission());
     $this->assertTrue($intelligence->getReferenceUrlPermission());
 
-    $this->assertIdentical($intelligence->getDefaultAuthorEmail(), 'test@example.com');
-    $this->assertIdentical($intelligence->getBusinessUnit(), 'Test Business Unit');
-    $this->assertIdentical($intelligence->getBusinessDivision(), 'Test Business Division');
-    $this->assertIdentical($intelligence->getCampaignId(), 'Campaign ID');
-    $this->assertIdentical($intelligence->getCampaignRating(), 5);
-    $this->assertIdentical($intelligence->getChannel(), 'Channel Test');
-    $this->assertIdentical($intelligence->getContactName(), 'Test Contact Name');
-    $this->assertIdentical($intelligence->getContactEmail(), 'contact@example.com');
-    $this->assertIdentical($intelligence->getContentDescription(), 'Content description');
-    $this->assertIdentical($intelligence->getExternalStyleId(), 'my-style-id');
-    $this->assertIdentical($intelligence->getPurchaseOrder(), 'PO32');
-    $this->assertIdentical($intelligence->getRegion(), 'region2');
+    $this->assertSame($intelligence->getDefaultAuthorEmail(), 'test@example.com');
+    $this->assertSame($intelligence->getBusinessUnit(), 'Test Business Unit');
+    $this->assertSame($intelligence->getBusinessDivision(), 'Test Business Division');
+    $this->assertSame($intelligence->getCampaignId(), 'Campaign ID');
+    $this->assertSame($intelligence->getCampaignRating(), 5);
+    $this->assertSame($intelligence->getChannel(), 'Channel Test');
+    $this->assertSame($intelligence->getContactName(), 'Test Contact Name');
+    $this->assertSame($intelligence->getContactEmail(), 'contact@example.com');
+    $this->assertSame($intelligence->getContentDescription(), 'Content description');
+    $this->assertSame($intelligence->getExternalStyleId(), 'my-style-id');
+    $this->assertSame($intelligence->getPurchaseOrder(), 'PO32');
+    $this->assertSame($intelligence->getRegion(), 'region2');
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekSettingsTabParagraphsIntegrationFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabParagraphsIntegrationFormTest.php
index 1850a6c5..9f32a77b 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabParagraphsIntegrationFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabParagraphsIntegrationFormTest.php
@@ -27,7 +27,7 @@ class LingotekSettingsTabParagraphsIntegrationFormTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'node',
     'image',
@@ -113,9 +113,9 @@ class LingotekSettingsTabParagraphsIntegrationFormTest extends LingotekTestBase
    */
   public function testTabShownIfThereAreSettings() {
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertText('Integrations Settings');
-    $this->assertText('Paragraphs');
-    $this->assertText('Enable paragraphs to be managed individually instead of embedded in their parent entity.');
+    $this->assertSession()->pageTextContains('Integrations Settings');
+    $this->assertSession()->pageTextContains('Paragraphs');
+    $this->assertSession()->pageTextContains('Enable paragraphs to be managed individually instead of embedded in their parent entity.');
   }
 
   /**
@@ -137,16 +137,16 @@ class LingotekSettingsTabParagraphsIntegrationFormTest extends LingotekTestBase
     // Activate the settings tab.
     $this->drupalGet('admin/lingotek/settings');
     $edit = ['contrib[paragraphs][enable_bulk_management]' => 1];
-    $this->drupalPostForm(NULL, $edit, 'Save settings', [], 'lingoteksettings-integrations-form');
-    $this->assertText('The configuration options have been saved.');
+    $this->submitForm($edit, 'Save settings', 'lingoteksettings-integrations-form');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
     // Now the tab is active.
     $this->goToContentBulkManagementForm();
     $assert_session->linkExists('Paragraph');
 
     $this->clickLink('Paragraph');
-    $this->assertText('Manage Translations');
-    $this->assertText('No content available');
+    $this->assertSession()->pageTextContains('Manage Translations');
+    $this->assertSession()->pageTextContains('No content available');
   }
 
   /**
@@ -161,8 +161,8 @@ class LingotekSettingsTabParagraphsIntegrationFormTest extends LingotekTestBase
     // Disable the settings tab.
     $this->drupalGet('admin/lingotek/settings');
     $edit = ['contrib[paragraphs][enable_bulk_management]' => FALSE];
-    $this->drupalPostForm(NULL, $edit, 'Save settings', [], 'lingoteksettings-integrations-form');
-    $this->assertText('The configuration options have been saved.');
+    $this->submitForm($edit, 'Save settings', 'lingoteksettings-integrations-form');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
     // Now the tab is not shown.
     $this->goToContentBulkManagementForm();
@@ -208,14 +208,14 @@ class LingotekSettingsTabParagraphsIntegrationFormTest extends LingotekTestBase
 
     $this->drupalGet('admin/lingotek/settings');
 
-    $this->assertNoFieldByName('paragraph[image_text][profiles]', NULL, 'The profile is not selectable for paragraphs by default.');
+    $this->assertSession()->fieldNotExists('paragraph[image_text][profiles]');
 
     $edit = ['contrib[paragraphs][enable_bulk_management]' => 1];
-    $this->drupalPostForm(NULL, $edit, 'Save settings', [], 'lingoteksettings-integrations-form');
-    $this->assertText('The configuration options have been saved.');
+    $this->submitForm($edit, 'Save settings', 'lingoteksettings-integrations-form');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
 
-    $this->assertFieldByName('paragraph[image_text][profiles]', NULL, 'The profile can be assigned to a paragraph if they are managed individually.');
-    $this->assertFieldByName('paragraph[image_text][profiles]', Lingotek::PROFILE_DISABLED, 'The default profile is disabled for paragraphs if they are managed individually.');
+    $this->assertSession()->fieldExists('paragraph[image_text][profiles]');
+    $this->assertSession()->fieldValueEquals('paragraph[image_text][profiles]', Lingotek::PROFILE_DISABLED);
   }
 
 }
diff --git a/tests/src/Functional/Form/LingotekSettingsTabUtilitiesFormTest.php b/tests/src/Functional/Form/LingotekSettingsTabUtilitiesFormTest.php
index c5a680f3..336c97d4 100644
--- a/tests/src/Functional/Form/LingotekSettingsTabUtilitiesFormTest.php
+++ b/tests/src/Functional/Form/LingotekSettingsTabUtilitiesFormTest.php
@@ -15,7 +15,7 @@ class LingotekSettingsTabUtilitiesFormTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node'];
+  protected static $modules = ['node'];
 
   /**
    * {@inheritdoc}
@@ -37,7 +37,7 @@ class LingotekSettingsTabUtilitiesFormTest extends LingotekTestBase {
 
     // Activate the settings tab.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], 'Refresh', [], 'lingoteksettings-tab-utilities-form');
+    $this->submitForm([], 'Refresh', 'lingoteksettings-tab-utilities-form');
     $assert_session->responseContains('Project, workflow, vault, and filter information have been refreshed.');
 
     $config = \Drupal::configFactory()->getEditable('lingotek.account');
diff --git a/tests/src/Functional/LingotekAccountTest.php b/tests/src/Functional/LingotekAccountTest.php
index aa5ad93a..1b59207a 100644
--- a/tests/src/Functional/LingotekAccountTest.php
+++ b/tests/src/Functional/LingotekAccountTest.php
@@ -21,7 +21,7 @@ class LingotekAccountTest extends BrowserTestBase {
    *
    * @var array
    */
-  public static $modules = ['lingotek', 'lingotek_test'];
+  protected static $modules = ['lingotek', 'lingotek_test'];
 
   /**
    * Tests that the dashboard cannot be accessed without a valid user.
@@ -36,22 +36,22 @@ class LingotekAccountTest extends BrowserTestBase {
     // Try to navigate to the Dashboard page, and assert we are redirected.
     $this->drupalGet('admin/lingotek/setup/account');
     // Fake the connection to an account in Lingotek.
-    $this->clickLink('Connect Lingotek Account');
+    $this->clickLink('Connect Ray Enterprise Account');
     // Our fake backend generates a token, returns to the site, completes the
     // handshake and return some fake data.
-    $this->assertText('Your account settings have been saved.');
+    $this->assertSession()->pageTextContains('Your account settings have been saved.');
     // Then we can select the defaults for the different fields.
-    $this->drupalPostForm(NULL, ['community' => 'test_community'], 'Next');
-    $this->assertText('The configuration options have been saved.');
-    $this->drupalPostForm(NULL, [
+    $this->submitForm(['community' => 'test_community'], 'Next');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
+    $this->submitForm([
       'project' => 'test_project',
       'vault' => 'test_vault',
       'workflow' => 'test_workflow',
     ], 'Save configuration');
-    $this->assertText('The configuration options have been saved.');
+    $this->assertSession()->pageTextContains('The configuration options have been saved.');
     // We are done with the defaults, we should be redirected to the dashboard.
-    $this->assertText('Dashboard');
-    $this->assertUrl('admin/lingotek');
+    $this->assertSession()->pageTextContains('Dashboard');
+    $this->assertSession()->addressEquals('admin/lingotek');
   }
 
   /**
@@ -67,8 +67,8 @@ class LingotekAccountTest extends BrowserTestBase {
 
     // Try to navigate to the Dashboard page, and assert we are redirected.
     $this->drupalGet('admin/lingotek');
-    $this->assertUrl('admin/lingotek/setup/account');
-    $assert_session->linkExists('Connect Lingotek Account');
+    $this->assertSession()->addressEquals('admin/lingotek/setup/account');
+    $assert_session->linkExists('Connect Ray Enterprise Account');
   }
 
   public function testHandshakePage() {
@@ -86,7 +86,7 @@ class LingotekAccountTest extends BrowserTestBase {
     $this->drupalGet('admin/lingotek/setup/account');
 
     // Fake the connection to an account in Lingotek.
-    $this->clickLink('Connect Lingotek Account');
+    $this->clickLink('Connect Ray Enterprise Account');
     // Our fake backend generates a token, returns to the site and waits for the
     // redirect.
     $assert_session->addressEquals('admin/lingotek/setup/account/handshake#access_token=test_token');
diff --git a/tests/src/Functional/LingotekBulkDeleteTest.php b/tests/src/Functional/LingotekBulkDeleteTest.php
index b4f7d279..6d205fab 100644
--- a/tests/src/Functional/LingotekBulkDeleteTest.php
+++ b/tests/src/Functional/LingotekBulkDeleteTest.php
@@ -20,7 +20,7 @@ class LingotekBulkDeleteTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['taxonomy', 'block', 'node'];
+  protected static $modules = ['taxonomy', 'block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -87,7 +87,7 @@ class LingotekBulkDeleteTest extends LingotekTestBase {
 
     // Ensure the delete operation is there.
     $delete_option = $this->xpath('//*[@id="edit-operation"]/option[text()="Delete content"]');
-    $this->assertIdentical(1, count($delete_option), 'Delete operation must be available');
+    $this->assertSame(1, count($delete_option), 'Delete operation must be available');
 
     // Three nodes must be there.
     $assert_session->linkExists('Llamas are cool 2');
@@ -101,20 +101,20 @@ class LingotekBulkDeleteTest extends LingotekTestBase {
       'table[3]' => FALSE,
       $this->getBulkOperationFormName() => 'delete_content',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Ensure the confirmation page is shown.
-    $this->assertText(t('Are you sure you want to delete these content items?'));
-    $this->assertText('Llamas are cool');
-    $this->assertText('Llamas are cool 2');
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->assertSession()->pageTextContains(t('Are you sure you want to delete these content items?'));
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool 2');
+    $this->submitForm([], t('Delete'));
 
     // Only one node remains and we are back to the manage page.
-    $this->assertText('Deleted 2 content items.');
+    $this->assertSession()->pageTextContains('Deleted 2 content items.');
     $assert_session->linkNotExists('Llamas are cool 2');
     $assert_session->linkNotExists('Llamas are cool');
     $assert_session->linkExists('Llamas should stay');
-    $this->assertUrl('admin/lingotek/manage/node');
+    $this->assertSession()->addressEquals('admin/lingotek/manage/node');
   }
 
   /**
@@ -141,14 +141,15 @@ class LingotekBulkDeleteTest extends LingotekTestBase {
       "taxonomy_term[$bundle][fields][name]" => 1,
       "taxonomy_term[$bundle][fields][description]" => 1,
     ];
+    $this->drupalGet('admin/lingotek/settings', []);
 
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
 
     $this->goToContentBulkManagementForm('taxonomy_term');
 
     // Ensure the delete operation is not there.
     $delete_option = $this->xpath('//*[@id="edit-operation"]/option[text()="Delete content"]');
-    $this->assertIdentical(0, count($delete_option), 'Delete operation should not be available');
+    $this->assertSame(0, count($delete_option), 'Delete operation should not be available');
   }
 
 }
diff --git a/tests/src/Functional/LingotekChangeAccountDefaultsTest.php b/tests/src/Functional/LingotekChangeAccountDefaultsTest.php
index 94eacf5d..842dc18d 100644
--- a/tests/src/Functional/LingotekChangeAccountDefaultsTest.php
+++ b/tests/src/Functional/LingotekChangeAccountDefaultsTest.php
@@ -30,7 +30,7 @@ class LingotekChangeAccountDefaultsTest extends LingotekTestBase {
 
     // Click on the Community link.
     $this->clickLink(t('Edit defaults'), 0);
-    $this->drupalPostForm(NULL, ['community' => 'test_community2'], t('Save configuration'));
+    $this->submitForm(['community' => 'test_community2'], t('Save configuration'));
 
     $this->assertTableValue('community', 'Test community 2 (test_community2)');
     $this->assertTableValue('workflow', 'Test workflow (test_workflow)');
@@ -39,7 +39,7 @@ class LingotekChangeAccountDefaultsTest extends LingotekTestBase {
 
     // Click on the Project link.
     $this->clickLink(t('Edit defaults'), 1);
-    $this->drupalPostForm(NULL, ['project' => 'test_project2', 'vault' => 'test_vault2'], t('Save configuration'));
+    $this->submitForm(['project' => 'test_project2', 'vault' => 'test_vault2'], t('Save configuration'));
 
     $this->assertTableValue('community', 'Test community 2 (test_community2)');
     $this->assertTableValue('workflow', 'Test workflow (test_workflow)');
diff --git a/tests/src/Functional/LingotekConfigBulkProfileTest.php b/tests/src/Functional/LingotekConfigBulkProfileTest.php
index 8b22fde6..1ea16ce2 100644
--- a/tests/src/Functional/LingotekConfigBulkProfileTest.php
+++ b/tests/src/Functional/LingotekConfigBulkProfileTest.php
@@ -17,7 +17,7 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -45,22 +45,22 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there is one node with the Manual Profile
     // Check that there are two nodes with the Automatic Profile
     $manual_profile = $this->xpath("//td[contains(text(), 'Manual')]");
-    $this->assertEqual(count($manual_profile), 1, 'Manual Profile set');
+    $this->assertEquals(count($manual_profile), 1, 'Manual Profile set');
 
     $this->clickLink('EN', 1);
 
@@ -68,11 +68,11 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:disabled',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Disabled Profile
     $disabled_profile = $this->xpath("//td[contains(text(), 'Disabled')]");
-    $this->assertEqual(count($disabled_profile), 1, 'Disabled Profile set');
+    $this->assertEquals(count($disabled_profile), 1, 'Disabled Profile set');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -90,63 +90,63 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
     // that hold a list of languages.
     $this->rebuildContainer();
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'request_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
   }
 
   /**
@@ -168,47 +168,47 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'request_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'cancel_document',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
@@ -217,7 +217,7 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_UNTRACKED);
@@ -226,7 +226,7 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:disabled',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     drupal_static_reset();
     \Drupal::entityTypeManager()->clearCachedDefinitions();
@@ -241,8 +241,8 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
       ->getMappers();
     $mapper = $mappers['system.site_information_settings'];
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     $this->drupalGet('admin/config/system/site-information/translate');
 
@@ -251,7 +251,7 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
     $edit = [
       'site_name' => 'llamas are cool',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -263,8 +263,8 @@ class LingotekConfigBulkProfileTest extends LingotekTestBase {
     // that hold a list of languages.
     $this->rebuildContainer();
 
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_DISABLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigDependenciesTest.php b/tests/src/Functional/LingotekConfigDependenciesTest.php
index 7b764bd0..a3c4d950 100644
--- a/tests/src/Functional/LingotekConfigDependenciesTest.php
+++ b/tests/src/Functional/LingotekConfigDependenciesTest.php
@@ -17,7 +17,7 @@ class LingotekConfigDependenciesTest extends LingotekTestBase {
   /**
    * {@inheritDoc}
    */
-  public static $modules = ['lingotek', 'block', 'node', 'field_ui'];
+  protected static $modules = ['lingotek', 'block', 'node', 'field_ui'];
 
   public function testExportingConfigDependencies() {
     $assert_session = $this->assertSession();
@@ -58,8 +58,8 @@ class LingotekConfigDependenciesTest extends LingotekTestBase {
 
     // Upload article content type for translation.
     $this->clickLink('EN');
-    $this->assertText('article uploaded successfully');
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($content_type));
+    $this->assertSession()->pageTextContains('article uploaded successfully');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($content_type));
 
     $field = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
     // Go to config translation.
@@ -67,8 +67,8 @@ class LingotekConfigDependenciesTest extends LingotekTestBase {
 
     // Upload article body field type for translation.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($field));
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($field));
 
     // Copy all configuration to staging.
     $this->copyConfig($this->container->get('config.storage'), $this->container->get('config.storage.sync'));
@@ -89,12 +89,12 @@ class LingotekConfigDependenciesTest extends LingotekTestBase {
     // Article is back.
     $type = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
     $this->assertNotNull($type, 'Article is back');
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($type));
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($type));
 
     // The Field is back.
     $field = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
     $this->assertNotNull($field, 'Article Body is back');
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($field));
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($field));
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigEntityBulkProfileTest.php b/tests/src/Functional/LingotekConfigEntityBulkProfileTest.php
index f26f3c15..cbe5f52d 100644
--- a/tests/src/Functional/LingotekConfigEntityBulkProfileTest.php
+++ b/tests/src/Functional/LingotekConfigEntityBulkProfileTest.php
@@ -16,10 +16,10 @@ class LingotekConfigEntityBulkProfileTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -62,42 +62,42 @@ class LingotekConfigEntityBulkProfileTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
 
     $edit = [
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there is one node with the Manual Profile
     // Check that there are two nodes with the Automatic Profile
     $manual_profile = $this->xpath("//td[contains(text(), 'Manual')]");
-    $this->assertEqual(count($manual_profile), 1, 'Manual Profile set');
+    $this->assertEquals(count($manual_profile), 1, 'Manual Profile set');
 
     $edit = [
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:disabled',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Disabled Profile
     $disabled_profile = $this->xpath("//td[contains(text(), 'Disabled')]");
-    $this->assertEqual(count($disabled_profile), 1, 'Disabled Profile set');
+    $this->assertEquals(count($disabled_profile), 1, 'Disabled Profile set');
 
     $edit = [
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
   }
 
   /**
@@ -117,17 +117,17 @@ class LingotekConfigEntityBulkProfileTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 1, 'Automatic Profile set');
+    $this->assertEquals(count($automatic_profile), 1, 'Automatic Profile set');
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigEntityStatusDownloadTargetTest.php b/tests/src/Functional/LingotekConfigEntityStatusDownloadTargetTest.php
index 1ead9b13..8e0b1726 100644
--- a/tests/src/Functional/LingotekConfigEntityStatusDownloadTargetTest.php
+++ b/tests/src/Functional/LingotekConfigEntityStatusDownloadTargetTest.php
@@ -16,7 +16,7 @@ class LingotekConfigEntityStatusDownloadTargetTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -58,30 +58,31 @@ class LingotekConfigEntityStatusDownloadTargetTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', ['label' => 'Body EDITED'], t('Save settings'));
+    $this->submitForm(['label' => 'Body EDITED'], t('Save settings'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -89,19 +90,19 @@ class LingotekConfigEntityStatusDownloadTargetTest extends LingotekTestBase {
     // following tests will work, but for now it's not
     // // Check the status is edited for Spanish.
     // $edited = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-edited')  and contains(text(), 'ES')]");
-    // $this->assertEqual(count($edited), 1, 'Edited translation is shown.');
+    // $this->assertEquals(count($edited), 1, 'Edited translation is shown.');
     //
     // // Download the Spanish translation.
     // $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath .'/admin/lingotek/config/manage');
     // $this->clickLink('ES');
-    // $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    // $this->assertText('Translation to es_MX downloaded successfully');
+    // $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    // $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
     //
     // // Check the status is edited for Spanish.
     // $source_untracked = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'source-edited')  and contains(@title, 'Re-upload (content has changed since last upload)')]");
-    // $this->assertEqual(count($source_untracked), 1, 'Edited source is shown.');
+    // $this->assertEquals(count($source_untracked), 1, 'Edited source is shown.');
     // $untracked = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-edited')  and contains(text(), 'ES')]");
-    // $this->assertEqual(count($untracked), 1, 'Edited translation is shown.');
+    // $this->assertEquals(count($untracked), 1, 'Edited translation is shown.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigEntityTranslationEditedToPendingTest.php b/tests/src/Functional/LingotekConfigEntityTranslationEditedToPendingTest.php
index ed69d34e..a58fad81 100644
--- a/tests/src/Functional/LingotekConfigEntityTranslationEditedToPendingTest.php
+++ b/tests/src/Functional/LingotekConfigEntityTranslationEditedToPendingTest.php
@@ -17,7 +17,7 @@ class LingotekConfigEntityTranslationEditedToPendingTest extends LingotekTestBas
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -61,8 +61,8 @@ class LingotekConfigEntityTranslationEditedToPendingTest extends LingotekTestBas
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -70,28 +70,29 @@ class LingotekConfigEntityTranslationEditedToPendingTest extends LingotekTestBas
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX requested successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX requested successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('Translation to es_MX status checked successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX status checked successfully');
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', ['label' => 'Body EDITED'], t('Save settings'));
+    $this->submitForm(['label' => 'Body EDITED'], t('Save settings'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -107,17 +108,17 @@ class LingotekConfigEntityTranslationEditedToPendingTest extends LingotekTestBas
     // Clicking English must init the upload of content.
     // $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/update/field_config/node.article.body?destination=' . $basepath .'/admin/lingotek/config/manage');
     // $this->clickLink('EN');
-    // $this->assertText(t('Body updated successfully'));
-    // $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    // $this->assertSession()->pageTextContains(t('Body updated successfully'));
+    // $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
     //
     // // There is a link for checking status.
     // $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath .'/admin/lingotek/config/manage');
     // $this->clickLink('EN');
-    // $this->assertText('Body checked successfully');
+    // $this->assertSession()->pageTextContains('Body checked successfully');
     //
     // // Check the status is edited for Spanish.
     // $es_pending = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-pending')  and contains(text(), 'ES')]");
-    // $this->assertEqual(count($es_pending), 1, 'Pending translation is shown.');
+    // $this->assertEquals(count($es_pending), 1, 'Pending translation is shown.');
     // // Check the status is still request for German.
     // $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_AT?destination=' . $basepath .'/admin/lingotek/config/manage');
   }
diff --git a/tests/src/Functional/LingotekConfigObjectTranslationDocumentUploadHookTest.php b/tests/src/Functional/LingotekConfigObjectTranslationDocumentUploadHookTest.php
index 6be503c5..b4452439 100644
--- a/tests/src/Functional/LingotekConfigObjectTranslationDocumentUploadHookTest.php
+++ b/tests/src/Functional/LingotekConfigObjectTranslationDocumentUploadHookTest.php
@@ -14,7 +14,7 @@ class LingotekConfigObjectTranslationDocumentUploadHookTest extends LingotekTest
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'user', 'lingotek_test_config_object'];
+  protected static $modules = ['node', 'user', 'lingotek_test_config_object'];
 
   /**
    * {@inheritdoc}
@@ -61,10 +61,10 @@ class LingotekConfigObjectTranslationDocumentUploadHookTest extends LingotekTest
     // Only the proper translatable typed properties are being uploaded.
     $this->assertFalse(isset($data['lingotek_test_config_object.settings']['property_1']));
     $this->assertFalse(isset($data['lingotek_test_config_object.settings']['property_2']));
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_3'], 'Cats feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_4'], 'Llamas feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_5'], 'Cats feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_6'], 'Llamas feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_3'], 'Cats feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_4'], 'Llamas feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_5'], 'Cats feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_6'], 'Llamas feed description');
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigObjectTranslationPreSaveHookTest.php b/tests/src/Functional/LingotekConfigObjectTranslationPreSaveHookTest.php
index f544b2fc..f1f45ff5 100644
--- a/tests/src/Functional/LingotekConfigObjectTranslationPreSaveHookTest.php
+++ b/tests/src/Functional/LingotekConfigObjectTranslationPreSaveHookTest.php
@@ -14,7 +14,7 @@ class LingotekConfigObjectTranslationPreSaveHookTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'user', 'lingotek_test_config_object'];
+  protected static $modules = ['node', 'user', 'lingotek_test_config_object'];
 
   /**
    * {@inheritdoc}
@@ -64,10 +64,10 @@ class LingotekConfigObjectTranslationPreSaveHookTest extends LingotekTestBase {
     // Only the proper translatable typed properties are being uploaded.
     $this->assertFalse(isset($data['lingotek_test_config_object.settings']['property_1']));
     $this->assertFalse(isset($data['lingotek_test_config_object.settings']['property_2']));
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_3'], 'Cats feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_4'], 'Llamas feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_5'], 'Cats feed description');
-    $this->assertEqual($data['lingotek_test_config_object.settings']['property_6'], 'Llamas feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_3'], 'Cats feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_4'], 'Llamas feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_5'], 'Cats feed description');
+    $this->assertEquals($data['lingotek_test_config_object.settings']['property_6'], 'Llamas feed description');
 
     // Translate the config using Lingotek.
     $this->clickLink('ES');
diff --git a/tests/src/Functional/LingotekConfigOverridesTest.php b/tests/src/Functional/LingotekConfigOverridesTest.php
index 8359919e..a885204b 100644
--- a/tests/src/Functional/LingotekConfigOverridesTest.php
+++ b/tests/src/Functional/LingotekConfigOverridesTest.php
@@ -25,14 +25,14 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('test_community', $defaults['community'], 'Default community could be overridden by settings.php');
+    $this->assertSame('test_community', $defaults['community'], 'Default community could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $GLOBALS['config']['lingotek.account']['default']['community'] = 'def';
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('def', $defaults['community'], 'Default community could be overridden by settings.php');
+    $this->assertSame('def', $defaults['community'], 'Default community could be overridden by settings.php');
   }
 
   public function testDefaultProjectOverride() {
@@ -40,14 +40,14 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('test_project', $defaults['project'], 'Default project could be overridden by settings.php');
+    $this->assertSame('test_project', $defaults['project'], 'Default project could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $GLOBALS['config']['lingotek.account']['default']['project'] = 'def';
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('def', $defaults['project'], 'Default project could be overridden by settings.php');
+    $this->assertSame('def', $defaults['project'], 'Default project could be overridden by settings.php');
   }
 
   public function testDefaultWorkflowOverride() {
@@ -55,14 +55,14 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('test_workflow', $defaults['workflow'], 'Default workflow could be overridden by settings.php');
+    $this->assertSame('test_workflow', $defaults['workflow'], 'Default workflow could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $GLOBALS['config']['lingotek.account']['default']['workflow'] = 'def';
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('def', $defaults['workflow'], 'Default workflow could be overridden by settings.php');
+    $this->assertSame('def', $defaults['workflow'], 'Default workflow could be overridden by settings.php');
   }
 
   public function testDefaultVaultOverride() {
@@ -70,14 +70,14 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('test_vault', $defaults['vault'], 'Default vault could be overridden by settings.php');
+    $this->assertSame('test_vault', $defaults['vault'], 'Default vault could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $GLOBALS['config']['lingotek.account']['default']['vault'] = 'def';
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('def', $defaults['vault'], 'Default vault could be overridden by settings.php');
+    $this->assertSame('def', $defaults['vault'], 'Default vault could be overridden by settings.php');
   }
 
   public function testDefaultFilterOverride() {
@@ -85,13 +85,13 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('drupal_default', $defaults['filter'], 'Default filter could be overridden by settings.php');
+    $this->assertSame('drupal_default', $defaults['filter'], 'Default filter could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('project_default', $defaults['filter'], 'Default filter could be overridden by settings.php');
+    $this->assertSame('project_default', $defaults['filter'], 'Default filter could be overridden by settings.php');
   }
 
   public function testDefaultSubfilterOverride() {
@@ -99,13 +99,13 @@ class LingotekConfigOverridesTest extends LingotekTestBase {
 
     // Container was not rebuilt yet.
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('drupal_default', $defaults['subfilter'], 'Default subfilter could be overridden by settings.php');
+    $this->assertSame('drupal_default', $defaults['subfilter'], 'Default subfilter could be overridden by settings.php');
 
     // Editing settings.php forces us to rebuild the container.
     $this->rebuildContainer();
 
     $defaults = \Drupal::service('lingotek')->getDefaults();
-    $this->assertIdentical('project_default', $defaults['subfilter'], 'Default subfilter could be overridden by settings.php');
+    $this->assertSame('project_default', $defaults['subfilter'], 'Default subfilter could be overridden by settings.php');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekConfigStatusDownloadTargetTest.php b/tests/src/Functional/LingotekConfigStatusDownloadTargetTest.php
index f5f9080a..65393ff6 100644
--- a/tests/src/Functional/LingotekConfigStatusDownloadTargetTest.php
+++ b/tests/src/Functional/LingotekConfigStatusDownloadTargetTest.php
@@ -16,7 +16,7 @@ class LingotekConfigStatusDownloadTargetTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -61,8 +61,8 @@ class LingotekConfigStatusDownloadTargetTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -72,20 +72,20 @@ class LingotekConfigStatusDownloadTargetTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX requested successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX requested successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('Translation to es_MX checked successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX checked successfully');
 
     // Edit the object
     $config = \Drupal::service('config.factory')->getEditable('system.site');
@@ -105,11 +105,11 @@ class LingotekConfigStatusDownloadTargetTest extends LingotekTestBase {
        'table[system.site_information_settings]' => TRUE,
        $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the status is edited for Spanish.
     $source_edited = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'source-edited') and contains(@title, 'Re-upload (content has changed since last upload)')]");
-    $this->assertEqual(count($source_edited), 1, 'Edited source is shown.');
+    $this->assertEquals(count($source_edited), 1, 'Edited source is shown.');
     $this->assertTargetStatus('ES', 'edited');
   }
 
diff --git a/tests/src/Functional/LingotekConfigSubscriberTest.php b/tests/src/Functional/LingotekConfigSubscriberTest.php
index b91fc7f3..d9d92d51 100644
--- a/tests/src/Functional/LingotekConfigSubscriberTest.php
+++ b/tests/src/Functional/LingotekConfigSubscriberTest.php
@@ -15,7 +15,7 @@ class LingotekConfigSubscriberTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -60,14 +60,14 @@ class LingotekConfigSubscriberTest extends LingotekTestBase {
     $this->clickLink('EN');
 
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
-    $this->assertText('Title block uploaded successfully');
+    dump(var_export($data, TRUE));
+    $this->assertSession()->pageTextContains('Title block uploaded successfully');
 
     $this->clickLink('ES');
     $this->clickLink('ES');
     $this->clickLink('ES');
 
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
 
     // Navigate to the Extend page.
     $this->drupalGet('/admin/modules');
@@ -77,16 +77,16 @@ class LingotekConfigSubscriberTest extends LingotekTestBase {
 
     // Post the form uninstalling the lingotek module.
     $edit = ['uninstall[block]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Uninstall');
+    $this->submitForm($edit, 'Uninstall');
 
     // We get an advice and we can confirm.
-    $this->assertText('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
+    $this->assertSession()->pageTextContains('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
     $this->assertSession()->responseContains('Block');
     $this->assertSession()->responseContains('The listed configuration will be deleted.');
     $this->assertSession()->responseContains('Lingotek Config Metadata');
     $this->assertSession()->responseContains('block.block_1');
 
-    $this->drupalPostForm(NULL, [], 'Uninstall');
+    $this->submitForm([], 'Uninstall');
 
     $this->assertSession()->responseContains('The selected modules have been uninstalled.');
   }
diff --git a/tests/src/Functional/LingotekConfigTranslationDocumentUploadHookTest.php b/tests/src/Functional/LingotekConfigTranslationDocumentUploadHookTest.php
index d1b8e9ed..3e2bbdc0 100644
--- a/tests/src/Functional/LingotekConfigTranslationDocumentUploadHookTest.php
+++ b/tests/src/Functional/LingotekConfigTranslationDocumentUploadHookTest.php
@@ -16,7 +16,7 @@ class LingotekConfigTranslationDocumentUploadHookTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block'];
+  protected static $modules = ['block'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -46,7 +46,7 @@ class LingotekConfigTranslationDocumentUploadHookTest extends LingotekTestBase {
     // Check that [token] is encoded via hook_lingotek_config_entity_document_upload().
     // @see lingotek_test_lingotek_config_entity_document_upload()
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual($data['settings.label'], 'Title with [***SITE:NAME***]');
+    $this->assertEquals($data['settings.label'], 'Title with [***SITE:NAME***]');
   }
 
 }
diff --git a/tests/src/Functional/LingotekConfigTranslationEditedToPendingTest.php b/tests/src/Functional/LingotekConfigTranslationEditedToPendingTest.php
index e0070df4..9573654f 100644
--- a/tests/src/Functional/LingotekConfigTranslationEditedToPendingTest.php
+++ b/tests/src/Functional/LingotekConfigTranslationEditedToPendingTest.php
@@ -15,7 +15,7 @@ class LingotekConfigTranslationEditedToPendingTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -65,8 +65,8 @@ class LingotekConfigTranslationEditedToPendingTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -77,26 +77,26 @@ class LingotekConfigTranslationEditedToPendingTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX requested successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX requested successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('Translation to es_MX checked successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX checked successfully');
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
 
     // Edit the object
     $config2 = \Drupal::service('config.factory')->getEditable('system.site');
@@ -121,8 +121,8 @@ class LingotekConfigTranslationEditedToPendingTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -130,8 +130,8 @@ class LingotekConfigTranslationEditedToPendingTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check the status is pending for Spanish.
     $this->assertTargetStatus('ES', Lingotek::STATUS_PENDING);
diff --git a/tests/src/Functional/LingotekConfigTranslationPreSaveHookTest.php b/tests/src/Functional/LingotekConfigTranslationPreSaveHookTest.php
index b17b78b1..df2e94d9 100644
--- a/tests/src/Functional/LingotekConfigTranslationPreSaveHookTest.php
+++ b/tests/src/Functional/LingotekConfigTranslationPreSaveHookTest.php
@@ -14,7 +14,7 @@ class LingotekConfigTranslationPreSaveHookTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block'];
+  protected static $modules = ['block'];
 
   /**
    * {@inheritdoc}
@@ -53,8 +53,8 @@ class LingotekConfigTranslationPreSaveHookTest extends LingotekTestBase {
     // Check that [token] is encoded via hook_lingotek_config_entity_document_upload().
     // @see lingotek_test_lingotek_config_entity_document_upload()
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
-    $this->assertEqual($data['settings.label'], 'Title with [***SITE:NAME***]');
+    dump(var_export($data, TRUE));
+    $this->assertEquals($data['settings.label'], 'Title with [***SITE:NAME***]');
 
     // Translate the block using the Lingotek translate config admin form.
     $this->drupalGet("admin/structure/block/manage/$block_id/translate");
@@ -67,10 +67,10 @@ class LingotekConfigTranslationPreSaveHookTest extends LingotekTestBase {
     // Check that [token] is decoded via hook_lingotek_config_entity_translation_presave().
     // @see lingotek_test_lingotek_config_entity_translation_presave()
     $this->drupalGet("admin/structure/block/manage/$block_id/translate/es/edit");
-    $this->assertFieldByName("translation[config_names][block.block.$block_id][settings][label]", 'Título con [site:name]');
+    $this->assertSession()->fieldValueEquals("translation[config_names][block.block.$block_id][settings][label]", 'Título con [site:name]');
 
     $this->drupalGet('es/user');
-    $this->assertText('Título con [site:name]');
+    $this->assertSession()->pageTextContains('Título con [site:name]');
   }
 
 }
diff --git a/tests/src/Functional/LingotekContactMessageBodyTranslationTest.php b/tests/src/Functional/LingotekContactMessageBodyTranslationTest.php
index ae15e175..bfc72375 100644
--- a/tests/src/Functional/LingotekContactMessageBodyTranslationTest.php
+++ b/tests/src/Functional/LingotekContactMessageBodyTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekContactMessageBodyTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'field_ui', 'contact'];
+  protected static $modules = ['block', 'node', 'field_ui', 'contact'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -74,7 +74,7 @@ class LingotekContactMessageBodyTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('field_test uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('field_test uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
@@ -84,20 +84,20 @@ class LingotekContactMessageBodyTranslationTest extends LingotekTestBase {
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText('field_test status checked successfully');
+    $this->assertSession()->pageTextContains('field_test status checked successfully');
 
     $this->clickLink(t('Request translation'));
-    $this->assertText(t('Translation to es_MX requested successfully'));
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX requested successfully'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_MX status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX status checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_MX downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
diff --git a/tests/src/Functional/LingotekContentEntityGetProfileHookTest.php b/tests/src/Functional/LingotekContentEntityGetProfileHookTest.php
index e8a2f4b3..2f883507 100644
--- a/tests/src/Functional/LingotekContentEntityGetProfileHookTest.php
+++ b/tests/src/Functional/LingotekContentEntityGetProfileHookTest.php
@@ -20,7 +20,7 @@ class LingotekContentEntityGetProfileHookTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'comment', 'node'];
+  protected static $modules = ['block', 'comment', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -140,7 +140,7 @@ class LingotekContentEntityGetProfileHookTest extends LingotekTestBase {
     $edit = [];
     $edit['subject[0][value]'] = 'Group 1 test';
     $edit['comment_body[0][value]'] = 'Group 1 test body';
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     // Check that the configured fields have been uploaded, but also the one
     // added via the hook.
@@ -161,7 +161,7 @@ class LingotekContentEntityGetProfileHookTest extends LingotekTestBase {
     $edit = [];
     $edit['subject[0][value]'] = 'Group 2 test';
     $edit['comment_body[0][value]'] = 'Group 2 test body';
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     // Check that the configured fields have been uploaded, but also the one
     // added via the hook.
@@ -186,7 +186,7 @@ class LingotekContentEntityGetProfileHookTest extends LingotekTestBase {
     $edit = [];
     $edit['subject[0][value]'] = 'First test';
     $edit['comment_body[0][value]'] = 'First test body';
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     $this->saveLingotekContentTranslationSettings([
       'node' => [
@@ -216,7 +216,7 @@ class LingotekContentEntityGetProfileHookTest extends LingotekTestBase {
     $edit = [];
     $edit['subject[0][value]'] = 'Second test';
     $edit['comment_body[0][value]'] = 'Second test body';
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     $this->goToContentBulkManagementForm('comment');
   }
diff --git a/tests/src/Functional/LingotekContentModerationSettingsTest.php b/tests/src/Functional/LingotekContentModerationSettingsTest.php
index f4a0219d..1f093407 100644
--- a/tests/src/Functional/LingotekContentModerationSettingsTest.php
+++ b/tests/src/Functional/LingotekContentModerationSettingsTest.php
@@ -20,7 +20,7 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'taxonomy', 'content_moderation'];
+  protected static $modules = ['node', 'taxonomy', 'content_moderation'];
 
   /**
    * Vocabulary for testing.
@@ -77,8 +77,7 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
 
     $this->drupalGet('admin/lingotek/settings');
 
-    $this->assertNoField('content_moderation_state[content_moderation_state][enabled]',
-      'The content moderation state entity should not be available for Lingotek translation.');
+    $this->assertSession()->fieldNotExists('content_moderation_state[content_moderation_state][enabled]');
 
     // See content_moderation_entity_bundle_info_alter().
     $this->enableModerationThroughUI('article', ['draft', 'needs_review', 'published'], 'draft');
@@ -86,8 +85,7 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
 
     $this->drupalGet('admin/lingotek/settings');
 
-    $this->assertNoField('content_moderation_state[content_moderation_state][enabled]',
-      'The content moderation state entity should not be available for Lingotek translation.');
+    $this->assertSession()->fieldNotExists('content_moderation_state[content_moderation_state][enabled]');
   }
 
   /**
@@ -100,18 +98,14 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
 
     // We don't have any fields for configuring content moderation until it's
     // enabled.
-    $this->assertNoField('node[article][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as content moderation is not enabled for this bundle.');
-    $this->assertNoField('node[article][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as content moderation is not enabled for this bundle.');
+    $this->assertSession()->fieldNotExists('node[article][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[article][moderation][download_transition]');
 
-    $this->assertNoField('node[page][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as content moderation is not enabled for this bundle.');
-    $this->assertNoField('node[page][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as content moderation is not enabled for this bundle.');
+    $this->assertSession()->fieldNotExists('node[page][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[page][moderation][download_transition]');
 
     // We show a message and link for enabling it.
-    $this->assertText('This entity bundle is not enabled for moderation with content_moderation. You can change its settings here.');
+    $this->assertSession()->pageTextContains('This entity bundle is not enabled for moderation with content_moderation. You can change its settings here.');
 
     $assert_session->linkByHrefExists('/admin/config/workflow/workflows', 0);
     $assert_session->linkByHrefExists('/admin/config/workflow/workflows', 1);
@@ -123,19 +117,15 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
 
     // Assert the fields for setting up the integration exist and they have
     // sensible defaults.
-    $this->assertField('node[article][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded exists.');
-    $this->assertField('node[article][moderation][download_transition]',
-      'The field for setting the transition that must happen after download exists.');
+    $this->assertSession()->fieldExists('node[article][moderation][upload_status]');
+    $this->assertSession()->fieldExists('node[article][moderation][download_transition]');
     $assert_session->optionExists('edit-node-article-moderation-upload-status', 'published');
     $assert_session->optionExists('edit-node-article-moderation-download-transition', 'publish');
 
     // But not for the other content types. There is still a message for configuring.
-    $this->assertNoField('node[page][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as content moderation is not enabled for this bundle.');
-    $this->assertNoField('node[page][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as content moderation is not enabled for this bundle.');
-    $this->assertText('This entity bundle is not enabled for moderation with content_moderation. You can change its settings here.');
+    $this->assertSession()->fieldNotExists('node[page][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[page][moderation][download_transition]');
+    $this->assertSession()->pageTextContains('This entity bundle is not enabled for moderation with content_moderation. You can change its settings here.');
 
     $assert_session->linkByHrefExists('/admin/config/workflow/workflows', 0);
 
@@ -160,16 +150,14 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
     $assert_session->optionExists('edit-node-article-moderation-download-transition', 'archive');
 
     // It never existed for taxonomies.
-    $this->assertNoField("taxonomy_term[{$this->vocabulary->id()}][moderation][upload_status]",
-      'The field for setting the state when a content should be uploaded does not exist as content moderation is not available for this entity type.');
-    $this->assertNoField("taxonomy_term[{$this->vocabulary->id()}][moderation][download_transition]",
-      'The field for setting the transition that must happen after download does not exist as content moderation is not available for this entity type.');
+    $this->assertSession()->fieldNotExists("taxonomy_term[{$this->vocabulary->id()}][moderation][upload_status]");
+    $this->assertSession()->fieldNotExists("taxonomy_term[{$this->vocabulary->id()}][moderation][download_transition]");
     $assert_session->linkByHrefNotExists("/admin/structure/taxonomy/manage/{$this->vocabulary->id()}/moderation", 'There is no link to moderation settings in taxonomies as they cannot be moderated.');
 
     $header = $this->xpath("//details[@id='edit-entity-node']//th[text()='Content moderation']");
-    $this->assertEqual(count($header), 1, 'There is a content moderation column for content.');
+    $this->assertEquals(count($header), 1, 'There is a content moderation column for content.');
     $header = $this->xpath("//details[@id='edit-entity-taxonomy-term']//th[text()='Content moderation']");
-    $this->assertEqual(count($header), 0, 'There is no content moderation column for taxonomies.');
+    $this->assertEquals(count($header), 0, 'There is no content moderation column for taxonomies.');
 
   }
 
@@ -181,9 +169,9 @@ class LingotekContentModerationSettingsTest extends LingotekTestBase {
    */
   protected function enableModerationThroughUI($content_type_id) {
     $this->drupalGet('/admin/config/workflow/workflows/manage/editorial/type/node');
-    $this->assertFieldByName("bundles[$content_type_id]");
+    $this->assertSession()->fieldExists("bundles[$content_type_id]");
     $edit["bundles[$content_type_id]"] = TRUE;
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentModerationTest.php b/tests/src/Functional/LingotekContentModerationTest.php
index 669aeef4..862c4073 100644
--- a/tests/src/Functional/LingotekContentModerationTest.php
+++ b/tests/src/Functional/LingotekContentModerationTest.php
@@ -20,7 +20,7 @@ class LingotekContentModerationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'content_moderation'];
+  protected static $modules = ['block', 'node', 'content_moderation'];
 
   /**
    * {@inheritdoc}
@@ -101,8 +101,8 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAsRequestReviewNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -116,8 +116,8 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAsRequestReviewNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -131,8 +131,8 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -146,8 +146,8 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -161,11 +161,11 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
     $this->editAsRequestReviewNodeForm('/node/1/edit', $edit);
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -179,11 +179,11 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
     $this->editAsRequestReviewNodeForm('/node/1/edit', $edit);
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -197,12 +197,12 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
     $edit['body[0][value]'] = 'Llamas are very cool!';
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -216,11 +216,11 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAsNewDraftNodeForm($edit, 'article');
 
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   protected function configureNeedsReviewAsUploadState() {
@@ -253,9 +253,9 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   public function testModerationToNonUploadStateWithAutomaticProfileDoesntTriggerUpload() {
@@ -270,9 +270,9 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate.
     $edit = ['new_state' => 'published'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   public function testModerationToUploadStateWithManualProfileDoesntTriggerUpload() {
@@ -287,9 +287,9 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   public function testModerationToNonUploadStateWithManualProfileDoesntTriggerUpload() {
@@ -304,9 +304,9 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate.
     $edit = ['new_state' => 'published'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   public function testDownloadFromUploadStateTriggersATransition() {
@@ -322,16 +322,16 @@ class LingotekContentModerationTest extends LingotekTestBase {
     // The status is draft.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Draft', 'Workbench current status is draft');
+    $this->assertEquals($value, 'Draft', 'Workbench current status is draft');
 
     // Moderate to Needs review, so it's uploaded.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     // The status is needs review.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Needs Review', 'Workbench current status is Needs Review');
+    $this->assertEquals($value, 'Needs Review', 'Workbench current status is Needs Review');
 
     $this->goToContentBulkManagementForm();
     // Request translation.
@@ -343,7 +343,7 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Let's see the current status is modified.
     $this->clickLink('Llamas are cool');
-    $this->assertNoFieldByName('new_state', 'The transition to a new content moderation status happened (so no moderation form is shown).');
+    $this->assertSession()->fieldValueNotEquals('new_state', 'The transition to a new content moderation status happened (so no moderation form is shown).');
   }
 
   public function testDownloadWhenContentModerationWasSetupAfterLingotek() {
@@ -391,7 +391,7 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate to Needs review, so it's uploaded.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     // The status is needs review.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
@@ -405,7 +405,7 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $this->clickLink('ES');
     // Download translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
 
     // Let's see the current status is modified.
     $this->clickLink('Llamas are cool');
@@ -434,11 +434,11 @@ class LingotekContentModerationTest extends LingotekTestBase {
 
     // Moderate to Needs review, so it's uploaded.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     // Moderate back to draft, so the transition won't happen on download.
     $edit = ['new_state' => 'draft'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     $this->goToContentBulkManagementForm();
     // Request translation.
@@ -466,32 +466,32 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAndPublishNodeForm($edit, 'article');
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
 
     $this->goToContentBulkManagementForm();
 
     // Upload.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Request translation.
     $this->clickLink('ES');
-    $this->assertText('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
+    $this->assertSession()->pageTextContains('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
     // Check translation.
     $this->clickLink('ES');
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Edit the original as a new draft.
     $edit = [];
     $edit['title[0][value]'] = 'Dogs are cool';
     $edit['body[0][value]'] = 'Dogs are very cool';
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
-    $this->assertNoText('Dogs are cool was updated and sent to Lingotek successfully.');
-    $this->assertText('Article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Dogs are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Dogs are cool has been updated.');
 
     // The source published revision is the default one.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     $this->goToContentBulkManagementForm();
 
@@ -500,20 +500,20 @@ class LingotekContentModerationTest extends LingotekTestBase {
       'table[1]' => TRUE,
       'operation' => 'download_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Execute'));
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, t('Execute'));
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // The source published revision must be the same still.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     // But the latest revision should keep the unpublished revision content.
     $this->drupalGet('node/1/latest');
-    $this->assertText('Dogs are cool');
+    $this->assertSession()->pageTextContains('Dogs are cool');
 
     // The published revision for the translated content is the right one.
     $this->drupalGet('es/node/1');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
 
     // There's only one revision for Spanish so we cannot check the latest.
   }
@@ -534,39 +534,39 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAndPublishNodeForm($edit, 'article');
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
 
     $this->goToContentBulkManagementForm();
 
     // Upload.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Request translation.
     $this->clickLink('ES');
-    $this->assertText('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
+    $this->assertSession()->pageTextContains('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
     // Check translation.
     $this->clickLink('ES');
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Request translation.
     $this->clickLink('IT');
-    $this->assertText('Locale \'it_IT\' was added as a translation target for node Llamas are cool.');
+    $this->assertSession()->pageTextContains('Locale \'it_IT\' was added as a translation target for node Llamas are cool.');
     // Check translation.
     $this->clickLink('IT');
-    $this->assertText('The it_IT translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The it_IT translation for node Llamas are cool is ready for download.');
 
     // Edit the original as a new draft.
     $edit = [];
     $edit['title[0][value]'] = 'Dogs are cool';
     $edit['body[0][value]'] = 'Dogs are very cool';
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
-    $this->assertNoText('Dogs are cool was updated and sent to Lingotek successfully.');
-    $this->assertText('Article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Dogs are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Dogs are cool has been updated.');
 
     // The source published revision is the default one.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     $this->goToContentBulkManagementForm();
 
@@ -575,26 +575,26 @@ class LingotekContentModerationTest extends LingotekTestBase {
       'table[1]' => TRUE,
       'operation' => 'download_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Execute'));
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, t('Execute'));
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // The source published revision must be the same still.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     // But the latest revision should keep the unpublished revision content.
     $this->drupalGet('node/1/latest');
-    $this->assertText('Dogs are cool');
+    $this->assertSession()->pageTextContains('Dogs are cool');
 
     // The published revision for the Spanish translated content is the right one.
     $this->drupalGet('es/node/1');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
 
     // There's only one revision for Spanish so we cannot check the latest.
 
     // The published revision for the Italian translated content is the right one.
     $this->drupalGet('it/node/1');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
 
     // There's only one revision for Italian too so we cannot check the latest.
   }
@@ -610,32 +610,32 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAndPublishNodeForm($edit, 'article');
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
 
     // Edit the original as a new draft.
     $edit = [];
     $edit['title[0][value]'] = 'Dogs are cool';
     $edit['body[0][value]'] = 'Dogs are very cool';
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
-    $this->assertNoText('Dogs are cool was updated and sent to Lingotek successfully.');
-    $this->assertText('Article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Dogs are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Dogs are cool has been updated.');
 
     $this->goToContentBulkManagementForm();
 
     // Upload.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Request translation.
     $this->clickLink('ES');
-    $this->assertText('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
+    $this->assertSession()->pageTextContains('Locale \'es_MX\' was added as a translation target for node Llamas are cool.');
     // Check translation.
     $this->clickLink('ES');
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // The source published revision is the default one.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     $this->goToContentBulkManagementForm();
 
@@ -644,25 +644,25 @@ class LingotekContentModerationTest extends LingotekTestBase {
       'table[1]' => TRUE,
       'operation' => 'download_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Execute'));
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, t('Execute'));
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // The source published revision must be the same still.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     // But the latest revision should keep the unpublished revision content.
     $this->drupalGet('node/1/latest');
-    $this->assertText('Dogs are cool');
+    $this->assertSession()->pageTextContains('Dogs are cool');
 
     // The translated revision is not published, so the source published
     // revision is displayed.
     $this->drupalGet('es/node/1');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
 
     // And it's also the latest published revision.
     $this->drupalGet('es/node/1/latest');
-    $this->assertText('Los perros son chulos');
+    $this->assertSession()->pageTextContains('Los perros son chulos');
   }
 
   public function testBulkManagementUploadsLatestDraftRevision() {
@@ -676,21 +676,21 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $this->saveAndPublishNodeForm($edit, 'article');
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
 
     // Edit the original as a new draft.
     $edit = [];
     $edit['title[0][value]'] = 'Dogs are cool';
     $edit['body[0][value]'] = 'Dogs are very cool';
     $this->editAsNewDraftNodeForm('/node/1/edit', $edit);
-    $this->assertNoText('Dogs are cool was updated and sent to Lingotek successfully.');
-    $this->assertText('Article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Dogs are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Dogs are cool has been updated.');
 
     $this->goToContentBulkManagementForm();
 
     // Upload.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check that only the last revision fields have been uploaded.
     $data = json_decode(\Drupal::state()
@@ -716,8 +716,8 @@ class LingotekContentModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndPublishNodeForm($edit, 'page');
 
-    $this->assertText('Page Llamas are cool has been created.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Page Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -728,9 +728,9 @@ class LingotekContentModerationTest extends LingotekTestBase {
    */
   protected function enableModerationThroughUI($content_type_id) {
     $this->drupalGet('/admin/config/workflow/workflows/manage/editorial/type/node');
-    $this->assertFieldByName("bundles[$content_type_id]");
+    $this->assertSession()->fieldExists("bundles[$content_type_id]");
     $edit["bundles[$content_type_id]"] = TRUE;
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
   /**
diff --git a/tests/src/Functional/LingotekContentTranslationDocumentUploadHookTest.php b/tests/src/Functional/LingotekContentTranslationDocumentUploadHookTest.php
index e9d103cc..49bac6a6 100644
--- a/tests/src/Functional/LingotekContentTranslationDocumentUploadHookTest.php
+++ b/tests/src/Functional/LingotekContentTranslationDocumentUploadHookTest.php
@@ -19,7 +19,7 @@ class LingotekContentTranslationDocumentUploadHookTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image'];
+  protected static $modules = ['block', 'node', 'image'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -87,8 +87,9 @@ class LingotekContentTranslationDocumentUploadHookTest extends LingotekTestBase
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
+    $this->drupalGet('node/add/animal');
 
-    $this->drupalPostForm('node/add/animal', $edit, t('Preview'));
+    $this->submitForm($edit, t('Preview'));
 
     unset($edit['files[field_image_0]']);
     $edit['field_image[0][alt]'] = 'Llamas are cool';
@@ -101,23 +102,23 @@ class LingotekContentTranslationDocumentUploadHookTest extends LingotekTestBase
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 4);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
+    $this->assertEquals(1, count($data['field_image'][0]));
     $this->assertTrue(isset($data['field_image'][0]['alt']));
     $this->assertTrue(isset($data['animal_date']));
-    $this->assertEqual('2016-05-01', $data['animal_date']);
+    $this->assertEquals('2016-05-01', $data['animal_date']);
 
     // Assert the locale used was correct.
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getBasePath() . '/animal/2016/llamas-are-cool', $uploaded_url, 'The altered url was used.');
+    $this->assertSame(\Drupal::request()->getBasePath() . '/animal/2016/llamas-are-cool', $uploaded_url, 'The altered url was used.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentTranslationPreSaveHookTest.php b/tests/src/Functional/LingotekContentTranslationPreSaveHookTest.php
index f9a4100a..6a261a69 100644
--- a/tests/src/Functional/LingotekContentTranslationPreSaveHookTest.php
+++ b/tests/src/Functional/LingotekContentTranslationPreSaveHookTest.php
@@ -21,12 +21,12 @@ class LingotekContentTranslationPreSaveHookTest extends LingotekTestBase {
    *
    * Use 'classy' here, as we depend on 'node--unpublished' class.
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'starterkit_theme';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image'];
+  protected static $modules = ['block', 'node', 'image'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -93,8 +93,9 @@ class LingotekContentTranslationPreSaveHookTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
+    $this->drupalGet('node/add/press_release');
 
-    $this->drupalPostForm('node/add/press_release', $edit, t('Preview'));
+    $this->submitForm($edit, t('Preview'));
 
     unset($edit['files[field_image_0]']);
     $edit['field_image[0][alt]'] = 'Llamas are cool';
@@ -106,15 +107,15 @@ class LingotekContentTranslationPreSaveHookTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
+    $this->assertEquals(1, count($data['field_image'][0]));
     $this->assertTrue(isset($data['field_image'][0]['alt']));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -123,37 +124,37 @@ class LingotekContentTranslationPreSaveHookTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // No translation is unpublished yet.
-    $this->assertNoText('Not published');
+    $this->assertSession()->pageTextNotContains('Not published');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // This translation has been downloaded as unpublished.
-    $this->assertText('Not published');
+    $this->assertSession()->pageTextContains('Not published');
 
     // The content is translated and unpublished.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertRaw('node--unpublished');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->responseContains('node--unpublished');
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentTypeBulkCancelTest.php b/tests/src/Functional/LingotekContentTypeBulkCancelTest.php
index 5e28628a..2e2047da 100644
--- a/tests/src/Functional/LingotekContentTypeBulkCancelTest.php
+++ b/tests/src/Functional/LingotekContentTypeBulkCancelTest.php
@@ -15,7 +15,7 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -56,7 +56,7 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
       'table[article]' => 'article',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -64,11 +64,11 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
 
     // Assert that the document has been cancelled remotely.
     $cancelled_docs = \Drupal::state()->get('lingotek.cancelled_docs', []);
-    $this->assertEqual(1, count($cancelled_docs), 'The document has been cancelled remotely.');
+    $this->assertEquals(1, count($cancelled_docs), 'The document has been cancelled remotely.');
 
     // Assert that no document has been deleted remotely.
     $deleted_docs = \Drupal::state()->get('lingotek.deleted_docs', []);
-    $this->assertEqual(0, count($deleted_docs), 'No document has been deleted remotely.');
+    $this->assertEquals(0, count($deleted_docs), 'No document has been deleted remotely.');
 
     \Drupal::entityTypeManager()->getStorage('node_type')->resetCache();
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
@@ -77,8 +77,8 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // We can request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -107,7 +107,7 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
       'table[article]' => 'article',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -125,8 +125,8 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // We cannot request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -153,7 +153,7 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
       'table[article]' => 'article',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -171,10 +171,10 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CURRENT);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
 
-    $this->assertText('Target es for Article was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSession()->pageTextContains('Target es for Article was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   protected function createAndTranslateContentTypeWithLinks() {
@@ -188,25 +188,25 @@ class LingotekContentTypeBulkCancelTest extends LingotekTestBase {
 
     // Clicking English must init the upload of content.
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
 
     // There is a link for checking status.
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Request the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES requested successfully");
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES status checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES status checked successfully");
 
     // Download the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_ES downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_ES downloaded successfully');
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentTypeBulkDebugTest.php b/tests/src/Functional/LingotekContentTypeBulkDebugTest.php
index d28c58d4..f9c4fb77 100644
--- a/tests/src/Functional/LingotekContentTypeBulkDebugTest.php
+++ b/tests/src/Functional/LingotekContentTypeBulkDebugTest.php
@@ -14,7 +14,7 @@ class LingotekContentTypeBulkDebugTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -51,7 +51,7 @@ class LingotekContentTypeBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -66,7 +66,7 @@ class LingotekContentTypeBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -75,19 +75,19 @@ class LingotekContentTypeBulkDebugTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'debug_export',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Exports available');
+    $this->assertSession()->pageTextContains('Exports available');
     // Download the file.
     $this->clickLink('config.node_type.json');
 
     $response = json_decode($this->getSession()->getPage()->getContent(), TRUE);
-    $this->assertIdentical('Article', $response['node.type.article']['name']);
-    $this->assertIdentical(NULL, $response['node.type.article']['description']);
-    $this->assertIdentical(NULL, $response['node.type.article']['help']);
-    $this->assertIdentical('node_type (config): Article content type', $response['_debug']['title']);
-    $this->assertIdentical('automatic', $response['_debug']['profile']);
-    $this->assertIdentical('en_US', $response['_debug']['source_locale']);
+    $this->assertSame('Article', $response['node.type.article']['name']);
+    $this->assertSame(NULL, $response['node.type.article']['description']);
+    $this->assertSame(NULL, $response['node.type.article']['help']);
+    $this->assertSame('node_type (config): Article content type', $response['_debug']['title']);
+    $this->assertSame('automatic', $response['_debug']['profile']);
+    $this->assertSame('en_US', $response['_debug']['source_locale']);
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentTypeBulkDisabledTargetOverrideTranslationTest.php b/tests/src/Functional/LingotekContentTypeBulkDisabledTargetOverrideTranslationTest.php
index 142fcbf2..1227310f 100644
--- a/tests/src/Functional/LingotekContentTypeBulkDisabledTargetOverrideTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeBulkDisabledTargetOverrideTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -75,8 +75,8 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -86,7 +86,7 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -115,11 +115,11 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -132,13 +132,13 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('ca', 'node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.added_target_locale'));
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -149,8 +149,8 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:ca',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -162,8 +162,8 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:ca',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -189,11 +189,11 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -201,11 +201,11 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -218,11 +218,11 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_PENDING);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -233,8 +233,8 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_READY);
@@ -246,8 +246,8 @@ class LingotekContentTypeBulkDisabledTargetOverrideTranslationTest extends Lingo
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_CURRENT);
diff --git a/tests/src/Functional/LingotekContentTypeBulkLocaleTranslationTest.php b/tests/src/Functional/LingotekContentTypeBulkLocaleTranslationTest.php
index da6353e2..8304a288 100644
--- a/tests/src/Functional/LingotekContentTypeBulkLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeBulkLocaleTranslationTest.php
@@ -14,7 +14,7 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'comment'];
+  protected static $modules = ['node', 'comment'];
 
   /**
    * {@inheritdoc}
@@ -63,8 +63,8 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -72,14 +72,14 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('DE-AT');
-    $this->assertText("Translation to de_AT requested successfully");
+    $this->assertSession()->pageTextContains("Translation to de_AT requested successfully");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
 
@@ -87,31 +87,31 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_AR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to es_AR requested successfully");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_AR status checked successfully");
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_AR status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_AR downloaded successfully');
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_AR downloaded successfully');
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'ES');
 
     // Check that the order of target languages is always alphabetical.
     $target_links = $this->xpath("//a[contains(@class,'language-icon')]");
-    $this->assertEqual(count($target_links), 3, 'The three languages appear as targets');
-    $this->assertEqual('DE-AT', $target_links[0]->getHtml(), 'DE-AT is the first language');
-    $this->assertEqual('ES', $target_links[1]->getHtml(), 'ES is the second language');
-    $this->assertEqual('ES-ES', $target_links[2]->getHtml(), 'ES-ES is the third language');
+    $this->assertEquals(count($target_links), 3, 'The three languages appear as targets');
+    $this->assertEquals('DE-AT', $target_links[0]->getHtml(), 'DE-AT is the first language');
+    $this->assertEquals('ES', $target_links[1]->getHtml(), 'ES is the second language');
+    $this->assertEquals('ES-ES', $target_links[2]->getHtml(), 'ES-ES is the third language');
   }
 
   /**
@@ -129,7 +129,7 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
 
     // Upload it
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -139,7 +139,7 @@ class LingotekContentTypeBulkLocaleTranslationTest extends LingotekTestBase {
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('DE-AT');
-    $this->assertText("Translation to de_AT requested successfully");
+    $this->assertSession()->pageTextContains("Translation to de_AT requested successfully");
 
     // Check that the source status has been updated.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
diff --git a/tests/src/Functional/LingotekContentTypeBulkTranslationTest.php b/tests/src/Functional/LingotekContentTypeBulkTranslationTest.php
index e107160b..0155a718 100644
--- a/tests/src/Functional/LingotekContentTypeBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeBulkTranslationTest.php
@@ -20,7 +20,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'frozenintime'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -61,8 +61,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Ensure it has the expected timestamp for updated and upload
     $timestamp = \Drupal::time()->getRequestTime();
@@ -76,25 +76,25 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -123,8 +123,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -132,7 +132,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -140,8 +140,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -149,8 +149,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('de', 'node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -158,8 +158,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -201,7 +201,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -211,7 +211,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -221,7 +221,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check status of all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -231,7 +231,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -241,7 +241,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   /**
@@ -258,7 +258,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Add a language so we can check that it's not marked as dirty if there are
     // no translations.
@@ -267,9 +267,10 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as for requesting if
     // it was already requested.
     ConfigurableLanguage::createFromLangcode('ko')->setThirdPartySetting('lingotek', 'locale', 'ko_KR')->save();
+    $this->drupalGet('/admin/structure/types/manage/article');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article', ['name' => 'Article EDITED'], t('Save content type'));
+    $this->submitForm(['name' => 'Article EDITED'], t('Save content type'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -285,15 +286,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Request korean, with outdated content available.
     $this->clickLink('KO');
-    $this->assertText("Translation to ko_KR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ko_KR requested successfully");
 
     // Reupload the content.
     $this->clickLink('EN');
-    $this->assertText('Article EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Article EDITED has been updated.');
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('Article EDITED status checked successfully');
+    $this->assertSession()->pageTextContains('Article EDITED status checked successfully');
 
     // Korean should still be marked as requested, so we can check target.
     $this->assertTargetStatus('KO', 'pending');
@@ -303,12 +304,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -328,9 +329,10 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as dirty if there are
     // no translations.
     ConfigurableLanguage::createFromLangcode('eu')->setThirdPartySetting('lingotek', 'locale', 'eu_ES')->save();
+    $this->drupalGet('/admin/structure/types/manage/article');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article', ['name' => 'Article EDITED'], t('Save content type'));
+    $this->submitForm(['name' => 'Article EDITED'], t('Save content type'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -351,19 +353,19 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('Article EDITED status checked successfully');
+    $this->assertSession()->pageTextContains('Article EDITED status checked successfully');
 
     // Check the translation after having been edited.
     $edit = [
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -386,7 +388,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // There is a link for requesting the Catalan translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('CA');
-    $this->assertText("Translation to ca_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ca_ES requested successfully");
   }
 
   /**
@@ -413,8 +415,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
    * Test that when a config is uploaded in a different locale that locale is used.
    * ToDo: Add a test for this.
    */
-  public function testAddingConfigInDifferentLocale() {
-    $this->pass('Test not implemented yet.');
+  public function testAddingConfigInDifferentLocale()
+  {
   }
 
   /**
@@ -427,7 +429,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Article upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('Article upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -437,12 +439,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -455,7 +457,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -465,12 +467,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -482,7 +484,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document. Must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -492,7 +494,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -510,7 +512,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->assertLingotekCheckSourceStatusLink();
@@ -520,13 +522,13 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('Article status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('Article status check failed. Please try again.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -542,7 +544,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -555,13 +557,13 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('The import for Article is still pending.');
+    $this->assertSession()->pageTextContains('The import for Article is still pending.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -579,20 +581,20 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->assertLingotekCheckSourceStatusLink();
     $this->clickLink('EN');
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
-    $this->assertText('Document Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document Article was not found. Please upload again.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -608,14 +610,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -623,7 +626,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Blogpost update failed. Please try again.');
+    $this->assertSession()->pageTextContains('Blogpost update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -633,12 +636,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -654,14 +657,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -669,7 +673,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -679,12 +683,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -700,14 +704,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -715,7 +720,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -725,7 +730,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -741,14 +746,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -761,16 +767,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Blogpost was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost uploaded successfully');
+    $this->assertSession()->pageTextContains('Blogpost uploaded successfully');
   }
 
   /**
@@ -786,14 +792,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -801,7 +808,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document node_type Blogpost has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -816,7 +823,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost status checked successfully');
+    $this->assertSession()->pageTextContains('Blogpost status checked successfully');
   }
 
   /**
@@ -832,14 +839,15 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -847,7 +855,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -857,12 +865,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -886,8 +894,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Article upload failed. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Article upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -897,12 +905,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -926,8 +934,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -937,12 +945,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -966,8 +974,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -977,7 +985,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -999,15 +1007,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -1016,9 +1025,9 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Blogpost update failed. Please try again.');
+    $this->assertSession()->pageTextContains('Blogpost update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1028,12 +1037,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -1055,15 +1064,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -1072,9 +1082,9 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -1084,12 +1094,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -1111,15 +1121,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -1128,9 +1139,9 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1140,12 +1151,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -1167,15 +1178,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -1184,22 +1196,22 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Blogpost was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost uploaded successfully');
+    $this->assertSession()->pageTextContains('Blogpost uploaded successfully');
   }
 
   /**
@@ -1221,15 +1233,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -1238,9 +1251,9 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document node_type Blogpost has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -1250,12 +1263,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Blogpost status checked successfully');
+    $this->assertSession()->pageTextContains('Blogpost status checked successfully');
   }
 
   /**
@@ -1277,15 +1290,16 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the node type.
     $edit = ['name' => 'Blogpost'];
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -1294,8 +1308,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1305,7 +1319,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -1323,8 +1337,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1337,12 +1351,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node_type Article translations request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Article translations request failed. Please try again.');
   }
 
   /**
@@ -1360,8 +1374,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1374,11 +1388,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has been archived. Uploading again.');
   }
 
   /**
@@ -1396,8 +1410,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1410,11 +1424,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node_type Article was not found. Please upload again.');
   }
 
   /**
@@ -1432,8 +1446,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1446,11 +1460,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -1468,8 +1482,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1482,11 +1496,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1504,8 +1518,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -1517,11 +1531,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1539,8 +1553,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1554,7 +1568,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Article es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Article es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -1572,8 +1586,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1586,7 +1600,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1604,8 +1618,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -1617,7 +1631,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1635,8 +1649,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1649,7 +1663,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has been archived. Uploading again.');
   }
 
   /**
@@ -1667,8 +1681,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1681,7 +1695,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node_type Article was not found. Please upload again.');
   }
 
   /**
@@ -1699,8 +1713,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1713,7 +1727,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -1731,8 +1745,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1745,12 +1759,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node_type Article es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Article es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -1768,8 +1782,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1782,11 +1796,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has been archived. Uploading again.');
   }
 
   /**
@@ -1804,8 +1818,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1818,11 +1832,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node_type Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node_type Article was not found. Please upload again.');
   }
 
   /**
@@ -1840,8 +1854,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1854,11 +1868,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Article has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -1876,8 +1890,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1890,11 +1904,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1912,8 +1926,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -1925,11 +1939,11 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1952,8 +1966,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1961,7 +1975,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that I could request translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1971,7 +1985,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows that there are translations ready.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1979,12 +1993,12 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     // Even if I just add a new language.
     ConfigurableLanguage::createFromLangcode('de')->setThirdPartySetting('lingotek', 'locale', 'de_DE')->save();
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Ensure locales are handled correctly by setting manual values.
     \Drupal::state()->set('lingotek.document_completion_statuses', ['de-AT' => 50, 'de-DE' => 100, 'es-MX' => 10]);
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows which translations are ready.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/download/node_type/article/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1995,7 +2009,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     \Drupal::state()->set('lingotek.document_completion_statuses', ['it-IT' => 100, 'de-DE' => 50, 'es-MX' => 10]);
     // Check all statuses again.
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // All translations must be updated according exclusively with the
     // information from the TMS.
@@ -2027,8 +2041,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -2036,19 +2050,19 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -2056,7 +2070,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The translations not requested shouldn't change its status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/de_DE?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -2089,8 +2103,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2099,13 +2113,13 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
@@ -2113,23 +2127,23 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // Request italian.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertText("Translation to it_IT requested successfully");
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT requested successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     \Drupal::state()->resetCache();
 
     // Check status of the Italian translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to it_IT status checked successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT status checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -2137,7 +2151,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // They are marked with the right status.
     $this->assertTargetStatus('ES', 'current');
@@ -2150,7 +2164,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
       'table[article]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // And statuses should remain the same.
     $this->assertTargetStatus('ES', 'current');
@@ -2178,40 +2192,40 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/node_type/article?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Let's edit the translation and assert the html decoded values.
     $this->drupalGet('/admin/structure/types');
     $this->clickLink('Translate');
     $this->clickLink('Edit', 1);
-    $this->assertFieldByName('translation[config_names][node.type.article][name]', 'Clase de "Artículo"');
-    $this->assertFieldByName('translation[config_names][node.type.article][description]', 'Uso de "artículos" sensibles al tiempo.');
+    $this->assertSession()->fieldValueEquals('translation[config_names][node.type.article][name]', 'Clase de "Artículo"');
+    $this->assertSession()->fieldValueEquals('translation[config_names][node.type.article][description]', 'Uso de "artículos" sensibles al tiempo.');
   }
 
   /**
@@ -2225,7 +2239,7 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
 
     $this->drupalGet('/admin/structure/types/manage/article/translate');
     $this->clickLink('Delete');
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->submitForm([], t('Delete'));
 
     $this->goToConfigBulkManagementForm('node_type');
     $this->assertTargetStatus('DE', Lingotek::STATUS_READY);
@@ -2245,8 +2259,8 @@ class LingotekContentTypeBulkTranslationTest extends LingotekTestBase {
     // Nothing was uploaded even with automatic profile, and nothing is listed
     // for upload.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
-    $this->assertNoText('Not specified language content type');
-    $this->assertText('Article content type');
+    $this->assertSession()->pageTextNotContains('Not specified language content type');
+    $this->assertSession()->pageTextContains('Article content type');
   }
 
   protected function getBulkSelectionKey($langcode, $revision_id, $entity_type_id = 'article') {
diff --git a/tests/src/Functional/LingotekContentTypeExistingBulkTranslationTest.php b/tests/src/Functional/LingotekContentTypeExistingBulkTranslationTest.php
index 124101d1..3fa1100a 100644
--- a/tests/src/Functional/LingotekContentTypeExistingBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeExistingBulkTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekContentTypeExistingBulkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -63,8 +63,8 @@ class LingotekContentTypeExistingBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Article uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Assert the untracked translation is shown.
     $this->assertTargetStatus('ES', 'untracked');
@@ -74,25 +74,25 @@ class LingotekContentTypeExistingBulkTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/node_type/article/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
diff --git a/tests/src/Functional/LingotekContentTypeLocaleTranslationTest.php b/tests/src/Functional/LingotekContentTypeLocaleTranslationTest.php
index 26cd7cf9..62831559 100644
--- a/tests/src/Functional/LingotekContentTypeLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeLocaleTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekContentTypeLocaleTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment'];
+  protected static $modules = ['block', 'node', 'image', 'comment'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -65,11 +65,11 @@ class LingotekContentTypeLocaleTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Article uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(3, count($data));
+    $this->assertEquals(3, count($data));
     $this->assertTrue(array_key_exists('name', $data));
     // Cannot use isset, the key exists but we are not providing values, so NULL.
     $this->assertTrue(array_key_exists('description', $data));
@@ -77,25 +77,25 @@ class LingotekContentTypeLocaleTranslationTest extends LingotekTestBase {
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/admin/structure/types/manage/article'), $uploaded_url, 'The article type url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/admin/structure/types/manage/article'), $uploaded_url, 'The article type url was used.');
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText(t('Article status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Article status checked successfully'));
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText(t('Translation to es_AR requested successfully'));
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR requested successfully'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_AR status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR status checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_AR downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
diff --git a/tests/src/Functional/LingotekContentTypeNotificationCallbackTest.php b/tests/src/Functional/LingotekContentTypeNotificationCallbackTest.php
index 09c5b532..73214944 100644
--- a/tests/src/Functional/LingotekContentTypeNotificationCallbackTest.php
+++ b/tests/src/Functional/LingotekContentTypeNotificationCallbackTest.php
@@ -19,7 +19,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -46,10 +46,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -57,7 +58,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -81,7 +82,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    $this->assertSame(['es'], $response['result']['request_translations']);
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -93,9 +94,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -131,7 +132,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -165,7 +166,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is edited, but not auto-uploaded.
-    $this->assertIdentical(Lingotek::STATUS_EDITED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_EDITED, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -194,7 +195,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $response = json_decode($request->getBody(), TRUE);
 
     // Translations are not requested.
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
+    $this->assertSame([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -206,9 +207,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is ready to be requested.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -248,7 +249,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -261,7 +262,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   /**
@@ -278,10 +279,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -289,7 +291,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -332,9 +334,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Assert a translation has been downloaded.
     $this->drupalGet('admin/structure/types/manage/article/translate');
@@ -380,7 +382,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -400,10 +402,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -411,7 +414,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -454,9 +457,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -513,10 +516,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -524,7 +528,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -568,9 +572,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_INTERMEDIATE, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_INTERMEDIATE, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -627,10 +631,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -638,7 +643,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -682,9 +687,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Assert a translation has been downloaded.
     $this->drupalGet('admin/structure/types/manage/article/translate');
@@ -747,10 +752,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -758,7 +764,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -802,9 +808,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_INTERMEDIATE, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_INTERMEDIATE, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Assert a translation has been downloaded.
     $this->drupalGet('admin/structure/types/manage/article/translate');
@@ -911,7 +917,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -936,7 +942,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
+    $this->assertSame(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -946,10 +952,10 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -1040,8 +1046,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -1055,8 +1061,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $node_storage->resetCache();
     $entity = $node_storage->load('article');
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
   }
 
   /**
@@ -1111,7 +1117,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -1136,7 +1142,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -1146,10 +1152,10 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'de'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -1212,8 +1218,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -1224,8 +1230,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $node_storage->resetCache();
     $entity = $node_storage->load('article');
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
   }
 
   /**
@@ -1241,14 +1247,16 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Page node type. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'page', 'name' => 'Page'], 'Save content type');
+    $this->submitForm(['type' => 'page', 'name' => 'Page'], 'Save content type');
 
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -1258,7 +1266,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the content is importing.
     $entity = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_type');
@@ -1282,7 +1290,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
+    $this->assertSame(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
 
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $lingotek_config */
     $lingotek_config = \Drupal::service('lingotek.configuration');
@@ -1310,7 +1318,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
   }
 
   /**
@@ -1325,10 +1333,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     // Simulate the notification of content successfully uploaded.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1371,7 +1380,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1397,7 +1406,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1406,7 +1415,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
 
     // All the links are current.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
+    $this->assertEquals(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
 
     // Simulate the notification of target deleted.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1458,10 +1467,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     // Simulate the notification of content successfully uploaded.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1504,7 +1514,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1530,7 +1540,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1592,10 +1602,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $node_storage */
     $node_storage = $this->container->get('entity_type.manager')->getStorage('node_type');
@@ -1605,8 +1616,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1627,15 +1638,15 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Article failed. Reverting dummy-document-hash-id to previous id (NULL)');
+    dump($request);
+    $this->assertSame($response['messages'][0], 'Document import for entity Article failed. Reverting dummy-document-hash-id to previous id (NULL)');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     $this->assertNull($config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1650,10 +1661,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $node_storage */
     $node_storage = $this->container->get('entity_type.manager')->getStorage('node_type');
@@ -1663,8 +1675,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1687,30 +1699,31 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->drupalGet('/admin/structure/types/manage/article');
 
     // Edit the node.
-    $this->drupalPostForm('/admin/structure/types/manage/article', ['name' => 'Article EDITED'], 'Save content type');
+    $this->submitForm(['name' => 'Article EDITED'], 'Save content type');
 
     $this->goToConfigBulkManagementForm('node_type');
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
 
     // Simulate the notification of failed import document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1730,9 +1743,9 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Article EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
+    $this->assertSame($response['messages'][0], 'Document import for entity Article EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1740,7 +1753,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id was restored.
     $this->assertEquals($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1755,10 +1768,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $node_storage */
     $node_storage = $this->container->get('entity_type.manager')->getStorage('node_type');
@@ -1768,8 +1782,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1792,30 +1806,31 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->drupalGet('/admin/structure/types/manage/article');
 
     // Edit the node.
-    $this->drupalPostForm('/admin/structure/types/manage/article', ['name' => 'Article EDITED'], 'Save content type');
+    $this->submitForm(['name' => 'Article EDITED'], 'Save content type');
 
     $this->goToConfigBulkManagementForm('node_type');
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
 
     // Simulate the notification of content successfully updated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1836,7 +1851,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1844,7 +1859,7 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id and the CURRENT status.
     $this->assertEquals($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1859,10 +1874,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $node_storage */
     $node_storage = $this->container->get('entity_type.manager')->getStorage('node_type');
@@ -1872,8 +1888,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1896,17 +1912,17 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1925,17 +1941,17 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document Article cancelled in TMS.');
+    $this->assertSame($response['messages'][0], 'Document Article cancelled in TMS.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     $this->assertNull($config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   /**
@@ -1950,10 +1966,11 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $this->saveLingotekConfigTranslationSettings([
       'node_type' => 'automatic',
     ]);
+    $this->drupalGet('/admin/structure/types/add');
 
     // Create Article node types. We use the form at least once to ensure that
     // we don't break anything. E.g. see https://www.drupal.org/node/2645202.
-    $this->drupalPostForm('/admin/structure/types/add', ['type' => 'article', 'name' => 'Article'], 'Save content type');
+    $this->submitForm(['type' => 'article', 'name' => 'Article'], 'Save content type');
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $node_storage */
     $node_storage = $this->container->get('entity_type.manager')->getStorage('node_type');
@@ -1963,8 +1980,8 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
     $entity = $node_storage->load('article');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_type');
 
@@ -1987,17 +2004,17 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2017,17 +2034,17 @@ class LingotekContentTypeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document Article target es_ES cancelled in TMS.');
+    $this->assertSame($response['messages'][0], 'Document Article target es_ES cancelled in TMS.');
 
     $this->goToConfigBulkManagementForm('node_type');
 
     $entity = $node_storage->load('article');
 
-    $this->assertIdentical('dummy-document-hash-id', $config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame('dummy-document-hash-id', $config_translation_service->getDocumentId($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekContentTypeTranslationTest.php b/tests/src/Functional/LingotekContentTypeTranslationTest.php
index f976cff2..746ecaf6 100644
--- a/tests/src/Functional/LingotekContentTypeTranslationTest.php
+++ b/tests/src/Functional/LingotekContentTypeTranslationTest.php
@@ -16,10 +16,10 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image'];
+  protected static $modules = ['block', 'node', 'image'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -62,11 +62,11 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Article uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(3, count($data));
+    $this->assertEquals(3, count($data));
     $this->assertTrue(array_key_exists('name', $data));
     // Cannot use isset, the key exists but we are not providing values, so NULL.
     $this->assertTrue(array_key_exists('description', $data));
@@ -74,20 +74,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText(t('Article status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Article status checked successfully'));
 
     $this->clickLink(t('Request translation'));
-    $this->assertText(t('Translation to es_MX requested successfully'));
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX requested successfully'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_MX status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX status checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_MX downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
@@ -108,8 +108,9 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     $this->clickLink(t('Translate'));
 
@@ -120,11 +121,11 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('Check Download');
-    $this->assertText('Translation to es_MX status checked successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX status checked successfully');
 
     // Download the translation.
     $this->clickLink('Download');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -145,26 +146,26 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Article uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Article uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(3, count($data));
+    $this->assertEquals(3, count($data));
     $this->assertTrue(array_key_exists('name', $data));
     // Cannot use isset, the key exists but we are not providing values, so NULL.
     $this->assertTrue(array_key_exists('description', $data));
     $this->assertTrue(array_key_exists('help', $data));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check upload status');
-    $this->assertText(t('Article status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Article status checked successfully'));
 
     // There are two links for requesting translations, or we can add them
     // manually.
@@ -200,20 +201,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('Article upload failed. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -229,20 +230,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
   }
 
   /**
@@ -257,17 +258,18 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Create a content type.
     $edit = ['name' => 'Landing Page', 'type' => 'landing_page'];
-    $this->drupalPostForm('admin/structure/types/add', $edit, 'Save content type');
+    $this->drupalGet('admin/structure/types/add');
+    $this->submitForm($edit, 'Save content type');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('landing_page');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -282,16 +284,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -302,20 +305,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -330,16 +333,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -356,14 +360,14 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
-    $this->assertText('Document Blogpost was not found. Please upload again.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertSession()->pageTextContains('Document Blogpost was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost uploaded successfully');
+    $this->assertSession()->pageTextContains('Blogpost uploaded successfully');
   }
 
   /**
@@ -378,34 +382,35 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -421,14 +426,14 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, will fail
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node type has been marked with the error status.
     $nodeType = Nodetype::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
   }
 
@@ -444,17 +449,18 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Create content type
     $edit = ['name' => 'Landing Page', 'type' => 'landing_page'];
-    $this->drupalPostForm('admin/structure/types/add', $edit, 'Save content type');
+    $this->drupalGet('admin/structure/types/add');
+    $this->submitForm($edit, 'Save content type');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('landing_page');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -469,16 +475,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document successfully
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated');
 
     // Go back to the form
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -489,14 +496,14 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -511,27 +518,28 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -546,32 +554,33 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
-    $this->assertText('Document node_type Blogpost was not found. Please upload again.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertSession()->pageTextContains('Document node_type Blogpost was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost uploaded successfully');
+    $this->assertSession()->pageTextContains('Blogpost uploaded successfully');
   }
 
   /**
@@ -586,16 +595,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -606,20 +616,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost update failed. Please try again.');
+    $this->assertSession()->pageTextContains('Blogpost update failed. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -636,20 +646,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('Article status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('Article status check failed. Please try again.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -664,7 +674,7 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -672,13 +682,13 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
-    $this->assertText('The import for Article is still pending.');
+    $this->assertSession()->pageTextContains('The import for Article is still pending.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -695,18 +705,18 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
-    $this->assertText('Document Article was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document Article was not found. Please upload again.');
 
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -715,23 +725,25 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
   public function testUpdatingWithAnErrorViaAutomaticUpload() {
     // Create a content type.
     $edit = ['name' => 'Landing Page', 'type' => 'landing_page'];
-    $this->drupalPostForm('admin/structure/types/add', $edit, 'Save content type');
+    $this->drupalGet('admin/structure/types/add');
+    $this->submitForm($edit, 'Save content type');
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Landing Page EDITED';
-    $this->drupalPostForm('/admin/structure/types/manage/landing_page', $edit, t('Save content type'));
+    $this->drupalGet('/admin/structure/types/manage/landing_page');
+    $this->submitForm($edit, t('Save content type'));
 
     // The document was updated automatically and failed.
-    $this->assertText('The update for node_type Landing Page EDITED failed. Please try again.');
+    $this->assertSession()->pageTextContains('The update for node_type Landing Page EDITED failed. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('landing_page');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -746,16 +758,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -766,20 +779,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document Blogpost has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document Blogpost has been archived. Uploading again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('Check upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost status checked successfully');
+    $this->assertSession()->pageTextContains('Blogpost status checked successfully');
   }
 
   /**
@@ -794,16 +807,17 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
@@ -814,20 +828,20 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -842,34 +856,35 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
-    $this->assertText('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node type has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost has been updated.');
+    $this->assertSession()->pageTextContains('Blogpost has been updated.');
   }
 
   /**
@@ -884,34 +899,35 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Article uploaded successfully');
+    $this->assertSession()->pageTextContains('Article uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Article status checked successfully');
+    $this->assertSession()->pageTextContains('Article status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
     // Edit the content type.
     $edit['name'] = 'Blogpost';
-    $this->drupalPostForm('/admin/structure/types/manage/article', $edit, t('Save content type'));
-    $this->assertText('The content type Blogpost has been updated.');
+    $this->drupalGet('/admin/structure/types/manage/article');
+    $this->submitForm($edit, t('Save content type'));
+    $this->assertSession()->pageTextContains('The content type Blogpost has been updated.');
 
-    $this->assertText('Document node_type Blogpost has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node_type Blogpost has been archived. Uploading again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('article');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Check upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Blogpost status checked successfully');
+    $this->assertSession()->pageTextContains('Blogpost status checked successfully');
   }
 
   /**
@@ -928,17 +944,18 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
 
     // Create a content type.
     $edit = ['name' => 'Landing Page', 'type' => 'landing_page'];
-    $this->drupalPostForm('admin/structure/types/add', $edit, 'Save content type');
+    $this->drupalGet('admin/structure/types/add');
+    $this->submitForm($edit, 'Save content type');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('The upload for node_type Landing Page failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload for node_type Landing Page failed. Please try again.');
 
     // The node type has been marked with the error status.
     $nodeType = NodeType::load('landing_page');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($nodeType);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node type has been marked as error.');
   }
 
   /**
@@ -954,8 +971,8 @@ class LingotekContentTypeTranslationTest extends LingotekTestBase {
     $this->drupalGet('/admin/config/regional/config-translation');
     $this->drupalGet('/admin/config/regional/config-translation/node_type');
     $this->clickLink('Translate');
-    $this->assertText('Translations for AAA Test Content Type content type');
-    $this->assertText('Unknown (nap) (original)');
+    $this->assertSession()->pageTextContains('Translations for AAA Test Content Type content type');
+    $this->assertSession()->pageTextContains('Unknown (nap) (original)');
   }
 
 }
diff --git a/tests/src/Functional/LingotekDashboardTest.php b/tests/src/Functional/LingotekDashboardTest.php
index e89fd418..8e15c9cf 100644
--- a/tests/src/Functional/LingotekDashboardTest.php
+++ b/tests/src/Functional/LingotekDashboardTest.php
@@ -17,7 +17,7 @@ class LingotekDashboardTest extends LingotekTestBase {
   /**
    * {@inheritDoc}
    */
-  public static $modules = ['block', 'node', 'comment'];
+  protected static $modules = ['block', 'node', 'comment'];
 
   /**
    * Test that a language can be added.
@@ -41,18 +41,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('it', $response['xcode']);
-    $this->assertIdentical('it_IT', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
+    $this->assertSame('it', $response['xcode']);
+    $this->assertSame('it_IT', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
 
     $italian_language = ConfigurableLanguage::load('it');
     /** @var \Drupal\language\ConfigurableLanguageInterface $italian_language */
     $this->assertNotNull($italian_language, 'Italian language has been added.');
-    $this->assertIdentical('Italian', $italian_language->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_LTR, $italian_language->getDirection());
+    $this->assertSame('Italian', $italian_language->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_LTR, $italian_language->getDirection());
 
     // @ToDo: The native language is not saved.
     // $config_translation = \Drupal::languageManager()->getLanguageConfigOverride('it', $italian_language->id());
@@ -110,18 +110,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('ar', $response['xcode']);
-    $this->assertIdentical('ar_AE', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
-
+    $this->assertSame('ar', $response['xcode']);
+    $this->assertSame('ar_AE', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
+
+    /** @var \Drupal\language\ConfigurableLanguageInterface $arabic_language */
     $arabic_language = ConfigurableLanguage::load('ar');
-    /** @var \Drupal\language\ConfigurableLanguageInterface $italian_language */
     $this->assertNotNull($arabic_language, 'Arabic language has been added.');
-    $this->assertIdentical('Arabic', $arabic_language->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_RTL, $arabic_language->getDirection());
+    $this->assertSame('Arabic', $arabic_language->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_RTL, $arabic_language->getDirection());
 
     // @ToDo: The native language is not saved.
   }
@@ -148,18 +148,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('ar', $response['xcode']);
-    $this->assertIdentical('ar', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
-
+    $this->assertSame('ar', $response['xcode']);
+    $this->assertSame('ar', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
+
+    /** @var \Drupal\language\ConfigurableLanguageInterface $arabic_language */
     $arabic_language = ConfigurableLanguage::load('ar');
-    /** @var \Drupal\language\ConfigurableLanguageInterface $italian_language */
     $this->assertNotNull($arabic_language, 'Arabic language has been added.');
-    $this->assertIdentical('Arabic', $arabic_language->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_RTL, $arabic_language->getDirection());
+    $this->assertSame('Arabic', $arabic_language->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_RTL, $arabic_language->getDirection());
 
     // @ToDo: The native language is not saved.
   }
@@ -186,18 +186,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
 
     $esEsLanguage = ConfigurableLanguage::load('es');
     /** @var \Drupal\language\ConfigurableLanguageInterface $esEsLanguage */
     $this->assertNotNull($esEsLanguage, 'Spanish (Spain) language has been added.');
-    $this->assertIdentical('Spanish (Spain)', $esEsLanguage->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_LTR, $esEsLanguage->getDirection());
+    $this->assertSame('Spanish (Spain)', $esEsLanguage->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_LTR, $esEsLanguage->getDirection());
 
     // The language must be returned in the dashboard.
     $request = $this->client->get($url, [
@@ -209,7 +209,7 @@ class LingotekDashboardTest extends LingotekTestBase {
     ]);
     $response = json_decode($request->getBody(), TRUE);
     $returned_languages = array_keys($response['languages']);
-    $this->assertIdentical(['en_US', 'es_ES'], $returned_languages);
+    $this->assertSame(['en_US', 'es_ES'], $returned_languages);
 
     $post = [
       'code' => 'es_AR',
@@ -227,18 +227,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('es-ar', $response['xcode']);
-    $this->assertIdentical('es_AR', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
+    $this->assertSame('es-ar', $response['xcode']);
+    $this->assertSame('es_AR', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
 
     $esArLanguage = ConfigurableLanguage::load('es-ar');
     /** @var \Drupal\language\ConfigurableLanguageInterface $esArLanguage */
     $this->assertNotNull($esArLanguage, 'Spanish (Argentina) language has been added.');
-    $this->assertIdentical('Spanish (Argentina)', $esArLanguage->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_LTR, $esArLanguage->getDirection());
+    $this->assertSame('Spanish (Argentina)', $esArLanguage->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_LTR, $esArLanguage->getDirection());
 
     // The language must be returned in the dashboard.
     $request = $this->client->get($url, [
@@ -250,7 +250,7 @@ class LingotekDashboardTest extends LingotekTestBase {
     ]);
     $response = json_decode($request->getBody(), TRUE);
     $returned_languages = array_keys($response['languages']);
-    $this->assertIdentical(['en_US', 'es_AR', 'es_ES'], $returned_languages);
+    $this->assertSame(['en_US', 'es_AR', 'es_ES'], $returned_languages);
   }
 
   /**
@@ -275,18 +275,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_AR', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_AR', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
 
     $esArLanguage = ConfigurableLanguage::load('es');
     /** @var \Drupal\language\ConfigurableLanguageInterface $esArLanguage */
     $this->assertNotNull($esArLanguage, 'Spanish (Argentina) language has been added.');
-    $this->assertIdentical('Spanish (Argentina)', $esArLanguage->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_LTR, $esArLanguage->getDirection());
+    $this->assertSame('Spanish (Argentina)', $esArLanguage->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_LTR, $esArLanguage->getDirection());
 
     // The language must be returned in the dashboard.
     $request = $this->client->get($url, [
@@ -298,7 +298,7 @@ class LingotekDashboardTest extends LingotekTestBase {
     ]);
     $response = json_decode($request->getBody(), TRUE);
     $returned_languages = array_keys($response['languages']);
-    $this->assertIdentical(['en_US', 'es_AR'], $returned_languages);
+    $this->assertSame(['en_US', 'es_AR'], $returned_languages);
 
     $post = [
       'code' => 'es_ES',
@@ -316,18 +316,18 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('es-es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
-    $this->assertIdentical(0, $response['source']['total']);
-    $this->assertIdentical(0, $response['target']['total']);
+    $this->assertSame('es-es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
+    $this->assertSame(0, $response['source']['total']);
+    $this->assertSame(0, $response['target']['total']);
 
     $esEsLanguage = ConfigurableLanguage::load('es-es');
     /** @var \Drupal\language\ConfigurableLanguageInterface $esEsLanguage */
     $this->assertNotNull($esEsLanguage, 'Spanish (Spain) language has been added.');
-    $this->assertIdentical('Spanish (Spain)', $esEsLanguage->getName());
-    $this->assertIdentical(ConfigurableLanguage::DIRECTION_LTR, $esEsLanguage->getDirection());
+    $this->assertSame('Spanish (Spain)', $esEsLanguage->getName());
+    $this->assertSame(ConfigurableLanguage::DIRECTION_LTR, $esEsLanguage->getDirection());
 
     // The language must be returned in the dashboard.
     $request = $this->client->get($url, [
@@ -339,7 +339,7 @@ class LingotekDashboardTest extends LingotekTestBase {
     ]);
     $response = json_decode($request->getBody(), TRUE);
     $returned_languages = array_keys($response['languages']);
-    $this->assertIdentical(['en_US', 'es_AR', 'es_ES'], $returned_languages);
+    $this->assertSame(['en_US', 'es_AR', 'es_ES'], $returned_languages);
   }
 
   /**
@@ -364,7 +364,7 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose(var_export($response, TRUE));
+    dump(var_export($response, TRUE));
 
     // Rebuild the container so that the new languages are picked up by services
     // that hold a list of languages.
@@ -373,7 +373,7 @@ class LingotekDashboardTest extends LingotekTestBase {
     /** @var \Drupal\Core\Language\LanguageManagerInterface $language_manager */
     $language_manager = \Drupal::service('language_manager');
     $languages = $language_manager->getLanguages();
-    $this->assertIdentical(2, count($languages));
+    $this->assertSame(2, count($languages));
 
     // Check the properties of the language.
     $request = $this->client->get(Url::fromRoute('lingotek.dashboard_endpoint', ['code' => 'es_ES'])->setAbsolute()->toString(), [
@@ -384,14 +384,14 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
 
     $language = ConfigurableLanguage::load('es');
-    $this->assertIdentical($language->getThirdPartySetting('lingotek', 'disabled', NULL), FALSE, 'The Spanish language is enabled');
+    $this->assertSame($language->getThirdPartySetting('lingotek', 'disabled', NULL), FALSE, 'The Spanish language is enabled');
 
     $request = $this->client->delete($url, [
       'body' => http_build_query(['code' => 'es_ES']),
@@ -403,19 +403,19 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('DELETE', $response['method']);
-    $this->assertIdentical('es', $response['language']);
-    $this->assertIdentical('Language disabled: es_ES', $response['message']);
+    $this->assertSame('DELETE', $response['method']);
+    $this->assertSame('es', $response['language']);
+    $this->assertSame('Language disabled: es_ES', $response['message']);
 
     // Rebuild the container so that the new languages are picked up by services
     // that hold a list of languages.
     $this->rebuildContainer();
 
     $languages = $language_manager->getLanguages();
-    $this->assertIdentical(2, count($languages), 'Spanish language is disabled, but not deleted.');
+    $this->assertSame(2, count($languages), 'Spanish language is disabled, but not deleted.');
 
     $language = ConfigurableLanguage::load('es');
-    $this->assertIdentical($language->getThirdPartySetting('lingotek', 'disabled', NULL), TRUE, 'The Spanish language is disabled');
+    $this->assertSame($language->getThirdPartySetting('lingotek', 'disabled', NULL), TRUE, 'The Spanish language is disabled');
 
     // Check the properties of the language.
     $request = $this->client->get(Url::fromRoute('lingotek.dashboard_endpoint', ['code' => 'es_ES'])->setAbsolute()->toString(), [
@@ -426,11 +426,11 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(0, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(0, $response['active']);
+    $this->assertSame(1, $response['enabled']);
 
     $post = [
       'code' => 'es_ES',
@@ -448,11 +448,11 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('POST', $response['method']);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
+    $this->assertSame('POST', $response['method']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
 
     // Check the properties of the language.
     $request = $this->client->get(Url::fromRoute('lingotek.dashboard_endpoint', ['code' => 'es_ES'])->setAbsolute()->toString(), [
@@ -463,21 +463,21 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
 
     $languages = $language_manager->getLanguages();
-    $this->assertIdentical(2, count($languages), 'Spanish language is enabled again, no new languages added.');
+    $this->assertSame(2, count($languages), 'Spanish language is enabled again, no new languages added.');
 
     // Rebuild the container so that the new languages are picked up by services
     // that hold a list of languages.
     $this->rebuildContainer();
 
     $language = ConfigurableLanguage::load('es');
-    $this->assertIdentical($language->getThirdPartySetting('lingotek', 'disabled', NULL), FALSE, 'The Spanish language is enabled');
+    $this->assertSame($language->getThirdPartySetting('lingotek', 'disabled', NULL), FALSE, 'The Spanish language is enabled');
   }
 
   /**
@@ -502,20 +502,20 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('POST', $response['method']);
-    $this->assertIdentical('es', $response['xcode']);
-    $this->assertIdentical('es_ES', $response['locale']);
-    $this->assertIdentical(1, $response['active']);
-    $this->assertIdentical(1, $response['enabled']);
+    $this->assertSame('POST', $response['method']);
+    $this->assertSame('es', $response['xcode']);
+    $this->assertSame('es_ES', $response['locale']);
+    $this->assertSame(1, $response['active']);
+    $this->assertSame(1, $response['enabled']);
 
     // Rebuild the container so that the new languages are picked up by services
     // that hold a list of languages.
     $this->rebuildContainer();
 
-    /** @var LanguageManagerInterface $language_manager */
+    /** @var \Drupal\Core\Language\LanguageManagerInterface $language_manager */
     $language_manager = \Drupal::service('language_manager');
     $languages = $language_manager->getLanguages();
-    $this->assertIdentical(2, count($languages));
+    $this->assertSame(2, count($languages));
 
     // Check the stats.
     $request = $this->client->get($url, [
@@ -527,14 +527,14 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical(2, $response['count']);
-    $this->assertIdentical('en', $response['languages']['en_US']['xcode']);
-    $this->assertIdentical(1, $response['languages']['en_US']['active']);
-    $this->assertIdentical(1, $response['languages']['en_US']['enabled']);
-    $this->assertIdentical('es', $response['languages']['es_ES']['xcode']);
-    $this->assertIdentical(1, $response['languages']['es_ES']['active']);
-    $this->assertIdentical(1, $response['languages']['es_ES']['enabled']);
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame(2, $response['count']);
+    $this->assertSame('en', $response['languages']['en_US']['xcode']);
+    $this->assertSame(1, $response['languages']['en_US']['active']);
+    $this->assertSame(1, $response['languages']['en_US']['enabled']);
+    $this->assertSame('es', $response['languages']['es_ES']['xcode']);
+    $this->assertSame(1, $response['languages']['es_ES']['active']);
+    $this->assertSame(1, $response['languages']['es_ES']['enabled']);
 
     // Disable Spanish.
     $request = $this->client->delete($url, [
@@ -547,9 +547,9 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('DELETE', $response['method']);
-    $this->assertIdentical('es', $response['language']);
-    $this->assertIdentical('Language disabled: es_ES', $response['message']);
+    $this->assertSame('DELETE', $response['method']);
+    $this->assertSame('es', $response['language']);
+    $this->assertSame('Language disabled: es_ES', $response['message']);
 
     // Rebuild the container so that the new languages are picked up by services
     // that hold a list of languages.
@@ -565,14 +565,14 @@ class LingotekDashboardTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical(2, $response['count']);
-    $this->assertIdentical('en', $response['languages']['en_US']['xcode']);
-    $this->assertIdentical(1, $response['languages']['en_US']['active']);
-    $this->assertIdentical(1, $response['languages']['en_US']['enabled']);
-    $this->assertIdentical('es', $response['languages']['es_ES']['xcode']);
-    $this->assertIdentical(0, $response['languages']['es_ES']['active']);
-    $this->assertIdentical(1, $response['languages']['es_ES']['enabled']);
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame(2, $response['count']);
+    $this->assertSame('en', $response['languages']['en_US']['xcode']);
+    $this->assertSame(1, $response['languages']['en_US']['active']);
+    $this->assertSame(1, $response['languages']['en_US']['enabled']);
+    $this->assertSame('es', $response['languages']['es_ES']['xcode']);
+    $this->assertSame(0, $response['languages']['es_ES']['active']);
+    $this->assertSame(1, $response['languages']['es_ES']['enabled']);
   }
 
   /**
@@ -584,7 +584,7 @@ class LingotekDashboardTest extends LingotekTestBase {
 
     // One language added, there are missing translations.
     $this->drupalGet('admin/lingotek');
-    $this->assertRaw(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]), 'Missing translations message');
+    $this->assertSession()->responseContains(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]));
 
     // Override Drupal core translation status as 'up-to-date'.
     $status = locale_translation_get_status();
@@ -594,7 +594,7 @@ class LingotekDashboardTest extends LingotekTestBase {
 
     // There are no missing translations, translations are current.
     $this->drupalGet('admin/lingotek');
-    $this->assertNoRaw(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]), 'No missing translations message with current translations');
+    $this->assertSession()->responseNotContains(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]));
 
     // Set lingotek module to have a local translation available.
     $status = locale_translation_get_status();
@@ -604,7 +604,7 @@ class LingotekDashboardTest extends LingotekTestBase {
 
     // There are no missing translations, translations are local.
     $this->drupalGet('admin/lingotek');
-    $this->assertNoRaw(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]), 'No missing translations message with local translations');
+    $this->assertSession()->responseNotContains(t('Missing translations for: @languages. See the <a href=":updates">Available translation updates</a> page for more information.', ['@languages' => t('Spanish'), ':updates' => Url::fromRoute('locale.translate_status')->toString()]));
   }
 
   /**
diff --git a/tests/src/Functional/LingotekEntityTestBulkTranslationTest.php b/tests/src/Functional/LingotekEntityTestBulkTranslationTest.php
index 4b7e2cff..084f385e 100644
--- a/tests/src/Functional/LingotekEntityTestBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekEntityTestBulkTranslationTest.php
@@ -17,7 +17,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'entity_test'];
+  protected static $modules = ['block', 'entity_test'];
 
   /**
    * {@inheritdoc}
@@ -77,7 +77,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -86,33 +87,33 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('EN');
-    $this->assertText('Entity_test_mul Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Entity_test_mul Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'entity_test_mul');
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('EN');
-    $this->assertText('The import for entity_test_mul Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for entity_test_mul Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertText('The translation of entity_test_mul Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of entity_test_mul Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -131,7 +132,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -142,8 +144,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'entity_test_mul');
@@ -152,7 +154,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -161,8 +163,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the German (AT) translation.
     $this->assertLingotekCheckTargetStatusLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -171,8 +173,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German (AT) translation.
     $this->assertLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -181,8 +183,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -203,7 +205,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -214,8 +217,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'entity_test_mul');
@@ -224,7 +227,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that I could request translations.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -235,7 +238,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows that there are translations ready.
     $this->assertLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -243,12 +246,12 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
 
     // Even if I just add a new language.
     ConfigurableLanguage::createFromLangcode('de')->setThirdPartySetting('lingotek', 'locale', 'de_DE')->save();
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertLingotekDownloadTargetLink('de_DE', 'dummy-document-hash-id', 'entity_test_mul');
 
     // Ensure locales are handled correctly by setting manual values.
     \Drupal::state()->set('lingotek.document_completion_statuses', ['de-AT' => 50, 'de-DE' => 100, 'es-MX' => 10]);
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows which translations are ready.
     $this->assertNoLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id', 'entity_test_mul');
@@ -259,7 +262,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
 
     \Drupal::state()->set('lingotek.document_completion_statuses', ['it-IT' => 100, 'de-DE' => 50, 'es-MX' => 10]);
     // Check all statuses again.
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // All translations must be updated according exclusively with the
     // information from the TMS.
@@ -283,7 +286,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -294,8 +298,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'entity_test_mul');
@@ -307,7 +311,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status, because it wasn't imported but it's not marked
     // as an error.
@@ -320,7 +324,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that targets can be requested.
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
@@ -350,7 +354,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -363,8 +368,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'entity_test_mul');
@@ -373,19 +378,19 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
 
     // Download all the translations.
     $this->assertLingotekDownloadTargetLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
@@ -394,7 +399,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The translations not requested shouldn't change its status.
     $this->assertLingotekRequestTranslationLink('de_DE', 'dummy-document-hash-id', 'entity_test_mul');
@@ -422,7 +427,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('entity_test_mul');
 
@@ -433,8 +439,8 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -444,13 +450,13 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for entity_test_mul Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
@@ -458,23 +464,23 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     // Request italian.
     $this->assertLingotekRequestTranslationLink('it_IT', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('IT');
-    $this->assertText("Locale 'it_IT' was added as a translation target for entity_test_mul Llamas are cool.");
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'it_IT' was added as a translation target for entity_test_mul Llamas are cool.");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for entity_test_mul Llamas are cool is ready for download.');
 
     \Drupal::state()->resetCache();
 
     // Check status of the Italian translation.
     $this->assertLingotekCheckTargetStatusLink('it_IT', 'dummy-document-hash-id', 'entity_test_mul');
     $this->clickLink('IT');
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The it_IT translation for entity_test_mul Llamas are cool is ready for download.');
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The it_IT translation for entity_test_mul Llamas are cool is ready for download.');
 
     // Download all the translations.
     $this->assertLingotekDownloadTargetLink('es_MX', 'dummy-document-hash-id', 'entity_test_mul');
@@ -483,7 +489,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // They are marked with the right status.
     $this->assertTargetStatus('ES', 'current');
@@ -497,7 +503,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('entity_test_mul'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // And statuses should remain the same.
     $this->assertTargetStatus('ES', 'current');
@@ -515,7 +521,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     // Get the node form.
     $this->drupalGet('entity_test_mul/add/entity_test_mul');
     // Assert translation profile cannot be assigned.
-    $this->assertNoField('lingotek_translation_management[lingotek_translation_profile]');
+    $this->assertSession()->fieldNotExists('lingotek_translation_management[lingotek_translation_profile]');
 
     $translation_manager = $this->drupalCreateUser([
       'administer entity_test content',
@@ -527,7 +533,7 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     // Get the node form.
     $this->drupalGet('entity_test_mul/add/entity_test_mul');
     // Assert translation profile can be assigned.
-    $this->assertField('lingotek_translation_management[lingotek_translation_profile]');
+    $this->assertSession()->fieldExists('lingotek_translation_management[lingotek_translation_profile]');
 
     // Create a entity_test_mul.
     $edit = [];
@@ -535,10 +541,11 @@ class LingotekEntityTestBulkTranslationTest extends LingotekTestBase {
     $edit['field_test_text[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/entity_test_mul/add/entity_test_mul', $edit, t('Save'));
+    $this->drupalGet('/entity_test_mul/add/entity_test_mul');
+    $this->submitForm($edit, t('Save'));
     $this->clickLink('Edit');
 
-    $this->assertFieldById('edit-lingotek-translation-management-lingotek-translation-profile', 'manual');
+    $this->assertSession()->fieldValueEquals('edit-lingotek-translation-management-lingotek-translation-profile', 'manual');
   }
 
 }
diff --git a/tests/src/Functional/LingotekFieldBodyBulkCancelTest.php b/tests/src/Functional/LingotekFieldBodyBulkCancelTest.php
index a1b23fca..09302a4c 100644
--- a/tests/src/Functional/LingotekFieldBodyBulkCancelTest.php
+++ b/tests/src/Functional/LingotekFieldBodyBulkCancelTest.php
@@ -15,7 +15,7 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -59,7 +59,7 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
       'table[node.article.body]' => 'node.article.body',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -68,11 +68,11 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
 
     // Assert that The document has been cancelled remotely.
     $cancelled_docs = \Drupal::state()->get('lingotek.cancelled_docs', []);
-    $this->assertEqual(1, count($cancelled_docs), 'The document has been cancelled remotely.');
+    $this->assertEquals(1, count($cancelled_docs), 'The document has been cancelled remotely.');
 
     // Assert that no document has been deleted remotely.
     $deleted_docs = \Drupal::state()->get('lingotek.deleted_docs', []);
-    $this->assertEqual(0, count($deleted_docs), 'No document has been deleted remotely.');
+    $this->assertEquals(0, count($deleted_docs), 'No document has been deleted remotely.');
 
     $this->assertNull($config_translation_service->getDocumentId($entity));
 
@@ -82,8 +82,8 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
     \Drupal::entityTypeManager()->getStorage('field_config')->resetCache();
     $entity = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
 
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // We cannot request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -110,7 +110,7 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
       'table[node.article.body]' => 'node.article.body',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -127,8 +127,8 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // We cannot request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -153,7 +153,7 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
       'table[node.article.body]' => 'node.article.body',
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -170,10 +170,10 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CURRENT);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
 
-    $this->assertText('Target es for Body was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSession()->pageTextContains('Target es for Body was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   protected function createAndTranslateFieldWithLinks() {
@@ -187,25 +187,25 @@ class LingotekFieldBodyBulkCancelTest extends LingotekTestBase {
 
     // Clicking English must init the upload of content.
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
 
     // There is a link for checking status.
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Request the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES requested successfully");
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES status checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES status checked successfully");
 
     // Download the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_ES downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_ES downloaded successfully');
   }
 
 }
diff --git a/tests/src/Functional/LingotekFieldBodyBulkDebugTest.php b/tests/src/Functional/LingotekFieldBodyBulkDebugTest.php
index 9041f1a1..c85bbdae 100644
--- a/tests/src/Functional/LingotekFieldBodyBulkDebugTest.php
+++ b/tests/src/Functional/LingotekFieldBodyBulkDebugTest.php
@@ -14,7 +14,7 @@ class LingotekFieldBodyBulkDebugTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -52,7 +52,7 @@ class LingotekFieldBodyBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -68,7 +68,7 @@ class LingotekFieldBodyBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -77,24 +77,24 @@ class LingotekFieldBodyBulkDebugTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'debug_export',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Exports available');
+    $this->assertSession()->pageTextContains('Exports available');
     // Download the file.
     $this->clickLink('config.node.article.body.json');
 
     $response = json_decode($this->getSession()->getPage()->getContent(), TRUE);
-    $this->assertIdentical('Body', $response['field.field.node.article.body']['label']);
-    $this->assertIdentical('', $response['field.field.node.article.body']['description']);
-    $this->assertIdentical('node.article.body (config): Body', $response['_debug']['title']);
-    $this->assertIdentical('manual', $response['_debug']['profile']);
-    $this->assertIdentical('en_US', $response['_debug']['source_locale']);
+    $this->assertSame('Body', $response['field.field.node.article.body']['label']);
+    $this->assertSame('', $response['field.field.node.article.body']['description']);
+    $this->assertSame('node.article.body (config): Body', $response['_debug']['title']);
+    $this->assertSame('manual', $response['_debug']['profile']);
+    $this->assertSame('en_US', $response['_debug']['source_locale']);
   }
 
 }
diff --git a/tests/src/Functional/LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest.php b/tests/src/Functional/LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest.php
index bb2ac067..91ba9266 100644
--- a/tests/src/Functional/LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest.php
+++ b/tests/src/Functional/LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -76,8 +76,8 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -87,7 +87,7 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -116,11 +116,11 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -133,13 +133,13 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('ca', 'node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.added_target_locale'));
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -150,8 +150,8 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:ca',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -163,8 +163,8 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:ca',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -190,11 +190,11 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -202,11 +202,11 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -219,11 +219,11 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_PENDING);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -234,8 +234,8 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_READY);
@@ -247,8 +247,8 @@ class LingotekFieldBodyBulkDisabledTargetOverrideTranslationTest extends Lingote
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_CURRENT);
diff --git a/tests/src/Functional/LingotekFieldBodyBulkTranslationTest.php b/tests/src/Functional/LingotekFieldBodyBulkTranslationTest.php
index 35d2f181..5c31b3a7 100644
--- a/tests/src/Functional/LingotekFieldBodyBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekFieldBodyBulkTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -61,33 +61,33 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -116,8 +116,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -125,7 +125,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -133,8 +133,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -142,8 +142,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -151,8 +151,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -181,7 +181,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -189,7 +189,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -197,7 +197,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check status of all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -205,7 +205,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -213,7 +213,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   /**
@@ -230,7 +230,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Add a language so we can check that it's not marked as dirty if there are
     // no translations.
@@ -239,9 +239,10 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as for requesting if
     // it was already requested.
     ConfigurableLanguage::createFromLangcode('ko')->setThirdPartySetting('lingotek', 'locale', 'ko_KR')->save();
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', ['label' => 'Body EDITED'], t('Save settings'));
+    $this->submitForm(['label' => 'Body EDITED'], t('Save settings'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -256,15 +257,15 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Request korean, with outdated content available.
     $this->clickLink('KO');
-    $this->assertText("Translation to ko_KR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ko_KR requested successfully");
 
     // Reupload the content.
     $this->clickLink('EN');
-    $this->assertText('Body EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Body EDITED has been updated.');
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('Body EDITED status checked successfully');
+    $this->assertSession()->pageTextContains('Body EDITED status checked successfully');
 
     // Korean should still be marked as requested, so we can check target.
     $this->assertTargetStatus('KO', 'pending');
@@ -274,12 +275,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -299,9 +300,10 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as dirty if there are
     // no translations.
     ConfigurableLanguage::createFromLangcode('eu')->setThirdPartySetting('lingotek', 'locale', 'eu_ES')->save();
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
 
     // Edit the object
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', ['label' => 'Body EDITED'], t('Save settings'));
+    $this->submitForm(['label' => 'Body EDITED'], t('Save settings'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -316,19 +318,19 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('Body EDITED status checked successfully');
+    $this->assertSession()->pageTextContains('Body EDITED status checked successfully');
 
     // Check the translation after having been edited.
     $edit = [
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -351,15 +353,15 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // There is a link for requesting the Catalan translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('CA');
-    $this->assertText("Translation to ca_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ca_ES requested successfully");
   }
 
   /**
    * Test that when a config is uploaded in a different locale that locale is used.
    * ToDo: Add a test for this.
    */
-  public function testAddingConfigInDifferentLocale() {
-    $this->pass('Test not implemented yet.');
+  public function testAddingConfigInDifferentLocale()
+  {
   }
 
   /**
@@ -374,7 +376,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Body upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('Body upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -384,12 +386,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -402,7 +404,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -412,12 +414,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -430,7 +432,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -440,12 +442,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -463,7 +465,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->assertLingotekCheckSourceStatusLink();
@@ -473,13 +475,13 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('Body status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('Body status check failed. Please try again.');
 
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -495,7 +497,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -508,13 +510,13 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('The import for Body is still pending.');
+    $this->assertSession()->pageTextContains('The import for Body is still pending.');
 
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -532,7 +534,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->assertLingotekCheckSourceStatusLink();
@@ -541,13 +543,13 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
-    $this->assertText('Document Body was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document Body was not found. Please upload again.');
 
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -563,15 +565,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -579,7 +582,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Contents update failed. Please try again.');
+    $this->assertSession()->pageTextContains('Contents update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -589,12 +592,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -610,15 +613,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -626,7 +630,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -636,12 +640,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -657,15 +661,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -673,7 +678,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -683,12 +688,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -704,15 +709,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -725,16 +731,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Contents was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document field_config Contents was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents uploaded successfully');
+    $this->assertSession()->pageTextContains('Contents uploaded successfully');
   }
 
   /**
@@ -750,15 +756,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -766,7 +773,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document field_config Contents has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document field_config Contents has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -776,12 +783,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents status checked successfully');
+    $this->assertSession()->pageTextContains('Contents status checked successfully');
   }
 
   /**
@@ -797,15 +804,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -813,7 +821,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -823,12 +831,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -852,8 +860,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Body upload failed. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Body upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -863,12 +871,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -884,15 +892,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -903,8 +912,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Contents update failed. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Contents update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -914,12 +923,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -935,15 +944,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -954,8 +964,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -965,12 +975,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -986,15 +996,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -1005,8 +1016,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1016,12 +1027,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -1037,15 +1048,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -1056,22 +1068,22 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Contents was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document field_config Contents was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents uploaded successfully');
+    $this->assertSession()->pageTextContains('Contents uploaded successfully');
   }
 
   /**
@@ -1087,15 +1099,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -1106,8 +1119,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Document field_config Contents has been archived. Uploading again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Document field_config Contents has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -1117,12 +1130,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents status checked successfully');
+    $this->assertSession()->pageTextContains('Contents status checked successfully');
   }
 
   /**
@@ -1138,15 +1151,16 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check upload.
     $this->clickLink('EN');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -1157,8 +1171,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -1168,12 +1182,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -1197,8 +1211,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1208,12 +1222,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -1237,8 +1251,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1248,12 +1262,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -1277,8 +1291,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1286,7 +1300,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that I could request translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1296,7 +1310,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows that there are translations ready.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1304,12 +1318,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     // Even if I just add a new language.
     ConfigurableLanguage::createFromLangcode('de')->setThirdPartySetting('lingotek', 'locale', 'de_DE')->save();
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Ensure locales are handled correctly by setting manual values.
     \Drupal::state()->set('lingotek.document_completion_statuses', ['de-AT' => 50, 'de-DE' => 100, 'es-MX' => 10]);
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows which translations are ready.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1320,7 +1334,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     \Drupal::state()->set('lingotek.document_completion_statuses', ['it-IT' => 100, 'de-DE' => 50, 'es-MX' => 10]);
     // Check all statuses again.
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // All translations must be updated according exclusively with the
     // information from the TMS.
@@ -1353,34 +1367,34 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     \Drupal::state()->set('lingotek.must_error_in_download', TRUE);
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Body es_MX translation download failed. Please try again.');
-    $this->assertIdentical(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Body es_MX translation download failed. Please try again.');
+    $this->assertSame(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->goToConfigBulkManagementForm('node_fields');
     // Check the right class is added.
@@ -1391,14 +1405,14 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $target_status = $translation_service->getTargetStatus($fieldConfig, 'es');
-    $this->assertEqual(Lingotek::STATUS_ERROR, $target_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $target_status, 'The field has been marked as error.');
 
     \Drupal::state()->set('lingotek.must_error_in_download', FALSE);
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
   }
 
   /**
@@ -1420,34 +1434,34 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_download', TRUE);
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Document Body was not found. Please upload again.');
-    $this->assertIdentical(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Document Body was not found. Please upload again.');
+    $this->assertSame(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->goToConfigBulkManagementForm('node_fields');
     // Check the right class is added.
@@ -1481,8 +1495,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/field_config/node.article.body?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1490,19 +1504,19 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1510,7 +1524,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The translations not requested shouldn't change its status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/de_DE?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1544,8 +1558,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1554,13 +1568,13 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
@@ -1568,23 +1582,23 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // Request italian.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertText("Translation to it_IT requested successfully");
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT requested successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     \Drupal::state()->resetCache();
 
     // Check status of the Italian translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to it_IT status checked successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT status checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1592,7 +1606,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // They are marked with the right status.
     $this->assertTargetStatus('ES', 'current');
@@ -1605,7 +1619,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       'table[node.article.body]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // And statuses should remain the same.
     $this->assertTargetStatus('ES', 'current');
@@ -1624,7 +1638,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body/translate');
     $this->clickLink('Delete');
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->submitForm([], t('Delete'));
 
     $this->goToConfigBulkManagementForm('node_fields');
     $this->assertTargetStatus('DE', Lingotek::STATUS_READY);
@@ -1647,8 +1661,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1661,12 +1675,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document field_config Body translations request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Body translations request failed. Please try again.');
   }
 
   /**
@@ -1686,8 +1700,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1700,11 +1714,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has been archived. Uploading again.');
   }
 
   /**
@@ -1724,8 +1738,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1738,11 +1752,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document field_config Body was not found. Please upload again.');
   }
 
   /**
@@ -1760,8 +1774,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1774,11 +1788,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -1796,8 +1810,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1810,11 +1824,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1832,8 +1846,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1846,11 +1860,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1868,8 +1882,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1883,7 +1897,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Body es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Body es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -1901,8 +1915,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1915,7 +1929,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1933,8 +1947,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1947,7 +1961,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1965,8 +1979,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1979,7 +1993,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has been archived. Uploading again.');
   }
 
   /**
@@ -1997,8 +2011,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2011,7 +2025,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document field_config Body was not found. Please upload again.');
   }
 
   /**
@@ -2029,8 +2043,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2043,7 +2057,7 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2061,8 +2075,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2075,12 +2089,12 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document field_config Body es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Body es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -2098,8 +2112,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2112,11 +2126,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has been archived. Uploading again.');
   }
 
   /**
@@ -2134,8 +2148,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2148,11 +2162,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document field_config Body was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document field_config Body was not found. Please upload again.');
   }
 
   /**
@@ -2170,8 +2184,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2184,11 +2198,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Body has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2206,8 +2220,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2220,11 +2234,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -2242,8 +2256,8 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node_fields'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2256,11 +2270,11 @@ class LingotekFieldBodyBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   protected function getBulkSelectionKey($langcode, $revision_id, $entity_type_id = 'node.article.body') {
diff --git a/tests/src/Functional/LingotekFieldBodyExistingBulkTranslationTest.php b/tests/src/Functional/LingotekFieldBodyExistingBulkTranslationTest.php
index 1c4912d9..9ff36807 100644
--- a/tests/src/Functional/LingotekFieldBodyExistingBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekFieldBodyExistingBulkTranslationTest.php
@@ -14,7 +14,7 @@ class LingotekFieldBodyExistingBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -65,8 +65,8 @@ class LingotekFieldBodyExistingBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText(t('Body uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Assert the untracked translation is shown.
     $this->assertTargetStatus('ES', 'untracked');
@@ -76,25 +76,25 @@ class LingotekFieldBodyExistingBulkTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/field_config/node.article.body/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
diff --git a/tests/src/Functional/LingotekFieldBodyNotificationCallbackTest.php b/tests/src/Functional/LingotekFieldBodyNotificationCallbackTest.php
index 3aebb363..74eaa260 100644
--- a/tests/src/Functional/LingotekFieldBodyNotificationCallbackTest.php
+++ b/tests/src/Functional/LingotekFieldBodyNotificationCallbackTest.php
@@ -18,7 +18,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui', 'dblog'];
+  protected static $modules = ['block', 'node', 'field_ui', 'dblog'];
 
   /**
    * {@inheritdoc}
@@ -62,7 +62,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Simulate the notification of content successfully uploaded.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -83,8 +83,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -96,9 +96,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     $this->goToConfigBulkManagementForm();
 
@@ -134,7 +134,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -169,7 +169,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
 
     // Assert the content is edited, but not auto-uploaded.
-    $this->assertIdentical(Lingotek::STATUS_EDITED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_EDITED, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -198,7 +198,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $response = json_decode($request->getBody(), TRUE);
 
     // Translations are not requested.
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
+    $this->assertSame([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -210,9 +210,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is ready to be requested.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -252,7 +252,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -265,7 +265,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   /**
@@ -326,7 +326,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -350,7 +350,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
+    $this->assertSame(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -360,10 +360,10 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -453,8 +453,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -468,8 +468,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $field_storage->resetCache();
     $entity = $field_storage->load('node.article.body');
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'de'));
   }
 
   /**
@@ -526,7 +526,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.article.body');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -550,7 +550,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -560,10 +560,10 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $config_translation_service->getTargetStatus($entity, 'de'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -625,8 +625,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -637,8 +637,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $field_storage->resetCache();
     $entity = $field_storage->load('node.article.body');
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $config_translation_service->getTargetStatus($entity, 'de'));
   }
 
   /**
@@ -675,7 +675,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     // The node cache needs to be reset before reload.
     $field_storage->resetCache();
     $entity = $field_storage->load('node.article.body');
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm('node_fields');
@@ -699,7 +699,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
+    $this->assertSame(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
 
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $lingotek_config */
     $lingotek_config = \Drupal::service('lingotek.configuration');
@@ -731,7 +731,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
   }
 
   /**
@@ -795,7 +795,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -821,7 +821,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -830,7 +830,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
 
     // All the links are current.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
+    $this->assertEquals(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
 
     // Simulate the notification of target deleted.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -934,7 +934,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -960,7 +960,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1046,8 +1046,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1068,8 +1068,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Body failed. Reverting dummy-document-hash-id to previous id (NULL)');
+    dump($request);
+    $this->assertSame($response['messages'][0], 'Document import for entity Body failed. Reverting dummy-document-hash-id to previous id (NULL)');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1078,7 +1078,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     $this->assertNull($config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1112,8 +1112,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1136,8 +1136,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1146,13 +1146,14 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Edit the field.
     $edit = ['label' => 'Body EDITED'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1161,11 +1162,11 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
 
     // Simulate the notification of failed import document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1185,9 +1186,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Body EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
+    $this->assertSame($response['messages'][0], 'Document import for entity Body EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1197,7 +1198,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id was restored.
     $this->assertEquals($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_ERROR, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1231,8 +1232,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1255,8 +1256,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1265,13 +1266,14 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Edit the field.
     $edit = ['label' => 'Body EDITED'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1280,11 +1282,11 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
 
     // Simulate the notification of content successfully updated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1305,7 +1307,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1315,7 +1317,7 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id and the CURRENT status.
     $this->assertEquals($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id-1');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
   }
 
   /**
@@ -1349,8 +1351,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1373,8 +1375,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1383,9 +1385,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1404,9 +1406,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document Body cancelled in TMS.');
+    $this->assertSame($response['messages'][0], 'Document Body cancelled in TMS.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1415,8 +1417,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     $this->assertNull($config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
   /**
@@ -1450,8 +1452,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame($config_translation_service->getDocumentId($entity), 'dummy-document-hash-id');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1474,8 +1476,8 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1484,9 +1486,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $entity = $field_storage->load('node.article.body');
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $config_translation_service->getTargetStatus($entity, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1506,9 +1508,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document Body target es_ES cancelled in TMS.');
+    $this->assertSame($response['messages'][0], 'Document Body target es_ES cancelled in TMS.');
 
     $this->goToConfigBulkManagementForm('node_fields');
 
@@ -1516,9 +1518,9 @@ class LingotekFieldBodyNotificationCallbackTest extends LingotekTestBase {
     $field_storage->resetCache();
     $entity = $field_storage->load('node.article.body');
 
-    $this->assertIdentical('dummy-document-hash-id', $config_translation_service->getDocumentId($entity));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame('dummy-document-hash-id', $config_translation_service->getDocumentId($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getTargetStatus($entity, 'es'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekFieldBodyTranslationTest.php b/tests/src/Functional/LingotekFieldBodyTranslationTest.php
index b496ec0f..83dc87e3 100644
--- a/tests/src/Functional/LingotekFieldBodyTranslationTest.php
+++ b/tests/src/Functional/LingotekFieldBodyTranslationTest.php
@@ -19,10 +19,10 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -68,31 +68,31 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Body uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertTrue(array_key_exists('label', $data['field.field.node.article.body']));
     // Cannot use isset, the key exists but we are not providing values, so NULL.
     $this->assertTrue(array_key_exists('description', $data['field.field.node.article.body']));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     $this->clickLink(t('Request translation'));
-    $this->assertText(t('Translation to es_MX requested successfully'));
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX requested successfully'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_MX status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX status checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_MX downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
@@ -103,8 +103,8 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // and this alters the order. See https://www.drupal.org/project/drupal/issues/3257407.
     $index = version_compare(\Drupal::VERSION, '9.4', '>=') ? 2 : 1;
     $this->clickLink('Edit', $index);
-    $this->assertFieldByName('translation[config_names][field.field.node.article.body][label]', 'Cuerpo');
-    $this->assertFieldByName('translation[config_names][field.field.node.article.body][description]', 'Cuerpo del contenido');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.field.node.article.body][label]', 'Cuerpo');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.field.node.article.body][description]', 'Cuerpo del contenido');
   }
 
   /**
@@ -122,8 +122,9 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     $this->clickLink(t('Translate'));
 
@@ -134,11 +135,11 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('Check Download');
-    $this->assertText('Translation to es_MX status checked successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX status checked successfully');
 
     // Download the translation.
     $this->clickLink('Download');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -160,26 +161,26 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'));
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Body uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Body uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
-    $this->assertEqual(2, count($data['field.field.node.article.body']));
+    dump(var_export($data, TRUE));
+    $this->assertEquals(2, count($data['field.field.node.article.body']));
     $this->assertTrue(array_key_exists('label', $data['field.field.node.article.body']));
     // Cannot use isset, the key exists but we are not providing values, so NULL.
     $this->assertTrue(array_key_exists('description', $data['field.field.node.article.body']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // There are two links for requesting translations, or we can add them
     // manually.
@@ -216,20 +217,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('Body upload failed. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -245,21 +246,21 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('Body status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('Body status check failed. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -273,7 +274,7 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -283,14 +284,14 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('The import for Body is still pending.');
+    $this->assertSession()->pageTextContains('The import for Body is still pending.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -306,21 +307,21 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('Document Body was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document Body was not found. Please upload again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -334,16 +335,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -354,20 +356,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents update failed. Please try again.');
+    $this->assertSession()->pageTextContains('Contents update failed. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -381,33 +383,34 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
-    $this->assertText('The update for field_config Contents failed. Please try again.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
+    $this->assertSession()->pageTextContains('The update for field_config Contents failed. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -423,16 +426,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -443,20 +447,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document Contents has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document Contents has been archived. Uploading again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('Check upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents status checked successfully');
+    $this->assertSession()->pageTextContains('Contents status checked successfully');
   }
 
   /**
@@ -472,32 +476,33 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
-    $this->assertText('Document field_config Contents has been archived. Uploading again.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
+    $this->assertSession()->pageTextContains('Document field_config Contents has been archived. Uploading again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Check upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents status checked successfully');
+    $this->assertSession()->pageTextContains('Contents status checked successfully');
   }
 
   /**
@@ -513,16 +518,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -533,20 +539,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -560,33 +566,34 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
-    $this->assertText('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
+    $this->assertSession()->pageTextContains('Document field_config Contents has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -600,16 +607,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -620,20 +628,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -647,16 +655,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -667,20 +676,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -694,16 +703,17 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     // Go back to the form.
     $this->drupalGet('/admin/config/regional/config-translation/node_fields');
@@ -719,14 +729,14 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
-    $this->assertText('Document Contents was not found. Please upload again.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertSession()->pageTextContains('Document Contents was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents uploaded successfully');
+    $this->assertSession()->pageTextContains('Contents uploaded successfully');
   }
 
   /**
@@ -740,33 +750,34 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -780,33 +791,34 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents has been updated.');
+    $this->assertSession()->pageTextContains('Contents has been updated.');
   }
 
   /**
@@ -820,32 +832,33 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('Body status checked successfully');
+    $this->assertSession()->pageTextContains('Body status checked successfully');
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
     // Edit the field.
     $edit = ['label' => 'Contents'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/node.article.body', $edit, t('Save settings'));
-    $this->assertText('Saved Contents configuration.');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.body');
+    $this->submitForm($edit, t('Save settings'));
+    $this->assertSession()->pageTextContains('Saved Contents configuration.');
 
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
-    $this->assertText('Document field_config Contents was not found. Please upload again.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertSession()->pageTextContains('Document field_config Contents was not found. Please upload again.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink(t('Translate'));
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Contents uploaded successfully');
+    $this->assertSession()->pageTextContains('Contents uploaded successfully');
   }
 
   /**
@@ -858,17 +871,18 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // Create a field.
     $edit = ['label' => 'Excerpt', 'new_storage_type' => 'text', 'field_name' => 'excerpt'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/add-field', $edit, 'Save and continue');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/add-field');
+    $this->submitForm($edit, 'Save and continue');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('The upload for field_config Excerpt failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload for field_config Excerpt failed. Please try again.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.field_excerpt');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
   }
 
   /**
@@ -884,20 +898,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -913,20 +927,20 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.body');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Body uploaded successfully');
+    $this->assertSession()->pageTextContains('Body uploaded successfully');
   }
 
   /**
@@ -939,17 +953,18 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // Create a field.
     $edit = ['label' => 'Excerpt', 'new_storage_type' => 'text', 'field_name' => 'excerpt'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/add-field', $edit, 'Save and continue');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/add-field');
+    $this->submitForm($edit, 'Save and continue');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.field_excerpt');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
   }
 
   /**
@@ -962,17 +977,18 @@ class LingotekFieldBodyTranslationTest extends LingotekTestBase {
 
     // Create a field.
     $edit = ['label' => 'Excerpt', 'new_storage_type' => 'text', 'field_name' => 'excerpt'];
-    $this->drupalPostForm('/admin/structure/types/manage/article/fields/add-field', $edit, 'Save and continue');
+    $this->drupalGet('/admin/structure/types/manage/article/fields/add-field');
+    $this->submitForm($edit, 'Save and continue');
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The field has been marked with the error status.
     $fieldConfig = FieldConfig::load('node.article.field_excerpt');
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getSourceStatus($fieldConfig);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The field has been marked as error.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekFieldOptionsTranslationTest.php b/tests/src/Functional/LingotekFieldOptionsTranslationTest.php
index fc24ac5c..c56edfed 100644
--- a/tests/src/Functional/LingotekFieldOptionsTranslationTest.php
+++ b/tests/src/Functional/LingotekFieldOptionsTranslationTest.php
@@ -22,10 +22,10 @@ class LingotekFieldOptionsTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'options', 'field_ui'];
+  protected static $modules = ['block', 'node', 'options', 'field_ui'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -63,36 +63,36 @@ class LingotekFieldOptionsTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'), 1);
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('Options uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('Options uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertTrue(array_key_exists('label', $data['field.field.node.article.field_options']));
     $this->assertTrue(array_key_exists('description', $data['field.field.node.article.field_options']));
     $this->assertTrue(array_key_exists('settings.allowed_values.0.label', $data['field.storage.node.field_options']));
     $this->assertTrue(array_key_exists('settings.allowed_values.1.label', $data['field.storage.node.field_options']));
 
-    $this->assertEqual('Options', $data['field.field.node.article.field_options']['label']);
-    $this->assertEqual('Zero', $data['field.storage.node.field_options']['settings.allowed_values.0.label']);
-    $this->assertEqual('One', $data['field.storage.node.field_options']['settings.allowed_values.1.label']);
+    $this->assertEquals('Options', $data['field.field.node.article.field_options']['label']);
+    $this->assertEquals('Zero', $data['field.storage.node.field_options']['settings.allowed_values.0.label']);
+    $this->assertEquals('One', $data['field.storage.node.field_options']['settings.allowed_values.1.label']);
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText('Options status checked successfully');
+    $this->assertSession()->pageTextContains('Options status checked successfully');
 
     $this->clickLink(t('Request translation'));
-    $this->assertText(t('Translation to es_MX requested successfully'));
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX requested successfully'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_MX status checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX status checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_MX downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_MX downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
@@ -103,10 +103,10 @@ class LingotekFieldOptionsTranslationTest extends LingotekTestBase {
     // and this alters the order. See https://www.drupal.org/project/drupal/issues/3257407.
     $index = version_compare(\Drupal::VERSION, '9.4', '>=') ? 2 : 1;
     $this->clickLink('Edit', $index);
-    $this->assertFieldByName('translation[config_names][field.field.node.article.field_options][label]', 'Opciones');
-    $this->assertFieldByName('translation[config_names][field.field.node.article.field_options][description]', 'Descripción del campo');
-    $this->assertFieldByName('translation[config_names][field.storage.node.field_options][settings][allowed_values][0][label]', 'Cero');
-    $this->assertFieldByName('translation[config_names][field.storage.node.field_options][settings][allowed_values][1][label]', 'Uno');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.field.node.article.field_options][label]', 'Opciones');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.field.node.article.field_options][description]', 'Descripción del campo');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.storage.node.field_options][settings][allowed_values][0][label]', 'Cero');
+    $this->assertSession()->fieldValueEquals('translation[config_names][field.storage.node.field_options][settings][allowed_values][1][label]', 'Uno');
   }
 
   /**
@@ -137,7 +137,8 @@ class LingotekFieldOptionsTranslationTest extends LingotekTestBase {
     $input_string = "zero|Zero\none|One";
 
     $edit = ['settings[allowed_values]' => $input_string];
-    $this->drupalPostForm($adminPath, $edit, t('Save field settings'));
+    $this->drupalGet($adminPath);
+    $this->submitForm($edit, t('Save field settings'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekGetSourceDataTest.php b/tests/src/Functional/LingotekGetSourceDataTest.php
index b0ba2ac2..c289d1ea 100644
--- a/tests/src/Functional/LingotekGetSourceDataTest.php
+++ b/tests/src/Functional/LingotekGetSourceDataTest.php
@@ -16,7 +16,7 @@ class LingotekGetSourceDataTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'image'];
+  protected static $modules = ['node', 'image'];
 
   /**
    * {@inheritdoc}
@@ -97,9 +97,9 @@ class LingotekGetSourceDataTest extends LingotekTestBase {
     $translation_service = \Drupal::service('lingotek.content_translation');
     $serialized_node = $translation_service->getSourceData($node);
     $this->assertTrue(isset($serialized_node['_lingotek_metadata']), 'The Lingotek metadata is included in the extracted data.');
-    $this->assertEqual('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
+    $this->assertEquals('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
 
     $node->setNewRevision();
     $node->setTitle($this->randomString(10));
@@ -107,9 +107,9 @@ class LingotekGetSourceDataTest extends LingotekTestBase {
 
     $serialized_node = $translation_service->getSourceData($node);
     $this->assertTrue(isset($serialized_node['_lingotek_metadata']), 'The Lingotek metadata is included in the extracted data.');
-    $this->assertEqual('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
-    $this->assertEqual(2, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata, and has changed.');
+    $this->assertEquals('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
+    $this->assertEquals(2, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata, and has changed.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekIntelligenceMetadataTranslationTest.php b/tests/src/Functional/LingotekIntelligenceMetadataTranslationTest.php
index 30278d40..2966f3a2 100644
--- a/tests/src/Functional/LingotekIntelligenceMetadataTranslationTest.php
+++ b/tests/src/Functional/LingotekIntelligenceMetadataTranslationTest.php
@@ -19,7 +19,7 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -111,26 +111,26 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
   }
 
   public function testUploadNodeWithDefaultSettings() {
@@ -157,43 +157,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 0);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], NULL);
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 0);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], NULL);
   }
 
   /**
@@ -224,43 +224,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   public function testUploadNodeWithContactEmailAsAuthorSetting() {
@@ -289,43 +289,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   public function testUploadNodeWithProfileOverride() {
@@ -355,43 +355,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('intelligent_profile', $used_profile, 'The Intelligent Profile profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'Profile Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'Profile Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'Profile Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 4);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'Profile Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'Profile Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'profile@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'Profile Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'profile-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'Profile PO42');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('intelligent_profile', $used_profile, 'The Intelligent Profile profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'Profile Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'Profile Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'Profile Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 4);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'Profile Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'Profile Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'profile@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'Profile Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'profile-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'Profile PO42');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   public function testUpdateNodeWithNoSettings() {
@@ -421,26 +421,26 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '2');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '2');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
   }
 
   public function testUpdateNodeWithDefaultSettings() {
@@ -467,43 +467,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '2');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 0);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], NULL);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], NULL);
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '2');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 0);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], NULL);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], NULL);
   }
 
   /**
@@ -537,43 +537,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '2');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '2');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   public function testUpdateNodeWithContactEmailAsAuthorSetting() {
@@ -603,43 +603,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '2');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '2');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'General Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'General Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'General Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 3);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'General Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'General Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'general@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'General Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'general-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'General PO32');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   public function testUpdateNodeWithProfileOverride() {
@@ -673,43 +673,43 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['uid']));
     $this->assertFalse(isset($data['uid'][0]['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['uid'][0]['_lingotek_metadata']['_entity_type_id'], 'user');
     $this->assertNull($data['uid'][0]['_lingotek_metadata']['_entity_revision']);
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('intelligent_profile', $used_profile, 'The Intelligent Profile profile was used.');
-
-    $this->assertEqual(4, count($data['_lingotek_metadata']));
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_revision'], '2');
-    $this->assertIdentical($data['_lingotek_metadata']['_entity_type_id'], 'node');
-
-    $this->assertEqual(17, count($data['_lingotek_metadata']['_intelligence']));
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_unit'], 'Profile Business Unit');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['business_division'], 'Profile Business Division');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'Profile Campaign ID');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 4);
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['channel'], 'Profile Channel Test');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_name'], 'Profile Test Contact Name');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['contact_email'], 'profile@example.com');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['content_description'], 'Profile Content description');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'profile-my-style-id');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'Profile PO42');
-    $this->assertIdentical($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
+    $this->assertSame('intelligent_profile', $used_profile, 'The Intelligent Profile profile was used.');
+
+    $this->assertEquals(4, count($data['_lingotek_metadata']));
+    $this->assertSame($data['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_entity_revision'], '2');
+    $this->assertSame($data['_lingotek_metadata']['_entity_type_id'], 'node');
+
+    $this->assertEquals(17, count($data['_lingotek_metadata']['_intelligence']));
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_document_id'], '1');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_type'], 'node - article');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['domain'], $domain);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['reference_url'], $this->node->toUrl()->setAbsolute(TRUE)->toString());
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_name'], 'admin');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['author_email'], 'admin@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_unit'], 'Profile Business Unit');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['business_division'], 'Profile Business Division');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_id'], 'Profile Campaign ID');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['campaign_rating'], 4);
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['channel'], 'Profile Channel Test');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_name'], 'Profile Test Contact Name');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['contact_email'], 'profile@example.com');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['content_description'], 'Profile Content description');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['external_style_id'], 'profile-my-style-id');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['purchase_order'], 'Profile PO42');
+    $this->assertSame($data['_lingotek_metadata']['_intelligence']['region'], 'region2');
   }
 
   protected function disableIntelligenceMetadata() {
@@ -732,7 +732,7 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       'intelligence_metadata[use_base_domain]' => FALSE,
       'intelligence_metadata[use_reference_url]' => FALSE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save Lingotek Intelligence Metadata', [], 'lingotekintelligence-metadata-form');
+    $this->submitForm($edit, 'Save Ray Enterprise Intelligence Metadata', 'lingotekintelligence-metadata-form');
   }
 
   protected function setupIntelligenceProfileSettings() {
@@ -774,7 +774,7 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       'intelligence_metadata[purchase_order]' => 'Profile PO42',
       'intelligence_metadata[region]' => 'region2',
     ];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
   }
 
@@ -810,14 +810,14 @@ class LingotekIntelligenceMetadataTranslationTest extends LingotekTestBase {
       'intelligence_metadata[purchase_order]' => 'General PO32',
       'intelligence_metadata[region]' => 'region2',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save Lingotek Intelligence Metadata', [], 'lingotekintelligence-metadata-form');
+    $this->submitForm($edit, 'Save Ray Enterprise Intelligence Metadata', 'lingotekintelligence-metadata-form');
   }
 
   protected function setupContactEmailForAuthorIntelligenceSettings() {
     $edit = [
       'intelligence_metadata[use_contact_email_for_author]' => TRUE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save Lingotek Intelligence Metadata', [], 'lingotekintelligence-metadata-form');
+    $this->submitForm($edit, 'Save Ray Enterprise Intelligence Metadata', 'lingotekintelligence-metadata-form');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekInterfaceTranslationTest.php b/tests/src/Functional/LingotekInterfaceTranslationTest.php
index a6d6d816..7dae3f8b 100644
--- a/tests/src/Functional/LingotekInterfaceTranslationTest.php
+++ b/tests/src/Functional/LingotekInterfaceTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'potx', 'lingotek_interface_translation_test', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'potx', 'lingotek_interface_translation_test', 'frozenintime'];
 
   /**
    * {@inheritdoc}
@@ -55,17 +55,17 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
 
     // Post the form uninstalling the lingotek module.
     $edit = ['uninstall[potx]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Uninstall');
+    $this->submitForm($edit, 'Uninstall');
 
     // We get an advice and we can confirm.
     $assert_session->responseContains('The following modules will be completely uninstalled from your site, and <em>all data from these modules will be lost</em>!');
     $assert_session->responseContains('Translation template extractor');
 
-    $this->drupalPostForm(NULL, [], 'Uninstall');
+    $this->submitForm([], 'Uninstall');
 
     $this->goToInterfaceTranslationManagementForm();
 
-    $assert_session->responseContains('The <a href="https://www.drupal.org/project/potx">potx</a> module is required for interface translation with Lingotek');
+    $assert_session->responseContains('The <a href="https://www.drupal.org/project/potx">potx</a> module is required for interface translation with Ray Enterprise');
   }
 
   /**
@@ -75,9 +75,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -87,11 +87,11 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     $assert_session->responseContains('lingotek');
     $assert_session->responseContains('lingotek_test');
     $assert_session->responseContains('lingotek_interface_translation_test');
-    $assert_session->responseContains('stark');
+    $assert_session->responseContains('starterkit_theme');
 
     // Clicking English must init the upload of content.
     $this->assertLingotekInterfaceTranslationUploadLink('core/profiles/testing');
-    $this->assertLingotekInterfaceTranslationUploadLink('core/themes/stark');
+    $this->assertLingotekInterfaceTranslationUploadLink('core/themes/starterkit_theme');
     $this->assertLingotekInterfaceTranslationUploadLink($component);
     // And we cannot request yet a translation.
     $this->assertNoLingotekInterfaceTranslationRequestTranslationLink($component, 'es_MX');
@@ -165,7 +165,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     $this->assertLingotekInterfaceTranslationRequestTranslationLink($component, 'es_MX');
     $this->clickLink('ES');
     $assert_session->responseContains('Locale \'es_MX\' was added as a translation target for <em class="placeholder">' . $component . '</em>.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekInterfaceTranslationCheckTargetStatusLink($component, 'es_MX');
@@ -206,12 +206,12 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path1 = drupal_get_path('module', 'lingotek_interface_translation_test');
-    $path2 = drupal_get_path('module', 'lingotek_test');
+    $path1 = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
+    $path2 = \Drupal::service('extension.list.module')->getPath('lingotek_test');
     $component1 = $path1;
     $component2 = $path2;
-    $indexOfModuleLink1 = 2;
-    $indexOfModuleLink2 = 3;
+    $indexOfModuleLink1 = 4;
+    $indexOfModuleLink2 = 5;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -250,10 +250,10 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     $this->clickLink('ES');
     $assert_session->responseContains('Locale \'es_MX\' was added as a translation target for <em class="placeholder">' . $component1 . '</em>.');
 
-    $this->drupalPostForm(NULL, [], 'Clear Lingotek interface translation metadata');
+    $this->submitForm([], 'Clear Ray Enterprise interface translation metadata');
     $assert_session->responseContains('This will remove the metadata stored about your Lingotek interface translations, so you will need to re-upload those in case you want to translate them.');
 
-    $this->drupalPostForm(NULL, [], 'Clear metadata');
+    $this->submitForm([], 'Clear metadata');
     $assert_session->responseContains('You have cleared the Lingotek metadata for interface translations.');
 
     // Download the Spanish translation.
@@ -283,7 +283,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
 
     $this->assertLingotekInterfaceTranslationRequestTranslationLink($component, 'ca_ES');
@@ -319,9 +319,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -342,7 +342,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     $source_status = $translation_service->getSourceStatus($component);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
     $this->assertEmpty($translation_service->getLastUploaded($component));
 
     // I can still re-try the upload.
@@ -363,9 +363,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -389,7 +389,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     $source_status = $translation_service->getSourceStatus($component);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
@@ -406,9 +406,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -432,7 +432,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     $source_status = $translation_service->getSourceStatus($component);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The source upload has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
@@ -449,9 +449,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -490,9 +490,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -528,9 +528,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -566,9 +566,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -617,9 +617,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -660,9 +660,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -694,9 +694,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -733,9 +733,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -775,9 +775,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -820,9 +820,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -835,7 +835,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
 
     $this->clickLink('EN', $indexOfModuleLink);
     $assert_session->responseContains('<em class="placeholder">' . $component . '</em> uploaded successfully');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -856,9 +856,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -871,7 +871,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
 
     $this->clickLink('EN', $indexOfModuleLink);
     $assert_session->responseContains('<em class="placeholder">' . $component . '</em> uploaded successfully');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -897,9 +897,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -912,7 +912,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
 
     $this->clickLink('EN', $indexOfModuleLink);
     $assert_session->responseContains('<em class="placeholder">' . $component . '</em> uploaded successfully');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -937,9 +937,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -954,7 +954,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
 
     $this->goToInterfaceTranslationManagementForm();
 
@@ -977,21 +977,21 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
+    dump($request);
+    $this->assertSame([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
 
     $this->goToInterfaceTranslationManagementForm();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
     // Assert the target is ready for requesting.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
 
     // Request Spanish manually.
     $this->clickLink('ES');
     // Assert the target is pending.
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
 
     // Simulate the notification of content successfully translated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1015,18 +1015,18 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertFalse($response['result']['download'], 'No targets have been downloaded after notification automatically.');
 
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_READY, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $translation_service->getTargetStatus($component, 'es'));
 
     // Download Spanish manually.
     $this->clickLink('ES');
 
     // Assert the target is downloaded.
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $translation_service->getTargetStatus($component, 'es'));
   }
 
   /**
@@ -1039,9 +1039,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -1056,7 +1056,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
 
     $this->goToInterfaceTranslationManagementForm();
 
@@ -1079,21 +1079,21 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
+    dump($request);
+    $this->assertSame([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
 
     $this->goToInterfaceTranslationManagementForm();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
     // Assert the target is ready for requesting.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
 
     // Request Spanish manually.
     $this->clickLink('ES');
     // Assert the target is pending.
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
 
     // Simulate the notification of content successfully translated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1116,12 +1116,12 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEquals($response['messages'][0], "Document $path was archived in Lingotek.");
 
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_ARCHIVED, $translation_service->getSourceStatus($component));
-    $this->assertIdentical(Lingotek::STATUS_ARCHIVED, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_ARCHIVED, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_ARCHIVED, $translation_service->getTargetStatus($component, 'es'));
 
     $link = $this->xpath("//span[@class='language-icon target-archived' and @title='Spanish - This target was archived in Lingotek.' and text()='ES']");
     $this->assertEquals(1, count($link), 'Span exists.');
@@ -1136,9 +1136,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
 
     // In Drupal.org CI the module will be at modules/conrtib/lingotek.
     // We need to generate the path and not hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -1153,7 +1153,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
 
     $this->goToInterfaceTranslationManagementForm();
 
@@ -1176,21 +1176,21 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
+    dump($request);
+    $this->assertSame([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
 
     $this->goToInterfaceTranslationManagementForm();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
     // Assert the target is ready for requesting.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
 
     // Request Spanish manually.
     $this->clickLink('ES');
     // Assert the target is pending.
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
 
     // Simulate the notification of document deleted.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1212,12 +1212,12 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEquals($response['messages'][0], "Document for entity $path deleted by user@example.com in the TMS.");
 
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_DELETED, $translation_service->getSourceStatus($component));
-    $this->assertIdentical(Lingotek::STATUS_DELETED, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_DELETED, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_DELETED, $translation_service->getTargetStatus($component, 'es'));
 
     $link = $this->xpath("//span[@class='language-icon target-deleted' and @title='Spanish - This target was deleted in Lingotek.' and text()='ES']");
     $this->assertEquals(1, count($link), 'Span exists.');
@@ -1233,9 +1233,9 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     // In Drupal.org CI the module will be at modules/contrib/lingotek.
     // In my local that's modules/lingotek. We need to generate the path and not
     // hardcode it.
-    $path = drupal_get_path('module', 'lingotek_interface_translation_test');
+    $path = \Drupal::service('extension.list.module')->getPath('lingotek_interface_translation_test');
     $component = $path;
-    $indexOfModuleLink = 2;
+    $indexOfModuleLink = 4;
     $assert_session = $this->assertSession();
     // Login as admin.
     $this->drupalLogin($this->rootUser);
@@ -1250,7 +1250,7 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekInterfaceTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.interface_translation');
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $translation_service->getSourceStatus($component));
 
     $this->goToInterfaceTranslationManagementForm();
 
@@ -1273,21 +1273,21 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
+    dump($request);
+    $this->assertSame([], $response['result']['request_translations'], 'No translations have been requested after notification automatically.');
 
     $this->goToInterfaceTranslationManagementForm();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $translation_service->getSourceStatus($component));
     // Assert the target is ready for requesting.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $translation_service->getTargetStatus($component, 'es'));
 
     // Request Spanish manually.
     $this->clickLink('ES');
     // Assert the target is pending.
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $translation_service->getTargetStatus($component, 'es'));
 
     // Simulate the notification of content successfully translated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1310,11 +1310,11 @@ class LingotekInterfaceTranslationTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEquals($response['messages'][0], "Document $path cancelled in TMS.");
 
     $this->goToInterfaceTranslationManagementForm();
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $translation_service->getTargetStatus($component, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $translation_service->getTargetStatus($component, 'es'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekJobManagementTests.php b/tests/src/Functional/LingotekJobManagementTests.php
index 07bd6cf6..60a05640 100644
--- a/tests/src/Functional/LingotekJobManagementTests.php
+++ b/tests/src/Functional/LingotekJobManagementTests.php
@@ -26,7 +26,7 @@ class LingotekJobManagementTests extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'taxonomy'];
+  protected static $modules = ['block', 'node', 'taxonomy'];
 
   /**
    * @var \Drupal\taxonomy\VocabularyInterface
@@ -113,7 +113,7 @@ class LingotekJobManagementTests extends LingotekTestBase {
     $assert_session->linkExists('Translation Jobs');
     $this->clickLink('Translation Jobs');
 
-    $this->assertText('There are no translation jobs. Use the Content or Config tabs to assign them.');
+    $this->assertSession()->pageTextContains('There are no translation jobs. Use the Content or Config tabs to assign them.');
   }
 
   public function testJobTranslationTab() {
@@ -124,13 +124,13 @@ class LingotekJobManagementTests extends LingotekTestBase {
     $assert_session->linkExists('Translation Jobs');
     $this->clickLink('Translation Jobs');
 
-    $this->assertText('my-test-job-id-1');
-    $this->assertText('3 content items, 1 config items');
+    $this->assertSession()->pageTextContains('my-test-job-id-1');
+    $this->assertSession()->pageTextContains('3 content items, 1 config items');
     $assert_session->linkExists('View translation job', 0);
-    $this->assertLinkByHref('/admin/lingotek/job/my-test-job-id-1');
+    $this->assertSession()->linkByHrefExists('/admin/lingotek/job/my-test-job-id-1');
 
-    $this->assertText('my-test-job-id-2');
-    $this->assertText('1 content items, 0 config items');
+    $this->assertSession()->pageTextContains('my-test-job-id-2');
+    $this->assertSession()->pageTextContains('1 content items, 0 config items');
     $assert_session->linkExists('View translation job', 1);
     $assert_session->linkByHrefExists('/admin/lingotek/job/my-test-job-id-2');
   }
@@ -140,7 +140,6 @@ class LingotekJobManagementTests extends LingotekTestBase {
 
     $this->createContent();
     $this->drupalGet('/admin/lingotek/job/my-test-job-id-1');
-
     // Assert tabs.
     $assert_session->linkExists('Job my-test-job-id-1 Content');
     $assert_session->linkExists('Job my-test-job-id-1 Config');
@@ -158,8 +157,8 @@ class LingotekJobManagementTests extends LingotekTestBase {
     $assert_session->linkNotExists('Awesome');
 
     // Assert the fields are not there.
-    $this->assertNoField('show_advanced');
-    $this->assertNoField('job_id');
+    $this->assertSession()->fieldNotExists('show_advanced');
+    $this->assertSession()->fieldNotExists('job_id');
   }
 
   public function testJobTranslationConfigTab() {
@@ -178,12 +177,12 @@ class LingotekJobManagementTests extends LingotekTestBase {
     $this->assertSame('Job my-test-job-id-1 Configuration', $this->xpath('//h1')[0]->getText());
 
     // Assert config listed.
-    $this->assertText('System information');
-    $this->assertNoText('Account settings');
+    $this->assertSession()->pageTextContains('System information');
+    $this->assertSession()->pageTextNotContains('Account settings');
 
     // Assert the fields are not there.
-    $this->assertNoField('filters[wrapper][job_id]');
-    $this->assertNoField('job_id');
+    $this->assertSession()->fieldNotExists('filters[wrapper][job_id]');
+    $this->assertSession()->fieldNotExists('job_id');
   }
 
   public function testJobTranslationContentTabHasOwnFilter() {
@@ -205,8 +204,8 @@ class LingotekJobManagementTests extends LingotekTestBase {
 
     // Let's see the differences in the regular config tab.
     $this->goToConfigBulkManagementForm();
-    $this->assertText('System information');
-    $this->assertText('Account settings');
+    $this->assertSession()->pageTextContains('System information');
+    $this->assertSession()->pageTextContains('Account settings');
   }
 
   protected function createContent() {
diff --git a/tests/src/Functional/LingotekLocaleTest.php b/tests/src/Functional/LingotekLocaleTest.php
index 4b5d5f72..6a9b1fb2 100644
--- a/tests/src/Functional/LingotekLocaleTest.php
+++ b/tests/src/Functional/LingotekLocaleTest.php
@@ -21,23 +21,23 @@ class LingotekLocaleTest extends BrowserTestBase {
 
   public function testConvertDrupal2Lingotek() {
     // ToDo: Improve testing coverage.
-    $this->assertIdentical('zh-hans', LingotekLocale::convertLingotek2Drupal('zh_CN'));
+    $this->assertSame('zh-hans', LingotekLocale::convertLingotek2Drupal('zh_CN'));
   }
 
   public function testConvertLingotek2Drupal() {
     // ToDo: Improve testing coverage.
-    $this->assertIdentical('zh_CN', LingotekLocale::convertDrupal2Lingotek('zh-hans'));
+    $this->assertSame('zh_CN', LingotekLocale::convertDrupal2Lingotek('zh-hans'));
   }
 
   public function testGenerateLingotek2Drupal() {
     $language = LingotekLocale::generateLingotek2Drupal('es_ES');
-    $this->assertEqual('es', $language);
+    $this->assertEquals('es', $language);
 
     $language = LingotekLocale::generateLingotek2Drupal('de-AT');
-    $this->assertEqual('de', $language);
+    $this->assertEquals('de', $language);
 
     $language = LingotekLocale::generateLingotek2Drupal('ar');
-    $this->assertEqual('ar', $language);
+    $this->assertEquals('ar', $language);
   }
 
 }
diff --git a/tests/src/Functional/LingotekLongTextFieldImportTest.php b/tests/src/Functional/LingotekLongTextFieldImportTest.php
index 78c16a2e..ba468434 100644
--- a/tests/src/Functional/LingotekLongTextFieldImportTest.php
+++ b/tests/src/Functional/LingotekLongTextFieldImportTest.php
@@ -91,14 +91,14 @@ class LingotekLongTextFieldImportTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
 
     // There is a link for checking status.
@@ -107,25 +107,25 @@ class LingotekLongTextFieldImportTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -134,7 +134,7 @@ class LingotekLongTextFieldImportTest extends LingotekTestBase {
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+long_text');
@@ -155,11 +155,11 @@ class LingotekLongTextFieldImportTest extends LingotekTestBase {
 
     $this->drupalGet('es/node/1');
     $result = \Drupal::database()->query('SELECT * FROM {node__long_text}')->fetchAll();
-    $this->assertEqual(count($result),2);
+    $this->assertEquals(count($result),2);
     $sourceResult = json_decode(json_encode($result[0]), true);
     $targetResult = json_decode(json_encode($result[1]), true);
-    $this->assertEqual($sourceResult['long_text_format'],'plain_text');
-    $this->assertEqual($targetResult['long_text_format'],'plain_text');
+    $this->assertEquals($sourceResult['long_text_format'],'plain_text');
+    $this->assertEquals($targetResult['long_text_format'],'plain_text');
 
   }
 
diff --git a/tests/src/Functional/LingotekManageLingotekTranslationsPermissionTest.php b/tests/src/Functional/LingotekManageLingotekTranslationsPermissionTest.php
index 325b455e..c9d149e3 100644
--- a/tests/src/Functional/LingotekManageLingotekTranslationsPermissionTest.php
+++ b/tests/src/Functional/LingotekManageLingotekTranslationsPermissionTest.php
@@ -17,7 +17,7 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['lingotek', 'lingotek_test', 'node', 'toolbar', 'block'];
+  protected static $modules = ['lingotek', 'lingotek_test', 'node', 'toolbar', 'block'];
 
   /**
    * {@inheritdoc}
@@ -71,7 +71,7 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     // Get the settings form.
     $this->drupalGet('admin/lingotek/settings');
     // Assert translation profile can be assigned.
-    $this->assertNoText('You are not authorized to access this page.');
+    $this->assertSession()->pageTextNotContains('You are not authorized to access this page.');
 
     $user = $this->drupalCreateUser([
       'assign lingotek translation profiles',
@@ -82,7 +82,7 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     // Get the settings form.
     $this->drupalGet('admin/lingotek/settings');
     // Assert translation profile cannot be assigned.
-    $this->assertText('You are not authorized to access this page.');
+    $this->assertSession()->pageTextContains('You are not authorized to access this page.');
   }
 
   /**
@@ -103,13 +103,17 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     // Assert in the configuration panes we have access to Lingotek Translation.
     $this->clickLink('Configuration');
 
-    $this->assertText('Regional and language');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      $this->assertSession()->pageTextContains('Region and language');
+    } else {
+      $this->assertSession()->pageTextContains('Regional and language');
+    }
     $this->clickLink('Lingotek Translation');
 
     // Assert we see the dashboard and can navigate to content.
     $assert_session->linkExists('Content');
     $this->clickLink('Content');
-    $this->assertText('Manage Translations');
+    $this->assertSession()->pageTextContains('Manage Translations');
   }
 
   /**
@@ -130,7 +134,11 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     // Assert in the configuration panes we have access to Lingotek Translation.
     $this->clickLink('Configuration');
 
-    $this->assertText('Regional and language');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      $this->assertSession()->pageTextContains('Region and language');
+    } else {
+      $this->assertSession()->pageTextContains('Regional and language');
+    }
     $this->clickLink('Lingotek Translation');
 
     // Config shouldn't be visible unless we can translate settings too.
@@ -160,13 +168,17 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     // Assert in the configuration panes we have access to Lingotek Translation.
     $this->clickLink('Configuration');
 
-    $this->assertText('Regional and language');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      $this->assertSession()->pageTextContains('Region and language');
+    } else {
+      $this->assertSession()->pageTextContains('Regional and language');
+    }
     $this->clickLink('Lingotek Translation');
 
     // Assert we see the dashboard and can navigate to config.
     $assert_session->linkExists('Config');
     $this->clickLink('Config');
-    $this->assertText('Manage Configuration Translation');
+    $this->assertSession()->pageTextContains('Manage Configuration Translation');
   }
 
   /**
@@ -182,15 +194,15 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
     $request = $this->drupalGet(Url::fromRoute('lingotek.dashboard_endpoint', [], ['absolute' => TRUE]));
 
     $response = json_decode($request, TRUE);
-    $this->verbose(var_export($response, TRUE));
-    $this->assertIdentical('GET', $response['method']);
-    $this->assertIdentical(2, $response['count']);
-    $this->assertIdentical('en', $response['languages']['en_US']['xcode']);
-    $this->assertIdentical(1, $response['languages']['en_US']['active']);
-    $this->assertIdentical(1, $response['languages']['en_US']['enabled']);
-    $this->assertIdentical('es', $response['languages']['es_ES']['xcode']);
-    $this->assertIdentical(1, $response['languages']['es_ES']['active']);
-    $this->assertIdentical(1, $response['languages']['es_ES']['enabled']);
+    dump(var_export($response, TRUE));
+    $this->assertSame('GET', $response['method']);
+    $this->assertSame(2, $response['count']);
+    $this->assertSame('en', $response['languages']['en_US']['xcode']);
+    $this->assertSame(1, $response['languages']['en_US']['active']);
+    $this->assertSame(1, $response['languages']['en_US']['enabled']);
+    $this->assertSame('es', $response['languages']['es_ES']['xcode']);
+    $this->assertSame(1, $response['languages']['es_ES']['active']);
+    $this->assertSame(1, $response['languages']['es_ES']['enabled']);
   }
 
   /**
@@ -223,7 +235,7 @@ class LingotekManageLingotekTranslationsPermissionTest extends LingotekTestBase
 
     // We don't have any operations or actions available.
     $assert_session->linkNotExists('Upload');
-    $this->assertNoFieldByName('op');
+    $this->assertSession()->fieldNotExists('op');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekManagementTestTrait.php b/tests/src/Functional/LingotekManagementTestTrait.php
index 3998b99d..366ea2f8 100644
--- a/tests/src/Functional/LingotekManagementTestTrait.php
+++ b/tests/src/Functional/LingotekManagementTestTrait.php
@@ -25,7 +25,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -46,7 +46,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertNoLinkByHref($href);
+    $this->assertSession()->linkByHrefNotExists($href);
   }
 
   /**
@@ -67,7 +67,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -88,7 +88,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -109,7 +109,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertNoLinkByHref($href);
+    $this->assertSession()->linkByHrefNotExists($href);
   }
 
   /**
@@ -132,7 +132,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -155,7 +155,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertNoLinkByHref($href);
+    $this->assertSession()->linkByHrefNotExists($href);
   }
 
   /**
@@ -178,7 +178,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -201,7 +201,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertNoLinkByHref($href);
+    $this->assertSession()->linkByHrefNotExists($href);
   }
 
   /**
@@ -224,7 +224,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertLinkByHref($href);
+    $this->assertSession()->linkByHrefExists($href);
   }
 
   /**
@@ -247,7 +247,7 @@ trait LingotekManagementTestTrait {
     if ($destination = $this->getDestination($destination_entity_type_id, $prefix)) {
       $href .= $destination;
     }
-    $this->assertNoLinkByHref($href);
+    $this->assertSession()->linkByHrefNotExists($href);
   }
 
   /**
@@ -260,12 +260,12 @@ trait LingotekManagementTestTrait {
    */
   protected function assertLingotekWorkbenchLink($locale, $document_id = 'dummy-document-hash-id', $text = NULL) {
     $basepath = \Drupal::request()->getBasePath();
-    $this->assertLinkByHref($basepath . '/admin/lingotek/workbench/' . $document_id . '/' . $locale);
+    $this->assertSession()->linkByHrefExists($basepath . '/admin/lingotek/workbench/' . $document_id . '/' . $locale);
     $workbench_link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/$document_id/$locale' and @target='_blank']");
     if ($text !== NULL) {
       $workbench_link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/$document_id/$locale' and @target='_blank' and text()='$text']");
     }
-    $this->assertEqual(count($workbench_link), 1, 'Workbench links open in a new tab.');
+    $this->assertEquals(count($workbench_link), 1, 'Workbench links open in a new tab.');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekModuleInstallationTest.php b/tests/src/Functional/LingotekModuleInstallationTest.php
index 1dc7b930..0f01a8d0 100644
--- a/tests/src/Functional/LingotekModuleInstallationTest.php
+++ b/tests/src/Functional/LingotekModuleInstallationTest.php
@@ -27,18 +27,18 @@ class LingotekModuleInstallationTest extends BrowserTestBase {
     $this->drupalGet('/admin/modules');
 
     // Ensure the module is not enabled yet.
-    $this->assertNoFieldChecked('edit-modules-lingotek-enable');
+    $this->assertSession()->checkboxNotChecked('edit-modules-lingotek-enable');
 
     // Post the form enabling the lingotek module.
     $edit = ['modules[lingotek][enable]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Install');
+    $this->submitForm($edit, 'Install');
 
     // Dependencies installation is requested.
-    $this->assertText('Some required modules must be enabled');
-    $this->drupalPostForm(NULL, [], 'Continue');
+    $this->assertSession()->pageTextContains('Some required modules must be enabled');
+    $this->submitForm([], 'Continue');
 
     // The module is enabled successfully with its dependencies.
-    $this->assertText('modules have been enabled: Lingotek Translation');
+    $this->assertSession()->pageTextContains('modules have been enabled: Ray Enterprise Translation');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekModuleUninstallationTest.php b/tests/src/Functional/LingotekModuleUninstallationTest.php
index 2d2d3520..d627d0ac 100644
--- a/tests/src/Functional/LingotekModuleUninstallationTest.php
+++ b/tests/src/Functional/LingotekModuleUninstallationTest.php
@@ -44,14 +44,14 @@ class LingotekModuleUninstallationTest extends BrowserTestBase {
 
     // Post the form uninstalling the lingotek module.
     $edit = ['uninstall[lingotek]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Uninstall');
+    $this->submitForm($edit, 'Uninstall');
 
     // We get an advice and we can confirm.
-    $this->assertText('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
+    $this->assertSession()->pageTextContains('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
     $this->assertSession()->responseContains('The listed configuration will be deleted.');
     $this->assertSession()->responseContains('Lingotek Profile');
 
-    $this->drupalPostForm(NULL, [], 'Uninstall');
+    $this->submitForm([], 'Uninstall');
 
     $this->assertSession()->responseContains('The selected modules have been uninstalled.');
   }
diff --git a/tests/src/Functional/LingotekModuleUninstallationWithDataTest.php b/tests/src/Functional/LingotekModuleUninstallationWithDataTest.php
index bd62c9ad..5d29e917 100644
--- a/tests/src/Functional/LingotekModuleUninstallationWithDataTest.php
+++ b/tests/src/Functional/LingotekModuleUninstallationWithDataTest.php
@@ -15,7 +15,7 @@ class LingotekModuleUninstallationWithDataTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -69,40 +69,40 @@ class LingotekModuleUninstallationWithDataTest extends LingotekTestBase {
 
     $this->assertSession()->fieldDisabled('edit-uninstall-lingotek');
     // Plural reasons.
-    $this->assertText('The following reasons prevent Lingotek Translation from being uninstalled:');
+    $this->assertSession()->pageTextContains('The following reasons prevent Ray Enterprise Translation from being uninstalled:');
 
     // Post the form uninstalling the lingotek_test module.
     $edit = ['uninstall[lingotek_test]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Uninstall');
-    $this->drupalPostForm(NULL, [], 'Uninstall');
-    $this->assertText('The selected modules have been uninstalled.');
+    $this->submitForm($edit, 'Uninstall');
+    $this->submitForm([], 'Uninstall');
+    $this->assertSession()->pageTextContains('The selected modules have been uninstalled.');
 
     // Singular reason.
-    $this->assertText('The following reason prevents Lingotek Translation from being uninstalled:');
-    $this->assertText('There is content for the entity type: Lingotek Content Metadata');
+    $this->assertSession()->pageTextContains('The following reason prevents Ray Enterprise Translation from being uninstalled:');
+    $this->assertSession()->pageTextContains('There is content for the entity type: Lingotek Content Metadata');
     $assert_session->linkExists('Remove lingotek content metadata entities');
 
     $this->assertSession()->fieldDisabled('edit-uninstall-lingotek');
 
     $this->clickLink('Remove lingotek content metadata entities');
-    $this->assertText('Are you sure you want to delete all lingotek content metadata entities?');
-    $this->assertText('This will delete 1 lingotek content metadata.');
-    $this->drupalPostForm(NULL, [], 'Delete all lingotek content metadata entities');
+    $this->assertSession()->pageTextContains('Are you sure you want to delete all lingotek content metadata entities?');
+    $this->assertSession()->pageTextContains('This will delete 1 lingotek content metadata.');
+    $this->submitForm([], 'Delete all lingotek content metadata entities');
 
     $this->assertFalse($this->getSession()->getPage()->findField('edit-uninstall-lingotek')->hasAttribute('disabled'));
 
     // Post the form uninstalling the lingotek module.
     $edit = ['uninstall[lingotek]' => '1'];
-    $this->drupalPostForm(NULL, $edit, 'Uninstall');
+    $this->submitForm($edit, 'Uninstall');
 
     // We get an advice and we can confirm.
-    $this->assertText('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
-    $this->assertText('The listed configuration will be deleted.');
-    $this->assertText('Lingotek Profile');
+    $this->assertSession()->pageTextContains('The following modules will be completely uninstalled from your site, and all data from these modules will be lost!');
+    $this->assertSession()->pageTextContains('The listed configuration will be deleted.');
+    $this->assertSession()->pageTextContains('Lingotek Profile');
 
-    $this->drupalPostForm(NULL, [], 'Uninstall');
+    $this->submitForm([], 'Uninstall');
 
-    $this->assertText('The selected modules have been uninstalled.');
+    $this->assertSession()->pageTextContains('The selected modules have been uninstalled.');
   }
 
   /**
@@ -127,31 +127,31 @@ class LingotekModuleUninstallationWithDataTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
   }
 
diff --git a/tests/src/Functional/LingotekNodeBulkCancelTest.php b/tests/src/Functional/LingotekNodeBulkCancelTest.php
index b7ccc895..00aee743 100644
--- a/tests/src/Functional/LingotekNodeBulkCancelTest.php
+++ b/tests/src/Functional/LingotekNodeBulkCancelTest.php
@@ -19,7 +19,7 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -73,18 +73,18 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $content_translation_service */
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert that The document has been cancelled remotely.
     $cancelled_docs = \Drupal::state()->get('lingotek.cancelled_docs', []);
-    $this->assertEqual(1, count($cancelled_docs), 'The document has been cancelled remotely.');
+    $this->assertEquals(1, count($cancelled_docs), 'The document has been cancelled remotely.');
 
     // Assert that no document has been deleted remotely.
     $deleted_docs = \Drupal::state()->get('lingotek.deleted_docs', []);
-    $this->assertEqual(0, count($deleted_docs), 'No document has been deleted remotely.');
+    $this->assertEquals(0, count($deleted_docs), 'No document has been deleted remotely.');
 
     $node = Node::load(1);
     $this->assertNull($content_translation_service->getDocumentId($node));
@@ -92,8 +92,8 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
 
     // We can request again.
     $this->assertLingotekUploadLink();
@@ -127,7 +127,7 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $content_translation_service */
     $content_translation_service = \Drupal::service('lingotek.content_translation');
@@ -143,8 +143,8 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($entity));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($entity, 'es'));
 
     // We cannot request again.
     $this->assertNoLingotekRequestTranslationLink('es_ES');
@@ -176,7 +176,7 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $content_translation_service */
     $content_translation_service = \Drupal::service('lingotek.content_translation');
@@ -192,10 +192,10 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CURRENT);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($entity));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($entity));
 
-    $this->assertText('Target es for node Llamas are cool was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($entity, 'es'));
+    $this->assertSession()->pageTextContains('Target es for node Llamas are cool was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($entity, 'es'));
   }
 
   protected function createAndTranslateNodeWithLinks() {
@@ -203,23 +203,23 @@ class LingotekNodeBulkCancelTest extends LingotekTestBase {
 
     // Clicking English must init the upload of content.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // There is a link for checking status.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('The es_ES translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_ES has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_ES has been downloaded.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeBulkDebugTest.php b/tests/src/Functional/LingotekNodeBulkDebugTest.php
index 2c9b7cb4..f52d97c0 100644
--- a/tests/src/Functional/LingotekNodeBulkDebugTest.php
+++ b/tests/src/Functional/LingotekNodeBulkDebugTest.php
@@ -18,10 +18,10 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -63,7 +63,7 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Back to the bulk node management page.
     $this->goToContentBulkManagementForm();
@@ -86,7 +86,7 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     $this->goToContentBulkManagementForm();
 
@@ -95,18 +95,18 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'debug_export',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Exports available');
+    $this->assertSession()->pageTextContains('Exports available');
     // Download the file.
     $this->clickLink('node.article.1.json');
 
     $response = json_decode($this->getSession()->getPage()->getContent(), TRUE);
-    $this->assertIdentical('Llamas are cool', $response['title'][0]['value']);
-    $this->assertIdentical('Llamas are very cool', $response['body'][0]['value']);
-    $this->assertIdentical('article (node): Llamas are cool', $response['_debug']['title']);
-    $this->assertIdentical('manual', $response['_debug']['profile']);
-    $this->assertIdentical('en_US', $response['_debug']['source_locale']);
+    $this->assertSame('Llamas are cool', $response['title'][0]['value']);
+    $this->assertSame('Llamas are very cool', $response['body'][0]['value']);
+    $this->assertSame('article (node): Llamas are cool', $response['_debug']['title']);
+    $this->assertSame('manual', $response['_debug']['profile']);
+    $this->assertSame('en_US', $response['_debug']['source_locale']);
   }
 
   public function testDebugExportError() {
@@ -122,7 +122,7 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     $this->goToContentBulkManagementForm();
 
@@ -131,10 +131,10 @@ class LingotekNodeBulkDebugTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'debug_export',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('The Article Llamas are cool has no profile assigned so it was not processed.');
-    $this->assertNoText('Exports available');
+    $this->assertSession()->pageTextContains('The Article Llamas are cool has no profile assigned so it was not processed.');
+    $this->assertSession()->pageTextNotContains('Exports available');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeBulkDisabledTargetOverrideTranslationTest.php b/tests/src/Functional/LingotekNodeBulkDisabledTargetOverrideTranslationTest.php
index 831c2c50..1ade3c34 100644
--- a/tests/src/Functional/LingotekNodeBulkDisabledTargetOverrideTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeBulkDisabledTargetOverrideTranslationTest.php
@@ -17,7 +17,7 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * A node.
@@ -95,8 +95,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
     $this->assertNoLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -106,7 +106,7 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
     $this->assertLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     $this->assertNoLingotekRequestTranslationLink('ca_ES');
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -136,8 +136,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
     $this->assertNoLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -147,11 +147,11 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertNoLingotekRequestTranslationLink('ca_ES');
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -165,13 +165,13 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('ca', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.added_target_locale'));
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -183,8 +183,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('ca', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -197,8 +197,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('ca', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_REQUEST);
@@ -230,11 +230,11 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -243,11 +243,11 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertNoLingotekRequestTranslationLink('ca_ES');
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -261,11 +261,11 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(['dummy-document-hash-id' => ['es_MX']], \Drupal::state()
       ->get('lingotek.requested_locales'));
 
-    $this->assertText('Operations completed.');
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     $this->assertTargetStatus('es', Lingotek::STATUS_PENDING);
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -277,8 +277,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_READY);
@@ -291,8 +291,8 @@ class LingotekNodeBulkDisabledTargetOverrideTranslationTest extends LingotekTest
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $this->assertTargetStatus('es', Lingotek::STATUS_CURRENT);
diff --git a/tests/src/Functional/LingotekNodeBulkLocaleTranslationTest.php b/tests/src/Functional/LingotekNodeBulkLocaleTranslationTest.php
index 702f549d..38ef5ec0 100644
--- a/tests/src/Functional/LingotekNodeBulkLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeBulkLocaleTranslationTest.php
@@ -16,12 +16,12 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'comment'];
+  protected static $modules = ['node', 'comment'];
 
   /**
    * The node.
    *
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -84,14 +84,14 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
     $this->assertLingotekRequestTranslationLink('es_ES');
     $this->assertLingotekRequestTranslationLink('es_AR');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
     $this->clickLink('DE-AT');
-    $this->assertText("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
 
@@ -99,29 +99,29 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
     $this->assertLingotekRequestTranslationLink('es_ES');
     $this->assertLingotekRequestTranslationLink('es_AR');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_AR');
     $this->clickLink('ES');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_AR');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'ES');
 
     // Check that the order of target languages is always alphabetical.
     $target_links = $this->xpath("//a[contains(@class,'language-icon')]");
-    $this->assertEqual(count($target_links), 3, 'The three languages appear as targets');
-    $this->assertEqual('DE-AT', $target_links[0]->getHtml(), 'DE-AT is the first language');
-    $this->assertEqual('ES', $target_links[1]->getHtml(), 'ES is the second language');
-    $this->assertEqual('ES-ES', $target_links[2]->getHtml(), 'ES-ES is the third language');
+    $this->assertEquals(count($target_links), 3, 'The three languages appear as targets');
+    $this->assertEquals('DE-AT', $target_links[0]->getHtml(), 'DE-AT is the first language');
+    $this->assertEquals('ES', $target_links[1]->getHtml(), 'ES is the second language');
+    $this->assertEquals('ES-ES', $target_links[2]->getHtml(), 'ES-ES is the third language');
   }
 
   /**
@@ -149,7 +149,7 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
     $this->clickLink('DE-AT');
-    $this->assertText("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
 
     // Check that the source status has been updated.
     $this->assertNoLingotekCheckSourceStatusLink();
@@ -180,16 +180,16 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
     $this->clickLink('ES-ES');
-    $this->assertText("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
     $this->clickLink('DE-AT');
-    $this->assertText("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
 
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertTargetStatus('DE-AT', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES-ES', Lingotek::STATUS_CURRENT);
@@ -222,16 +222,16 @@ class LingotekNodeBulkLocaleTranslationTest extends LingotekTestBase {
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
     $this->clickLink('ES-ES');
-    $this->assertText("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for node Llamas are cool.");
     $this->clickLink('DE-AT');
-    $this->assertText("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'de_AT' was added as a translation target for node Llamas are cool.");
 
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertTargetStatus('DE-AT', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES-ES', Lingotek::STATUS_CURRENT);
diff --git a/tests/src/Functional/LingotekNodeBulkProfileTest.php b/tests/src/Functional/LingotekNodeBulkProfileTest.php
index d1e6111e..2707c98d 100644
--- a/tests/src/Functional/LingotekNodeBulkProfileTest.php
+++ b/tests/src/Functional/LingotekNodeBulkProfileTest.php
@@ -19,10 +19,10 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -82,8 +82,8 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -94,11 +94,11 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Manual Profile
     $manual_profile = $this->xpath("//td[contains(text(), 'Manual')]");
-    $this->assertEqual(count($manual_profile), 3, 'There are three nodes with the Manual Profile set.');
+    $this->assertEquals(count($manual_profile), 3, 'There are three nodes with the Manual Profile set.');
 
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
@@ -107,24 +107,24 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
+    $this->assertEquals(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
 
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:manual',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there is one node with the Manual Profile
     // Check that there are two nodes with the Automatic Profile
     $manual_profile = $this->xpath("//td[contains(text(), 'Manual')]");
-    $this->assertEqual(count($manual_profile), 1, 'There is one node with the Manual Profile set.');
+    $this->assertEquals(count($manual_profile), 1, 'There is one node with the Manual Profile set.');
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 2, 'There are two nodes with the Automatic Profile set.');
+    $this->assertEquals(count($automatic_profile), 2, 'There are two nodes with the Automatic Profile set.');
 
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
@@ -133,11 +133,11 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:disabled',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Disabled Profile
     $disabled_profile = $this->xpath("//td[contains(text(), 'Disabled')]");
-    $this->assertEqual(count($disabled_profile), 3, 'There are three nodes with the Disabled Profile set.');
+    $this->assertEquals(count($disabled_profile), 3, 'There are three nodes with the Disabled Profile set.');
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $content_translation_service */
     $content_translation_service = \Drupal::service('lingotek.content_translation');
@@ -145,9 +145,9 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
     $this->goToContentBulkManagementForm();
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
@@ -156,13 +156,13 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -172,13 +172,13 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -188,13 +188,13 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -204,13 +204,13 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -220,13 +220,13 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -236,20 +236,20 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
+    $this->assertEquals(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -259,16 +259,16 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -278,16 +278,16 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -297,16 +297,16 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -316,16 +316,16 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     $key = $this->getBulkSelectionKey('en', 1);
@@ -335,16 +335,16 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     \Drupal::entityTypeManager()->getStorage('node')->resetCache();
     \Drupal::entityTypeManager()->getStorage('lingotek_content_metadata')->resetCache();
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     // Edit the nodes.
@@ -360,9 +360,9 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_DISABLED, $content_translation_service->getTargetStatus($node, 'es'));
     }
 
     // Edit the nodes.
@@ -378,9 +378,9 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
 
     for ($i = 1; $i < 4; $i++) {
       $node = Node::load($i);
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-      $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
-      $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+      $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'en'));
+      $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
     }
   }
 
@@ -417,7 +417,7 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $key = $this->getBulkSelectionKey('en', 1);
     $edit = [
@@ -426,11 +426,11 @@ class LingotekNodeBulkProfileTest extends LingotekTestBase {
       'table[3]' => TRUE,
       $this->getBulkOperationFormName() => 'change_profile:automatic',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that there are three nodes with the Automatic Profile
     $automatic_profile = $this->xpath("//td[contains(text(), 'Automatic')]");
-    $this->assertEqual(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
+    $this->assertEquals(count($automatic_profile), 3, 'There are three nodes with the Automatic Profile set.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeBulkTranslationTest.php b/tests/src/Functional/LingotekNodeBulkTranslationTest.php
index 2a4a03de..0a5e1c20 100644
--- a/tests/src/Functional/LingotekNodeBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeBulkTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * A node.
@@ -85,8 +85,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $this->assertNoLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -95,27 +95,27 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $this->assertLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -143,7 +143,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Pages are cool';
     $edit['body[0][value]'] = 'Pages are very cool';
     $edit['langcode[0][value]'] = 'en';
-    $this->drupalPostForm('node/add/page', $edit, t('Save'));
+    $this->drupalGet('node/add/page');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm();
 
@@ -173,7 +174,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Pages are cool';
     $edit['body[0][value]'] = 'Pages are very cool';
     $edit['langcode[0][value]'] = 'en';
-    $this->drupalPostForm('node/add/page', $edit, t('Save'));
+    $this->drupalGet('node/add/page');
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm();
 
@@ -182,9 +184,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.uploaded_locale'));
     $assert_session->pageTextContains('Cannot upload Page Pages are cool. That Content type is not enabled for Lingotek translation.');
   }
@@ -221,8 +223,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -232,7 +234,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT');
@@ -241,8 +243,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the German (AT) translation.
@@ -252,8 +254,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
 
     // Download the Spanish translation.
@@ -263,8 +265,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -301,8 +303,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -312,7 +314,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all translations.
     $this->assertLingotekRequestTranslationLink('de_AT');
@@ -323,8 +325,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check all statuses.
@@ -335,7 +337,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all translations.
     $this->assertLingotekDownloadTargetLink('de_AT');
@@ -345,8 +347,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -416,7 +418,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all translations.
     $this->assertLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id-1');
@@ -426,8 +428,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -462,7 +464,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Ensure that the statuses are set to PENDING since the source has been
     // reuploaded and the targets are being translated. It is possible that
@@ -519,7 +521,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id');
@@ -529,7 +531,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all the translations.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
@@ -541,7 +543,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check status of all the translations.
     $this->assertLingotekCheckTargetStatusLink('de_AT', 'dummy-document-hash-id');
@@ -553,7 +555,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all the translations.
     $this->assertLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id');
@@ -566,7 +568,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key2 => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   public function testAddContentLinkPresent() {
@@ -582,7 +584,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $this->clickLink('Add content');
 
     // And we should have been redirected to the article form.
-    $this->assertUrl(Url::fromRoute('node.add', ['node_type' => 'article']));
+    $this->assertSession()->addressEquals(Url::fromRoute('node.add', ['node_type' => 'article']));
   }
 
   /**
@@ -631,18 +633,18 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Request korean, with outdated content available.
     $this->clickLink('KO');
-    $this->assertText("Locale 'ko_KR' was added as a translation target for node Llamas are cool EDITED.");
+    $this->assertSession()->pageTextContains("Locale 'ko_KR' was added as a translation target for node Llamas are cool EDITED.");
 
     // Reupload the content.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
 
     // Korean should be marked as requested, so we can check target.
     $this->assertTargetStatus('KO', 'pending');
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool EDITED is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool EDITED is complete.');
 
     // Korean should still be marked as requested, so we can check target.
     $this->assertTargetStatus('KO', 'pending');
@@ -653,12 +655,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertTargetStatus('ES', 'ready');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
   }
 
   /**
@@ -701,7 +703,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool EDITED is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool EDITED is complete.');
 
     // Check the translation after having been edited.
     $key = $this->getBulkSelectionKey('en', 1);
@@ -709,12 +711,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertTargetStatus('ES', 'ready');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
   }
 
   /**
@@ -732,7 +734,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // There is a link for requesting the Catalan translation.
     $this->assertLingotekRequestTranslationLink('ca_ES');
     $this->clickLink('CA');
-    $this->assertText("Locale 'ca_ES' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'ca_ES' was added as a translation target for node Llamas are cool.");
   }
 
   /**
@@ -750,7 +752,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Las llamas son chulas EDITED';
     $this->saveAndKeepPublishedThisTranslationNodeForm($edit, 1, 'es');
 
-    $this->assertText('Las llamas son chulas EDITED');
+    $this->assertSession()->pageTextContains('Las llamas son chulas EDITED');
 
     // Login as translation manager.
     $this->drupalLogin($this->translationManagerUser);
@@ -767,16 +769,16 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertTargetStatus('ES', Lingotek::STATUS_READY);
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
     $this->assertTargetStatus('ES', Lingotek::STATUS_CURRENT);
 
     $this->drupalGet('es/node/1');
-    $this->assertNoText('Las llamas son chulas EDITED');
+    $this->assertSession()->pageTextNotContains('Las llamas son chulas EDITED');
   }
 
   /**
@@ -820,8 +822,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('en_US', 'dummy-document-hash-id', 'node', 'es');
     $this->clickLink('ES');
-    $this->assertText('Node Llamas are cool es-MX has been uploaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('Node Llamas are cool es-MX has been uploaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
   }
 
@@ -843,7 +845,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('The upload for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload for node Llamas are cool failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', 'error');
@@ -853,12 +855,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -879,7 +881,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -889,12 +891,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -915,7 +917,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -925,12 +927,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -949,7 +951,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -964,7 +966,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('The update for node Llamas are cool EDITED failed. Please try again.');
+    $this->assertSession()->pageTextContains('The update for node Llamas are cool EDITED failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -974,12 +976,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -998,7 +1000,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -1013,7 +1015,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1023,12 +1025,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1047,7 +1049,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -1062,7 +1064,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1072,12 +1074,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1096,7 +1098,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -1120,7 +1122,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as error.');
 
     // We cannot click, as for views there won't be a link.
     // $this->clickLink('EN');
@@ -1130,7 +1132,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
   }
 
@@ -1150,7 +1152,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -1165,7 +1167,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document node Llamas are cool EDITED has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -1186,9 +1188,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     // We cannot click, as for views there won't be a link.
-    // $this->assertText('Node Llamas are cool EDITED has been uploaded.');
+    // $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been uploaded.');
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
   }
 
@@ -1208,7 +1210,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check upload.
     $this->clickLink('EN');
@@ -1223,7 +1225,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN');
-    $this->assertText('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -1233,12 +1235,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1264,8 +1266,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('The upload for node Llamas are cool failed. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('The upload for node Llamas are cool failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', 'error');
@@ -1275,12 +1277,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -1306,8 +1308,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1317,12 +1319,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -1348,8 +1350,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1359,12 +1361,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
   }
 
   /**
@@ -1388,7 +1390,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', 'importing');
 
     // Check upload.
@@ -1406,9 +1408,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('The update for node Llamas are cool EDITED failed. Please try again.');
+    $this->assertSession()->pageTextContains('The update for node Llamas are cool EDITED failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', 'error');
@@ -1418,12 +1420,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1447,7 +1449,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     // Check upload.
@@ -1465,9 +1467,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document node Llamas are cool EDITED has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -1477,7 +1479,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
@@ -1488,9 +1490,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     // We cannot click, as for views there won't be a link.
-    // $this->assertText('Node Llamas are cool EDITED has been uploaded.');
+    // $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been uploaded.');
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
   }
 
@@ -1515,7 +1517,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     // Check upload.
@@ -1533,9 +1535,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -1545,12 +1547,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1574,7 +1576,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     // Check upload.
@@ -1592,9 +1594,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1604,12 +1606,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1633,7 +1635,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     // Check upload.
@@ -1651,9 +1653,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1663,12 +1665,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
   }
 
   /**
@@ -1692,7 +1694,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     // Check upload.
@@ -1710,18 +1712,18 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool EDITED was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED was not found. Please upload again.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1757,8 +1759,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1768,7 +1770,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that I could request translations.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id');
@@ -1779,7 +1781,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows that there are translations ready.
     $this->assertLingotekDownloadTargetLink('de_AT');
@@ -1789,7 +1791,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     ConfigurableLanguage::createFromLangcode('de')
       ->setThirdPartySetting('lingotek', 'locale', 'de_DE')
       ->save();
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertLingotekDownloadTargetLink('de_DE');
 
     // Ensure locales are handled correctly by setting manual values.
@@ -1799,7 +1801,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
         'de-DE' => 100,
         'es-MX' => 10,
       ]);
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows which translations are ready.
     $this->assertNoLingotekDownloadTargetLink('de_AT');
@@ -1815,7 +1817,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
         'es-MX' => 10,
       ]);
     // Check all statuses again.
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // All translations must be updated according exclusively with the
     // information from the TMS.
@@ -1851,8 +1853,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1865,7 +1867,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status, because it wasn't imported but it's not marked
     // as an error.
@@ -1878,7 +1880,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that targets can be requested.
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -1905,8 +1907,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1925,7 +1927,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // It was marked as error and I can try the update.
     // Check the right class is added.
@@ -1955,8 +1957,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1970,12 +1972,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     $this->assertLingotekCheckSourceStatusLink();
-    $this->assertText('The import for node Llamas are cool is still pending.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is still pending.');
   }
 
   /**
@@ -2000,8 +2002,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2012,11 +2014,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -2042,8 +2044,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2055,7 +2057,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('The check for node status failed. Please try again.');
+    $this->assertSession()->pageTextContains('The check for node status failed. Please try again.');
   }
 
   /**
@@ -2081,8 +2083,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2092,13 +2094,13 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
     $this->assertNoSourceStatus('EN', Lingotek::STATUS_REQUEST);
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
-    $this->assertText('The upload status check for node Llamas are cool translation failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload status check for node Llamas are cool translation failed. Please try again.');
   }
 
   /**
@@ -2124,8 +2126,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2139,7 +2141,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The translation request for node failed. Please try again.');
+    $this->assertSession()->pageTextContains('The translation request for node failed. Please try again.');
   }
 
   /**
@@ -2165,8 +2167,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2179,7 +2181,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -2205,8 +2207,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2219,7 +2221,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -2245,8 +2247,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2259,7 +2261,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id-1');
-    $this->assertText('Document node Llamas are cool has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Uploading again.');
   }
 
   /**
@@ -2285,8 +2287,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2299,7 +2301,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -2325,8 +2327,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2339,7 +2341,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2365,8 +2367,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2379,12 +2381,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The request for node Llamas are cool translation failed. Please try again.');
+    $this->assertSession()->pageTextContains('The request for node Llamas are cool translation failed. Please try again.');
   }
 
   /**
@@ -2410,8 +2412,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2424,11 +2426,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id-1');
-    $this->assertText('Document node Llamas are cool has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Uploading again.');
   }
 
   /**
@@ -2454,8 +2456,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2468,11 +2470,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -2498,8 +2500,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2512,11 +2514,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2542,8 +2544,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2556,11 +2558,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -2586,8 +2588,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2600,11 +2602,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -2630,8 +2632,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2644,12 +2646,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The request for node Llamas are cool translation failed. Please try again.');
+    $this->assertSession()->pageTextContains('The request for node Llamas are cool translation failed. Please try again.');
   }
 
   /**
@@ -2675,8 +2677,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2689,11 +2691,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertLingotekRequestTranslationLink('es_MX', 'dummy-document-hash-id-1');
-    $this->assertText('Document node Llamas are cool has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Uploading again.');
   }
 
   /**
@@ -2719,8 +2721,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2733,11 +2735,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -2763,8 +2765,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2777,11 +2779,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2807,8 +2809,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2821,11 +2823,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -2851,8 +2853,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2865,11 +2867,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -2895,8 +2897,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2915,7 +2917,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // We failed at checking a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_PENDING);
-    $this->assertText('The request for node translation status failed. Please try again.');
+    $this->assertSession()->pageTextContains('The request for node translation status failed. Please try again.');
   }
 
   /**
@@ -2941,8 +2943,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2961,7 +2963,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // We failed at checking a translation, as it was missing.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoTargetStatus('ES', Lingotek::STATUS_PENDING);
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -2987,8 +2989,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3001,12 +3003,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at checking a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The request for node Llamas are cool translation status failed. Please try again.');
+    $this->assertSession()->pageTextContains('The request for node Llamas are cool translation status failed. Please try again.');
   }
 
   /**
@@ -3032,8 +3034,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3046,12 +3048,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at checking a translation, as it was missing.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoTargetStatus('ES', Lingotek::STATUS_PENDING);
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -3077,8 +3079,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3091,12 +3093,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at checking a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The request for node Llamas are cool translation status failed. Please try again.');
+    $this->assertSession()->pageTextContains('The request for node Llamas are cool translation status failed. Please try again.');
   }
 
   /**
@@ -3122,8 +3124,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3136,12 +3138,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at checking a translation, as it was missing.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoTargetStatus('ES', Lingotek::STATUS_PENDING);
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -3167,8 +3169,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3190,7 +3192,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     // We failed at downloading a translation. Mark as error.
     $this->assertTargetStatus('ES', Lingotek::STATUS_ERROR);
-    $this->assertText('The download for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The download for node Llamas are cool failed. Please try again.');
   }
 
   /**
@@ -3216,8 +3218,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3239,7 +3241,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -3265,8 +3267,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3288,11 +3290,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at downloading a translation. Mark as error.
     $this->assertTargetStatus('ES', Lingotek::STATUS_ERROR);
-    $this->assertText('The download for node Llamas are cool translation failed. Please try again.');
+    $this->assertSession()->pageTextContains('The download for node Llamas are cool translation failed. Please try again.');
   }
 
   /**
@@ -3318,8 +3320,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3341,11 +3343,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -3371,8 +3373,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3391,7 +3393,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertTargetStatus('ES', Lingotek::STATUS_READY);
 
     // Download translation.
@@ -3399,11 +3401,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at downloading a translation. Mark as error.
     $this->assertTargetStatus('ES', Lingotek::STATUS_ERROR);
-    $this->assertText('The download for node Llamas are cool translation failed. Please try again.');
+    $this->assertSession()->pageTextContains('The download for node Llamas are cool translation failed. Please try again.');
   }
 
   /**
@@ -3429,8 +3431,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3449,7 +3451,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->assertTargetStatus('ES', Lingotek::STATUS_READY);
 
     // Download translation.
@@ -3457,11 +3459,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -3487,8 +3489,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3502,11 +3504,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at cancelling.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The cancellation of node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The cancellation of node Llamas are cool failed. Please try again.');
   }
 
   /**
@@ -3532,8 +3534,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3547,12 +3549,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at cancelling.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found, so nothing to cancel.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found, so nothing to cancel.');
   }
 
   /**
@@ -3578,8 +3580,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3593,11 +3595,11 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at cancelling.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('The cancellation of node Llamas are cool translation to es failed. Please try again.');
+    $this->assertSession()->pageTextContains('The cancellation of node Llamas are cool translation to es failed. Please try again.');
   }
 
   /**
@@ -3623,8 +3625,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3638,12 +3640,12 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at cancelling.
     $this->assertSourceStatus('EN', Lingotek::STATUS_UNTRACKED);
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document node Llamas are cool was not found, so nothing to cancel.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found, so nothing to cancel.');
   }
 
   /**
@@ -3669,8 +3671,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3684,13 +3686,13 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at cancelling because it was already completed.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Target es for node Llamas are cool was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
+    $this->assertSession()->pageTextContains('Target es for node Llamas are cool was already completed in the TMS and cannot be cancelled unless the entire document is cancelled.');
   }
 
   /**
@@ -3714,8 +3716,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3729,7 +3731,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancelTarget('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We succeeded at cancelling.
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
@@ -3740,7 +3742,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Still target is cancelled.
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
@@ -3774,8 +3776,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3785,21 +3787,21 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download all the translations.
     $this->assertLingotekDownloadTargetLink('es_MX');
@@ -3808,7 +3810,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The translations not requested shouldn't change its status.
     $this->assertLingotekRequestTranslationLink('de_DE');
@@ -3847,8 +3849,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -3858,13 +3860,13 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
@@ -3872,25 +3874,25 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
     // Request italian.
     $this->assertLingotekRequestTranslationLink('it_IT');
     $this->clickLink('IT');
-    $this->assertText("Locale 'it_IT' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('it_IT', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'it_IT' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('it_IT', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     \Drupal::state()->resetCache();
 
     // Check status of the Italian translation.
     $this->assertLingotekCheckTargetStatusLink('it_IT');
     $this->clickLink('IT');
-    $this->assertIdentical('it_IT', \Drupal::state()
+    $this->assertSame('it_IT', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The it_IT translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The it_IT translation for node Llamas are cool is ready for download.');
 
     // Download all the translations.
     $this->assertLingotekDownloadTargetLink('es_MX');
@@ -3900,7 +3902,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // They are marked with the right status.
     $this->assertTargetStatus('ES', 'current');
@@ -3918,7 +3920,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // And statuses should remain the same.
     $this->assertTargetStatus('ES', 'current');
@@ -3937,7 +3939,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
 
     $this->drupalGet('node/1/translations');
     $this->clickLink('Delete');
-    $this->drupalPostForm(NULL, [], t('Delete @language translation', ['@language' => ConfigurableLanguage::load('de')->getName()]));
+    $this->submitForm([], t('Delete @language translation', ['@language' => ConfigurableLanguage::load('de')->getName()]));
 
     $this->goToContentBulkManagementForm();
     $this->assertTargetStatus('DE', Lingotek::STATUS_READY);
@@ -3956,7 +3958,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDeleteTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->confirmBulkDeleteTranslation(1, 1);
 
     $this->assertLingotekDownloadTargetLink('es_MX');
@@ -3987,9 +3989,9 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDeleteTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('No valid translations for deletion.');
+    $this->assertSession()->pageTextContains('No valid translations for deletion.');
     // Assert we kept selection.
     $this->assertSelectionIsKept($key);
 
@@ -4017,7 +4019,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDeleteTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $this->confirmBulkDeleteTranslations(1, 2);
 
     $this->assertLingotekDownloadTargetLink('es_MX');
@@ -4053,8 +4055,8 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -4068,13 +4070,13 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
   }
 
   protected function confirmBulkDeleteTranslation($nodeCount, $translationCount) {
-    $this->drupalPostForm(NULL, [], t('Delete'));
-    $this->assertText("Deleted $translationCount content item.");
+    $this->submitForm([], t('Delete'));
+    $this->assertSession()->pageTextContains("Deleted $translationCount content item.");
   }
 
   protected function confirmBulkDeleteTranslations($nodeCount, $translationCount) {
-    $this->drupalPostForm(NULL, [], t('Delete'));
-    $this->assertText("Deleted $translationCount content items.");
+    $this->submitForm([], t('Delete'));
+    $this->assertSession()->pageTextContains("Deleted $translationCount content items.");
   }
 
   /**
@@ -4086,7 +4088,7 @@ class LingotekNodeBulkTranslationTest extends LingotekTestBase {
   protected function assertSelectionIsKept(string $key) {
     $assert_session = $this->assertSession();
     $assert_session->optionExists($this->getBulkOperationFormName(), $this->getBulkOperationNameForDeleteTranslation('es', 'node'));
-    $this->assertFieldChecked($key);
+    $this->assertSession()->checkboxChecked($key);
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeCohesionRepeaterTranslationTest.php b/tests/src/Functional/LingotekNodeCohesionRepeaterTranslationTest.php
index 87dce9ac..4414a6ce 100644
--- a/tests/src/Functional/LingotekNodeCohesionRepeaterTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeCohesionRepeaterTranslationTest.php
@@ -27,7 +27,7 @@ class LingotekNodeCohesionRepeaterTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'content_moderation',
     'workflows',
@@ -152,7 +152,7 @@ JSON;
       ->setValue($edit['layout_canvas[0][target_id][json_values]']);
     unset($edit['layout_canvas[0][target_id][json_values]']);
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
     /** @var \Drupal\cohesion_elements\Entity\CohesionLayout $layout */
@@ -183,12 +183,12 @@ JSON;
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -197,30 +197,30 @@ JSON;
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Los perros son muy chulos');
-    $this->assertText('Los gatos son muy chulos');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Los perros son muy chulos');
+    $this->assertSession()->pageTextContains('Los gatos son muy chulos');
 
     /** @var \Drupal\Core\Entity\EntityStorageInterface $cohesionLayoutStorage */
     $cohesionLayoutStorage = $this->container->get('entity_type.manager')->getStorage('cohesion_layout');
@@ -237,10 +237,10 @@ JSON;
 
     // The original content didn't change.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
-    $this->assertText('Llamas are very cool');
-    $this->assertText('Dogs are very cool');
-    $this->assertText('Cats are very cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are very cool');
+    $this->assertSession()->pageTextContains('Dogs are very cool');
+    $this->assertSession()->pageTextContains('Cats are very cool');
   }
 
   protected function createCohesionField($entity_type_id, $bundle, $field_name = 'layout_canvas', $field_label = 'Layout canvas', $target_entity_type = 'cohesion_layout', $selection_handler = 'default', $selection_handler_settings = [], $cardinality = 1) {
diff --git a/tests/src/Functional/LingotekNodeCohesionTranslationTest.php b/tests/src/Functional/LingotekNodeCohesionTranslationTest.php
index 87c2557d..224c84bb 100644
--- a/tests/src/Functional/LingotekNodeCohesionTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeCohesionTranslationTest.php
@@ -27,7 +27,7 @@ class LingotekNodeCohesionTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'content_moderation',
     'workflows',
@@ -152,7 +152,7 @@ JSON;
       ->setValue($edit['layout_canvas[0][target_id][json_values]']);
     unset($edit['layout_canvas[0][target_id][json_values]']);
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
     /** @var \Drupal\cohesion_elements\Entity\CohesionLayout $layout */
@@ -179,12 +179,12 @@ JSON;
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -193,28 +193,28 @@ JSON;
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     /** @var \Drupal\Core\Entity\EntityStorageInterface $cohesionLayoutStorage */
     $cohesionLayoutStorage = $this->container->get('entity_type.manager')->getStorage('cohesion_layout');
@@ -230,8 +230,8 @@ JSON;
 
     // The original content didn't change.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
-    $this->assertText('Llamas are very cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are very cool');
   }
 
   /**
@@ -239,16 +239,17 @@ JSON;
    */
   public function testDisablingContentTranslationDoesntDisableLingotekTranslationForCohesionLayout() {
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldByName('node[article][fields][layout_canvas]', TRUE);
+    $this->assertSession()->fieldValueEquals('node[article][fields][layout_canvas]', TRUE);
 
     $edit = [];
     $edit['settings[node][article][fields][layout_canvas]'] = FALSE;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
 
     $this->drupalGet('admin/lingotek/settings');
     // The canvas layout is still enabled.
-    $this->assertFieldByName('node[article][fields][layout_canvas]', TRUE);
+    $this->assertSession()->fieldValueEquals('node[article][fields][layout_canvas]', TRUE);
   }
 
   protected function createCohesionField($entity_type_id, $bundle, $field_name = 'layout_canvas', $field_label = 'Layout canvas', $target_entity_type = 'cohesion_layout', $selection_handler = 'default', $selection_handler_settings = [], $cardinality = 1) {
diff --git a/tests/src/Functional/LingotekNodeContentModerationTranslationTest.php b/tests/src/Functional/LingotekNodeContentModerationTranslationTest.php
index 68c2f16b..5df3c0c8 100644
--- a/tests/src/Functional/LingotekNodeContentModerationTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeContentModerationTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'content_moderation'];
+  protected static $modules = ['block', 'node', 'content_moderation'];
 
   /**
    * {@inheritdoc}
@@ -81,8 +81,8 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     $this->clickLink('Llamas are cool');
 
@@ -90,13 +90,14 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'Only one revision is stored.');
+    $this->assertEquals(1, $result, 'Only one revision is stored.');
 
     $this->goToContentBulkManagementForm();
 
@@ -105,25 +106,25 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -135,19 +136,20 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     $assert_session->linkExists('Revisions');
     $this->clickLink('Revisions');
     $this->drupalGet('es/node/1/revisions');
-    $this->assertText('Document translated into ES by Lingotek.');
+    $this->assertSession()->pageTextContains('Document translated into ES by Lingotek.');
 
     // Only one revision stored.
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(2, $result, 'A new revision is stored.');
+    $this->assertEquals(2, $result, 'A new revision is stored.');
   }
 
   /**
@@ -175,8 +177,8 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     $this->clickLink('Llamas are cool');
 
@@ -184,13 +186,14 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'Only one revision is stored.');
+    $this->assertEquals(1, $result, 'Only one revision is stored.');
 
     $this->goToContentBulkManagementForm();
 
@@ -199,25 +202,25 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -240,13 +243,14 @@ class LingotekNodeContentModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'A new revision has not been stored.');
+    $this->assertEquals(1, $result, 'A new revision has not been stored.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeEmbeddingBricksTranslationTest.php b/tests/src/Functional/LingotekNodeEmbeddingBricksTranslationTest.php
index 0ff20457..2a99ffa9 100644
--- a/tests/src/Functional/LingotekNodeEmbeddingBricksTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeEmbeddingBricksTranslationTest.php
@@ -25,7 +25,7 @@ class LingotekNodeEmbeddingBricksTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = [
+  protected static $modules = [
     'field_ui',
     'block',
     'node',
@@ -86,7 +86,7 @@ class LingotekNodeEmbeddingBricksTranslationTest extends LingotekTestBase {
     $edit = [
       'settings[node][article][fields][field_brick]' => TRUE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save configuration');
+    $this->submitForm($edit, 'Save configuration');
 
     $bundle = $this->vocabulary->id();
     $this->saveLingotekContentTranslationSettings([
@@ -131,21 +131,21 @@ class LingotekNodeEmbeddingBricksTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_brick']));
-    $this->assertEqual('Camelid', $data['field_brick'][0]['name'][0]['value']);
+    $this->assertEquals(1, count($data['field_brick']));
+    $this->assertEquals('Camelid', $data['field_brick'][0]['name'][0]['value']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -154,51 +154,55 @@ class LingotekNodeEmbeddingBricksTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Camélido');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Camélido');
   }
 
   protected function addBrickField() {
     $this->drupalGet('admin/structure/types/manage/article/fields');
-    $this->clickLink('Add field');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      $this->clickLink('Create a new field');
+    } else {
+      $this->clickLink('Add field');
+    }
     $edit = [
       'new_storage_type' => 'field_ui:entity_reference:taxonomy_term',
       'label' => 'Brick field',
       'field_name' => 'brick',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save and continue');
+    $this->submitForm($edit, 'Save and continue');
     $edit = [
       'cardinality' => -1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save field settings');
+    $this->submitForm($edit, 'Save field settings');
 
     $edit = [
       'settings[handler_settings][auto_create]' => TRUE,
       'settings[handler_settings][target_bundles][' . $this->vocabulary->id() . ']' => TRUE,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->submitForm($edit, 'Save settings');
 
   }
 
diff --git a/tests/src/Functional/LingotekNodeEmbeddingContactFormTranslationTest.php b/tests/src/Functional/LingotekNodeEmbeddingContactFormTranslationTest.php
index 3e615baa..115b541d 100644
--- a/tests/src/Functional/LingotekNodeEmbeddingContactFormTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeEmbeddingContactFormTranslationTest.php
@@ -24,7 +24,7 @@ class LingotekNodeEmbeddingContactFormTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'contact'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'contact'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -125,19 +125,19 @@ class LingotekNodeEmbeddingContactFormTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_contact_form']));
-    $this->assertEqual('Test contact form', $data['field_contact_form'][0]['label']);
-    $this->assertEqual('', $data['field_contact_form'][0]['reply']);
+    $this->assertEquals(1, count($data['field_contact_form']));
+    $this->assertEquals('Test contact form', $data['field_contact_form'][0]['label']);
+    $this->assertEquals('', $data['field_contact_form'][0]['reply']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -146,30 +146,30 @@ class LingotekNodeEmbeddingContactFormTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Formulario de Contacto');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Formulario de Contacto');
   }
 
   /**
@@ -202,52 +202,52 @@ class LingotekNodeEmbeddingContactFormTranslationTest extends LingotekTestBase {
     // the upload status.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     // The contact form is not there.
     $this->assertFalse(isset($data['field_contact_form']));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been automatically imported, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertNoText('Formulario de Contacto');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextNotContains('Formulario de Contacto');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php b/tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php
index 9fb64489..9c7f4334 100644
--- a/tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php
@@ -29,7 +29,7 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'taxonomy'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'taxonomy'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -135,12 +135,10 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['field_tags[target_id]'] = implode(',', ['Camelid', 'Herbivorous']);
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
-
-    $this->drupalPostForm('node/add/article', $edit, t('Preview'));
-
+    $this->drupalGet('node/add/article');
+    $this->submitForm($edit, t('Preview'));
     unset($edit['files[field_image_0]']);
-    $edit['field_image[0][alt]'] = 'Llamas are cool';
-    $this->saveAndPublishNodeForm($edit, NULL);
+    $this->saveAndPublishNodeForm($edit);
 
     $this->node = Node::load(1);
 
@@ -148,21 +146,19 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 4);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
-    $this->assertTrue(isset($data['field_image'][0]['alt']));
-    $this->assertEqual(2, count($data['field_tags']));
-    $this->assertEqual('Camelid', $data['field_tags'][0]['name'][0]['value']);
-    $this->assertEqual('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
+    $this->assertEquals(2, count($data['field_tags']));
+    $this->assertEquals('Camelid', $data['field_tags'][0]['name'][0]['value']);
+    $this->assertEquals('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -171,31 +167,31 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Camélido');
-    $this->assertText('Hervíboro');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Camélido');
+    $this->assertSession()->pageTextContains('Hervíboro');
   }
 
   /**
@@ -218,7 +214,7 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     $this->node = Node::load(1);
 
     $term = Term::load(1);
-    $this->assertEqual('Camelid', $term->label());
+    $this->assertEquals('Camelid', $term->label());
     $term->delete();
 
     // Check that the translate tab is in the node.
@@ -229,53 +225,53 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // the upload status.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 4);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     // Only one tag does really exist.
-    $this->assertEqual(1, count($data['field_tags']));
-    $this->assertEqual('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
+    $this->assertEquals(1, count($data['field_tags']));
+    $this->assertEquals('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been imported, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Hervíboro');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Hervíboro');
 
     $this->drupalGet('/taxonomy/term/2/translations');
     $this->drupalGet('/es-ar/taxonomy/term/2');
@@ -309,26 +305,26 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // the upload status.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 4);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     // Only one tag does really exist.
-    $this->assertEqual(2, count($data['field_tags']));
-    $this->assertEqual('Camelid', $data['field_tags'][0]['name'][0]['value']);
-    $this->assertEqual('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
+    $this->assertEquals(2, count($data['field_tags']));
+    $this->assertEquals('Camelid', $data['field_tags'][0]['name'][0]['value']);
+    $this->assertEquals('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // Now we create a new revision, and this is removing a field tag reference.
     $this->node = Node::load(1);
@@ -338,8 +334,8 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
 
     // Check that we removed it correctly.
     $this->drupalGet('node/1');
-    $this->assertNoText('Camelid');
-    $this->assertText('Herbivorous');
+    $this->assertSession()->pageTextNotContains('Camelid');
+    $this->assertSession()->pageTextContains('Herbivorous');
 
     // We go back to the translations.
     $this->clickLink('Translate');
@@ -347,32 +343,32 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // The document should have been imported, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     // The tags are BOTH there. Because we have translated an older revision.
-    $this->assertText('Camélido');
-    $this->assertText('Hervíboro');
+    $this->assertSession()->pageTextContains('Camélido');
+    $this->assertSession()->pageTextContains('Hervíboro');
   }
 
   /**
@@ -393,8 +389,8 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
 
     // Check that we removed the tags correctly.
     $this->drupalGet('node/1');
-    $this->assertNoText('Camelid');
-    $this->assertNoText('Herbivorous');
+    $this->assertSession()->pageTextNotContains('Camelid');
+    $this->assertSession()->pageTextNotContains('Herbivorous');
 
     // We go back to the translations.
     $this->clickLink('Translate');
@@ -402,14 +398,14 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // And we reupload it.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded, including tags
     // and image even if not set.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 4);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertTrue(isset($data['field_image']));
     $this->assertTrue(isset($data['field_tags']));
@@ -420,20 +416,20 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     // The tags have been removed from the content when re-downloading.
-    $this->assertNoText('Camélido');
-    $this->assertNoText('Hervíboro');
+    $this->assertSession()->pageTextNotContains('Camélido');
+    $this->assertSession()->pageTextNotContains('Hervíboro');
   }
 
   /**
@@ -466,7 +462,8 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     $edit = [
       'node[article][fields][field_other_tags]' => 1,
     ];
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->drupalGet('admin/lingotek/settings');
+    $this->submitForm($edit, 'Save');
 
     // Create the terms.
     Term::create(['name' => 'Camelid', 'vid' => $this->vocabulary->id()])->save();
@@ -503,66 +500,66 @@ class LingotekNodeEmbeddingTagsTranslationTest extends LingotekTestBase {
     // the upload status.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 5);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     // Two tags exist.
-    $this->assertEqual(2, count($data['field_tags']));
-    $this->assertEqual('Camelid', $data['field_tags'][0]['name'][0]['value']);
-    $this->assertEqual('1', $data['field_tags'][0]['_lingotek_metadata']['_entity_id']);
-    $this->assertEqual('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
-    $this->assertEqual('2', $data['field_tags'][1]['_lingotek_metadata']['_entity_id']);
+    $this->assertEquals(2, count($data['field_tags']));
+    $this->assertEquals('Camelid', $data['field_tags'][0]['name'][0]['value']);
+    $this->assertEquals('1', $data['field_tags'][0]['_lingotek_metadata']['_entity_id']);
+    $this->assertEquals('Herbivorous', $data['field_tags'][1]['name'][0]['value']);
+    $this->assertEquals('2', $data['field_tags'][1]['_lingotek_metadata']['_entity_id']);
 
     // Also in the other field, but in some cases only the metadata.
-    $this->assertEqual(3, count($data['field_other_tags']));
+    $this->assertEquals(3, count($data['field_other_tags']));
 
     $this->assertFalse(isset($data['field_other_tags'][0]['name']));
-    $this->assertEqual('1', $data['field_other_tags'][0]['_lingotek_metadata']['_entity_id']);
+    $this->assertEquals('1', $data['field_other_tags'][0]['_lingotek_metadata']['_entity_id']);
 
-    $this->assertEqual('Spitting', $data['field_other_tags'][1]['name'][0]['value']);
-    $this->assertEqual('3', $data['field_other_tags'][1]['_lingotek_metadata']['_entity_id']);
+    $this->assertEquals('Spitting', $data['field_other_tags'][1]['name'][0]['value']);
+    $this->assertEquals('3', $data['field_other_tags'][1]['_lingotek_metadata']['_entity_id']);
 
     $this->assertFalse(isset($data['field_other_tags'][2]['name']));
-    $this->assertEqual('2', $data['field_other_tags'][2]['_lingotek_metadata']['_entity_id']);
+    $this->assertEquals('2', $data['field_other_tags'][2]['_lingotek_metadata']['_entity_id']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been imported, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     $this->assertSession()->pageTextContains('Camélido');
     $this->assertSession()->pageTextContains('Hervíboro');
     $this->assertSession()->pageTextContains('Esputo');
diff --git a/tests/src/Functional/LingotekNodeExistingBulkTranslationTest.php b/tests/src/Functional/LingotekNodeExistingBulkTranslationTest.php
index 9f557197..c8f7a81c 100644
--- a/tests/src/Functional/LingotekNodeExistingBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeExistingBulkTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeExistingBulkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -83,8 +83,8 @@ class LingotekNodeExistingBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Assert the untracked translation is shown.
     $this->assertTargetStatus('ES', 'untracked');
@@ -92,25 +92,25 @@ class LingotekNodeExistingBulkTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
diff --git a/tests/src/Functional/LingotekNodeLayoutBuilderAsymmetricTranslationTest.php b/tests/src/Functional/LingotekNodeLayoutBuilderAsymmetricTranslationTest.php
index 93b2f7ae..ee5d151c 100644
--- a/tests/src/Functional/LingotekNodeLayoutBuilderAsymmetricTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeLayoutBuilderAsymmetricTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'block_content',
     'node',
@@ -87,7 +87,8 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
       ->setEnabled('block_content', 'custom_content_block', TRUE);
 
     $edit['settings[node][article][fields][layout_builder__layout]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
 
     drupal_static_reset();
@@ -138,7 +139,7 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
 
     $edit['langcode[0][value]'] = 'en';
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Add a block with a custom label.
     $page->clickLink('Layout');
@@ -201,12 +202,12 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -268,7 +269,7 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
 
     $edit['langcode[0][value]'] = 'en';
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Add a block with a custom label.
     $page->clickLink('Layout');
@@ -276,7 +277,15 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
     $assert_session->linkExists('Edit the template for all Article content items instead.');
 
     $page->clickLink('Add block');
-    $page->clickLink('Create custom block');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      // Drupal 10 has "Create content block" link instead of "Create custom block".
+      $assert_session->linkExists('Create content block');
+      $page->clickLink('Create content block');
+    } else {
+      // Drupal 9 has "Create custom block" link.
+      $assert_session->linkExists('Create custom block');
+      $page->clickLink('Create custom block');
+    }
     $page->fillField('settings[label]', 'Overridden block with Dogs title');
     $page->fillField('settings[block_form][body][0][value]', 'Block Dogs are very cool');
     $page->checkField('settings[label_display]');
@@ -328,12 +337,12 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -385,8 +394,8 @@ class LingotekNodeLayoutBuilderAsymmetricTranslationTest extends LingotekTestBas
     // From the manage display page, go to manage the layout.
     foreach ($nodeTypes as $nodeType) {
       $this->drupalGet("admin/structure/types/manage/$nodeType/display/default");
-      $this->drupalPostForm(NULL, ['layout[enabled]' => TRUE], 'Save');
-      $this->drupalPostForm(NULL, ['layout[allow_custom]' => TRUE], 'Save');
+      $this->submitForm(['layout[enabled]' => TRUE], 'Save');
+      $this->submitForm(['layout[allow_custom]' => TRUE], 'Save');
     }
   }
 
diff --git a/tests/src/Functional/LingotekNodeLayoutBuilderSymmetricTranslationTest.php b/tests/src/Functional/LingotekNodeLayoutBuilderSymmetricTranslationTest.php
index 577f6aca..422e878e 100644
--- a/tests/src/Functional/LingotekNodeLayoutBuilderSymmetricTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeLayoutBuilderSymmetricTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'block_content',
     'node',
@@ -134,7 +134,7 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
 
     $edit['langcode[0][value]'] = 'en';
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Add a block with a custom label.
     $page->clickLink('Layout');
@@ -197,12 +197,12 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -264,7 +264,7 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
 
     $edit['langcode[0][value]'] = 'en';
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Add a block with a custom label.
     $page->clickLink('Layout');
@@ -272,7 +272,15 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
     $assert_session->linkExists('Edit the template for all Article content items instead.');
 
     $page->clickLink('Add block');
-    $page->clickLink('Create custom block');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      // Drupal 10 has "Create content block" link instead of "Create custom block".
+      $assert_session->linkExists('Create content block');
+      $page->clickLink('Create content block');
+    } else {
+      // Drupal 9 has "Create custom block" link.
+      $assert_session->linkExists('Create custom block');
+      $page->clickLink('Create custom block');
+    }
     $page->fillField('settings[label]', 'Overridden block with Dogs title');
     $page->fillField('settings[block_form][body][0][value]', 'Block Dogs are very cool');
     $page->checkField('settings[label_display]');
@@ -324,12 +332,12 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()
+    $this->assertSame(\Drupal::request()
       ->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -381,8 +389,8 @@ class LingotekNodeLayoutBuilderSymmetricTranslationTest extends LingotekTestBase
     // From the manage display page, go to manage the layout.
     foreach ($nodeTypes as $nodeType) {
       $this->drupalGet("admin/structure/types/manage/$nodeType/display/default");
-      $this->drupalPostForm(NULL, ['layout[enabled]' => TRUE], 'Save');
-      $this->drupalPostForm(NULL, ['layout[allow_custom]' => TRUE], 'Save');
+      $this->submitForm(['layout[enabled]' => TRUE], 'Save');
+      $this->submitForm(['layout[allow_custom]' => TRUE], 'Save');
     }
   }
 
diff --git a/tests/src/Functional/LingotekNodeLayoutBuilderWithRevisionableBlockAsymmetricTranslationTest.php b/tests/src/Functional/LingotekNodeLayoutBuilderWithRevisionableBlockAsymmetricTranslationTest.php
index 8461f970..793d7f06 100644
--- a/tests/src/Functional/LingotekNodeLayoutBuilderWithRevisionableBlockAsymmetricTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeLayoutBuilderWithRevisionableBlockAsymmetricTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeLayoutBuilderWithRevisionableBlockAsymmetricTranslationTest ex
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'block_content',
     'content_moderation',
diff --git a/tests/src/Functional/LingotekNodeLocaleTranslationTest.php b/tests/src/Functional/LingotekNodeLocaleTranslationTest.php
index 11dc2c1e..6219ca4c 100644
--- a/tests/src/Functional/LingotekNodeLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeLocaleTranslationTest.php
@@ -21,7 +21,7 @@ class LingotekNodeLocaleTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment'];
+  protected static $modules = ['block', 'node', 'image', 'comment'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -89,12 +89,12 @@ class LingotekNodeLocaleTranslationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
+    $this->drupalGet('node/add/article');
 
-    $this->drupalPostForm('node/add/article', $edit, t('Preview'));
+    $this->submitForm($edit, t('Preview'));
 
     unset($edit['files[field_image_0]']);
-    $edit['field_image[0][alt]'] = 'Llamas are cool';
-    $this->saveAndPublishNodeForm($edit, NULL);
+    $this->saveAndPublishNodeForm($edit);
 
     $this->node = Node::load(1);
 
@@ -102,18 +102,16 @@ class LingotekNodeLocaleTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
-    $this->assertTrue(isset($data['field_image'][0]['alt']));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -122,28 +120,28 @@ class LingotekNodeLocaleTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeManageTranslationTabTest.php b/tests/src/Functional/LingotekNodeManageTranslationTabTest.php
index 6eb14815..252fc05f 100644
--- a/tests/src/Functional/LingotekNodeManageTranslationTabTest.php
+++ b/tests/src/Functional/LingotekNodeManageTranslationTabTest.php
@@ -25,7 +25,7 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'taxonomy'];
+  protected static $modules = ['block', 'node', 'taxonomy'];
 
   /**
    * @var \Drupal\taxonomy\VocabularyInterface
@@ -156,66 +156,66 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     $this->drupalGet('node/1');
     $this->clickLink('Manage Translations');
 
-    $this->assertText('Llamas are cool');
-    $this->assertText('Camelid');
-    $this->assertText('Herbivorous');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextContains('Herbivorous');
     // Assert second level is not included.
-    $this->assertNoText('Hominid');
+    $this->assertSession()->pageTextNotContains('Hominid');
     // Assert third level is not included.
-    $this->assertNoText('Ruminant');
+    $this->assertSession()->pageTextNotContains('Ruminant');
 
-    $this->drupalPostForm(NULL, ['depth' => 2], 'Apply');
+    $this->submitForm(['depth' => 2], 'Apply');
 
-    $this->assertText('Llamas are cool');
-    $this->assertText('Camelid');
-    $this->assertText('Herbivorous');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextContains('Herbivorous');
     // Assert second level is included.
-    $this->assertText('Hominid');
+    $this->assertSession()->pageTextContains('Hominid');
     // Assert third level is not included.
-    $this->assertNoText('Ruminant');
+    $this->assertSession()->pageTextNotContains('Ruminant');
 
-    $this->drupalPostForm(NULL, ['depth' => 3], 'Apply');
+    $this->submitForm(['depth' => 3], 'Apply');
 
-    $this->assertText('Llamas are cool');
-    $this->assertText('Camelid');
-    $this->assertText('Herbivorous');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextContains('Herbivorous');
     // Assert second level is included.
-    $this->assertText('Hominid');
+    $this->assertSession()->pageTextContains('Hominid');
     // Assert third level is also included.
-    $this->assertText('Ruminant');
+    $this->assertSession()->pageTextContains('Ruminant');
 
     // Clicking English must init the upload of content.
     $this->assertLingotekUploadLink();
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -234,7 +234,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     $edit = [];
     $edit['title[0][value]'] = 'Pages are cool';
     $edit['body[0][value]'] = 'Pages are very cool';
-    $this->drupalPostForm('node/add/page', $edit, t('Save'));
+    $this->drupalGet('node/add/page');
+    $this->submitForm($edit, t('Save'));
 
     // Check that the manage translations tab is in the node.
     $this->drupalGet('node/1');
@@ -248,9 +249,9 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.uploaded_locale'));
     $assert_session->pageTextContains('Cannot upload Page Pages are cool. That Content type is not enabled for translation.');
   }
@@ -276,7 +277,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Pages are cool';
     $edit['body[0][value]'] = 'Pages are very cool';
     $edit['langcode[0][value]'] = 'en';
-    $this->drupalPostForm('node/add/page', $edit, t('Save'));
+    $this->drupalGet('node/add/page');
+    $this->submitForm($edit, t('Save'));
 
     // Check that the manage translations tab is in the node.
     $this->drupalGet('node/1');
@@ -290,9 +292,9 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertIdentical(NULL, \Drupal::state()
+    $this->assertSame(NULL, \Drupal::state()
       ->get('lingotek.uploaded_locale'));
     $assert_session->pageTextContains('Cannot upload Page Pages are cool. That Content type is not enabled for Lingotek translation.');
   }
@@ -325,13 +327,13 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     $this->drupalGet('node/1');
     $this->clickLink('Manage Translations');
 
-    $this->assertText('Llamas are cool');
-    $this->assertText('Camelid');
-    $this->assertText('Herbivorous');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextContains('Herbivorous');
     // Assert second level is not included.
-    $this->assertNoText('Hominid');
+    $this->assertSession()->pageTextNotContains('Hominid');
     // Assert third level is not included.
-    $this->assertNoText('Ruminant');
+    $this->assertSession()->pageTextNotContains('Ruminant');
 
     // I can init the upload of content.
     $this->assertLingotekUploadLink();
@@ -339,8 +341,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -348,7 +350,7 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT');
@@ -356,8 +358,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the German (AT) translation.
     $this->assertLingotekCheckTargetStatusLink('de_AT');
@@ -365,8 +367,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German (AT) translation.
     $this->assertLingotekDownloadTargetLink('de_AT');
@@ -374,8 +376,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -404,13 +406,13 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
 
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
-    $this->assertIdentical('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('my_custom_job_id', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The column for Job ID exists and there are values.
-    $this->assertText('Job ID');
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('Job ID');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
   }
 
   /**
@@ -437,27 +439,27 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID without notification to the TMS, no update happens.
     $edit = [
@@ -465,12 +467,12 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
@@ -503,13 +505,13 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is no update, because there are no document ids.
     \Drupal::state()->resetCache();
@@ -518,15 +520,15 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id');
+    $this->assertSession()->pageTextContains('my_custom_job_id');
 
     // And the job id is used on upload.
     $this->clickLink('EN');
 
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
     // Check that the job id used was the right one.
     \Drupal::state()->resetCache();
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'my_custom_job_id');
 
     // If we update the job ID with notification to the TMS, an update happens.
     $edit = [
@@ -534,18 +536,18 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'other_job_id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // There is an update.
     \Drupal::state()->resetCache();
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_title'));
-    $this->assertIdentical(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
+    $this->assertSame(\Drupal::state()->get('lingotek.uploaded_job_id'), 'other_job_id');
   }
 
   /**
@@ -573,14 +575,14 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $edit = [
       'job_id' => 'my\invalid\id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -589,8 +591,8 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'job_id' => 'my/invalid/id',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('The job ID name cannot contain invalid chars as "/" or "\".');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('The job ID name cannot contain invalid chars as "/" or "\".');
 
     // There is no update, because it's not valid.
     $this->assertNull(\Drupal::state()->get('lingotek.uploaded_job_id'));
@@ -620,20 +622,20 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Camelid');
-    $this->assertNoText('Llamas are cool');
-    $this->drupalPostForm(NULL, [], 'Cancel');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextNotContains('Llamas are cool');
+    $this->submitForm([], 'Cancel');
 
     $edit = [
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Camelid');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextNotContains('Camelid');
+    $this->assertSession()->pageTextContains('Llamas are cool');
   }
 
   /**
@@ -660,10 +662,10 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Camelid');
-    $this->assertNoText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Camelid');
+    $this->assertSession()->pageTextNotContains('Llamas are cool');
 
     $this->goToContentBulkManagementForm();
 
@@ -671,10 +673,10 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertNoText('Camelid');
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextNotContains('Camelid');
+    $this->assertSession()->pageTextContains('Llamas are cool');
   }
 
   /**
@@ -702,47 +704,47 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[node:1]' => TRUE,
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, [], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm([], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is no upload.
     \Drupal::state()->resetCache();
     $this->assertEquals('my_custom_job_id_1', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   /**
@@ -770,47 +772,47 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_1',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     $edit = [
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForAssignJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $edit = [
       'job_id' => 'my_custom_job_id_2',
       'update_tms' => 1,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Assign Job ID');
-    $this->assertText('Job ID was assigned successfully.');
+    $this->submitForm($edit, 'Assign Job ID');
+    $this->assertSession()->pageTextContains('Job ID was assigned successfully.');
 
     // The job id is displayed.
-    $this->assertText('my_custom_job_id_1');
-    $this->assertText('my_custom_job_id_2');
+    $this->assertSession()->pageTextContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextContains('my_custom_job_id_2');
 
     $edit = [
       'table[node:1]' => TRUE,
       'table[taxonomy_term:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForClearJobId('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->drupalPostForm(NULL, ['update_tms' => 1], 'Clear Job ID');
-    $this->assertText('Job ID was cleared successfully.');
+    $this->submitForm(['update_tms' => 1], 'Clear Job ID');
+    $this->assertSession()->pageTextContains('Job ID was cleared successfully.');
 
     // There is an update with empty job id.
     \Drupal::state()->resetCache();
     $this->assertEquals('', \Drupal::state()->get('lingotek.uploaded_job_id'));
 
     // The job id is gone.
-    $this->assertNoText('my_custom_job_id_1');
-    $this->assertNoText('my_custom_job_id_2');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_1');
+    $this->assertSession()->pageTextNotContains('my_custom_job_id_2');
   }
 
   public function testCorrectTargetsInNonSourceLanguage() {
@@ -864,7 +866,7 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     // Assert third level is not included.
     $assert_session->elementNotContains('css', 'table#edit-table', 'Ruminant');
 
-    $this->drupalPostForm(NULL, ['depth' => 2], 'Apply');
+    $this->submitForm(['depth' => 2], 'Apply');
 
     $assert_session->elementContains('css', 'table#edit-table', 'Llamas are cool');
     // Assert first level is included.
@@ -875,7 +877,7 @@ class LingotekNodeManageTranslationTabTest extends LingotekTestBase {
     // Assert third level is not included.
     $assert_session->elementNotContains('css', 'table#edit-table', 'Ruminant');
 
-    $this->drupalPostForm(NULL, ['depth' => 3], 'Apply');
+    $this->submitForm(['depth' => 3], 'Apply');
 
     $assert_session->elementContains('css', 'table#edit-table', 'Llamas are cool');
     // Assert first level is included.
diff --git a/tests/src/Functional/LingotekNodeMetatagsTranslationTest.php b/tests/src/Functional/LingotekNodeMetatagsTranslationTest.php
index 29af2e70..bbf58283 100644
--- a/tests/src/Functional/LingotekNodeMetatagsTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeMetatagsTranslationTest.php
@@ -20,7 +20,7 @@ class LingotekNodeMetatagsTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'metatag'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'metatag'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -94,21 +94,21 @@ class LingotekNodeMetatagsTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_metatag']));
-    $this->assertEqual('This text will help SEO find my llamas.', $data['field_metatag'][0]['description']);
+    $this->assertEquals(1, count($data['field_metatag']));
+    $this->assertEquals('This text will help SEO find my llamas.', $data['field_metatag'][0]['description']);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -117,30 +117,30 @@ class LingotekNodeMetatagsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertRaw('<meta name="description" content="Este texto ayudará al SEO a encontrar mis llamas." />');
-    $this->assertRaw('<title>Las llamas son chulas | Drupal</title>');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->responseContains('<meta name="description" content="Este texto ayudará al SEO a encontrar mis llamas." />');
+    $this->assertSession()->responseContains('<title>Las llamas son chulas | Drupal</title>');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekNodeMissingProfileTranslationTest.php b/tests/src/Functional/LingotekNodeMissingProfileTranslationTest.php
index 884ae4a2..07dd596c 100644
--- a/tests/src/Functional/LingotekNodeMissingProfileTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeMissingProfileTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * A node.
@@ -81,16 +81,16 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->assertNoLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -99,27 +99,27 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->assertLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -134,9 +134,9 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit, NULL);
 
     // No errors on saving even if the profile was missing.
-    $this->assertText('Article Cats are cool has been updated.');
+    $this->assertSession()->pageTextContains('Article Cats are cool has been updated.');
     // Automatic profile wasn't being used automatically.
-    $this->assertNoText('Cats are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextNotContains('Cats are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -163,16 +163,16 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->assertNoLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
@@ -181,27 +181,27 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->assertLingotekRequestTranslationLink('es_MX');
 
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
@@ -213,9 +213,9 @@ class LingotekNodeMissingProfileTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit, NULL);
 
     // No errors on saving even if the profile was missing.
-    $this->assertText('Article Cats are cool has been updated.');
+    $this->assertSession()->pageTextContains('Article Cats are cool has been updated.');
     // Automatic profile wasn't being used automatically.
-    $this->assertNoText('Cats are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextNotContains('Cats are cool was updated and sent to Lingotek successfully.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeMultivaluedFieldTest.php b/tests/src/Functional/LingotekNodeMultivaluedFieldTest.php
index 052ec51b..ba91af77 100644
--- a/tests/src/Functional/LingotekNodeMultivaluedFieldTest.php
+++ b/tests/src/Functional/LingotekNodeMultivaluedFieldTest.php
@@ -20,7 +20,7 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'comment'];
+  protected static $modules = ['block', 'node', 'image', 'comment'];
 
   /**
    * The node.
@@ -124,42 +124,42 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
 
-    $this->assertIdentical($data['foo'][0]['value'], 'Llamas are very cool field 1');
-    $this->assertIdentical($data['foo'][1]['value'], 'Llamas are very cool field 2');
-    $this->assertIdentical($data['foo'][2]['value'], 'Llamas are very cool field 3');
+    $this->assertSame($data['foo'][0]['value'], 'Llamas are very cool field 1');
+    $this->assertSame($data['foo'][1]['value'], 'Llamas are very cool field 2');
+    $this->assertSame($data['foo'][2]['value'], 'Llamas are very cool field 3');
 
     $this->goToContentBulkManagementForm();
 
     // There is a link for checking status.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+multivalue0');
 
     // Download the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
 
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
 
-    $this->assertNoText('Las llamas son muy chulas campo 1');
-    $this->assertNoText('Las llamas son muy chulas campo 2');
-    $this->assertNoText('Las llamas son muy chulas campo 3');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas campo 1');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas campo 2');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas campo 3');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+multivalue1');
@@ -172,15 +172,15 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas campo 1');
-    $this->assertText('Las llamas son muy chulas campo 2');
-    $this->assertText('Las llamas son muy chulas campo 3');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas campo 1');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas campo 2');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas campo 3');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+multivalue2');
@@ -193,16 +193,16 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
 
-    $this->assertText('Las llamas son muy chulas campo 1');
-    $this->assertText('Las llamas son muy chulas con distinto campo 2');
-    $this->assertNoText('Las llamas son muy chulas campo 3');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas campo 1');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 2');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas campo 3');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+multivalue3');
@@ -215,19 +215,19 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
-
-    $this->assertText('Las llamas son muy chulas campo 1');
-    $this->assertText('Las llamas son muy chulas con distinto campo 2');
-    $this->assertText('Las llamas son muy chulas con distinto campo 3');
-    $this->assertText('Las llamas son muy chulas con distinto campo 4');
-    $this->assertText('Las llamas son muy chulas con distinto campo 5');
-    $this->assertText('Las llamas son muy chulas con distinto campo 6');
+    
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas campo 1');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 2');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 3');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 4');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 5');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas con distinto campo 6');
   }
 
   /**
@@ -260,11 +260,11 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
 
-    $this->assertIdentical($data['foo'][0]['value'], '"Llamas are very cool field 1"');
-    $this->assertIdentical($data['foo'][1]['value'], '"Llamas are very cool field 2"');
-    $this->assertIdentical($data['foo'][2]['value'], '"Llamas are very cool field 3"');
+    $this->assertSame($data['foo'][0]['value'], '"Llamas are very cool field 1"');
+    $this->assertSame($data['foo'][1]['value'], '"Llamas are very cool field 2"');
+    $this->assertSame($data['foo'][2]['value'], '"Llamas are very cool field 3"');
 
     $this->goToContentBulkManagementForm();
 
@@ -275,11 +275,11 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
     // Request the Spanish translation.
     $this->clickLink('ES');
     $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node \"Llamas are cool\".");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
     $this->assertSession()->pageTextContains('The es_MX translation for node "Llamas are cool" is ready for download.');
 
     // Download the Spanish translation.
@@ -289,10 +289,11 @@ class LingotekNodeMultivaluedFieldTest extends LingotekTestBase {
     $this->clickLink('"Llamas are cool"');
     $this->clickLink('Translate');
     $this->clickLink('"Las llamas son chulas"');
-
-    $this->assertNoText('"Las llamas son muy chulas campo 1"');
-    $this->assertNoText('"Las llamas son muy chulas campo 2"');
-    $this->assertNoText('"Las llamas son muy chulas campo 3"');
+    $page_text = $this->getSession()->getPage()->getText();
+    var_dump($page_text);
+    $this->assertSession()->pageTextNotContains('"Las llamas son muy chulas campo 1"');
+    $this->assertSession()->pageTextNotContains('"Las llamas son muy chulas campo 2"');
+    $this->assertSession()->pageTextNotContains('"Las llamas son muy chulas campo 3"');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeNestedParagraphsEditedTranslationTest.php b/tests/src/Functional/LingotekNodeNestedParagraphsEditedTranslationTest.php
index 93821853..2476634a 100644
--- a/tests/src/Functional/LingotekNodeNestedParagraphsEditedTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeNestedParagraphsEditedTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'content_moderation', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'content_moderation', 'paragraphs', 'lingotek_paragraphs_test'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -99,8 +99,8 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $this->createNestedParagraphedNode('manual');
 
@@ -114,19 +114,19 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -135,16 +135,16 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -159,11 +159,11 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
 
     $this->saveAndKeepPublishedNodeForm($edit, 1, FALSE);
 
-    $this->assertText('Paragraphed nested content Llamas are cool has been updated.');
-    $this->assertText('Cats are very cool for the first time');
-    $this->assertText('Cats are very cool for the second time');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Paragraphed nested content Llamas are cool has been updated.');
+    $this->assertSession()->pageTextContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
 
     $this->goToContentBulkManagementForm();
 
@@ -222,7 +222,8 @@ class LingotekNodeNestedParagraphsEditedTranslationTest extends LingotekTestBase
     $edit = [];
     $edit['settings[node][paragraphed_nested_content][fields][field_paragraph_container]'] = 1;
     $edit['settings[paragraph][paragraph_container][fields][field_paragraphs_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/Functional/LingotekNodeNestedParagraphsTranslationTest.php b/tests/src/Functional/LingotekNodeNestedParagraphsTranslationTest.php
index ec079381..bd621f24 100644
--- a/tests/src/Functional/LingotekNodeNestedParagraphsTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeNestedParagraphsTranslationTest.php
@@ -21,7 +21,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -102,7 +102,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -114,18 +114,18 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -134,28 +134,28 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -167,8 +167,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -184,12 +184,12 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $translation_service = \Drupal::service('lingotek.content_translation');
 
     $serialized_node = $translation_service->getSourceData($this->node);
-    $this->verbose(var_export($serialized_node, TRUE));
+    dump(var_export($serialized_node, TRUE));
     // Main node metadata is there.
     $this->assertTrue(isset($serialized_node['_lingotek_metadata']), 'The Lingotek metadata is included in the extracted data.');
-    $this->assertEqual('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
+    $this->assertEquals('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
   }
 
   /**
@@ -201,8 +201,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -213,7 +213,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit, NULL);
 
     $this->goToContentBulkManagementForm('paragraph');
-    $this->assertNoField('filters[wrapper][label]', 'There is no filter by label as paragraphs have no label.');
+    $this->assertSession()->fieldNotExists('filters[wrapper][label]');
   }
 
   /**
@@ -225,8 +225,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -235,13 +235,14 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraph_container[0][subform][field_paragraphs_demo][1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
 
     $this->saveAndPublishNodeForm($edit, NULL);
+    $this->drupalGet('admin/lingotek/settings', []);
 
     // Ensure paragraphs tab is enabled.
-    $this->drupalPostForm('admin/lingotek/settings', ['contrib[paragraphs][enable_bulk_management]' => 1], 'Save settings', [], 'lingoteksettings-integrations-form');
+    $this->submitForm(['contrib[paragraphs][enable_bulk_management]' => 1], 'Save settings', 'lingoteksettings-integrations-form');
 
     $this->goToContentBulkManagementForm('paragraph');
     // Assert there is at least one paragraph in the list.
-    $this->assertText('Image + Text');
+    $this->assertSession()->pageTextContains('Image + Text');
 
     // Set a filter, and there should still be paragraphs.
     /** @var \Drupal\user\PrivateTempStore $tempStore */
@@ -249,7 +250,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $tempStore->set('label', 'Llamas');
 
     $this->goToContentBulkManagementForm('paragraph');
-    $this->assertText('Image + Text');
+    $this->assertSession()->pageTextContains('Image + Text');
   }
 
   public function testParagraphEditsAreKeptWhenTranslating() {
@@ -259,8 +260,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $this->createNestedParagraphedNode('automatic');
 
@@ -268,19 +269,19 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -289,16 +290,16 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -314,32 +315,32 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     $this->saveAndKeepPublishedNodeForm($edit, 1, FALSE);
 
-    $this->assertText('Paragraphed nested content Dogs are cool has been updated.');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Paragraphed nested content Dogs are cool has been updated.');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
 
     // Go back to translations.
     $this->clickLink('Translate');
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Dogs are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Dogs are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Dogs are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Dogs are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas por primera vez');
-    $this->assertText('Las llamas son muy chulas por segunda vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por primera vez');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por segunda vez');
 
     // The saved revision is kept.
     $this->clickLink('Translate');
     $this->clickLink('Dogs are cool');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
   }
 
   public function testParagraphRevisionsAreKeptWhenTranslating() {
@@ -349,8 +350,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $this->createNestedParagraphedNode('automatic');
 
@@ -358,21 +359,21 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
-    $this->assertEqual($data['field_paragraph_container'][1]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Dogs are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][1]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Dogs are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['field_paragraph_container'][1]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Dogs are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][1]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Dogs are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -381,16 +382,16 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -406,47 +407,47 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $edit['revision'] = 1;
     $this->saveAndUnpublishNodeForm($edit, 1, FALSE);
 
-    $this->assertText('Paragraphed nested content Cats are cool has been updated.');
-    $this->assertText('Cats are very cool for the first time');
-    $this->assertText('Cats are very cool for the second time');
+    $this->assertSession()->pageTextContains('Paragraphed nested content Cats are cool has been updated.');
+    $this->assertSession()->pageTextContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the second time');
 
     // Go back to translations.
     $this->clickLink('Translate');
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Cats are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Cats are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Cats are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Cats are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas por primera vez');
-    $this->assertText('Las llamas son muy chulas por segunda vez');
-    $this->assertText('Los perros son muy chulos por primera vez');
-    $this->assertText('Los perros son muy chulos por segunda vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por primera vez');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por segunda vez');
+    $this->assertSession()->pageTextContains('Los perros son muy chulos por primera vez');
+    $this->assertSession()->pageTextContains('Los perros son muy chulos por segunda vez');
 
     // The latest revision is kept.
     $this->clickLink('Translate');
     $this->clickLink('Cats are cool');
-    $this->assertText('Cats are very cool for the first time');
-    $this->assertText('Cats are very cool for the second time');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
-    $this->assertNoText('Llamas are very cool for the first time');
-    $this->assertNoText('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the second time');
 
     // The published revision is not updated.
     $this->drupalGet('node/1/revisions/1/view');
-    $this->assertText('Llamas are very cool for the first time');
-    $this->assertText('Llamas are very cool for the second time');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
-    $this->assertNoText('Cats are very cool for the first time');
-    $this->assertNoText('Cats are very cool for the second time');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Cats are very cool for the second time');
   }
 
   /**
@@ -459,7 +460,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -468,7 +469,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit, NULL);
 
     $metadata = LingotekContentMetadata::loadMultiple();
-    $this->assertEqual(3, count($metadata), 'There is metadata saved for the parent entity and the child nested entities.');
+    $this->assertEquals(3, count($metadata), 'There is metadata saved for the parent entity and the child nested entities.');
   }
 
   /**
@@ -481,7 +482,7 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_nested_content');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -502,44 +503,44 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     // Check that only the configured fields have been uploaded,
     // but not the missing one.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertUploadedDataFieldCount($data['field_paragraph_container'][0], 0);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertNoText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas');
   }
 
   /**
@@ -560,26 +561,26 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that only the configured fields have been uploaded,
     // but not the missing one.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
-    $this->assertEqual($data['field_paragraph_container'][1]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Dogs are very cool for the first time');
-    $this->assertEqual($data['field_paragraph_container'][1]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Dogs are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][0]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['field_paragraph_container'][1]['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Dogs are very cool for the first time');
+    $this->assertEquals($data['field_paragraph_container'][1]['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Dogs are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // Request translation.
     $key = $this->getBulkSelectionKey('en', 1);
@@ -587,13 +588,13 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'request_translation:es-ar',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->drupalGet('node/1');
     $this->clickLink('Edit');
-    $this->drupalPostForm(NULL, NULL, t('Remove'));
-    $this->drupalPostForm(NULL, NULL, t('Confirm removal'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Remove'));
+    $this->submitForm([], t('Confirm removal'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['field_paragraph_container[1][subform][field_paragraphs_demo][0][subform][field_text_demo][0][value]'] = 'Cats are very cool for the second time';
@@ -603,16 +604,16 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraph_container[1][subform][field_paragraphs_demo][2][subform][field_text_demo][0][value]'] = 'Cats are very cool for the FOURTH time';
     $this->saveAndKeepPublishedNodeForm($edit, 1, FALSE);
 
-    $this->assertNoText('Llamas are very cool for the first time');
-    $this->assertNoText('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the second time');
 
-    $this->assertNoText('Dogs are very cool for the first time');
-    $this->assertNoText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Dogs are very cool for the second time');
 
-    $this->assertNoText('Cats are very cool for the first time');
-    $this->assertText('Cats are very cool for the second time');
-    $this->assertText('Cats are very cool for the third time');
-    $this->assertText('Cats are very cool for the FOURTH time');
+    $this->assertSession()->pageTextNotContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the second time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the third time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the FOURTH time');
 
     // Download translation.
     $this->goToContentBulkManagementForm();
@@ -621,48 +622,48 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:es-ar',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->drupalGet('node/1/translations');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
 
     if ($this->paragraphsTranslatable) {
-      $this->assertText('Las llamas son muy chulas por primera vez');
-      $this->assertText('Las llamas son muy chulas por segunda vez');
+      $this->assertSession()->pageTextContains('Las llamas son muy chulas por primera vez');
+      $this->assertSession()->pageTextContains('Las llamas son muy chulas por segunda vez');
     }
     else {
-      $this->assertNoText('Las llamas son muy chulas por primera vez');
-      $this->assertNoText('Las llamas son muy chulas por segunda vez');
+      $this->assertSession()->pageTextNotContains('Las llamas son muy chulas por primera vez');
+      $this->assertSession()->pageTextNotContains('Las llamas son muy chulas por segunda vez');
       // We show the data that was actually uploaded and translated from the
       // previous revision. The first revision is missing, as it was not
       // translated.
-      $this->assertText('Los perros son muy chulos por primera vez');
-      $this->assertText('Los perros son muy chulos por segunda vez');
+      $this->assertSession()->pageTextContains('Los perros son muy chulos por primera vez');
+      $this->assertSession()->pageTextContains('Los perros son muy chulos por segunda vez');
       // That paragraph exists, but was not translated so it's not shown at all.
-      $this->assertNoText('Los gatos son muy chulos por primera vez');
-      $this->assertNoText('Los gatos son muy chulos por segunda vez');
-      $this->assertNoText('Los gatos son muy chulos por tercera vez');
-      $this->assertNoText('Los gatos son muy chulos por cuarta vez');
+      $this->assertSession()->pageTextNotContains('Los gatos son muy chulos por primera vez');
+      $this->assertSession()->pageTextNotContains('Los gatos son muy chulos por segunda vez');
+      $this->assertSession()->pageTextNotContains('Los gatos son muy chulos por tercera vez');
+      $this->assertSession()->pageTextNotContains('Los gatos son muy chulos por cuarta vez');
     }
 
     $this->clickLink('Translate');
     $this->clickLink('Llamas are cool');
 
-    $this->assertText('Llamas are cool');
-    $this->assertNoText('Llamas are very cool for the first time');
-    $this->assertNoText('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the second time');
 
-    $this->assertNoText('Dogs are very cool for the first time');
-    $this->assertNoText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextNotContains('Dogs are very cool for the second time');
 
-    $this->assertNoText('Cats are very cool for the first time');
-    $this->assertText('Cats are very cool for the FOURTH time');
-    $this->assertText('Cats are very cool for the third time');
-    $this->assertText('Cats are very cool for the second time');
+    $this->assertSession()->pageTextNotContains('Cats are very cool for the first time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the FOURTH time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the third time');
+    $this->assertSession()->pageTextContains('Cats are very cool for the second time');
   }
 
   public function testEditingAfterNodeWithParagraphsTranslation() {
@@ -677,8 +678,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $this->drupalGet('node/1/edit');
     $assert_session->fieldValueEquals('field_paragraph_container[0][subform][field_paragraphs_demo][0][subform][field_text_demo][0][value]', 'Llamas are very cool');
 
-    $this->drupalPostForm(NULL, NULL, t('Remove'));
-    $this->drupalPostForm(NULL, NULL, t('Confirm removal'));
+    $this->submitForm([], t('Remove'));
+    $this->submitForm([], t('Confirm removal'));
 
     $page->pressButton('Save (this translation)');
     $assert_session->pageTextContains('Llamas are cool has been updated.');
@@ -734,7 +735,8 @@ class LingotekNodeNestedParagraphsTranslationTest extends LingotekTestBase {
     $edit = [];
     $edit['settings[node][paragraphed_nested_content][fields][field_paragraph_container]'] = 1;
     $edit['settings[paragraph][paragraph_container][fields][field_paragraphs_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/Functional/LingotekNodeNestedTranslatableParagraphsAsymmetricTranslationTest.php b/tests/src/Functional/LingotekNodeNestedTranslatableParagraphsAsymmetricTranslationTest.php
index 5516ef7d..dbf8b186 100644
--- a/tests/src/Functional/LingotekNodeNestedTranslatableParagraphsAsymmetricTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeNestedTranslatableParagraphsAsymmetricTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekNodeNestedTranslatableParagraphsAsymmetricTranslationTest extends
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['paragraphs_asymmetric_translation_widgets'];
+  protected static $modules = ['paragraphs_asymmetric_translation_widgets'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/LingotekNodeNotificationCallbackQueueWorkerTest.php b/tests/src/Functional/LingotekNodeNotificationCallbackQueueWorkerTest.php
index 96eb25c5..7a9a7e28 100644
--- a/tests/src/Functional/LingotekNodeNotificationCallbackQueueWorkerTest.php
+++ b/tests/src/Functional/LingotekNodeNotificationCallbackQueueWorkerTest.php
@@ -25,7 +25,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -91,7 +91,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -114,17 +114,17 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
 
@@ -150,7 +150,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download_queued'], 'Spanish language has been queued after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -158,7 +158,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready, but was not downloaded.
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
     $this->assertTargetStatus('ES', Lingotek::STATUS_READY);
@@ -189,7 +189,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
 
     // Upload the node.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request languages.
     $languages = [
@@ -201,7 +201,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
     ];
     foreach ($languages as $langcode => $locale) {
       $this->clickLink($langcode);
-      $this->assertText(new FormattableMarkup("Locale '@locale' was added as a translation target for node Llamas are cool.", ['@locale' => $locale]));
+      $this->assertSession()->pageTextContains(new FormattableMarkup("Locale '@locale' was added as a translation target for node Llamas are cool.", ['@locale' => $locale]));
     }
 
     /** @var \GuzzleHttp\Promise\PromiseInterface[] $requests */
@@ -231,14 +231,14 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
               '%status' => $response->getStatusCode(),
               '%body' => (string) $response->getBody(TRUE),
             ]);
-          $this->verbose($message);
+          dump($message);
         }, function ($response) use ($request) {
             $message = new TranslatableMarkup(
               'REJECTED. Got a response with status %status and body: %body', [
                 '%status' => $response->getStatusCode(),
                 '%body' => (string) $response->getBody(TRUE),
               ]);
-            $this->verbose($message);
+            dump($message);
         });
       }
       catch (\Exception $error) {
@@ -254,18 +254,18 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
 
     // All the links are ready.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-ready')]");
-    $this->assertEqual(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are ready.', ['@var' => count($languages) - $count]));
+    $this->assertEquals(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are ready.', ['@var' => count($languages) - $count]));
     $this->assertTrue(TRUE, new FormattableMarkup('@count target languages failed, but error where given back so the TMS can retry.', ['@count' => $count]));
-    $this->assertEqual(5, count($current_links), new FormattableMarkup('All languages (@var) are ready.', ['@var' => count($current_links)]));
+    $this->assertEquals(5, count($current_links), new FormattableMarkup('All languages (@var) are ready.', ['@var' => count($current_links)]));
 
     // Run cron.
     $this->container->get('cron')->run();
     $this->goToContentBulkManagementForm();
 
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are current.', ['@var' => count($languages) - $count]));
+    $this->assertEquals(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are current.', ['@var' => count($languages) - $count]));
     $this->assertTrue(TRUE, new FormattableMarkup('@count target languages failed, but error where given back so the TMS can retry.', ['@count' => $count]));
-    $this->assertEqual(5, count($current_links), new FormattableMarkup('All languages (@var) are current.', ['@var' => count($current_links)]));
+    $this->assertEquals(5, count($current_links), new FormattableMarkup('All languages (@var) are current.', ['@var' => count($current_links)]));
   }
 
   /**
@@ -324,9 +324,9 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download_queued'], 'Spanish language has been queued after notification automatically.');
-    $this->assertEqual('Download for target es_ES in document dummy-document-hash-id has been queued.', $response['messages'][0]);
+    $this->assertEquals('Download for target es_ES in document dummy-document-hash-id has been queued.', $response['messages'][0]);
 
     // Go to the bulk node management page.
     $this->goToContentBulkManagementForm();
@@ -364,9 +364,9 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download_queued'], 'Italian language has been queued after notification automatically.');
-    $this->assertEqual('Download for target it_IT in document dummy-document-hash-id has been queued.', $response['messages'][0]);
+    $this->assertEquals('Download for target it_IT in document dummy-document-hash-id has been queued.', $response['messages'][0]);
 
     $url = Url::fromRoute('lingotek.notify', [], [
       'query' => [
@@ -393,7 +393,7 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
         $this->fail('The request fail with an unexpected status code.');
       }
     }
-    $this->verbose(var_export($response, TRUE));
+    dump(var_export($response, TRUE));
 
     // Run cron.
     $this->container->get('cron')->run();
@@ -404,12 +404,12 @@ class LingotekNodeNotificationCallbackQueueWorkerTest extends LingotekTestBase {
 
     // Try to re-download the Italian translation.
     $this->clickLink('IT');
-    $this->assertText('The download for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The download for node Llamas are cool failed. Please try again.');
 
     // Check that the Target Status is Error
     $node = Node::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($node, 'it'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($node, 'it'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeNotificationCallbackTest.php b/tests/src/Functional/LingotekNodeNotificationCallbackTest.php
index 0b8452fe..217a43ce 100644
--- a/tests/src/Functional/LingotekNodeNotificationCallbackTest.php
+++ b/tests/src/Functional/LingotekNodeNotificationCallbackTest.php
@@ -25,7 +25,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -105,7 +105,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -128,17 +128,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
 
@@ -164,7 +164,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -172,7 +172,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
   }
@@ -199,7 +199,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     $this->clickLink('ES');
@@ -236,9 +236,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Assert a translation has been downloaded.
     $this->drupalGet('node/1/translations');
@@ -271,7 +271,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -279,7 +279,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
   }
@@ -304,7 +304,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     $this->clickLink('ES');
@@ -341,9 +341,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Simulate the notification of content successfully translated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -395,7 +395,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     $this->clickLink('ES');
@@ -433,9 +433,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Simulate the notification of content successfully translated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -494,7 +494,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     $this->clickLink('ES');
@@ -531,9 +531,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Assert a translation has NOT been downloaded.
     $this->drupalGet('node/1/translations');
@@ -603,7 +603,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     $this->clickLink('ES');
@@ -641,9 +641,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is intermediate.
-    $this->assertIdentical(Lingotek::STATUS_INTERMEDIATE, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_INTERMEDIATE, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Assert a translation has been downloaded.
     $this->drupalGet('node/1/translations');
@@ -708,7 +708,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is edited, but not auto-uploaded.
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
     // Clicking English must init the upload of content.
@@ -735,16 +735,16 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $response = json_decode($request->getBody(), TRUE);
 
     // Translations are not requested.
-    $this->assertIdentical([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
+    $this->assertSame([], $response['result']['request_translations'], 'No translations has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is ready to be requested.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Go to the bulk node management page and request a translation.
     $this->goToContentBulkManagementForm();
@@ -772,7 +772,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEmpty($response['result']['download'], 'No translations has been downloaded after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -780,7 +780,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Go to the bulk node management page and download them.
     $this->goToContentBulkManagementForm();
@@ -789,7 +789,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
   }
 
   /**
@@ -839,7 +839,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -862,17 +862,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
+    $this->assertSame(['de', 'it'], $response['result']['request_translations'], 'German and Italian languages has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -903,7 +903,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEmpty($response['result']['download'], 'No translations has been downloaded after notification automatically.');
 
     // Simulate the notification of content successfully translated.
@@ -952,7 +952,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'German language has been downloaded after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -960,8 +960,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'de'));
     // We assert for the UI, as the status is not really stored.
     // TODO: This should actually be stored.
     $this->assertTargetStatus('ca', Lingotek::STATUS_DISABLED);
@@ -973,8 +973,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'de'));
   }
 
   /**
@@ -1020,7 +1020,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -1043,17 +1043,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_REQUEST, $content_translation_service->getTargetStatus($node, 'de'));
 
     $this->goToContentBulkManagementForm();
 
@@ -1079,7 +1079,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEmpty($response['result']['download'], 'No translations has been downloaded after notification automatically.');
 
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1103,7 +1103,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertEmpty($response['result']['download'], 'No translations has been downloaded after notification automatically.');
 
     $this->goToContentBulkManagementForm();
@@ -1111,8 +1111,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is ready.
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'de'));
 
     // Go to the bulk node management page and download them.
     $this->goToContentBulkManagementForm();
@@ -1121,8 +1121,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the target is current.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'de'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_READY, $content_translation_service->getTargetStatus($node, 'de'));
   }
 
   /**
@@ -1150,7 +1150,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -1174,7 +1174,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
+    $this->assertSame(['it', 'es'], $response['result']['request_translations'], 'Spanish and Italian languages have been requested after notification automatically.');
 
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $lingotek_config */
     $lingotek_config = \Drupal::service('lingotek.configuration');
@@ -1208,7 +1208,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Italian language has not been requested after notification automatically because it is disabled.');
   }
 
   /**
@@ -1231,7 +1231,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
 
     // Upload the node.
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request languages.
     $languages = [
@@ -1243,7 +1243,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     ];
     foreach ($languages as $langcode => $locale) {
       $this->clickLink($langcode);
-      $this->assertText(new FormattableMarkup("Locale '@locale' was added as a translation target for node Llamas are cool.", ['@locale' => $locale]));
+      $this->assertSession()->pageTextContains(new FormattableMarkup("Locale '@locale' was added as a translation target for node Llamas are cool.", ['@locale' => $locale]));
     }
 
     /** @var \GuzzleHttp\Promise\PromiseInterface[] $requests */
@@ -1273,14 +1273,14 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
               '%status' => $response->getStatusCode(),
               '%body' => (string) $response->getBody(TRUE),
             ]);
-          $this->verbose($message);
+          dump($message);
         }, function ($response) use ($request) {
             $message = new TranslatableMarkup(
               'REJECTED. Got a response with status %status and body: %body', [
                 '%status' => $response->getStatusCode(),
                 '%body' => (string) $response->getBody(TRUE),
               ]);
-            $this->verbose($message);
+            dump($message);
         });
       }
       catch (\Exception $error) {
@@ -1296,9 +1296,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
 
     // All the links are current.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are current.', ['@var' => count($languages) - $count]));
+    $this->assertEquals(count($current_links), count($languages) - $count, new FormattableMarkup('Various languages (@var) are current.', ['@var' => count($languages) - $count]));
     $this->assertTrue(TRUE, new FormattableMarkup('@count target languages failed, but error where given back so the TMS can retry.', ['@count' => $count]));
-    $this->assertEqual(5, count($current_links), new FormattableMarkup('All languages (@var) are current.', ['@var' => count($current_links)]));
+    $this->assertEquals(5, count($current_links), new FormattableMarkup('All languages (@var) are current.', ['@var' => count($current_links)]));
 
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
@@ -1408,16 +1408,16 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
-    $this->assertEqual('Document downloaded.', $response['messages'][0]);
+    $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
     // Go to the bulk node management page.
     $this->goToContentBulkManagementForm();
 
     // All the links are current.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), 1, 'Translation "es_ES" is current.');
+    $this->assertEquals(count($current_links), 1, 'Translation "es_ES" is current.');
 
     // We ensure it fails.
     \Drupal::state()->set('lingotek.must_error_in_download', TRUE);
@@ -1444,9 +1444,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertFalse(isset($response['result']['download']), 'Italian language has not been downloaded after notification automatically.');
-    $this->assertEqual('Download of target it_IT for document dummy-document-hash-id failed', $response['messages'][0]);
+    $this->assertEquals('Download of target it_IT for document dummy-document-hash-id failed', $response['messages'][0]);
 
     $url = Url::fromRoute('lingotek.notify', [], [
       'query' => [
@@ -1468,20 +1468,18 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     }
     catch (ServerException $exception) {
       if ($exception->getCode() === Response::HTTP_SERVICE_UNAVAILABLE) {
-        $this->pass('The request returned a 503 status code.');
-      }
-      else {
+      } else {
         $this->fail('The request didn\'t fail with the expected status code.');
       }
     }
-    $this->verbose(var_export($response, TRUE));
+    dump(var_export($response, TRUE));
 
     // Go to the bulk node management page.
     $this->goToContentBulkManagementForm();
 
     // Download the Italian translation.
     $this->clickLink('IT');
-    $this->assertText('The download for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The download for node Llamas are cool failed. Please try again.');
 
     // Check the right class is added.
     $this->assertTargetStatus('IT', Lingotek::STATUS_ERROR);
@@ -1489,7 +1487,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $node = Node::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($node, 'it'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($node, 'it'));
   }
 
   /**
@@ -1548,7 +1546,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1574,7 +1572,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1583,7 +1581,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
 
     // All the links are current.
     $current_links = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-current')]");
-    $this->assertEqual(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
+    $this->assertEquals(count($current_links), 2, 'Translation "es_ES" and "it_IT" are current.');
 
     // Simulate the notification of target deleted.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1678,7 +1676,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1704,7 +1702,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertTrue($response['result']['download'], 'Italian language has been downloaded after notification automatically.');
     $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
@@ -1776,7 +1774,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
 
     $this->goToContentBulkManagementForm();
 
@@ -1799,17 +1797,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     $this->goToContentBulkManagementForm();
 
@@ -1834,7 +1832,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
     $this->assertNotEmpty($response['messages'], 'Document Llamas are cool was archived in Lingotek.');
 
     $this->goToContentBulkManagementForm();
@@ -1842,8 +1840,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     $this->assertNull($content_translation_service->getDocumentId($node));
-    $this->assertIdentical(Lingotek::STATUS_ARCHIVED, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_ARCHIVED, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_ARCHIVED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_ARCHIVED, $content_translation_service->getTargetStatus($node, 'es'));
   }
 
   /**
@@ -1867,8 +1865,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
 
     $this->goToContentBulkManagementForm();
 
@@ -1889,15 +1887,15 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Llamas are cool failed. Reverting dummy-document-hash-id to previous id (NULL)');
+    dump($request);
+    $this->assertSame($response['messages'][0], 'Document import for entity Llamas are cool failed. Reverting dummy-document-hash-id to previous id (NULL)');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     $this->assertNull($content_translation_service->getDocumentId($node));
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getSourceStatus($node));
   }
 
   /**
@@ -1921,8 +1919,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
 
     $this->goToContentBulkManagementForm();
 
@@ -1945,17 +1943,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Edit the node.
     $edit = [];
@@ -1966,11 +1964,11 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id-1');
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id-1');
 
     // Simulate the notification of failed import document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -1990,9 +1988,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
+    dump($request);
 
-    $this->assertIdentical($response['messages'][0], 'Document import for entity Llamas are cool EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
+    $this->assertSame($response['messages'][0], 'Document import for entity Llamas are cool EDITED failed. Reverting dummy-document-hash-id-1 to previous id dummy-document-hash-id');
 
     $this->goToContentBulkManagementForm();
 
@@ -2000,7 +1998,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id was restored.
     $this->assertEquals($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getSourceStatus($node));
   }
 
   /**
@@ -2024,8 +2022,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
 
     $this->goToContentBulkManagementForm();
 
@@ -2048,17 +2046,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Edit the node.
     $edit = [];
@@ -2072,11 +2070,11 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     ConfigurableLanguage::createFromLangcode('it')->save();
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
     // Assert the document id changed.
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id-1');
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id-1');
 
     // Simulate the notification of content successfully updated.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2097,7 +2095,7 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->assertIdentical(['it'], $response['result']['request_translations'], 'Italian language has been requested after notification automatically.');
+    $this->assertSame(['it'], $response['result']['request_translations'], 'Italian language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
@@ -2105,9 +2103,9 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
 
     // Assert the document id and the CURRENT status.
     $this->assertEquals($content_translation_service->getDocumentId($node), 'dummy-document-hash-id-1');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'it'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'it'));
   }
 
   /**
@@ -2131,8 +2129,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
 
     // Simulate the notification of content successfully uploaded.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2153,17 +2151,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2182,16 +2180,16 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical($response['messages'][0], 'Document Llamas are cool cancelled in TMS.');
+    dump($request);
+    $this->assertSame($response['messages'][0], 'Document Llamas are cool cancelled in TMS.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     $this->assertNull($content_translation_service->getDocumentId($node));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
   }
 
   /**
@@ -2215,8 +2213,8 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
     $content_translation_service = \Drupal::service('lingotek.content_translation');
 
     // Assert the content is importing.
-    $this->assertIdentical(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
+    $this->assertSame(Lingotek::STATUS_IMPORTING, $content_translation_service->getSourceStatus($node));
+    $this->assertSame($content_translation_service->getDocumentId($node), 'dummy-document-hash-id');
 
     // Simulate the notification of content successfully uploaded.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2237,17 +2235,17 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
+    dump($request);
+    $this->assertSame(['es'], $response['result']['request_translations'], 'Spanish language has been requested after notification automatically.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
     // Assert the content is imported.
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
     // Assert the target is pending.
-    $this->assertIdentical(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame(Lingotek::STATUS_PENDING, $content_translation_service->getTargetStatus($node, 'es'));
 
     // Simulate the notification of document_cancelled document.
     $url = Url::fromRoute('lingotek.notify', [], [
@@ -2267,16 +2265,16 @@ class LingotekNodeNotificationCallbackTest extends LingotekTestBase {
       'http_errors' => FALSE,
     ]);
     $response = json_decode($request->getBody(), TRUE);
-    $this->verbose($request);
-    $this->assertIdentical($response['messages'][0], 'Document Llamas are cool target es_ES cancelled in TMS.');
+    dump($request);
+    $this->assertSame($response['messages'][0], 'Document Llamas are cool target es_ES cancelled in TMS.');
 
     $this->goToContentBulkManagementForm();
 
     $node = $this->resetStorageCachesAndReloadNode();
 
-    $this->assertIdentical('dummy-document-hash-id', $content_translation_service->getDocumentId($node));
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
+    $this->assertSame('dummy-document-hash-id', $content_translation_service->getDocumentId($node));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $content_translation_service->getTargetStatus($node, 'es'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeParagraphsSettingsTest.php b/tests/src/Functional/LingotekNodeParagraphsSettingsTest.php
index b2b00c18..e9fa8057 100644
--- a/tests/src/Functional/LingotekNodeParagraphsSettingsTest.php
+++ b/tests/src/Functional/LingotekNodeParagraphsSettingsTest.php
@@ -16,7 +16,7 @@ class LingotekNodeParagraphsSettingsTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'node', 'image', 'paragraphs', 'lingotek_paragraphs_test'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -82,30 +82,32 @@ class LingotekNodeParagraphsSettingsTest extends LingotekTestBase {
    */
   public function testDisablingContentTranslationDoesntDisableLingotekTranslationForParagraphs() {
     $this->drupalGet('admin/lingotek/settings');
-    $this->assertFieldByName('node[paragraphed_content_demo][fields][field_paragraphs_demo]', TRUE);
-    $this->assertFieldByName('paragraph[image_text][fields][field_text_demo]', TRUE);
+    $this->assertSession()->fieldValueEquals('node[paragraphed_content_demo][fields][field_paragraphs_demo]', TRUE);
+    $this->assertSession()->fieldValueEquals('paragraph[image_text][fields][field_text_demo]', TRUE);
 
     $edit = [];
     $edit['settings[node][paragraphed_content_demo][fields][field_paragraphs_demo]'] = FALSE;
     $edit['settings[paragraph][image_text][fields][field_text_demo]'] = FALSE;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
 
     $this->drupalGet('admin/lingotek/settings');
     // The paragraph is still enabled.
-    $this->assertFieldByName('node[paragraphed_content_demo][fields][field_paragraphs_demo]', TRUE);
+    $this->assertSession()->fieldValueEquals('node[paragraphed_content_demo][fields][field_paragraphs_demo]', TRUE);
     // The text field was disabled, and it's not even present.
     /** @var \Drupal\lingotek\LingotekConfigurationServiceInterface $lingotekConfig */
     $lingotekConfig = \Drupal::service('lingotek.configuration');
     $this->assertFalse($lingotekConfig->isFieldLingotekEnabled('paragraph', 'image_text', 'field_text_demo'));
-    $this->assertNoFieldByName('paragraph[image_text][fields][field_text_demo]');
+    $this->assertSession()->fieldNotExists('paragraph[image_text][fields][field_text_demo]');
   }
 
   protected function setParagraphFieldsTranslatability(): void {
     $edit = [];
     $edit['settings[node][paragraphed_content_demo][fields][field_paragraphs_demo]'] = 1;
     $edit['settings[paragraph][image_text][fields][field_text_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/Functional/LingotekNodeParagraphsTranslationTest.php b/tests/src/Functional/LingotekNodeParagraphsTranslationTest.php
index 9921cecb..42205b70 100644
--- a/tests/src/Functional/LingotekNodeParagraphsTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeParagraphsTranslationTest.php
@@ -24,7 +24,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'content_moderation', 'workflows', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'content_moderation', 'workflows', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -105,31 +105,31 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -138,28 +138,28 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -171,8 +171,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -181,7 +181,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
 
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
 
@@ -189,12 +189,12 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $translation_service = \Drupal::service('lingotek.content_translation');
 
     $serialized_node = $translation_service->getSourceData($this->node);
-    $this->verbose(var_export($serialized_node, TRUE));
+    dump(var_export($serialized_node, TRUE));
     // Main node metadata is there.
     $this->assertTrue(isset($serialized_node['_lingotek_metadata']), 'The Lingotek metadata is included in the extracted data.');
-    $this->assertEqual('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
-    $this->assertEqual(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
+    $this->assertEquals('node', $serialized_node['_lingotek_metadata']['_entity_type_id'], 'Entity type id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_id'], 'Entity id is included as metadata.');
+    $this->assertEquals(1, $serialized_node['_lingotek_metadata']['_entity_revision'], 'Entity revision id is included as metadata.');
   }
 
   /**
@@ -206,8 +206,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -216,10 +216,10 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
 
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('paragraph');
-    $this->assertNoField('filters[wrapper][label]', 'There is no filter by label as paragraphs have no label.');
+    $this->assertSession()->fieldNotExists('filters[wrapper][label]');
   }
 
   /**
@@ -231,8 +231,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -241,14 +241,15 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
 
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
+    $this->drupalGet('admin/lingotek/settings', []);
 
     // Ensure paragraphs tab is enabled.
-    $this->drupalPostForm('admin/lingotek/settings', ['contrib[paragraphs][enable_bulk_management]' => 1], 'Save settings', [], 'lingoteksettings-integrations-form');
+    $this->submitForm(['contrib[paragraphs][enable_bulk_management]' => 1], 'Save settings', 'lingoteksettings-integrations-form');
 
     $this->goToContentBulkManagementForm('paragraph');
     // Assert there is at least one paragraph in the list.
-    $this->assertText('Image + Text');
+    $this->assertSession()->pageTextContains('Image + Text');
 
     // Set a filter, and there should still be paragraphs.
     /** @var \Drupal\user\PrivateTempStore $tempStore */
@@ -256,7 +257,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $tempStore->set('label', 'Llamas');
 
     $this->goToContentBulkManagementForm('paragraph');
-    $this->assertText('Image + Text');
+    $this->assertSession()->pageTextContains('Image + Text');
   }
 
   public function testParagraphEditsAreKeptWhenTranslating() {
@@ -266,8 +267,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -275,25 +276,25 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the first time';
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -302,16 +303,16 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -327,32 +328,32 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     $this->saveAndKeepPublishedNodeForm($edit, 1, FALSE);
 
-    $this->assertText('Paragraphed article Dogs are cool has been updated.');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Paragraphed article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
 
     // Go back to translations.
     $this->clickLink('Translate');
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Dogs are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Dogs are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Dogs are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Dogs are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas por primera vez');
-    $this->assertText('Las llamas son chulas por segunda vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por primera vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por segunda vez');
 
     // The saved revision is kept.
     $this->clickLink('Translate');
     $this->clickLink('Dogs are cool');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
   }
 
   public function testParagraphRevisionsAreKeptWhenTranslating() {
@@ -362,8 +363,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -371,25 +372,25 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the first time';
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -398,16 +399,16 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -423,9 +424,9 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['revision'] = 1;
     $this->saveAndUnpublishNodeForm($edit, 1, FALSE);
 
-    $this->assertText('Paragraphed article Dogs are cool has been updated.');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Paragraphed article Dogs are cool has been updated.');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
 
     // Go back to translations.
     $this->clickLink('Translate');
@@ -433,33 +434,33 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Re-upload, as drafts are not re-uploaded automatically.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Llamas are cool was updated and sent to Lingotek successfully.');
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas por primera vez');
-    $this->assertText('Las llamas son chulas por segunda vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por primera vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por segunda vez');
 
     // The published revision is the one visible.
     $this->clickLink('Translate');
     $this->clickLink('Dogs are cool');
-    $this->assertText('Llamas are cool');
-    $this->assertText('Llamas are very cool for the first time');
-    $this->assertText('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the second time');
 
     // The pending revision is not updated.
     $this->drupalGet('node/1/latest');
-    $this->assertText('Dogs are very cool for the first time');
-    $this->assertText('Dogs are very cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are very cool for the second time');
   }
 
   /**
@@ -470,9 +471,9 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $this->testNodeWithParagraphsTranslation();
 
     $this->drupalGet('node/1/edit');
-    $this->drupalPostForm(NULL, [], 'Remove');
-    $this->drupalPostForm(NULL, [], 'Confirm removal');
-    $this->drupalPostForm(NULL, [], 'Save (this translation)');
+    $this->submitForm([], 'Remove');
+    $this->submitForm([], 'Confirm removal');
+    $this->submitForm([], 'Save (this translation)');
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
@@ -486,16 +487,16 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertNoText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas');
   }
 
   /**
@@ -517,12 +518,12 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $paragraph->save();
 
     $this->drupalGet('node/1/edit');
-    $this->drupalPostForm(NULL, [], 'Remove');
-    $this->drupalPostForm(NULL, [], 'Confirm removal');
-    $this->drupalPostForm(NULL, [], 'Save');
+    $this->submitForm([], 'Remove');
+    $this->submitForm([], 'Confirm removal');
+    $this->submitForm([], 'Save');
 
     // The content is edited successfully.
-    $this->assertText('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are cool');
   }
 
   /**
@@ -534,9 +535,9 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -545,24 +546,24 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the second time';
     $edit['field_paragraphs_demo[2][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the third time';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     \Drupal::messenger()->addStatus(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
-    $this->assertEqual($data['field_paragraphs_demo'][2]['field_text_demo'][0]['value'], 'Llamas are very cool for the third time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['field_paragraphs_demo'][2]['field_text_demo'][0]['value'], 'Llamas are very cool for the third time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -571,38 +572,38 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas por primera vez');
-    $this->assertText('Las llamas son muy chulas por segunda vez');
-    $this->assertText('Las llamas son muy chulas por tercera vez');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por primera vez');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por segunda vez');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por tercera vez');
 
     // This is a hack for avoiding writing different lingotek endpoint mocks.
     \Drupal::state()->set('lingotek.uploaded_content_type', 'node+paragraphs_multiple_after_removal');
 
     $this->drupalGet('node/1/edit');
 
-    $this->drupalPostForm(NULL, NULL, 'field_paragraphs_demo_1_remove');
-    $this->drupalPostForm(NULL, NULL, 'field_paragraphs_demo_1_confirm_remove');
+    $this->submitForm([], 'field_paragraphs_demo_1_remove');
+    $this->submitForm([], 'field_paragraphs_demo_1_confirm_remove');
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -610,12 +611,12 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the first time EDITED';
     $edit['field_paragraphs_demo[2][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the third time EDITED';
     $edit['revision'] = TRUE;
-    $this->drupalPostForm(NULL, $edit, t('Save (this translation)'));
+    $this->submitForm($edit, t('Save (this translation)'));
 
-    $this->assertText('Llamas are cool EDITED');
-    $this->assertText('Llamas are very cool for the first time EDITED');
-    $this->assertNoText('Llamas are very cool for the second time EDITED');
-    $this->assertText('Llamas are very cool for the third time EDITED');
+    $this->assertSession()->pageTextContains('Llamas are cool EDITED');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the first time EDITED');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the second time EDITED');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the third time EDITED');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -628,22 +629,22 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically updated, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool EDITED is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool EDITED is complete.');
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool EDITED is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool EDITED is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool EDITED into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool EDITED into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas EDITADO');
-    $this->assertText('Las llamas son chulas EDITADO');
-    $this->assertText('Las llamas son muy chulas por primera vez EDITADO');
-    $this->assertNoText('Las llamas son muy chulas por segunda vez EDITADO');
-    $this->assertText('Las llamas son muy chulas por tercera vez EDITADO');
+    $this->assertSession()->pageTextContains('Las llamas son chulas EDITADO');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por primera vez EDITADO');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas por segunda vez EDITADO');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas por tercera vez EDITADO');
 
     $paragraphs = $this->xpath('//div[contains(@class, "paragraph")]');
     $this->assertCount(2, $paragraphs);
@@ -659,17 +660,17 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $metadata = LingotekContentMetadata::loadMultiple();
-    $this->assertEqual(2, count($metadata), 'There is metadata saved for the parent entity and the child entity.');
+    $this->assertEquals(2, count($metadata), 'There is metadata saved for the parent entity and the child entity.');
   }
 
   /**
@@ -682,7 +683,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -690,7 +691,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     Paragraph::load(1)->delete();
 
@@ -704,43 +705,43 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Check that only the configured fields have been uploaded,
     // but not the missing one.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 1);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertNoText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas');
   }
 
   /**
@@ -753,8 +754,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -763,7 +764,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are cool for the second time';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm();
     $key = $this->getBulkSelectionKey('en', 1);
@@ -771,24 +772,24 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that only the configured fields have been uploaded,
     // but not the missing one.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // Request translation.
     $key = $this->getBulkSelectionKey('en', 1);
@@ -796,12 +797,12 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es-ar', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->drupalGet('node/1');
     $this->clickLink('Edit');
-    $this->drupalPostForm(NULL, NULL, t('Remove'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Remove'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are very cool';
@@ -817,33 +818,33 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:es-ar',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->drupalGet('node/1/translations');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
     if ($this->paragraphsTranslatable) {
-      $this->assertText('Las llamas son chulas por primera vez');
-      $this->assertText('Las llamas son chulas por segunda vez');
-      $this->assertNoText('Las llamas son chulas por tercera vez');
-      $this->assertNoText('Llamas are very cool for the third time');
+      $this->assertSession()->pageTextContains('Las llamas son chulas por primera vez');
+      $this->assertSession()->pageTextContains('Las llamas son chulas por segunda vez');
+      $this->assertSession()->pageTextNotContains('Las llamas son chulas por tercera vez');
+      $this->assertSession()->pageTextNotContains('Llamas are very cool for the third time');
     }
     else {
-      $this->assertNoText('Las llamas son chulas por primera vez');
-      $this->assertText('Las llamas son chulas por segunda vez');
-      $this->assertText('Llamas are very cool for the third time');
+      $this->assertSession()->pageTextNotContains('Las llamas son chulas por primera vez');
+      $this->assertSession()->pageTextContains('Las llamas son chulas por segunda vez');
+      $this->assertSession()->pageTextContains('Llamas are very cool for the third time');
     }
 
     $this->clickLink('Translate');
     $this->clickLink('Llamas are very cool');
 
-    $this->assertText('Llamas are very cool');
-    $this->assertNoText('Llamas are very cool for the first time');
-    $this->assertText('Llamas are very cool for the second time');
-    $this->assertText('Llamas are very cool for the third time');
+    $this->assertSession()->pageTextContains('Llamas are very cool');
+    $this->assertSession()->pageTextNotContains('Llamas are very cool for the first time');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the second time');
+    $this->assertSession()->pageTextContains('Llamas are very cool for the third time');
   }
 
   public function testEditingAfterNodeWithParagraphsTranslation() {
@@ -858,8 +859,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $this->drupalGet('node/1/edit');
     $assert_session->fieldValueEquals('field_paragraphs_demo[0][subform][field_text_demo][0][value]', 'Llamas are very cool');
 
-    $this->drupalPostForm(NULL, NULL, t('Remove'));
-    $this->drupalPostForm(NULL, NULL, t('Confirm removal'));
+    $this->submitForm([], t('Remove'));
+    $this->submitForm([], t('Confirm removal'));
 
     $page->pressButton('Save (this translation)');
     $assert_session->pageTextContains('Llamas are cool has been updated.');
@@ -875,23 +876,23 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->node = Node::load(1);
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
 
     // Create a translation.
     /** @var \Drupal\paragraphs\Entity\Paragraph $paragraph */
@@ -901,11 +902,11 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -914,28 +915,28 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     $this->drupalGet('es-ar/node/1/edit');
     $assert_session->fieldValueEquals('field_paragraphs_demo[0][subform][field_text_demo][0][value]', 'Las llamas son muy chulas');
@@ -943,8 +944,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $this->drupalGet('node/1/edit');
     $assert_session->fieldValueEquals('field_paragraphs_demo[0][subform][field_text_demo][0][value]', 'Llamas are very cool');
 
-    $this->drupalPostForm(NULL, NULL, t('Remove'));
-    $this->drupalPostForm(NULL, NULL, t('Confirm removal'));
+    $this->submitForm([], t('Remove'));
+    $this->submitForm([], t('Confirm removal'));
 
     $page->pressButton('Save (this translation)');
     $assert_session->pageTextContains('Llamas are cool has been updated.');
@@ -963,8 +964,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -973,7 +974,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit['field_paragraphs_demo[1][subform][field_text_demo][0][value]'] = 'Llamas are cool for the second time';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm();
     $key = $this->getBulkSelectionKey('en', 1);
@@ -981,24 +982,24 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that only the configured fields have been uploaded,
     // but not the missing one.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are cool for the second time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are cool for the second time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     $this->drupalGet('node/1');
     $this->clickLink('Edit');
@@ -1019,7 +1020,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('es-ar'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all translations.
     $this->goToContentBulkManagementForm();
@@ -1028,37 +1029,37 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->drupalGet('node/1/translations');
 
     // The content is translated and published in all languages.
-    $this->assertLink('I lama sono belle');
-    $this->assertLink('Las llamas son chulas es-ES');
-    $this->assertText('Las llamas son chulas');
-    $this->assertLink('Dogs are cool');
+    $this->assertSession()->linkExists('I lama sono belle');
+    $this->assertSession()->linkExists('Las llamas son chulas es-ES');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->linkExists('Dogs are cool');
 
     $this->clickLink('I lama sono belle');
 
-    $this->assertText('I lama sono belle');
-    $this->assertText('I lama sono belle la prima volta');
-    $this->assertText('I lama sono belle la seconda volta');
+    $this->assertSession()->pageTextContains('I lama sono belle');
+    $this->assertSession()->pageTextContains('I lama sono belle la prima volta');
+    $this->assertSession()->pageTextContains('I lama sono belle la seconda volta');
 
     $this->drupalGet('node/1/translations');
     $this->clickLink('Las llamas son chulas es-ES');
 
-    $this->assertText('Las llamas son chulas es-ES');
-    $this->assertText('Las llamas son chulas por primera vez es-ES');
-    $this->assertText('Las llamas son chulas por segunda vez es-ES');
+    $this->assertSession()->pageTextContains('Las llamas son chulas es-ES');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por primera vez es-ES');
+    $this->assertSession()->pageTextContains('Las llamas son chulas por segunda vez es-ES');
 
     $this->drupalGet('node/1/translations');
     $this->clickLink('Dogs are cool');
 
-    $this->assertText('Dogs are cool');
-    $this->assertNoText('Llamas are cool for the first time');
-    $this->assertNoText('Llamas are cool for the second time');
-    $this->assertText('Dogs are cool for the first time');
-    $this->assertText('Dogs are cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are cool');
+    $this->assertSession()->pageTextNotContains('Llamas are cool for the first time');
+    $this->assertSession()->pageTextNotContains('Llamas are cool for the second time');
+    $this->assertSession()->pageTextContains('Dogs are cool for the first time');
+    $this->assertSession()->pageTextContains('Dogs are cool for the second time');
   }
 
   /**
@@ -1102,29 +1103,29 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
 
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
     $this->node = Node::load(1);
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 2);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the content is published.
     $this->drupalGet('node/1');
@@ -1136,16 +1137,16 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // the upload status.
     $this->clickLink('Translate');
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
@@ -1153,18 +1154,18 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     // Download completed translation.
     $this->clickLink('Translate');
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The source should stay published, but the new translation is not.
-    $this->assertText('Not published');
-    $this->assertText('Published');
+    $this->assertSession()->pageTextContains('Not published');
+    $this->assertSession()->pageTextContains('Published');
 
     // The last revision for the translation has the changed texts.
     $this->clickLink('Las llamas son chulas');
     $this->clickLink('Latest version');
 
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     // We check this is a draft and publish the translation.
     $this->clickLink('Edit');
@@ -1172,7 +1173,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $this->assertEquals(1, count($draft_option));
 
     $edit = ['moderation_state[0][state]' => 'published'];
-    $this->drupalPostForm(NULL, $edit, 'Save (this translation)');
+    $this->submitForm($edit, 'Save (this translation)');
 
     $this->clickLink('Edit');
     $publish_option = $this->xpath('//option[@value="published" and @selected="selected"]');
@@ -1188,7 +1189,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekTestBase {
     $edit = [];
     $edit['settings[node][paragraphed_content_demo][fields][field_paragraphs_demo]'] = 1;
     $edit['settings[paragraph][image_text][fields][field_text_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/Functional/LingotekNodeStatusDownloadTargetTest.php b/tests/src/Functional/LingotekNodeStatusDownloadTargetTest.php
index 52add11e..5aef17e3 100644
--- a/tests/src/Functional/LingotekNodeStatusDownloadTargetTest.php
+++ b/tests/src/Functional/LingotekNodeStatusDownloadTargetTest.php
@@ -18,10 +18,10 @@ class LingotekNodeStatusDownloadTargetTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -71,27 +71,27 @@ class LingotekNodeStatusDownloadTargetTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Edit the Source
     $edit = [];
@@ -110,7 +110,7 @@ class LingotekNodeStatusDownloadTargetTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check that the Spanish translation is still 'Ready'.
     $this->assertTargetStatus('ES', Lingotek::STATUS_READY);
@@ -121,11 +121,11 @@ class LingotekNodeStatusDownloadTargetTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the status is not Current for source.
     $source_edited = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'source-edited') and contains(@title, 'Re-upload (content has changed since last upload)')]");
-    $this->assertEqual(count($source_edited), 1, 'Source is marked as edited.');
+    $this->assertEquals(count($source_edited), 1, 'Source is marked as edited.');
     $this->assertTargetStatus('ES', Lingotek::STATUS_EDITED);
 
   }
diff --git a/tests/src/Functional/LingotekNodeTabsThemeTest.php b/tests/src/Functional/LingotekNodeTabsThemeTest.php
index 7c47a73b..32cf0aa0 100644
--- a/tests/src/Functional/LingotekNodeTabsThemeTest.php
+++ b/tests/src/Functional/LingotekNodeTabsThemeTest.php
@@ -15,7 +15,7 @@ class LingotekNodeTabsThemeTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -25,18 +25,19 @@ class LingotekNodeTabsThemeTest extends LingotekTestBase {
 
     // Install themes theme.
     $theme_handler = $this->container->get('theme_installer');
-    $theme_handler->install(['seven', 'bartik']);
+    $theme_handler->install(['stark', 'olivero']);
     $this->config('system.theme')
-      ->set('default', 'bartik')
+      ->set('default', 'olivero')
       ->save();
 
     $edit = [];
-    $edit['admin_theme'] = 'seven';
+    $edit['admin_theme'] = 'stark';
     $edit['use_admin_theme'] = TRUE;
-    $this->drupalPostForm('admin/appearance', $edit, t('Save configuration'));
+    $this->drupalGet('admin/appearance');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Place the blocks.
-    foreach (['bartik', 'seven'] as $theme) {
+    foreach (['olivero', 'stark'] as $theme) {
       $this->drupalPlaceBlock('page_title_block', [
         'region' => 'content',
         'weight' => -5,
@@ -94,25 +95,26 @@ class LingotekNodeTabsThemeTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
 
     $this->saveAndPublishNodeForm($edit);
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Edit');
-    $this->assertText('Current theme: seven');
+    $this->assertSession()->pageTextContains('Current theme: stark');
 
     $this->clickLink('Manage Translations');
-    $this->assertText('Current theme: seven');
+    $this->assertSession()->pageTextContains('Current theme: stark');
 
     $edit = ['use_admin_theme' => FALSE];
-    $this->drupalPostForm('admin/appearance', $edit, t('Save configuration'));
+    $this->drupalGet('admin/appearance');
+    $this->submitForm($edit, t('Save configuration'));
 
     $this->drupalGet('node/1');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Edit');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Manage Translations');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
   }
 
   /**
@@ -124,30 +126,32 @@ class LingotekNodeTabsThemeTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet('admin/lingotek/settings');
 
     // Enable debug operations.
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Enable debug operations');
+    $this->submitForm([], 'Enable debug operations');
 
     $this->saveAndPublishNodeForm($edit);
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Edit');
-    $this->assertText('Current theme: seven');
+    $this->assertSession()->pageTextContains('Current theme: stark');
 
     $this->clickLink('Lingotek Metadata');
-    $this->assertText('Current theme: seven');
+    $this->assertSession()->pageTextContains('Current theme: stark');
 
     $edit = ['use_admin_theme' => FALSE];
-    $this->drupalPostForm('admin/appearance', $edit, t('Save configuration'));
+    $this->drupalGet('admin/appearance');
+    $this->submitForm($edit, t('Save configuration'));
 
     $this->drupalGet('node/1');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Edit');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
 
     $this->clickLink('Lingotek Metadata');
-    $this->assertText('Current theme: bartik');
+    $this->assertSession()->pageTextContains('Current theme: olivero');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php b/tests/src/Functional/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
index 09a16a51..357adceb 100644
--- a/tests/src/Functional/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
@@ -15,7 +15,7 @@ class LingotekNodeTranslatableParagraphsAsymmetricTranslationTest extends Lingot
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['paragraphs_asymmetric_translation_widgets'];
+  protected static $modules = ['paragraphs_asymmetric_translation_widgets'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/LingotekNodeTranslationAppendTypeTitleOptionTest.php b/tests/src/Functional/LingotekNodeTranslationAppendTypeTitleOptionTest.php
index 61ab0f0f..656bb108 100644
--- a/tests/src/Functional/LingotekNodeTranslationAppendTypeTitleOptionTest.php
+++ b/tests/src/Functional/LingotekNodeTranslationAppendTypeTitleOptionTest.php
@@ -16,7 +16,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -84,7 +84,8 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
     $edit = [
       'append_type_to_title' => $value,
     ];
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-preferences-form');
+    $this->drupalGet('admin/lingotek/settings', []);
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-preferences-form');
   }
 
   /**
@@ -108,7 +109,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
+    $this->assertSame('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
   }
 
   /**
@@ -132,7 +133,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
+    $this->assertSame('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
   }
 
   /**
@@ -165,7 +166,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
+    $this->assertSame('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
   }
 
   /**
@@ -198,7 +199,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
+    $this->assertSame('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
   }
 
   /**
@@ -231,7 +232,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
+    $this->assertSame('article (node): Llamas are cool', $uploaded_title, 'The node title was used appending type.');
   }
 
   /**
@@ -264,7 +265,7 @@ class LingotekNodeTranslationAppendTypeTitleOptionTest extends LingotekTestBase
 
     // Check that the title used was the right one.
     $uploaded_title = \Drupal::state()->get('lingotek.uploaded_title');
-    $this->assertIdentical('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
+    $this->assertSame('Llamas are cool', $uploaded_title, 'The node title was used without appending type.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeTranslationDownloadStatusTest.php b/tests/src/Functional/LingotekNodeTranslationDownloadStatusTest.php
index b2d4bc72..f30d14d2 100644
--- a/tests/src/Functional/LingotekNodeTranslationDownloadStatusTest.php
+++ b/tests/src/Functional/LingotekNodeTranslationDownloadStatusTest.php
@@ -21,7 +21,7 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -84,8 +84,8 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
     $this->createAndDownloadANodeTranslation(self::PUBLISHED);
 
     // Ensure that there is one and only one unpublished content.
-    $this->assertText('Not published');
-    $this->assertUniqueText('Not published');
+    $this->assertSession()->pageTextContains('Not published');
+    $this->assertSession()->pageTextContainsOnce('Not published');
   }
 
   /**
@@ -106,8 +106,9 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
     $this->createAndDownloadANodeTranslation(self::UNPUBLISHED);
 
     // Ensure that there is one and only one published content.
-    $this->assertText('Published');
-    $this->assertUniqueText('Published');
+    //Meaning there should be one published(translation) and one not published(Source).
+    $this->assertSession()->pageTextContains('Published');
+    $this->assertSession()->pageTextContainsOnce('Not Published');
   }
 
   /**
@@ -128,8 +129,10 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
     $this->createAndDownloadANodeTranslation(self::PUBLISHED);
 
     // Ensure that there is more than one published content.
-    $this->assertNoText('Not published');
-    $this->assertNoUniqueText('Published');
+    $this->assertSession()->pageTextNotContains('Not published');
+    $page_text = $this->getSession()->getPage()->getText();
+    $nr_found = substr_count($page_text, 'Published');
+    $this->assertGreaterThan(1, $nr_found, "'Published' found more than once on the page");
   }
 
   /**
@@ -150,8 +153,9 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
     $this->createAndDownloadANodeTranslation(self::UNPUBLISHED);
 
     // Ensure that there is more than one unpublished content.
-    $this->assertNoText('Published');
-    $this->assertNoUniqueText('Not published');
+    $page_text = $this->getSession()->getPage()->getText();
+    $nr_found = substr_count($page_text, 'Not published');
+    $this->assertGreaterThan(1, $nr_found, "'Not published' found more than once on the page");
   }
 
   /**
@@ -178,14 +182,14 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -194,27 +198,27 @@ class LingotekNodeTranslationDownloadStatusTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
   }
 
diff --git a/tests/src/Functional/LingotekNodeTranslationFlowNotCurrentToPendingTest.php b/tests/src/Functional/LingotekNodeTranslationFlowNotCurrentToPendingTest.php
index a16e7d4a..3be31d41 100644
--- a/tests/src/Functional/LingotekNodeTranslationFlowNotCurrentToPendingTest.php
+++ b/tests/src/Functional/LingotekNodeTranslationFlowNotCurrentToPendingTest.php
@@ -18,10 +18,10 @@ class LingotekNodeTranslationFlowNotCurrentToPendingTest extends LingotekTestBas
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -75,8 +75,8 @@ class LingotekNodeTranslationFlowNotCurrentToPendingTest extends LingotekTestBas
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->assertNoLingotekRequestTranslationLink('de_AT');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -84,25 +84,25 @@ class LingotekNodeTranslationFlowNotCurrentToPendingTest extends LingotekTestBas
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->assertLingotekRequestTranslationLink('de_AT');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Edit the Source
     $edit = [];
@@ -123,13 +123,13 @@ class LingotekNodeTranslationFlowNotCurrentToPendingTest extends LingotekTestBas
     // Clicking English must init the upload of content.
     $this->assertLingotekUpdateLink();
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool EDITED has been updated.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool EDITED has been updated.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id-1');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool EDITED is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool EDITED is complete.');
 
     $this->assertTargetStatus('ES', Lingotek::STATUS_PENDING);
 
diff --git a/tests/src/Functional/LingotekNodeTranslationTest.php b/tests/src/Functional/LingotekNodeTranslationTest.php
index 4b34b752..b2437927 100644
--- a/tests/src/Functional/LingotekNodeTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeTranslationTest.php
@@ -21,7 +21,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'image', 'frozenintime'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -102,8 +102,9 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
+    $this->drupalGet('node/add/article');
 
-    $this->drupalPostForm('node/add/article', $edit, t('Preview'));
+    $this->submitForm($edit, t('Preview'));
 
     unset($edit['files[field_image_0]']);
     $edit['field_image[0][alt]'] = 'Llamas are cool';
@@ -120,21 +121,21 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
+    $this->assertEquals(1, count($data['field_image'][0]));
     $this->assertTrue(isset($data['field_image'][0]['alt']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status, 'The node has been marked as importing.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status, 'The node has been marked as importing.');
 
     // Assert the updated time and uploaded time have expected values
     $metadata = $this->node->lingotek_metadata->entity;
@@ -145,7 +146,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Assert the link keeps the language.
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -153,29 +154,29 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -199,7 +200,8 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $edit['title[0][value]'] = 'Pages are cool';
     $edit['body[0][value]'] = 'Pages are very cool';
     $edit['langcode[0][value]'] = 'en';
-    $this->drupalPostForm('node/add/page', $edit, t('Save'));
+    $this->drupalGet('node/add/page');
+    $this->submitForm($edit, t('Save'));
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -228,8 +230,9 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'en';
     $edit['files[field_image_0]'] = \Drupal::service('file_system')->realpath($test_image->uri);
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
+    $this->drupalGet('node/add/article');
 
-    $this->drupalPostForm('node/add/article', $edit, t('Preview'));
+    $this->submitForm($edit, t('Preview'));
 
     unset($edit['files[field_image_0]']);
     $edit['field_image[0][alt]'] = 'Llamas are cool';
@@ -240,7 +243,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as untracked.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as untracked.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -249,28 +252,28 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_image'][0]));
+    $this->assertEquals(1, count($data['field_image'][0]));
     $this->assertTrue(isset($data['field_image'][0]['alt']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // The document should have been uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Assert the link keeps the language.
     $this->assertLingotekRequestTranslationLink('es_MX');
@@ -278,23 +281,23 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
 
     $assert_session->linkNotExists('Download completed translation');
@@ -302,8 +305,8 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -341,14 +344,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_MX translation for node Llamas are cool EDITED is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool EDITED is ready for download.');
 
     // Download the translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
 
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -371,7 +374,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
@@ -384,14 +387,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_MX translation for node Llamas are cool EDITED is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool EDITED is ready for download.');
 
     // Download the translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool EDITED into es_MX has been downloaded.');
 
     $this->clickLink('Las llamas son chulas EDITADO');
-    $this->assertNoText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextNotContains('Las llamas son muy chulas');
   }
 
   /**
@@ -408,8 +411,8 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $edit['langcode[0][value]'] = 'es';
     $this->saveAndPublishNodeForm($edit);
 
-    $this->assertText('Llamas are cool es-MX sent to Lingotek successfully.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('Llamas are cool es-MX sent to Lingotek successfully.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
   }
 
@@ -423,7 +426,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Get the node form.
     $this->drupalGet('node/add/article');
     // Assert translation profile cannot be assigned.
-    $this->assertNoField('lingotek_translation_management[lingotek_translation_profile]');
+    $this->assertSession()->fieldNotExists('lingotek_translation_management[lingotek_translation_profile]');
 
     $translation_manager = $this->drupalCreateUser([
       'bypass node access',
@@ -434,7 +437,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Get the node form.
     $this->drupalGet('node/add/article');
     // Assert translation profile can be assigned.
-    $this->assertField('lingotek_translation_management[lingotek_translation_profile]');
+    $this->assertSession()->fieldExists('lingotek_translation_management[lingotek_translation_profile]');
   }
 
   /**
@@ -465,14 +468,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -481,7 +484,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // There are two links for requesting translations, or we can add them
     // manually.
@@ -525,14 +528,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('The upload for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload for node Llamas are cool failed. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     $metadata = $this->node->lingotek_metadata->entity;
     $expected_time = \Drupal::time()->getRequestTime();
@@ -543,7 +546,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     $this->node = $this->resetStorageCachesAndReloadNode();
     $metadata = $this->node->lingotek_metadata->entity;
@@ -572,20 +575,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -609,20 +612,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must fail.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -644,11 +647,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -663,20 +666,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('The update for node Llamas are cool EDITED failed. Please try again.');
+    $this->assertSession()->pageTextContains('The update for node Llamas are cool EDITED failed. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -698,11 +701,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -717,20 +720,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -752,11 +755,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -771,20 +774,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -806,11 +809,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -826,20 +829,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
 
-    $this->assertText('Document node Llamas are cool EDITED was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED was not found. Please upload again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as untracked, needs new upload.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The node has been marked as untracked, needs new upload.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -861,11 +864,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -880,7 +883,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document node Llamas are cool EDITED has been archived. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has been archived. Please upload again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
@@ -893,7 +896,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -915,7 +918,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('Document node Llamas are cool EDITED has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has been archived. Uploading again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
@@ -944,11 +947,11 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that the upload succeeded.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Edit the node.
     $edit['title[0][value]'] = 'Llamas are cool EDITED';
@@ -963,20 +966,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as edited, needs new upload.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as edited, needs new upload.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
   }
 
   /**
@@ -998,14 +1001,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as edited, needs new upload.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The node has been marked as edited, needs new upload.');
   }
 
   /**
@@ -1023,14 +1026,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit);
 
     // The document was uploaded automatically and failed.
-    $this->assertText('The upload for node Llamas are cool failed. Please try again.');
+    $this->assertSession()->pageTextContains('The upload for node Llamas are cool failed. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1048,14 +1051,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit);
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1073,14 +1076,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndPublishNodeForm($edit);
 
     // The document was uploaded automatically and failed.
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1104,12 +1107,12 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
-    $this->assertLink('Check Upload Status');
+    $this->assertSession()->linkExists('Check Upload Status');
 
     $this->clickLink('Check Upload Status');
 
@@ -1117,8 +1120,8 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
-    $this->assertText('The check for node status failed. Please try again.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertSession()->pageTextContains('The check for node status failed. Please try again.');
   }
 
   /**
@@ -1140,12 +1143,12 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
-    $this->assertLink('Check Upload Status');
+    $this->assertSession()->linkExists('Check Upload Status');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -1156,8 +1159,8 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
-    $this->assertText('The import for node Llamas are cool is still pending.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is still pending.');
   }
 
   /**
@@ -1180,20 +1183,20 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
-    $this->assertLink('Check Upload Status');
+    $this->assertSession()->linkExists('Check Upload Status');
     $this->clickLink('Check Upload Status');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
   }
 
   /**
@@ -1215,14 +1218,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('The update for node Llamas are cool EDITED failed. Please try again.');
+    $this->assertSession()->pageTextContains('The update for node Llamas are cool EDITED failed. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1244,14 +1247,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1273,14 +1276,14 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The node has been marked as error.');
   }
 
   /**
@@ -1302,13 +1305,13 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
     // The document was updated automatically and failed.
-    $this->assertText('Document node Llamas are cool EDITED was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool EDITED was not found. Please upload again.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -1332,26 +1335,26 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
-    $this->assertText('The translation request for node failed. Please try again.');
+    $this->assertSession()->pageTextContains('The translation request for node failed. Please try again.');
 
     // The node has been marked with the error status.
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual(Lingotek::STATUS_CURRENT, $source_status, 'The node has not been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_CURRENT, $source_status, 'The node has not been marked as error.');
   }
 
   /**
@@ -1375,24 +1378,24 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual($source_status, Lingotek::STATUS_CURRENT);
-    $this->assertEqual($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
+    $this->assertEquals($source_status, Lingotek::STATUS_CURRENT);
+    $this->assertEquals($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
   }
 
   /**
@@ -1416,24 +1419,24 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual($source_status, Lingotek::STATUS_CURRENT);
-    $this->assertEqual($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
+    $this->assertEquals($source_status, Lingotek::STATUS_CURRENT);
+    $this->assertEquals($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
   }
 
   /**
@@ -1457,17 +1460,17 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
-    $this->assertText('Document node Llamas are cool has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has been archived. Uploading again.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
@@ -1498,24 +1501,24 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
-    $this->assertText('Document node Llamas are cool was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool was not found. Please upload again.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual($source_status, Lingotek::STATUS_UNTRACKED);
-    $this->assertEqual($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
+    $this->assertEquals($source_status, Lingotek::STATUS_UNTRACKED);
+    $this->assertEquals($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
   }
 
   /**
@@ -1539,24 +1542,24 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Upload the document.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
 
-    $this->assertText('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document node Llamas are cool has a new version. The document id has been updated for all future interactions. Please try again.');
 
     $this->node = Node::load(1);
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
     $source_status = $translation_service->getSourceStatus($this->node);
-    $this->assertEqual($source_status, Lingotek::STATUS_CURRENT);
-    $this->assertEqual($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
+    $this->assertEquals($source_status, Lingotek::STATUS_CURRENT);
+    $this->assertEquals($translation_service->getTargetStatus($this->node, 'ES'), Lingotek::STATUS_UNTRACKED);
   }
 
   /**
@@ -1577,7 +1580,7 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     // Check that the translate tab is in the node.
     $this->clickLink('Translate');
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
@@ -1605,10 +1608,10 @@ class LingotekNodeTranslationTest extends LingotekTestBase {
     ]);
     $response = json_decode($request->getBody(), TRUE);
     $this->assertTrue($response['result']['download'], 'Spanish language has been downloaded after notification automatically.');
-    $this->assertEqual('Document downloaded.', $response['messages'][0]);
+    $this->assertEquals('Document downloaded.', $response['messages'][0]);
 
     $this->drupalGet('node/1/translations');
-    $this->assertText('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekNodeWhenFieldIsRemovedTest.php b/tests/src/Functional/LingotekNodeWhenFieldIsRemovedTest.php
index 109d7e00..c17d136d 100644
--- a/tests/src/Functional/LingotekNodeWhenFieldIsRemovedTest.php
+++ b/tests/src/Functional/LingotekNodeWhenFieldIsRemovedTest.php
@@ -19,7 +19,7 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'field_ui'];
+  protected static $modules = ['block', 'node', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -94,16 +94,16 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['new_field'][0]));
+    $this->assertEquals(1, count($data['new_field'][0]));
     $this->assertTrue(isset($data['new_field'][0]['value']));
 
     // There is a link for checking status.
@@ -111,7 +111,7 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Now we remove the field!
     $this->removeField('node', 'article', 'new_field');
@@ -126,20 +126,20 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -148,7 +148,7 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
     $this->clickLink('Llamas are cool');
     $this->clickLink('Translate');
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -228,7 +228,7 @@ class LingotekNodeWhenFieldIsRemovedTest extends LingotekTestBase {
     $assert_session->linkByHrefExists("/admin/structure/types/manage/$bundle/fields/$entity_type_id.$bundle.$field_name/delete");
 
     $this->drupalGet("/admin/structure/types/manage/$bundle/fields/$entity_type_id.$bundle.$field_name/delete");
-    $this->drupalPostForm(NULL, [], 'Delete');
+    $this->submitForm([], 'Delete');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithBlockfieldTranslationTest.php b/tests/src/Functional/LingotekNodeWithBlockfieldTranslationTest.php
index b6643513..0963c404 100644
--- a/tests/src/Functional/LingotekNodeWithBlockfieldTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithBlockfieldTranslationTest.php
@@ -25,7 +25,7 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'dblog', 'block_content', 'block_field', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'dblog', 'block_content', 'block_field', 'frozenintime'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -170,8 +170,8 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
-    $this->assertText('Current theme overridden title block');
-    $this->assertText('Current theme: stark');
+    $this->assertSession()->pageTextContains('Current theme overridden title block');
+    $this->assertSession()->pageTextContains('Current theme: starterkit_theme');
 
     // Ensure it has the expected timestamp for updated and upload
     $timestamp = \Drupal::time()->getRequestTime();
@@ -188,10 +188,10 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['field_block'][0]));
-    $this->assertEqual($data['field_block'][0]['label'], 'Current theme overridden title block');
+    $this->assertEquals(1, count($data['field_block'][0]));
+    $this->assertEquals($data['field_block'][0]['label'], 'Current theme overridden title block');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -200,30 +200,30 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Tema actual titulo sobreescrito del bloque');
-    $this->assertText('Current theme: stark');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Tema actual titulo sobreescrito del bloque');
+    $this->assertSession()->pageTextContains('Current theme: starterkit_theme');
   }
 
   /**
@@ -253,8 +253,8 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
-    $this->assertText('Custom block title');
-    $this->assertText('Custom block body');
+    $this->assertSession()->pageTextContains('Custom block title');
+    $this->assertSession()->pageTextContains('Custom block body');
 
     $this->node = Node::load(1);
 
@@ -264,11 +264,11 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(2, count($data['field_block'][0]));
-    $this->assertEqual($data['field_block'][0]['label'], 'Custom block title');
-    $this->assertEqual($data['field_block'][0]['rich_text.value'], 'Custom block body');
+    $this->assertEquals(2, count($data['field_block'][0]));
+    $this->assertEquals($data['field_block'][0]['label'], 'Custom block title');
+    $this->assertEquals($data['field_block'][0]['rich_text.value'], 'Custom block body');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -277,37 +277,37 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Título de bloque personalizado');
-    $this->assertText('Cuerpo de bloque personalizado');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Título de bloque personalizado');
+    $this->assertSession()->pageTextContains('Cuerpo de bloque personalizado');
 
     // The original content didn't change.
     $this->drupalGet('node/1');
-    $this->assertText('Llamas are cool');
-    $this->assertText('Llamas are very cool');
-    $this->assertText('Custom block title');
-    $this->assertText('Custom block body');
+    $this->assertSession()->pageTextContains('Llamas are cool');
+    $this->assertSession()->pageTextContains('Llamas are very cool');
+    $this->assertSession()->pageTextContains('Custom block title');
+    $this->assertSession()->pageTextContains('Custom block body');
   }
 
   /**
@@ -321,20 +321,22 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     $edit = [];
     $edit['info[0][value]'] = 'Dogs block';
     $edit['body[0][value]'] = 'Dogs are very cool block';
-    $this->drupalPostForm('block/add/custom_content_block', $edit, t('Save'));
+    $this->drupalGet('block/add/custom_content_block');
+    $this->submitForm($edit, t('Save'));
 
     $dogsBlock = BlockContent::load(1);
 
     $edit = [];
     $edit['info[0][value]'] = 'Cats block';
     $edit['body[0][value]'] = 'Cats are very cool block';
-    $this->drupalPostForm('block/add/custom_content_block', $edit, t('Save'));
+    $this->drupalGet('block/add/custom_content_block');
+    $this->submitForm($edit, t('Save'));
 
     $catsBlock = BlockContent::load(2);
 
     // Create a node.
     $this->drupalGet('node/add/article');
-    $this->drupalPostForm(NULL, [], 'Add another item');
+    $this->submitForm([], 'Add another item');
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['body[0][value]'] = 'Llamas are very cool';
@@ -353,10 +355,10 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndKeepPublishedNodeForm($edit, 1);
 
-    $this->assertText('Dogs overridden title block');
-    $this->assertText('Dogs are very cool block');
-    $this->assertText('Cats overridden title block');
-    $this->assertText('Cats are very cool block');
+    $this->assertSession()->pageTextContains('Dogs overridden title block');
+    $this->assertSession()->pageTextContains('Dogs are very cool block');
+    $this->assertSession()->pageTextContains('Cats overridden title block');
+    $this->assertSession()->pageTextContains('Cats are very cool block');
 
     $this->node = Node::load(1);
 
@@ -366,23 +368,23 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(2, count($data['field_block']));
-    $this->assertEqual(3, count($data['field_block'][0]));
-    $this->assertEqual(3, count($data['field_block'][1]));
-    $this->assertEqual($data['field_block'][0]['label'], 'Dogs overridden title block');
-    $this->assertEqual($data['field_block'][0]['info'], '');
+    $this->assertEquals(2, count($data['field_block']));
+    $this->assertEquals(3, count($data['field_block'][0]));
+    $this->assertEquals(3, count($data['field_block'][1]));
+    $this->assertEquals($data['field_block'][0]['label'], 'Dogs overridden title block');
+    $this->assertEquals($data['field_block'][0]['info'], '');
     $this->assertTrue(isset($data['field_block'][0]['entity']));
-    $this->assertEqual($data['field_block'][0]['entity']['body'][0]['value'], 'Dogs are very cool block');
-    $this->assertEqual($data['field_block'][0]['entity']['_lingotek_metadata']['_entity_type_id'], 'block_content');
-    $this->assertEqual($data['field_block'][0]['entity']['_lingotek_metadata']['_entity_id'], '1');
-    $this->assertEqual($data['field_block'][1]['label'], 'Cats overridden title block');
-    $this->assertEqual($data['field_block'][1]['info'], '');
+    $this->assertEquals($data['field_block'][0]['entity']['body'][0]['value'], 'Dogs are very cool block');
+    $this->assertEquals($data['field_block'][0]['entity']['_lingotek_metadata']['_entity_type_id'], 'block_content');
+    $this->assertEquals($data['field_block'][0]['entity']['_lingotek_metadata']['_entity_id'], '1');
+    $this->assertEquals($data['field_block'][1]['label'], 'Cats overridden title block');
+    $this->assertEquals($data['field_block'][1]['info'], '');
     $this->assertTrue(isset($data['field_block'][1]['entity']));
-    $this->assertEqual($data['field_block'][1]['entity']['body'][0]['value'], 'Cats are very cool block');
-    $this->assertEqual($data['field_block'][1]['entity']['_lingotek_metadata']['_entity_type_id'], 'block_content');
-    $this->assertEqual($data['field_block'][1]['entity']['_lingotek_metadata']['_entity_id'], '2');
+    $this->assertEquals($data['field_block'][1]['entity']['body'][0]['value'], 'Cats are very cool block');
+    $this->assertEquals($data['field_block'][1]['entity']['_lingotek_metadata']['_entity_type_id'], 'block_content');
+    $this->assertEquals($data['field_block'][1]['entity']['_lingotek_metadata']['_entity_id'], '2');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -391,32 +393,32 @@ class LingotekNodeWithBlockfieldTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Bloque sobreescrito con título Perros');
-    $this->assertText('Bloque Los perros son muy chulos');
-    $this->assertText('Bloque sobreescrito con título Gatos');
-    $this->assertText('Bloque Los gatos son muy chulos');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Bloque sobreescrito con título Perros');
+    $this->assertSession()->pageTextContains('Bloque Los perros son muy chulos');
+    $this->assertSession()->pageTextContains('Bloque sobreescrito con título Gatos');
+    $this->assertSession()->pageTextContains('Bloque Los gatos son muy chulos');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithCyclesTranslationTest.php b/tests/src/Functional/LingotekNodeWithCyclesTranslationTest.php
index 162991c1..a675faba 100644
--- a/tests/src/Functional/LingotekNodeWithCyclesTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithCyclesTranslationTest.php
@@ -21,7 +21,7 @@ class LingotekNodeWithCyclesTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image'];
+  protected static $modules = ['block', 'node', 'image'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -107,44 +107,44 @@ class LingotekNodeWithCyclesTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('manual', $used_profile, 'The automatic profile was used.');
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithLinkTranslationTest.php b/tests/src/Functional/LingotekNodeWithLinkTranslationTest.php
index 3f0e6c5e..43d57e2c 100644
--- a/tests/src/Functional/LingotekNodeWithLinkTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithLinkTranslationTest.php
@@ -21,7 +21,7 @@ class LingotekNodeWithLinkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'link', 'dblog'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'link', 'dblog'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -132,20 +132,20 @@ class LingotekNodeWithLinkTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(2, count($data[$this->field_name][0]));
-    $this->assertEqual($data[$this->field_name][0]['title'], 'My field link title');
-    $this->assertEqual($data[$this->field_name][0]['uri'], 'http://drupal.org');
-    $this->verbose(var_export($data, TRUE));
+    $this->assertEquals(2, count($data[$this->field_name][0]));
+    $this->assertEquals($data[$this->field_name][0]['title'], 'My field link title');
+    $this->assertEquals($data[$this->field_name][0]['uri'], 'http://drupal.org');
+    dump(var_export($data, TRUE));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -154,29 +154,29 @@ class LingotekNodeWithLinkTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Enlace con fotos de llamas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Enlace con fotos de llamas');
     $assert_session->linkByHrefExists('http://drupal.org/es');
   }
 
@@ -207,20 +207,20 @@ class LingotekNodeWithLinkTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(2, count($data[$this->field_name][0]));
-    $this->assertEqual($data[$this->field_name][0]['title'], 'My field link title');
-    $this->assertEqual($data[$this->field_name][0]['uri'], 'http://drupal.org');
-    $this->verbose(var_export($data, TRUE));
+    $this->assertEquals(2, count($data[$this->field_name][0]));
+    $this->assertEquals($data[$this->field_name][0]['title'], 'My field link title');
+    $this->assertEquals($data[$this->field_name][0]['uri'], 'http://drupal.org');
+    dump(var_export($data, TRUE));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -229,36 +229,36 @@ class LingotekNodeWithLinkTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Enlace con fotos de llamas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Enlace con fotos de llamas');
     // There is no invalid link.
     $assert_session->linkByHrefNotExists('this is not a valid uri');
     // The original link is kept.
     $assert_session->linkByHrefExists('http://drupal.org');
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "Field field_link for node Llamas are cool in language es-ar not saved, invalid uri \"this is not a valid uri\""]);
-    $this->assert($status, 'A watchdog message was logged for the invalid uri in a field');
+    $this->assertTrue($status, 'A watchdog message was logged for the invalid uri in a field');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithParagraphsManageTranslationTabTest.php b/tests/src/Functional/LingotekNodeWithParagraphsManageTranslationTabTest.php
index c59e792d..7ebdb246 100644
--- a/tests/src/Functional/LingotekNodeWithParagraphsManageTranslationTabTest.php
+++ b/tests/src/Functional/LingotekNodeWithParagraphsManageTranslationTabTest.php
@@ -21,7 +21,7 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'node', 'image', 'paragraphs', 'lingotek_paragraphs_test'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -86,7 +86,7 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -112,33 +112,33 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink();
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -159,7 +159,7 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -186,8 +186,8 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink();
@@ -195,7 +195,7 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT');
@@ -203,8 +203,8 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('de_AT');
@@ -212,8 +212,8 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('de_AT');
@@ -221,8 +221,8 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
       'table[node:1]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -236,7 +236,7 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
     // Add paragraphed content.
     $this->drupalGet('node/add/paragraphed_content_demo');
 
-    $this->drupalPostForm(NULL, NULL, t('Add Image + Text'));
+    $this->submitForm([], t('Add Image + Text'));
 
     $edit = [];
     $edit['title[0][value]'] = 'Llamas are cool';
@@ -268,7 +268,8 @@ class LingotekNodeWithParagraphsManageTranslationTabTest extends LingotekTestBas
     $edit = [];
     $edit['settings[node][paragraphed_content_demo][fields][field_paragraphs_demo]'] = 1;
     $edit['settings[paragraph][image_text][fields][field_text_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/Functional/LingotekNodeWithPathTranslationTest.php b/tests/src/Functional/LingotekNodeWithPathTranslationTest.php
index 2fcb7a4e..256f1868 100644
--- a/tests/src/Functional/LingotekNodeWithPathTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithPathTranslationTest.php
@@ -19,7 +19,7 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'image', 'comment', 'path', 'dblog'];
+  protected static $modules = ['block', 'node', 'image', 'comment', 'path', 'dblog'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -97,18 +97,18 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['path'][0]));
-    $this->assertEqual($data['path'][0]['alias'], '/llamas-are-cool');
+    $this->assertEquals(1, count($data['path'][0]));
+    $this->assertEquals($data['path'][0]['alias'], '/llamas-are-cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/llamas-are-cool'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/llamas-are-cool'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -117,29 +117,29 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertUrl('/es-ar/las-llamas-son-chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->addressEquals('/es-ar/las-llamas-son-chulas');
   }
 
   /**
@@ -167,17 +167,17 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertFalse(isset($data['path']));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -186,29 +186,29 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertUrl('/es-ar/node/1');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->addressEquals('/es-ar/node/1');
   }
 
   /**
@@ -236,18 +236,18 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['path'][0]));
-    $this->assertEqual($data['path'][0]['alias'], '/llamas-are-cool');
+    $this->assertEquals(1, count($data['path'][0]));
+    $this->assertEquals($data['path'][0]['alias'], '/llamas-are-cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/llamas-are-cool'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/llamas-are-cool'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('/llamas-are-cool');
@@ -256,35 +256,35 @@ class LingotekNodeWithPathTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "Alias for node Llamas are cool in language es-ar not saved, invalid uri \"an invalid path\""]);
-    $this->assert($status, 'A watchdog message was logged for the invalid uri in a field');
+    $this->assertTrue($status, 'A watchdog message was logged for the invalid uri in a field');
     // Url will be the same as before.
-    $this->assertUrl(\Drupal::request()->getUriForPath('/es-ar/llamas-are-cool'));
-    $this->assertUrl('/es-ar/llamas-are-cool');
+    $this->assertSession()->addressEquals(\Drupal::request()->getUriForPath('/es-ar/llamas-are-cool'));
+    $this->assertSession()->addressEquals('/es-ar/llamas-are-cool');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithPathautoTranslationTest.php b/tests/src/Functional/LingotekNodeWithPathautoTranslationTest.php
index e979c26a..7fbd7297 100644
--- a/tests/src/Functional/LingotekNodeWithPathautoTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithPathautoTranslationTest.php
@@ -23,7 +23,7 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'path', 'pathauto', 'dblog'];
+  protected static $modules = ['block', 'node', 'path', 'pathauto', 'dblog'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -100,18 +100,18 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['path'][0]));
-    $this->assertEqual($data['path'][0]['alias'], '/node/llamas-are-cool');
+    $this->assertEquals(1, count($data['path'][0]));
+    $this->assertEquals($data['path'][0]['alias'], '/node/llamas-are-cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/llamas-are-cool');
@@ -120,31 +120,31 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
 
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     // Url won't be overwritten by pathauto.
-    $this->assertUrl('/es-ar/las-llamas-son-chulas');
+    $this->assertSession()->addressEquals('/es-ar/las-llamas-son-chulas');
   }
 
   /**
@@ -174,17 +174,17 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
     $this->assertFalse(isset($data['path']));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -193,30 +193,30 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     // Url will be auto-generated by pathauto.
-    $this->assertUrl('/es-ar/node/las-llamas-son-chulas');
+    $this->assertSession()->addressEquals('/es-ar/node/las-llamas-son-chulas');
   }
 
   /**
@@ -244,19 +244,19 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['path'][0]));
+    $this->assertEquals(1, count($data['path'][0]));
     // Pathauto overrides the alias.
-    $this->assertEqual($data['path'][0]['alias'], '/node/llamas-are-cool');
+    $this->assertEquals($data['path'][0]['alias'], '/node/llamas-are-cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('/node/llamas-are-cool');
@@ -265,30 +265,30 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     // The uri is not overridden by pathauto.
-    $this->assertUrl('/es-ar/las-llamas-son-chulas');
+    $this->assertSession()->addressEquals('/es-ar/las-llamas-son-chulas');
   }
 
   /**
@@ -315,18 +315,18 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['path'][0]));
-    $this->assertEqual($data['path'][0]['alias'], '/node/llamas-are-cool');
+    $this->assertEquals(1, count($data['path'][0]));
+    $this->assertEquals($data['path'][0]['alias'], '/node/llamas-are-cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/llamas-are-cool'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/llamas-are-cool');
@@ -335,33 +335,33 @@ class LingotekNodeWithPathautoTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     // Url will be auto-generated by pathauto.
-    $this->assertUrl('/es-ar/node/las-llamas-son-chulas');
+    $this->assertSession()->addressEquals('/es-ar/node/las-llamas-son-chulas');
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "Alias for node Llamas are cool in language es-ar not saved, invalid uri \"an invalid path\""]);
-    $this->assert($status, 'A watchdog message was logged for the invalid uri in a field');
+    $this->assertTrue($status, 'A watchdog message was logged for the invalid uri in a field');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithTablefieldTranslationTest.php b/tests/src/Functional/LingotekNodeWithTablefieldTranslationTest.php
index baa3c1fa..98a5f86f 100644
--- a/tests/src/Functional/LingotekNodeWithTablefieldTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithTablefieldTranslationTest.php
@@ -19,7 +19,7 @@ class LingotekNodeWithTablefieldTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'dblog', 'tablefield'];
+  protected static $modules = ['block', 'node', 'dblog', 'tablefield'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -139,18 +139,18 @@ class LingotekNodeWithTablefieldTranslationTest extends LingotekTestBase {
     // Because we cannot do ajax requests in this test, we submit and edit later.
     $this->saveAndPublishNodeForm($edit);
 
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
 
-    $this->assertText('Table caption');
-    $this->assertText('Header 1');
-    $this->assertText('Header 2');
-    $this->assertText('Header 3');
-    $this->assertText('Row 1-1');
-    $this->assertText('Row 1-2');
-    $this->assertText('Row 1-3');
-    $this->assertText('Row 2-1');
-    $this->assertText('Row 2-2');
-    $this->assertText('Row 2-3');
+    $this->assertSession()->pageTextContains('Table caption');
+    $this->assertSession()->pageTextContains('Header 1');
+    $this->assertSession()->pageTextContains('Header 2');
+    $this->assertSession()->pageTextContains('Header 3');
+    $this->assertSession()->pageTextContains('Row 1-1');
+    $this->assertSession()->pageTextContains('Row 1-2');
+    $this->assertSession()->pageTextContains('Row 1-3');
+    $this->assertSession()->pageTextContains('Row 2-1');
+    $this->assertSession()->pageTextContains('Row 2-2');
+    $this->assertSession()->pageTextContains('Row 2-3');
 
     $this->node = Node::load(1);
 
@@ -158,13 +158,13 @@ class LingotekNodeWithTablefieldTranslationTest extends LingotekTestBase {
     // block settings stored in the field.
     $data = json_decode(\Drupal::state()
       ->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(var_export($data, TRUE));
+    dump(var_export($data, TRUE));
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(6, count($data['field_table'][0]));
-    $this->assertEqual($data['field_table'][0]['caption'], 'Table caption');
+    $this->assertEquals(6, count($data['field_table'][0]));
+    $this->assertEquals($data['field_table'][0]['caption'], 'Table caption');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -173,38 +173,38 @@ class LingotekNodeWithTablefieldTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
-    $this->assertText('Texto de la leyenda de la tabla');
-    $this->assertText('Cabecera 1');
-    $this->assertText('Cabecera 2');
-    $this->assertText('Cabecera 3');
-    $this->assertText('Texto celda 1 1');
-    $this->assertText('Texto celda 1 2');
-    $this->assertText('Texto celda 1 3');
-    $this->assertText('Texto celda 2 1');
-    $this->assertText('Texto celda 2 2');
-    $this->assertText('Texto celda 2 3');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Texto de la leyenda de la tabla');
+    $this->assertSession()->pageTextContains('Cabecera 1');
+    $this->assertSession()->pageTextContains('Cabecera 2');
+    $this->assertSession()->pageTextContains('Cabecera 3');
+    $this->assertSession()->pageTextContains('Texto celda 1 1');
+    $this->assertSession()->pageTextContains('Texto celda 1 2');
+    $this->assertSession()->pageTextContains('Texto celda 1 3');
+    $this->assertSession()->pageTextContains('Texto celda 2 1');
+    $this->assertSession()->pageTextContains('Texto celda 2 2');
+    $this->assertSession()->pageTextContains('Texto celda 2 3');
   }
 
 }
diff --git a/tests/src/Functional/LingotekNodeWithTranslatedAuthorTranslationTest.php b/tests/src/Functional/LingotekNodeWithTranslatedAuthorTranslationTest.php
index 54eb6a00..b2cbc5c0 100644
--- a/tests/src/Functional/LingotekNodeWithTranslatedAuthorTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWithTranslatedAuthorTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeWithTranslatedAuthorTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'comment'];
+  protected static $modules = ['block', 'node', 'comment'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -90,22 +90,22 @@ class LingotekNodeWithTranslatedAuthorTranslationTest extends LingotekTestBase {
 
     // Check that only the configured fields have been uploaded, including tags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->verbose(json_encode($data));
+    dump(json_encode($data));
     $this->assertUploadedDataFieldCount($data, 3);
     $this->assertTrue(isset($data['title'][0]['value']));
-    $this->assertEqual(1, count($data['body'][0]));
+    $this->assertEquals(1, count($data['body'][0]));
     $this->assertTrue(isset($data['body'][0]['value']));
-    $this->assertEqual(1, count($data['uid']));
+    $this->assertEquals(1, count($data['uid']));
     // There is a uid, but there is no data as it's not configured in Lingotek.
     $this->assertUploadedDataFieldCount($data['uid'], 0);
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -114,28 +114,28 @@ class LingotekNodeWithTranslatedAuthorTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_AR' was added as a translation target for node Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_AR translation for node Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_AR translation for node Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_AR has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
     // The author is still the same, even with a different value given by
     // Lingotek.
     $assert_session->linkExists('admin');
diff --git a/tests/src/Functional/LingotekNodeWorkbenchModerationTranslationTest.php b/tests/src/Functional/LingotekNodeWorkbenchModerationTranslationTest.php
index 4051078c..388bbc0a 100644
--- a/tests/src/Functional/LingotekNodeWorkbenchModerationTranslationTest.php
+++ b/tests/src/Functional/LingotekNodeWorkbenchModerationTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'workbench_moderation'];
+  protected static $modules = ['block', 'node', 'workbench_moderation'];
 
   /**
    * {@inheritdoc}
@@ -101,8 +101,8 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     $this->clickLink('Llamas are cool');
 
@@ -110,13 +110,14 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'Only one revision is stored.');
+    $this->assertEquals(1, $result, 'Only one revision is stored.');
 
     $this->goToContentBulkManagementForm();
 
@@ -125,25 +126,25 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -155,19 +156,20 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     $assert_session->linkExists('Revisions');
     $this->clickLink('Revisions');
     $this->drupalGet('es/node/1/revisions');
-    $this->assertText('Document translated into ES by Lingotek.');
+    $this->assertSession()->pageTextContains('Document translated into ES by Lingotek.');
 
     // Only one revision stored.
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(2, $result, 'A new revision is stored.');
+    $this->assertEquals(2, $result, 'A new revision is stored.');
   }
 
   /**
@@ -182,8 +184,8 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
    */
   protected function enableModerationThroughUI($content_type_id, array $allowed_states, $default_state) {
     $this->drupalGet('admin/structure/types/manage/' . $content_type_id . '/moderation');
-    $this->assertFieldByName('enable_moderation_state');
-    $this->assertNoFieldChecked('edit-enable-moderation-state');
+    $this->assertSession()->fieldExists('enable_moderation_state');
+    $this->assertSession()->checkboxNotChecked('edit-enable-moderation-state');
 
     $edit['enable_moderation_state'] = 1;
 
@@ -195,7 +197,7 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
 
     $edit['default_moderation_state'] = $default_state;
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
   /**
@@ -223,8 +225,8 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('Node Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Node Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     $this->clickLink('Llamas are cool');
 
@@ -232,13 +234,14 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'Only one revision is stored.');
+    $this->assertEquals(1, $result, 'Only one revision is stored.');
 
     $this->goToContentBulkManagementForm();
 
@@ -247,25 +250,25 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('EN');
-    $this->assertText('The import for node Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for node Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for node Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_MX');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for node Llamas are cool is ready for download.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_MX translation for node Llamas are cool is ready for download.');
 
     // Download the Spanish translation.
     $this->assertLingotekDownloadTargetLink('es_MX');
     $this->clickLink('ES');
-    $this->assertText('The translation of node Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The translation of node Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -288,13 +291,14 @@ class LingotekNodeWorkbenchModerationTranslationTest extends LingotekTestBase {
     /** @var \Drupal\node\NodeStorageInterface $node_storage */
     $node_storage = \Drupal::entityTypeManager()->getStorage('node');
     $result = $node_storage->getQuery()
+      ->accessCheck(FALSE)
       ->allRevisions()
       ->condition('nid', 1)
       ->sort('vid', 'DESC')
       ->pager(50)
       ->count()
       ->execute();
-    $this->assertEqual(1, $result, 'A new revision has not been stored.');
+    $this->assertEquals(1, $result, 'A new revision has not been stored.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekSaveTargetDataTest.php b/tests/src/Functional/LingotekSaveTargetDataTest.php
index 97bc4f9e..e69c61e0 100644
--- a/tests/src/Functional/LingotekSaveTargetDataTest.php
+++ b/tests/src/Functional/LingotekSaveTargetDataTest.php
@@ -20,7 +20,7 @@ class LingotekSaveTargetDataTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['node'];
+  protected static $modules = ['node'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -127,9 +127,9 @@ class LingotekSaveTargetDataTest extends LingotekTestBase {
     $node = \Drupal::entityTypeManager()->getStorage('node')->load(1);
     $node = $node->getTranslation('es');
 
-    $this->assertEqual('es body', $node->body->value, 'The body is translated correctly.');
-    $this->assertEqual('Revision 2 ES', $node->getTitle(), 'The title in the revision translation is the one given.');
-    $this->assertEqual(3, $node->getRevisionId(), 'The translation is saved in the newest revision.');
+    $this->assertEquals('es body', $node->body->value, 'The body is translated correctly.');
+    $this->assertEquals('Revision 2 ES', $node->getTitle(), 'The title in the revision translation is the one given.');
+    $this->assertEquals(3, $node->getRevisionId(), 'The translation is saved in the newest revision.');
   }
 
   public function testFieldsAreNotExtractedIfNotTranslatableEvenIfStorageIsTranslatable() {
@@ -155,7 +155,7 @@ class LingotekSaveTargetDataTest extends LingotekTestBase {
     $node = Node::load(1);
     $title = $node->getTranslation('en')->getTitle();
     $body = $node->getTranslation('en')->body->value;
-    $this->verbose($body);
+    dump($body);
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.content_translation');
@@ -167,10 +167,10 @@ class LingotekSaveTargetDataTest extends LingotekTestBase {
 
     $node = $translation_service->saveTargetData($node, 'es', $es_data);
 
-    $this->assertEqual('es body', $node->getTranslation('es')->body->value, 'The body is translated if the field is translatable.');
-    $this->assertEqual($body, $node->getTranslation('en')->body->value, 'The body in the original language is not overridden.');
-    $this->assertEqual('es title', $node->getTranslation('es')->getTitle(), 'The title in the translation is the one given.');
-    $this->assertEqual($title, $node->getTranslation('en')->getTitle(), 'The title in the original language is not overridden.');
+    $this->assertEquals('es body', $node->getTranslation('es')->body->value, 'The body is translated if the field is translatable.');
+    $this->assertEquals($body, $node->getTranslation('en')->body->value, 'The body in the original language is not overridden.');
+    $this->assertEquals('es title', $node->getTranslation('es')->getTitle(), 'The title in the translation is the one given.');
+    $this->assertEquals($title, $node->getTranslation('en')->getTitle(), 'The title in the original language is not overridden.');
 
     // Make the field as not translatable.
     $field->setTranslatable(FALSE)->save();
@@ -184,10 +184,10 @@ class LingotekSaveTargetDataTest extends LingotekTestBase {
     // If the field is not translatable, the field is not there.
     $node = $translation_service->saveTargetData($node, 'de', $de_data);
 
-    $this->assertEqual($body, $node->getTranslation('de')->body->value, 'The body is not written if the field is not translatable.');
-    $this->assertEqual($body, $node->getTranslation('en')->body->value, 'The body is not overridden if the field is not translatable.');
-    $this->assertEqual('de title', $node->getTranslation('de')->getTitle(), 'The title in the translation is the one given.');
-    $this->assertEqual($title, $node->getTranslation('en')->getTitle(), 'The title in the original language is not overridden.');
+    $this->assertEquals($body, $node->getTranslation('de')->body->value, 'The body is not written if the field is not translatable.');
+    $this->assertEquals($body, $node->getTranslation('en')->body->value, 'The body is not overridden if the field is not translatable.');
+    $this->assertEquals('de title', $node->getTranslation('de')->getTitle(), 'The title in the translation is the one given.');
+    $this->assertEquals($title, $node->getTranslation('en')->getTitle(), 'The title in the original language is not overridden.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekSystemSiteBulkCancelTest.php b/tests/src/Functional/LingotekSystemSiteBulkCancelTest.php
index c826607d..6c4fea79 100644
--- a/tests/src/Functional/LingotekSystemSiteBulkCancelTest.php
+++ b/tests/src/Functional/LingotekSystemSiteBulkCancelTest.php
@@ -17,7 +17,7 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -48,18 +48,18 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'cancel_document',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
 
     // Assert that The document has been cancelled remotely.
     $cancelled_docs = \Drupal::state()->get('lingotek.cancelled_docs', []);
-    $this->assertEqual(1, count($cancelled_docs), 'The document has been cancelled remotely.');
+    $this->assertEquals(1, count($cancelled_docs), 'The document has been cancelled remotely.');
 
     // Assert that no document has been deleted remotely.
     $deleted_docs = \Drupal::state()->get('lingotek.deleted_docs', []);
-    $this->assertEqual(0, count($deleted_docs), 'No document has been deleted remotely.');
+    $this->assertEquals(0, count($deleted_docs), 'No document has been deleted remotely.');
 
     $mappers = \Drupal::service('plugin.manager.config_translation.mapper')->getMappers();
     $mapper = $mappers['system.site_information_settings'];
@@ -69,8 +69,8 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CANCELLED);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     // We can request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -101,7 +101,7 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'cancel_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $config_translation_service */
     $config_translation_service = \Drupal::service('lingotek.config_translation');
@@ -119,8 +119,8 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_CURRENT);
     $this->assertTargetStatus('ES', Lingotek::STATUS_CANCELLED);
 
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $config_translation_service->getConfigSourceStatus($mapper));
-    $this->assertIdentical(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_CANCELLED, $config_translation_service->getConfigTargetStatus($mapper, 'es'));
 
     // We cannot request again.
     $basepath = \Drupal::request()->getBasePath();
@@ -137,25 +137,25 @@ class LingotekSystemSiteBulkCancelTest extends LingotekTestBase {
 
     // Clicking English must init the upload of content.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // There is a link for checking status.
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Request the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES requested successfully");
 
     // Check status of the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText("Translation to es_ES checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_ES checked successfully");
 
     // Download the Spanish translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_ES downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_ES downloaded successfully');
   }
 
 }
diff --git a/tests/src/Functional/LingotekSystemSiteBulkDebugTest.php b/tests/src/Functional/LingotekSystemSiteBulkDebugTest.php
index 544506ce..9efb4ab3 100644
--- a/tests/src/Functional/LingotekSystemSiteBulkDebugTest.php
+++ b/tests/src/Functional/LingotekSystemSiteBulkDebugTest.php
@@ -16,10 +16,10 @@ class LingotekSystemSiteBulkDebugTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
-   * @var \Drupal\node\Entity\NodeInterface
+   * @var \Drupal\node\NodeInterface
    */
   protected $node;
 
@@ -45,7 +45,7 @@ class LingotekSystemSiteBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -61,7 +61,7 @@ class LingotekSystemSiteBulkDebugTest extends LingotekTestBase {
 
     // Enable the debug operations.
     $this->drupalGet('admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], t('Enable debug operations'));
+    $this->submitForm([], t('Enable debug operations'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -70,18 +70,18 @@ class LingotekSystemSiteBulkDebugTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'debug_export',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Exports available');
+    $this->assertSession()->pageTextContains('Exports available');
     // Download the file.
     $this->clickLink('config.system.site_information_settings.json');
 
     $response = json_decode($this->getSession()->getPage()->getContent(), TRUE);
-    $this->assertIdentical('Drupal', $response['system.site']['name']);
-    $this->assertIdentical('', $response['system.site']['slogan']);
-    $this->assertIdentical('system.site_information_settings (config): System information', $response['_debug']['title']);
-    $this->assertIdentical('manual', $response['_debug']['profile']);
-    $this->assertIdentical('en_US', $response['_debug']['source_locale']);
+    $this->assertSame('Drupal', $response['system.site']['name']);
+    $this->assertSame('', $response['system.site']['slogan']);
+    $this->assertSame('system.site_information_settings (config): System information', $response['_debug']['title']);
+    $this->assertSame('manual', $response['_debug']['profile']);
+    $this->assertSame('en_US', $response['_debug']['source_locale']);
   }
 
 }
diff --git a/tests/src/Functional/LingotekSystemSiteBulkLocaleTranslationTest.php b/tests/src/Functional/LingotekSystemSiteBulkLocaleTranslationTest.php
index 7a03e631..763c251c 100644
--- a/tests/src/Functional/LingotekSystemSiteBulkLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekSystemSiteBulkLocaleTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'comment'];
+  protected static $modules = ['node', 'comment'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -52,8 +52,8 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     // System information will be the second link.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -61,14 +61,14 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('DE-AT');
-    $this->assertText("Translation to de_AT requested successfully");
+    $this->assertSession()->pageTextContains("Translation to de_AT requested successfully");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
 
@@ -76,21 +76,21 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_AR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to es_AR requested successfully");
     // Check that the requested locale is the right one.
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_AR checked successfully");
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_AR checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_AR?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_AR downloaded successfully');
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_AR downloaded successfully');
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_AR', 'dummy-document-hash-id', 'ES');
@@ -111,7 +111,7 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
 
     // Upload it
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -121,7 +121,7 @@ class LingotekSystemSiteBulkLocaleTranslationTest extends LingotekTestBase {
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('DE-AT');
-    $this->assertText("Translation to de_AT requested successfully");
+    $this->assertSession()->pageTextContains("Translation to de_AT requested successfully");
 
     // Check that the source status has been updated.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
diff --git a/tests/src/Functional/LingotekSystemSiteBulkTranslationTest.php b/tests/src/Functional/LingotekSystemSiteBulkTranslationTest.php
index b3247640..d520f548 100644
--- a/tests/src/Functional/LingotekSystemSiteBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekSystemSiteBulkTranslationTest.php
@@ -51,33 +51,33 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -105,8 +105,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -114,7 +114,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -122,8 +122,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'request_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -131,8 +131,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -140,8 +140,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -164,9 +164,10 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as for requesting if
     // it was already requested.
     ConfigurableLanguage::createFromLangcode('ko')->setThirdPartySetting('lingotek', 'locale', 'ko_KR')->save();
+    $this->drupalGet('/admin/config/system/site-information');
 
     // Edit the object
-    $this->drupalPostForm('/admin/config/system/site-information', ['site_name' => 'My site'], t('Save configuration'));
+    $this->submitForm(['site_name' => 'My site'], t('Save configuration'));
 
     // Login as translation manager.
     $this->drupalLogin($this->translationManagerUser);
@@ -184,18 +185,18 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Request korean, with outdated content available.
     $this->clickLink('KO');
-    $this->assertText("Translation to ko_KR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ko_KR requested successfully");
 
     // Reupload the content.
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
 
     // Korean should be marked as requested, so we can check target.
     $this->assertTargetStatus('KO', Lingotek::STATUS_PENDING);
 
     // Recheck status.
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Check the translation after having been edited.
     // Check status of the Spanish translation.
@@ -203,12 +204,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -233,7 +234,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -241,7 +242,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -249,7 +250,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'request_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check status of all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -257,7 +258,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -265,7 +266,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   /**
@@ -287,7 +288,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // There is a link for requesting the Catalan translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('CA');
-    $this->assertText("Translation to ca_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ca_ES requested successfully");
   }
 
   /**
@@ -297,8 +298,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
   /**
    * ToDo: Add a test for this.
    */
-  public function testAddingConfigInDifferentLocale() {
-    $this->pass('Test not implemented yet.');
+  public function testAddingConfigInDifferentLocale()
+  {
   }
 
   /**
@@ -311,7 +312,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('System information upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -323,12 +324,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -341,7 +342,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -353,12 +354,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -371,7 +372,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -383,12 +384,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -401,12 +402,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
-    $this->assertText('System information status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information status check failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -418,7 +419,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -429,7 +430,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -437,7 +438,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // Check upload.
     $this->clickLink('EN', 1);
 
-    $this->assertText('The import for System information is still pending.');
+    $this->assertSession()->pageTextContains('The import for System information is still pending.');
 
     // Check the right class is added.
     // We failed at checking status, but we don't know what happened.
@@ -452,7 +453,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status);
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status);
   }
 
   /**
@@ -465,12 +466,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
 
     // Check the right class is added.
     // We cannot use assertSourceStatus() as there are 4 elements by default with that status.
@@ -483,7 +484,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status);
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status);
   }
 
   /**
@@ -494,14 +495,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -509,7 +511,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('System information update failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -521,12 +523,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -537,14 +539,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -552,7 +555,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -564,12 +567,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -580,14 +583,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -595,7 +599,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -607,12 +611,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_process_words_limit_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -623,14 +627,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -638,7 +643,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
 
     // Check the right class is added.
     // We cannot use assertSourceStatus() as there are 4 elements by default with that status.
@@ -651,12 +656,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -667,14 +672,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -682,7 +688,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail, but will retry.
     $this->clickLink('EN', 1);
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -699,7 +705,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
   }
 
   /**
@@ -710,14 +716,15 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Upload the document, which must succeed.
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -725,7 +732,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Update the document, which must fail.
     $this->clickLink('EN', 1);
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -737,12 +744,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -762,8 +769,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('System information upload failed. Please try again.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('System information upload failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -775,12 +782,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -799,8 +806,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -812,12 +819,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -836,8 +843,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -849,12 +856,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_process_words_limit_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -871,15 +878,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_error_in_upload', TRUE);
 
@@ -888,9 +896,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('System information update failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information update failed. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -902,12 +910,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -924,15 +932,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', TRUE);
 
@@ -941,9 +950,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -955,12 +964,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -977,15 +986,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', TRUE);
 
@@ -994,9 +1004,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_ERROR);
@@ -1008,12 +1018,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -1030,15 +1040,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', TRUE);
 
@@ -1047,9 +1058,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
 
     // Check the right class is added.
     // We cannot use assertSourceStatus() as there are 4 elements by default with that status.
@@ -1062,12 +1073,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
   }
 
   /**
@@ -1084,15 +1095,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', TRUE);
 
@@ -1101,9 +1113,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_EDITED);
@@ -1115,12 +1127,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -1137,15 +1149,16 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Check upload.
     $this->clickLink('EN', 1);
 
     // Edit the system site information.
     $edit = ['site_name' => 'Llamas are cool'];
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', TRUE);
 
@@ -1154,9 +1167,9 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
@@ -1171,7 +1184,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
   }
 
   /**
@@ -1192,34 +1205,34 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     \Drupal::state()->set('lingotek.must_error_in_download', TRUE);
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('System information es_MX translation download failed. Please try again.');
-    $this->assertIdentical(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('System information es_MX translation download failed. Please try again.');
+    $this->assertSame(NULL, \Drupal::state()->get('lingotek.downloaded_locale'));
 
     $this->goToConfigBulkManagementForm();
     // Check the right class is added.
@@ -1232,14 +1245,14 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $target_status = $translation_service->getConfigTargetStatus($mapper, 'es');
-    $this->assertEqual(Lingotek::STATUS_ERROR, $target_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $target_status, 'The system information has been marked as error.');
 
     \Drupal::state()->set('lingotek.must_error_in_download', FALSE);
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
   }
 
   /**
@@ -1260,27 +1273,27 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     \Drupal::state()->set('lingotek.must_document_not_found_error_download', TRUE);
     // Download the Spanish translation.
@@ -1302,7 +1315,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     $this->assertSourceStatusStateCount(Lingotek::STATUS_UNTRACKED, 'EN', 4);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
   }
 
   /**
@@ -1328,8 +1341,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1337,7 +1350,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Assert that I could request translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1347,7 +1360,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows that there are translations ready.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1355,12 +1368,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     // Even if I just add a new language.
     ConfigurableLanguage::createFromLangcode('de')->setThirdPartySetting('lingotek', 'locale', 'de_DE')->save();
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
 
     // Ensure locales are handled correctly by setting manual values.
     \Drupal::state()->set('lingotek.document_completion_statuses', ['de-AT' => 50, 'de-DE' => 100, 'es-MX' => 10]);
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Now Drupal knows which translations are ready.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1371,7 +1384,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     \Drupal::state()->set('lingotek.document_completion_statuses', ['it-IT' => 100, 'de-DE' => 50, 'es-MX' => 10]);
     // Check all statuses again.
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // All translations must be updated according exclusively with the
     // information from the TMS.
@@ -1403,8 +1416,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1412,19 +1425,19 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1432,7 +1445,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // The translations not requested shouldn't change its status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/de_DE?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1465,8 +1478,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1475,13 +1488,13 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_upload',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     \Drupal::state()->resetCache();
@@ -1489,23 +1502,23 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // Request italian.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertText("Translation to it_IT requested successfully");
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT requested successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     \Drupal::state()->resetCache();
 
     // Check status of the Italian translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/it_IT?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('IT');
-    $this->assertIdentical('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to it_IT checked successfully");
+    $this->assertSame('it_IT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to it_IT checked successfully");
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -1513,7 +1526,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // They are marked with the right status.
     $this->assertTargetStatus('ES', 'current');
@@ -1526,7 +1539,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       'table[system.site_information_settings]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translations',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // And statuses should remain the same.
     $this->assertTargetStatus('ES', 'current');
@@ -1555,39 +1568,39 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/system.site_information_settings/system.site_information_settings?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Let's edit the translation and assert the html decoded values.
     $this->drupalGet('/admin/config/system/site-information/translate');
     $this->clickLink('Edit');
-    $this->assertFieldByName('translation[config_names][system.site][name]', '"Durpal"');
-    $this->assertFieldByName('translation[config_names][system.site][slogan]', '"Las llamas" son muy chulas');
+    $this->assertSession()->fieldValueEquals('translation[config_names][system.site][name]', '"Durpal"');
+    $this->assertSession()->fieldValueEquals('translation[config_names][system.site][slogan]', '"Las llamas" son muy chulas');
   }
 
   /**
@@ -1601,7 +1614,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     $this->drupalGet('/admin/config/system/site-information/translate');
     $this->clickLink('Delete');
-    $this->drupalPostForm(NULL, [], t('Delete'));
+    $this->submitForm([], t('Delete'));
 
     $this->goToConfigBulkManagementForm();
     $this->assertTargetStatus('DE', Lingotek::STATUS_READY);
@@ -1622,8 +1635,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1636,12 +1649,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('System information translations request failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information translations request failed. Please try again.');
   }
 
   /**
@@ -1659,8 +1672,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1673,13 +1686,13 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
   }
 
   /**
@@ -1697,8 +1710,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1711,14 +1724,14 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     // We cannot use assertSourceStatus() as there are 4 elements by default with that status.
     $this->assertSourceStatusStateCount(Lingotek::STATUS_UNTRACKED, 'EN', 4);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
   }
 
   /**
@@ -1736,8 +1749,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1750,11 +1763,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -1772,8 +1785,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1786,11 +1799,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1808,8 +1821,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1822,11 +1835,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1844,8 +1857,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1859,7 +1872,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('System information es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -1877,8 +1890,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1891,7 +1904,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -1909,8 +1922,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1923,7 +1936,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   /**
@@ -1941,8 +1954,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1957,7 +1970,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     $this->assertLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
   }
 
   /**
@@ -1975,8 +1988,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -1992,7 +2005,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
     $this->assertSourceStatusStateCount(Lingotek::STATUS_UNTRACKED, 'EN', 4);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
   }
 
   /**
@@ -2010,8 +2023,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2024,7 +2037,7 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2042,8 +2055,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2056,12 +2069,12 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // We failed at requesting a translation, but we don't know what happened.
     // So we don't mark as error but keep it on request.
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document System information es_MX translation request failed. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information es_MX translation request failed. Please try again.');
   }
 
   /**
@@ -2079,8 +2092,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2093,13 +2106,13 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
   }
 
   /**
@@ -2117,8 +2130,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2131,14 +2144,14 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check the right class is added.
     // We cannot use assertSourceStatus() as there are 4 elements by default with that status.
     $this->assertSourceStatusStateCount(Lingotek::STATUS_UNTRACKED, 'EN', 4);
 
     $this->assertNoLingotekRequestTranslationLink('es_MX');
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
   }
 
   /**
@@ -2156,8 +2169,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2170,11 +2183,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
   }
 
   /**
@@ -2192,8 +2205,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2206,11 +2219,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
   }
 
   /**
@@ -2228,8 +2241,8 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -2242,11 +2255,11 @@ class LingotekSystemSiteBulkTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('es', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     $this->assertSourceStatus('EN', Lingotek::STATUS_IMPORTING);
     $this->assertTargetStatus('ES', Lingotek::STATUS_REQUEST);
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
   }
 
   protected function getBulkSelectionKey($langcode, $revision_id, $entity_type_id = 'system.site_information_settings') {
diff --git a/tests/src/Functional/LingotekSystemSiteExistingBulkTranslationTest.php b/tests/src/Functional/LingotekSystemSiteExistingBulkTranslationTest.php
index 6824e94e..8acbe50b 100644
--- a/tests/src/Functional/LingotekSystemSiteExistingBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekSystemSiteExistingBulkTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekSystemSiteExistingBulkTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * @throws \Exception
@@ -57,8 +57,8 @@ class LingotekSystemSiteExistingBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('System information uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Assert the untracked translation is shown.
     $this->assertTargetStatus('ES', 'untracked');
@@ -68,25 +68,25 @@ class LingotekSystemSiteExistingBulkTranslationTest extends LingotekTestBase {
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/system.site_information_settings/system.site_information_settings/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
diff --git a/tests/src/Functional/LingotekSystemSiteLocaleTranslationTest.php b/tests/src/Functional/LingotekSystemSiteLocaleTranslationTest.php
index c3bd0538..1fea342b 100644
--- a/tests/src/Functional/LingotekSystemSiteLocaleTranslationTest.php
+++ b/tests/src/Functional/LingotekSystemSiteLocaleTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekSystemSiteLocaleTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'comment'];
+  protected static $modules = ['block', 'node', 'image', 'comment'];
 
   /**
    * @var \Drupal\node\NodeInterface
@@ -58,39 +58,39 @@ class LingotekSystemSiteLocaleTranslationTest extends LingotekTestBase {
     $this->clickLink(t('Translate'), 2);
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check that only the translatable fields have been uploaded.
     $data = json_decode(\Drupal::state()
       ->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(1, count($data));
+    $this->assertEquals(1, count($data));
     $this->assertTrue(array_key_exists('system.site', $data));
-    $this->assertEqual(2, count($data['system.site']));
+    $this->assertEquals(2, count($data['system.site']));
     $this->assertTrue(array_key_exists('name', $data['system.site']));
     $this->assertTrue(array_key_exists('slogan', $data['system.site']));
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(NULL, $uploaded_url, 'There is not URL.');
+    $this->assertSame(NULL, $uploaded_url, 'There is not URL.');
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText(t('System information status checked successfully'));
+    $this->assertSession()->pageTextContains(t('System information status checked successfully'));
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertText(t('Translation to es_AR requested successfully'));
-    $this->assertIdentical('es_AR', \Drupal::state()
+    $this->assertSession()->pageTextContains(t('Translation to es_AR requested successfully'));
+    $this->assertSame('es_AR', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     $this->clickLink(t('Check Download'));
-    $this->assertText(t('Translation to es_AR checked successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertText(t('Translation to es_AR downloaded successfully'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
diff --git a/tests/src/Functional/LingotekSystemSiteTranslationTest.php b/tests/src/Functional/LingotekSystemSiteTranslationTest.php
index 8d377abf..f965ac78 100644
--- a/tests/src/Functional/LingotekSystemSiteTranslationTest.php
+++ b/tests/src/Functional/LingotekSystemSiteTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'image', 'frozenintime'];
+  protected static $modules = ['block', 'node', 'image', 'frozenintime'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -47,16 +47,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     $this->clickLink('Translate system information');
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(1, count($data));
+    $this->assertEquals(1, count($data));
     $this->assertTrue(array_key_exists('system.site', $data));
-    $this->assertEqual(2, count($data['system.site']));
+    $this->assertEquals(2, count($data['system.site']));
     $this->assertTrue(array_key_exists('name', $data['system.site']));
     $this->assertTrue(array_key_exists('slogan', $data['system.site']));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Ensure it has the expected timestamp for upload
     $timestamp = \Drupal::time()->getRequestTime();
@@ -67,40 +67,40 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(NULL, $uploaded_url, 'There was not associated url.');
+    $this->assertSame(NULL, $uploaded_url, 'There was not associated url.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     $this->clickLink(t('Check upload status'));
-    $this->assertText(t('System information status checked successfully'));
+    $this->assertSession()->pageTextContains(t('System information status checked successfully'));
 
     // Request translation.
     $link = $this->xpath('//a[normalize-space()="Request translation" and contains(@href,"es_AR")]');
     $link[0]->click();
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
-    $this->assertText(t('Translation to es_AR requested successfully'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR requested successfully'));
 
     // Check translation status.
     $this->clickLink(t('Check Download'));
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText(t('Translation to es_AR checked successfully'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR checked successfully'));
 
     $this->clickLink('Download');
-    $this->assertIdentical('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
-    $this->assertText(t('Translation to es_AR downloaded successfully'));
+    $this->assertSame('es_AR', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains(t('Translation to es_AR downloaded successfully'));
 
     // Check that the edit link is there.
     $basepath = \Drupal::request()->getBasePath();
     $assert_session->linkByHrefExists($basepath . '/admin/config/system/site-information/translate/es/edit');
     // Edit the Spanish translation.
     $this->clickLink('Edit', 1);
-    $this->assertFieldByName('translation[config_names][system.site][slogan]', 'Las llamas son muy chulas');
+    $this->assertSession()->fieldValueEquals('translation[config_names][system.site][slogan]', 'Las llamas son muy chulas');
 
     // The content is translated and published.
     $this->drupalGet('/es/');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -118,7 +118,8 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     // Edit the config.
     $edit = ['site_name' => 'The Llamas site'];
-    $this->drupalPostForm('admin/config/system/site-information', $edit, 'Save configuration');
+    $this->drupalGet('admin/config/system/site-information');
+    $this->submitForm($edit, 'Save configuration');
 
     $this->clickLink('Translate system information');
 
@@ -139,11 +140,11 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     // Recheck status.
     $this->clickLink('Check Download');
-    $this->assertText('Translation to es_AR checked successfully');
+    $this->assertSession()->pageTextContains('Translation to es_AR checked successfully');
 
     // Download the translation.
     $this->clickLink('Download');
-    $this->assertText('Translation to es_AR downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_AR downloaded successfully');
   }
 
   /**
@@ -162,24 +163,24 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     $this->clickLink('Translate system information');
 
     $this->clickLink(t('Upload'));
-    $this->assertText(t('System information uploaded successfully'));
+    $this->assertSession()->pageTextContains(t('System information uploaded successfully'));
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual(1, count($data));
+    $this->assertEquals(1, count($data));
     $this->assertTrue(array_key_exists('system.site', $data));
-    $this->assertEqual(2, count($data['system.site']));
+    $this->assertEquals(2, count($data['system.site']));
     $this->assertTrue(array_key_exists('name', $data['system.site']));
     $this->assertTrue(array_key_exists('slogan', $data['system.site']));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('manual', $used_profile, 'The manual profile was used.');
+    $this->assertSame('manual', $used_profile, 'The manual profile was used.');
 
     // The document should have been uploaded, so let's check the upload status.
     $this->clickLink(t('Check upload status'));
-    $this->assertText(t('System information status checked successfully'));
+    $this->assertSession()->pageTextContains(t('System information status checked successfully'));
 
     // There are two links for requesting translations, or we can add them
     // manually.
@@ -214,7 +215,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     $this->clickLink('Translate system information');
 
     $this->clickLink(t('Upload'));
-    $this->assertText('System information upload failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information upload failed. Please try again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -223,13 +224,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
   }
 
   /**
@@ -244,7 +245,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     $this->clickLink(t('Upload'));
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -253,13 +254,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
   }
 
   /**
@@ -274,7 +275,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     $this->clickLink(t('Upload'));
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -283,13 +284,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
   }
 
   /**
@@ -305,14 +306,14 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('System information status check failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information status check failed. Please try again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -321,7 +322,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status, 'The system information has been marked as error.');
   }
 
   /**
@@ -335,7 +336,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // The document has not been imported yet.
     \Drupal::state()->set('lingotek.document_status_completion', FALSE);
@@ -345,7 +346,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('The import for System information is still pending.');
+    $this->assertSession()->pageTextContains('The import for System information is still pending.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -354,7 +355,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_IMPORTING, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_IMPORTING, $source_status, 'The system information has been marked as error.');
   }
 
   /**
@@ -370,14 +371,14 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
 
     // We failed at checking status, but we don't know what happened.
     // So we don't mark as error but keep it on importing.
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -386,7 +387,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
   }
 
   /**
@@ -400,15 +401,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -419,7 +421,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information update failed. Please try again.');
+    $this->assertSession()->pageTextContains('System information update failed. Please try again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -428,13 +430,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_error_in_upload', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -448,15 +450,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -467,7 +470,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
+    $this->assertSession()->pageTextContains('Community has been disabled. Please contact support@lingotek.com to re-enable your community.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -476,13 +479,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_payment_required_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -496,15 +499,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -515,7 +519,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
+    $this->assertSession()->pageTextContains('Processed word limit exceeded. Please contact your local administrator or Lingotek Client Success (sales@lingotek.com) for assistance.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -524,13 +528,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_ERROR, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_processed_words_limit_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
   /**
@@ -544,15 +548,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -563,7 +568,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document System information was not found. Please upload again.');
+    $this->assertSession()->pageTextContains('Document System information was not found. Please upload again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -572,13 +577,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_UNTRACKED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_not_found_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
   }
 
   /**
@@ -592,15 +597,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -611,7 +617,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now, but will retry.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document System information has been archived. Uploading again.');
+    $this->assertSession()->pageTextContains('Document System information has been archived. Uploading again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -626,7 +632,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     \Drupal::state()->set('lingotek.must_document_archived_error_in_update', FALSE);
     $this->clickLink('Check upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
   }
 
   /**
@@ -640,15 +646,16 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Upload the document, which must succeed.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information uploaded successfully');
+    $this->assertSession()->pageTextContains('System information uploaded successfully');
 
     // Check that the upload succeeded.
     $this->clickLink('Check upload status');
-    $this->assertText('System information status checked successfully');
+    $this->assertSession()->pageTextContains('System information status checked successfully');
 
     // Edit the system site information.
     $edit['site_name'] = 'Llamas are cool';
-    $this->drupalPostForm('/admin/config/system/site-information', $edit, t('Save configuration'));
+    $this->drupalGet('/admin/config/system/site-information');
+    $this->submitForm($edit, t('Save configuration'));
 
     // Go back to the form.
     $this->drupalGet('/admin/config/system/site-information');
@@ -659,7 +666,7 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     // Re-upload. Must fail now.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
+    $this->assertSession()->pageTextContains('Document System information has a new version. The document id has been updated for all future interactions. Please try again.');
 
     // The config mapper has been marked with the error status.
     /** @var \Drupal\config_translation\ConfigMapperManagerInterface $mapperManager */
@@ -668,13 +675,13 @@ class LingotekSystemSiteTranslationTest extends LingotekTestBase {
     /** @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface $translation_service */
     $translation_service = \Drupal::service('lingotek.config_translation');
     $source_status = $translation_service->getConfigSourceStatus($mapper);
-    $this->assertEqual(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
+    $this->assertEquals(Lingotek::STATUS_EDITED, $source_status, 'The system information has been marked as error.');
 
     // I can still re-try the upload.
     \Drupal::state()->set('lingotek.must_document_locked_error_in_update', FALSE);
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('System information has been updated.');
+    $this->assertSession()->pageTextContains('System information has been updated.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekTaxonomyTermLongTitleTranslationTest.php b/tests/src/Functional/LingotekTaxonomyTermLongTitleTranslationTest.php
index dfb21076..b46c946a 100644
--- a/tests/src/Functional/LingotekTaxonomyTermLongTitleTranslationTest.php
+++ b/tests/src/Functional/LingotekTaxonomyTermLongTitleTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'taxonomy', 'dblog'];
+  protected static $modules = ['block', 'taxonomy', 'dblog'];
 
   /**
    * Vocabulary for testing.
@@ -91,8 +91,9 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->term = Term::load(1);
 
@@ -100,7 +101,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // Check that the translate tab is in the taxonomy term.
@@ -110,23 +111,23 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation. It must fail with a useful error message.
     $this->clickLink('Download completed translation');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -135,15 +136,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = Term::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
 
     // Check that the link works
     $this->clickLink('ES');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
   }
 
   /**
@@ -166,7 +167,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // Check that the translate tab is in the taxonomy term.
@@ -176,23 +177,23 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation. It must fail with a useful error message.
     $this->clickLink('Download completed translation');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -201,15 +202,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = Term::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
 
     // Check that the link works
     $this->clickLink('ES');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
   }
 
   /**
@@ -248,35 +249,35 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // The document should not have been automatically uploaded, so let's upload it.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation. It must fail with a useful error message.
     $this->clickLink('Download completed translation');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -285,15 +286,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = $this->resetStorageCachesAndReloadContentEntity('taxonomy_term', 1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
 
     // Check that the link works
     $this->clickLink('ES');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
   }
 
   /**
@@ -321,8 +322,9 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('taxonomy_term');
 
@@ -331,36 +333,36 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $this->assertNoLingotekRequestTranslationLink('es_ES', 'dummy-document-hash-id', 'taxonomy_term');
     $this->clickLink('EN');
-    $this->assertText('Taxonomy_term Llamas are cool has been uploaded.');
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains('Taxonomy_term Llamas are cool has been uploaded.');
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // There is a link for checking status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'taxonomy_term');
     // And we can already request a translation.
     $this->assertLingotekRequestTranslationLink('es_ES', 'dummy-document-hash-id', 'taxonomy_term');
     $this->clickLink('EN');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request the Spanish translation.
     $this->assertLingotekRequestTranslationLink('es_ES', 'dummy-document-hash-id', 'taxonomy_term');
     $this->clickLink('ES');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
-    $this->assertIdentical('es_ES', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSame('es_ES', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $this->assertLingotekCheckTargetStatusLink('es_ES', 'dummy-document-hash-id', 'taxonomy_term');
     $this->clickLink('ES');
-    $this->assertIdentical('es_ES', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSame('es_ES', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation. It must fail with a useful error message.
     $this->assertLingotekDownloadTargetLink('es_ES', 'dummy-document-hash-id', 'taxonomy_term');
     $this->clickLink('ES');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -368,15 +370,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = Term::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'es'));
 
     // Check that the link works
     $this->clickLink('ES');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (es_ES) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
   }
 
   /**
@@ -407,8 +409,9 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('taxonomy_term');
 
@@ -419,8 +422,8 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('taxonomy_term'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $this->assertLingotekCheckSourceStatusLink('dummy-document-hash-id', 'taxonomy_term');
@@ -429,7 +432,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('taxonomy_term'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $this->assertLingotekRequestTranslationLink('de_AT', 'dummy-document-hash-id', 'taxonomy_term');
@@ -438,8 +441,8 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'taxonomy_term'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the German (AT) translation.
     $this->assertLingotekCheckTargetStatusLink('de_AT', 'dummy-document-hash-id', 'taxonomy_term');
@@ -448,8 +451,8 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German (AT) translation.
     $this->assertLingotekDownloadTargetLink('de_AT', 'dummy-document-hash-id', 'taxonomy_term');
@@ -458,15 +461,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
       $key => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download translation. It must fail with a useful error message.
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name.');
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name.');
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -475,15 +478,15 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = Term::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'de'));
+    $this->assertSame(Lingotek::STATUS_ERROR, $content_translation_service->getTargetStatus($this->term, 'de'));
 
     // Check that the link works
     $this->clickLink('DE');
-    $this->assertText('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name.');
+    $this->assertSession()->pageTextContains('The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name.');
 
     // Test the error is logged.
     $status = (bool) \Drupal::database()->queryRange('SELECT 1 FROM {watchdog} WHERE message = :message', 0, 1, [':message' => "The download for taxonomy_term Llamas are cool failed because of the length of one field translation (de_AT) value: name."]);
-    $this->assert($status, 'A watchdog message was logged for the length of the field.');
+    $this->assertTrue($status, 'A watchdog message was logged for the length of the field.');
   }
 
   /**
@@ -506,8 +509,9 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->term = Term::load(1);
 
@@ -515,7 +519,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // Check that the translate tab is in the taxonomy term.
@@ -525,20 +529,20 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'he_IL' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'he_IL' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The he_IL translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The he_IL translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation. It must fail with a useful error message.
     $this->clickLink('Download completed translation');
     // Translation succeeds, even if utf-8 hebrew chars are 2-bytes.
-    $this->assertText('The translation of taxonomy_term Llamas are cool into he_IL has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of taxonomy_term Llamas are cool into he_IL has been downloaded.');
 
     // Check the right class is added.
     $this->goToContentBulkManagementForm('taxonomy_term');
@@ -547,7 +551,7 @@ class LingotekTaxonomyTermLongTitleTranslationTest extends LingotekTestBase {
     // Check that the Target Status is Error
     $this->term = Term::load(1);
     $content_translation_service = \Drupal::service('lingotek.content_translation');
-    $this->assertIdentical(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($this->term, 'he'));
+    $this->assertSame(Lingotek::STATUS_CURRENT, $content_translation_service->getTargetStatus($this->term, 'he'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekTaxonomyTermTranslationDownloadStatusTest.php b/tests/src/Functional/LingotekTaxonomyTermTranslationDownloadStatusTest.php
index 2b709467..88ef8f5d 100644
--- a/tests/src/Functional/LingotekTaxonomyTermTranslationDownloadStatusTest.php
+++ b/tests/src/Functional/LingotekTaxonomyTermTranslationDownloadStatusTest.php
@@ -24,7 +24,7 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
    *
    * @var array
    */
-  public static $modules = ['block', 'node', 'taxonomy'];
+  protected static $modules = ['block', 'node', 'taxonomy'];
 
   /**
    * Vocabulary for testing.
@@ -98,8 +98,8 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     $this->createAndDownloadATaxonomyTermTranslation(self::PUBLISHED);
 
     // Ensure that there is one and only one unpublished content.
-    $this->assertText('Not published');
-    $this->assertUniqueText('Not published');
+    $this->assertSession()->pageTextContains('Not published');
+    $this->assertSession()->pageTextContainsOnce('Not published');
   }
 
   /**
@@ -120,8 +120,9 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     $this->createAndDownloadATaxonomyTermTranslation(self::UNPUBLISHED);
 
     // Ensure that there is one and only one published content.
-    $this->assertText('Published');
-    $this->assertUniqueText('Published');
+    //Meaning there should be one published(translation) and one not published(Source).
+    $this->assertSession()->pageTextContains('Published');
+    $this->assertSession()->pageTextContainsOnce('Not Published');
   }
 
   /**
@@ -142,8 +143,10 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     $this->createAndDownloadATaxonomyTermTranslation(self::PUBLISHED);
 
     // Ensure that there is more than one published content.
-    $this->assertNoText('Not published');
-    $this->assertNoUniqueText('Published');
+    $this->assertSession()->pageTextNotContains('Not published');
+    $page_text = $this->getSession()->getPage()->getText();
+    $nr_found = substr_count($page_text, 'Published');
+    $this->assertGreaterThan(1, $nr_found, "'Published' found more than once on the page");
   }
 
   /**
@@ -164,8 +167,9 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     $this->createAndDownloadATaxonomyTermTranslation(self::UNPUBLISHED);
 
     // Ensure that there is more than one unpublished content.
-    $this->assertNoText('Published');
-    $this->assertNoUniqueText('Not published');
+    $page_text = $this->getSession()->getPage()->getText();
+    $nr_found = substr_count($page_text, 'Not published');
+    $this->assertGreaterThan(1, $nr_found, "'Not published' found more than once on the page");
   }
 
   /**
@@ -186,8 +190,9 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     else {
       $edit['status[value]'] = FALSE;
     }
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->term = Term::load(1);
 
@@ -196,14 +201,14 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
       ->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the term.
     $this->drupalGet('taxonomy/term/1');
@@ -212,27 +217,27 @@ class LingotekTaxonomyTermTranslationDownloadStatusTest extends LingotekTestBase
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_MX' was added as a translation target for taxonomy_term Llamas are cool.");
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains("Locale 'es_MX' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.added_target_locale'));
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.checked_target_locale'));
-    $this->assertText('The es_MX translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_MX translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Check that the Edit link points to the workbench and it is opened in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'Edit in Ray Enterprise Workbench');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of taxonomy_term Llamas are cool into es_MX has been downloaded.');
-    $this->assertIdentical('es_MX', \Drupal::state()
+    $this->assertSession()->pageTextContains('The translation of taxonomy_term Llamas are cool into es_MX has been downloaded.');
+    $this->assertSame('es_MX', \Drupal::state()
       ->get('lingotek.downloaded_locale'));
   }
 
diff --git a/tests/src/Functional/LingotekTaxonomyTermTranslationTest.php b/tests/src/Functional/LingotekTaxonomyTermTranslationTest.php
index 6da62b74..4d8a8802 100644
--- a/tests/src/Functional/LingotekTaxonomyTermTranslationTest.php
+++ b/tests/src/Functional/LingotekTaxonomyTermTranslationTest.php
@@ -22,7 +22,7 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['block', 'taxonomy'];
+  protected static $modules = ['block', 'taxonomy'];
 
   /**
    * Vocabulary for testing.
@@ -91,8 +91,9 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->term = Term::load(1);
 
@@ -100,7 +101,7 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // Check that the translate tab is in the node.
@@ -110,24 +111,24 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -170,7 +171,7 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // Check that the translate tab is in the node.
@@ -180,24 +181,24 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
   /**
@@ -237,36 +238,36 @@ class LingotekTaxonomyTermTranslationTest extends LingotekTestBase {
     // The document should not have been automatically uploaded, so let's upload it.
     $this->clickLink('Upload');
     $this->checkForMetaRefresh();
-    $this->assertText('Uploaded 1 document to Lingotek.');
+    $this->assertSession()->pageTextContains('Uploaded 1 document to Lingotek.');
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
     $this->assertUploadedDataFieldCount($data, 2);
     $this->assertTrue(isset($data['name'][0]['value']));
-    $this->assertEqual(1, count($data['description'][0]));
+    $this->assertEquals(1, count($data['description'][0]));
     $this->assertTrue(isset($data['description'][0]['value']));
 
     // The document should have been automatically uploaded, so let's check
     // the upload status.
     $this->clickLink('Check Upload Status');
-    $this->assertText('The import for taxonomy_term Llamas are cool is complete.');
+    $this->assertSession()->pageTextContains('The import for taxonomy_term Llamas are cool is complete.');
 
     // Request translation.
     $this->clickLink('Request translation');
-    $this->assertText("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
+    $this->assertSession()->pageTextContains("Locale 'es_ES' was added as a translation target for taxonomy_term Llamas are cool.");
 
     // Check translation status.
     $this->clickLink('Check translation status');
-    $this->assertText('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
+    $this->assertSession()->pageTextContains('The es_ES translation for taxonomy_term Llamas are cool is ready for download.');
 
     // Download translation.
     $this->clickLink('Download completed translation');
-    $this->assertText('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
+    $this->assertSession()->pageTextContains('The translation of taxonomy_term Llamas are cool into es_ES has been downloaded.');
 
     // The content is translated and published.
     $this->clickLink('Las llamas son chulas');
-    $this->assertText('Las llamas son chulas');
-    $this->assertText('Las llamas son muy chulas');
+    $this->assertSession()->pageTextContains('Las llamas son chulas');
+    $this->assertSession()->pageTextContains('Las llamas son muy chulas');
   }
 
 }
diff --git a/tests/src/Functional/LingotekTestBase.php b/tests/src/Functional/LingotekTestBase.php
index 5013a09c..970b2f91 100644
--- a/tests/src/Functional/LingotekTestBase.php
+++ b/tests/src/Functional/LingotekTestBase.php
@@ -35,12 +35,12 @@ abstract class LingotekTestBase extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  protected $defaultTheme = 'stark';
+  protected $defaultTheme = 'starterkit_theme';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['lingotek', 'lingotek_test'];
+  protected static $modules = ['lingotek', 'lingotek_test'];
 
   /**
    * Minimal Lingotek translation manager user.
@@ -150,9 +150,9 @@ abstract class LingotekTestBase extends BrowserTestBase {
    */
   protected function connectToLingotek() {
     $this->drupalGet('admin/lingotek/setup/account');
-    $this->clickLink('Connect Lingotek Account');
-    $this->drupalPostForm(NULL, ['community' => 'test_community'], 'Next');
-    $this->drupalPostForm(NULL, [
+    $this->clickLink('Connect Ray Enterprise Account');
+    $this->submitForm(['community' => 'test_community'], 'Next');
+    $this->submitForm([
       'project' => 'test_project',
       'vault' => 'test_vault',
       'workflow' => 'test_workflow',
@@ -202,7 +202,7 @@ abstract class LingotekTestBase extends BrowserTestBase {
 
     if ($filter !== NULL) {
       $edit = ['filters[wrapper][bundle]' => $filter];
-      $this->drupalPostForm(NULL, $edit, t('Filter'));
+      $this->submitForm($edit, t('Filter'));
     }
   }
 
@@ -220,7 +220,7 @@ abstract class LingotekTestBase extends BrowserTestBase {
    */
   protected function assertUploadedDataFieldCount(array $data, $count) {
     // We have to add one item because of the metadata we include.
-    $this->assertEqual($count + 1, count($data));
+    $this->assertEquals($count + 1, count($data));
   }
 
   /**
@@ -262,11 +262,11 @@ abstract class LingotekTestBase extends BrowserTestBase {
   protected function assertManagementFormProfile($index, $profile) {
     $elements = $this->xpath("//*[@id='edit-table']/tbody/tr[$index]/td[6]");
     if ($profile === NULL) {
-      $this->assertEqual(0, count($elements), "Profile for $index is shown as empty");
+      $this->assertEquals(0, count($elements), "Profile for $index is shown as empty");
     }
     else {
       $shown_profile = $elements[0]->getHtml();
-      $this->assertEqual($profile, $shown_profile, "Profile for $index is shown as $profile");
+      $this->assertEquals($profile, $shown_profile, "Profile for $index is shown as $profile");
     }
   }
 
@@ -288,11 +288,17 @@ abstract class LingotekTestBase extends BrowserTestBase {
       \Drupal::service('content_moderation.moderation_information')
         ->shouldModerateEntitiesOfBundle($entity_definition, $bundle)) {
       $edit['moderation_state[0][state]'] = 'published';
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
     else {
       $edit['status[value]'] = TRUE;
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
   }
 
@@ -308,11 +314,17 @@ abstract class LingotekTestBase extends BrowserTestBase {
       \Drupal::service('content_moderation.moderation_information')
         ->shouldModerateEntitiesOfBundle($entity_definition, $bundle)) {
       $edit['moderation_state[0][state]'] = 'draft';
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
     else {
       $edit['status[value]'] = FALSE;
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
   }
 
@@ -328,40 +340,47 @@ abstract class LingotekTestBase extends BrowserTestBase {
       \Drupal::service('content_moderation.moderation_information')
         ->shouldModerateEntitiesOfBundle($entity_definition, $bundle)) {
       $edit['moderation_state[0][state]'] = 'archived';
-      $this->drupalPostForm($path, $edit, t('Save'));
+      $this->drupalGet($path);
+      $this->submitForm($edit, t('Save'));
     }
     else {
       $edit['status[value]'] = FALSE;
-      $this->drupalPostForm($path, $edit, t('Save'));
+      $this->drupalGet($path);
+      $this->submitForm($edit, t('Save'));
     }
   }
 
   protected function saveAsUnpublishedNodeForm(array $edit, $bundle = 'article') {
     $path = ($bundle !== NULL) ? "node/add/$bundle" : NULL;
     $edit['status[value]'] = FALSE;
-    $this->drupalPostForm($path, $edit, t('Save'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save'));
   }
 
   protected function saveAsRequestReviewNodeForm(array $edit, $bundle = 'article') {
     $path = ($bundle !== NULL) ? "node/add/$bundle" : NULL;
     $edit['moderation_state[0][state]'] = 'needs_review';
-    $this->drupalPostForm($path, $edit, t('Save'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save'));
   }
 
   protected function editAsRequestReviewNodeForm($path, array $edit) {
     $edit['moderation_state[0][state]'] = 'needs_review';
-    $this->drupalPostForm($path, $edit, t('Save'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save'));
   }
 
   protected function saveAsNewDraftNodeForm(array $edit, $bundle = 'article') {
     $path = ($bundle !== NULL) ? "node/add/$bundle" : NULL;
     $edit['moderation_state[0][state]'] = 'draft';
-    $this->drupalPostForm($path, $edit, t('Save'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save'));
   }
 
   protected function editAsNewDraftNodeForm($path, array $edit) {
     $edit['moderation_state[0][state]'] = 'draft';
-    $this->drupalPostForm($path, $edit, t('Save'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save'));
   }
 
   protected function saveAndKeepPublishedNodeForm(array $edit, $nid, $usePath = TRUE) {
@@ -376,11 +395,17 @@ abstract class LingotekTestBase extends BrowserTestBase {
       \Drupal::service('content_moderation.moderation_information')
         ->shouldModerateEntitiesOfBundle($entity_definition, $bundle)) {
       $edit['moderation_state[0][state]'] = 'published';
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
     else {
       $edit['status[value]'] = TRUE;
-      $this->drupalPostForm($path, $edit, t('Save'));
+      if ($path !== NULL) {
+        $this->drupalGet($path);
+      }
+      $this->submitForm($edit, t('Save'));
     }
   }
 
@@ -390,7 +415,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
       $path = $prefix . '/' . $path;
     }
     $edit['status[value]'] = TRUE;
-    $this->drupalPostForm($path, $edit, t('Save (this translation)'));
+    $this->drupalGet($path);
+    $this->submitForm($edit, t('Save (this translation)'));
   }
 
   /**
@@ -408,7 +434,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
       foreach ($bundles as $bundle) {
         $edit["bundles[$bundle]"] = $bundle;
       }
-      $this->drupalPostForm("/admin/config/workflow/workflows/manage/$workflow_id/type/$entity_type_id", $edit, 'Save');
+      $this->drupalGet("/admin/config/workflow/workflows/manage/$workflow_id/type/$entity_type_id");
+      $this->submitForm($edit, 'Save');
     }
   }
 
@@ -424,7 +451,7 @@ abstract class LingotekTestBase extends BrowserTestBase {
     $status_target = $this->xpath("//a[contains(@class,'language-icon') and contains(@class,'target-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
     // If not found, maybe it didn't have a link.
     if (count($status_target) === 1) {
-      $this->assertEqual(count($status_target), 1, 'The target ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 1, 'The target ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
     }
     // Our query looks for containing, so it's not totally accurate. It can confuse e.g. ES with ES-AR.
     elseif (count($status_target) > 1) {
@@ -432,7 +459,7 @@ abstract class LingotekTestBase extends BrowserTestBase {
     }
     else {
       $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'target-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
-      $this->assertEqual(count($status_target), 1, 'The target ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 1, 'The target ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
     }
   }
 
@@ -446,7 +473,7 @@ abstract class LingotekTestBase extends BrowserTestBase {
    */
   protected function assertNoTargetStatus($language, $status) {
     $status_target = $this->xpath("//a[contains(@class,'language-icon') and contains(@class,'target-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
-    $this->assertEqual(count($status_target), 0, 'The target ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
+    $this->assertEquals(count($status_target), 0, 'The target ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
   }
 
   /**
@@ -461,11 +488,11 @@ abstract class LingotekTestBase extends BrowserTestBase {
     $status_target = $this->xpath("//a[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
     // If not found, maybe it didn't have a link.
     if (count($status_target) === 1) {
-      $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
     }
     else {
       $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
-      $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
     }
   }
 
@@ -481,11 +508,11 @@ abstract class LingotekTestBase extends BrowserTestBase {
     $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and ./a[contains(text(), '" . strtoupper($language) . "')]]");
     // If not found, maybe it didn't have a link.
     if (count($status_target) === 0) {
-      $this->assertEqual(count($status_target), 0, 'The source ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 0, 'The source ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
     }
     else {
       $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
-      $this->assertEqual(count($status_target), 0, 'The source ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
+      $this->assertEquals(count($status_target), 0, 'The source ' . strtoupper($language) . ' has not been marked with status ' . strtolower($status) . '.');
     }
   }
 
@@ -501,8 +528,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
    */
   protected function assertNoTargetError($label, $language, $locale) {
     $source_error = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'target-error')  and ./a[contains(text(), '" . strtoupper($language) . "')]]");
-    $this->assertEqual(count($source_error), 0, 'The target ' . strtoupper($language) . ' has not been marked as error.');
-    $this->assertNoText($label . ' ' . $locale . ' translation download failed. Please try again.');
+    $this->assertEquals(count($source_error), 0, 'The target ' . strtoupper($language) . ' has not been marked as error.');
+    $this->assertSession()->pageTextNotContains($label . ' ' . $locale . ' translation download failed. Please try again.');
   }
 
   /**
@@ -517,8 +544,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
    */
   protected function assertNoConfigTargetError($label, $language, $locale) {
     $source_error = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'target-error')  and ./a[contains(text(), '" . strtoupper($language) . "')]]");
-    $this->assertEqual(count($source_error), 0, 'The target ' . strtoupper($language) . ' has not been marked as error.');
-    $this->assertNoText($label . ' ' . $locale . ' translation download failed. Please try again.');
+    $this->assertEquals(count($source_error), 0, 'The target ' . strtoupper($language) . ' has not been marked as error.');
+    $this->assertSession()->pageTextNotContains($label . ' ' . $locale . ' translation download failed. Please try again.');
   }
 
   /**
@@ -591,7 +618,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
         }
       }
     }
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->drupalGet('admin/lingotek/settings');
+    $this->submitForm($edit, 'Save');
   }
 
   /**
@@ -700,7 +728,8 @@ abstract class LingotekTestBase extends BrowserTestBase {
       $edit['table[' . $entity_type . '][enabled]'] = 1;
       $edit['table[' . $entity_type . '][profile]'] = $profile;
     }
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-configuration-form');
+    $this->drupalGet('admin/lingotek/settings');
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-configuration-form');
   }
 
   /**
diff --git a/tests/src/Functional/LingotekToolbarIntegrationTest.php b/tests/src/Functional/LingotekToolbarIntegrationTest.php
index cd572e03..582681f6 100644
--- a/tests/src/Functional/LingotekToolbarIntegrationTest.php
+++ b/tests/src/Functional/LingotekToolbarIntegrationTest.php
@@ -14,16 +14,16 @@ class LingotekToolbarIntegrationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    *
-   * Use 'classy' here, as we depend on that for querying the nav structure.
+   * Use 'starterkit_theme' here, as we depend on that for querying the nav structure.
    *
    * @see testProfileSettingsOverride()
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'starterkit_theme';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'lingotek',
     'lingotek_test',
     'node',
@@ -76,20 +76,26 @@ class LingotekToolbarIntegrationTest extends LingotekTestBase {
     $this->clickLink('Configuration');
 
     // And there is a link for Lingotek translation in the Regional and Language section.
-    $result = $this->xpath('//h3[text()="Regional and language"]/following-sibling::*//a[@href="' . $basepath . '/admin/lingotek"]/text()');
-    $this->assertEqual(1, count($result), 'There is a link in Regional Language to the dashboard.');
+    if (version_compare(\Drupal::VERSION, '10.0.0', '>=')) {
+      $result = $this->xpath('//h3[text()="Region and language"]/following-sibling::*//a[@href="' . $basepath . '/admin/lingotek"]/text()');
+      $this->assertEquals(1, count($result), 'There is a link in Region Language to the dashboard.');
+    } else {
+      $result = $this->xpath('//h3[text()="Regional and language"]/following-sibling::*//a[@href="' . $basepath . '/admin/lingotek"]/text()');
+      $this->assertEquals(1, count($result), 'There is a link in Regional Language to the dashboard.');
+    }
+    
 
     $this->clickLink('Lingotek Translation');
 
     // Assert there are tabs.
     $result = $this->xpath('//nav[contains(@class,"tabs")]/ul[contains(@class,"primary")]/li[contains(@class,"is-active")]/a[@href="' . $basepath . '/admin/lingotek"]/text()');
-    $this->assertEqual(1, count($result), 'There is an active tab for the Dashboard.');
+    $this->assertEquals(1, count($result), 'There is an active tab for the Dashboard.');
     $result = $this->xpath('//nav[contains(@class,"tabs")]/ul[contains(@class,"primary")]/li/a[@href="' . $basepath . '/admin/lingotek/manage"]/text()');
-    $this->assertEqual(1, count($result), 'There is a tab for Content Bulk management.');
+    $this->assertEquals(1, count($result), 'There is a tab for Content Bulk management.');
     $result = $this->xpath('//nav[contains(@class,"tabs")]/ul[contains(@class,"primary")]/li/a[@href="' . $basepath . '/admin/lingotek/config/manage"]/text()');
-    $this->assertEqual(1, count($result), 'There is a tab for Config Bulk management.');
+    $this->assertEquals(1, count($result), 'There is a tab for Config Bulk management.');
     $result = $this->xpath('//nav[contains(@class,"tabs")]/ul[contains(@class,"primary")]/li/a[@href="' . $basepath . '/admin/lingotek/settings"]/text()');
-    $this->assertEqual(1, count($result), 'There is a tab for Settings.');
+    $this->assertEquals(1, count($result), 'There is a tab for Settings.');
 
     $settings = $this->getDrupalSettings();
     // The toolbar module defines a route '/toolbar/subtrees/{hash}' that
@@ -98,7 +104,7 @@ class LingotekToolbarIntegrationTest extends LingotekTestBase {
     $response = $this->drupalGet('/toolbar/subtrees/' . $settings['toolbar']['subtreesHash']);
     $this->assertSession()->statusCodeEquals('200');
     $response = json_decode($response, TRUE);
-    $this->assertEqual($response[0]['command'], 'setToolbarSubtrees', 'Subtrees response uses the correct command.');
+    $this->assertEquals($response[0]['command'], 'setToolbarSubtrees', 'Subtrees response uses the correct command.');
     $this->assertTrue(array_key_exists('lingotek-config-dashboard', $response[0]['subtrees']), 'There is a subtree for Lingotek config.');
 
     $html = $response[0]['subtrees']['lingotek-config-dashboard'];
diff --git a/tests/src/Functional/LingotekUserSettingsBulkTranslationTest.php b/tests/src/Functional/LingotekUserSettingsBulkTranslationTest.php
index a48260b3..c72c5dee 100644
--- a/tests/src/Functional/LingotekUserSettingsBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekUserSettingsBulkTranslationTest.php
@@ -15,7 +15,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node'];
+  protected static $modules = ['block', 'node'];
 
   /**
    * {@inheritdoc}
@@ -48,34 +48,34 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 3);
-    $this->assertText(t('Account settings uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
-    $this->verbose(var_export(\Drupal::state()->get('lingotek.uploaded_content'), TRUE));
+    $this->assertSession()->pageTextContains(t('Account settings uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    dump(var_export(\Drupal::state()->get('lingotek.uploaded_content'), TRUE));
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/entity.user.admin_form/entity.user.admin_form?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 3);
-    $this->assertText('Account settings status checked successfully');
+    $this->assertSession()->pageTextContains('Account settings status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
@@ -103,8 +103,8 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/entity.user.admin_form/entity.user.admin_form?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -112,7 +112,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request the German (AT) translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -120,8 +120,8 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('de', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/entity.user.admin_form/entity.user.admin_form/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -129,8 +129,8 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.checked_target_locale'));
 
     // Download the German translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/entity.user.admin_form/entity.user.admin_form/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -138,8 +138,8 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => 'download_translation:de',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('de_AT', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('de_AT', 'dummy-document-hash-id', 'DE');
@@ -159,9 +159,10 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
     // Add a language so we can check that it's not marked as for requesting if
     // it was already requested.
     ConfigurableLanguage::createFromLangcode('ko')->setThirdPartySetting('lingotek', 'locale', 'ko_KR')->save();
+    $this->drupalGet('/admin/config/people/accounts');
 
     // Edit the object
-    $this->drupalPostForm('/admin/config/people/accounts', ['anonymous' => 'Unknown user'], t('Save configuration'));
+    $this->submitForm(['anonymous' => 'Unknown user'], t('Save configuration'));
 
     // Go to the bulk config management page.
     $this->goToConfigBulkManagementForm();
@@ -176,19 +177,19 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
 
     // Request korean, with outdated content available.
     $this->clickLink('KO');
-    $this->assertText("Translation to ko_KR requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ko_KR requested successfully");
 
     // Reupload the content.
     $this->clickLink('EN', 3);
-    $this->assertText('Account settings has been updated.');
+    $this->assertSession()->pageTextContains('Account settings has been updated.');
 
     // Korean should be marked as requested, so we can check target.
     $status = $this->xpath("//a[contains(@class,'language-icon') and contains(@class, 'target-pending')  and contains(text(), 'KO')]");
-    $this->assertEqual(count($status), 1, 'Korean is requested, so we can still check the progress status of the translation');
+    $this->assertEquals(count($status), 1, 'Korean is requested, so we can still check the progress status of the translation');
 
     // Recheck status.
     $this->clickLink('EN', 3);
-    $this->assertText('Account settings status checked successfully');
+    $this->assertSession()->pageTextContains('Account settings status checked successfully');
 
     // Check the translation after having been edited.
     // Check status of the Spanish translation.
@@ -196,12 +197,12 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => 'check_translation:es',
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertText('Operations completed.');
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSession()->pageTextContains('Operations completed.');
 
     // Download the translation.
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
   }
 
   /**
@@ -227,7 +228,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // I can check current status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/entity.user.admin_form/entity.user.admin_form?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -235,7 +236,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Request all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -243,7 +244,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Check status of all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/entity.user.admin_form/entity.user.admin_form/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -251,7 +252,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCheckTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // Download all the translations.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/entity.user.admin_form/entity.user.admin_form/de_AT?destination=' . $basepath . '/admin/lingotek/config/manage');
@@ -259,7 +260,7 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
       'table[entity.user.admin_form]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForDownloadTranslations('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   /**
@@ -282,15 +283,15 @@ class LingotekUserSettingsBulkTranslationTest extends LingotekTestBase {
     // There is a link for requesting the Catalan translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/entity.user.admin_form/entity.user.admin_form/ca_ES?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('CA');
-    $this->assertText("Translation to ca_ES requested successfully");
+    $this->assertSession()->pageTextContains("Translation to ca_ES requested successfully");
   }
 
   /**
    * Test that when a config is uploaded in a different locale that locale is used.
    * ToDo: Add a test for this.
    */
-  public function testAddingConfigInDifferentLocale() {
-    $this->pass('Test not implemented yet.');
+  public function testAddingConfigInDifferentLocale()
+  {
   }
 
 }
diff --git a/tests/src/Functional/LingotekUtilitiesDisassociateAllDocumentsTest.php b/tests/src/Functional/LingotekUtilitiesDisassociateAllDocumentsTest.php
index da9a298f..165bad1f 100644
--- a/tests/src/Functional/LingotekUtilitiesDisassociateAllDocumentsTest.php
+++ b/tests/src/Functional/LingotekUtilitiesDisassociateAllDocumentsTest.php
@@ -31,7 +31,7 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
    *
    * @var array
    */
-  public static $modules = ['node', 'taxonomy'];
+  protected static $modules = ['node', 'taxonomy'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -127,8 +127,9 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     $this->goToContentBulkManagementForm('taxonomy_term');
 
@@ -183,10 +184,10 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
   public function testDisassociateAllDocuments() {
     $this->drupalGet('/admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertRaw("Are you sure you want to disassociate everything from Ray Enterprise?");
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertText('All translations have been disassociated.');
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->responseContains("Are you sure you want to disassociate everything from Ray Enterprise?");
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->pageTextContains('All translations have been disassociated.');
 
     $node = Node::load(1);
     $term = Term::load(1);
@@ -198,22 +199,22 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
     // Ensure we have disassociated the node.
     $this->assertNull($content_translation_service->getDocumentId($node), 'The node has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
 
     // Ensure we have disassociated the term.
     $this->assertNull($content_translation_service->getDocumentId($term), 'The term has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($term));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($term));
 
     // Ensure we are disassociated the article type.
     $article_type = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
     $this->assertNull($config_translation_service->getDocumentId($article_type), 'The article node type has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $config_translation_service->getSourceStatus($article_type));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $config_translation_service->getSourceStatus($article_type));
 
     // Ensure we are disassociated the config system.site.
     $mappers = \Drupal::service('plugin.manager.config_translation.mapper')->getMappers();
     $mapper = $mappers['system.site_information_settings'];
     $this->assertNull($config_translation_service->getConfigDocumentId($mapper), 'The system.site config mapper has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $config_translation_service->getConfigSourceStatus($mapper));
 
     // Ensure the UIs show the right statuses.
     $this->goToContentBulkManagementForm('node');
@@ -257,10 +258,10 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
     // Disassociate.
     $this->drupalGet('/admin/lingotek/settings');
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertRaw("Are you sure you want to disassociate everything from Ray Enterprise?");
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertText('All translations have been disassociated.');
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->responseContains("Are you sure you want to disassociate everything from Ray Enterprise?");
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->pageTextContains('All translations have been disassociated.');
 
     $node = Node::load(1);
     $term = Term::load(1);
@@ -272,22 +273,22 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
     // Ensure we have disassociated the node.
     $this->assertNull($content_translation_service->getDocumentId($node), 'The node has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($node));
 
     // Ensure we have disassociated the term.
     $this->assertNull($content_translation_service->getDocumentId($term), 'The term has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($term));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $content_translation_service->getSourceStatus($term));
 
     // Ensure we are disassociated the article type.
     $article_type = \Drupal::entityTypeManager()->getStorage('node_type')->load('article');
     $this->assertNull($config_translation_service->getDocumentId($article_type), 'The article node type has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $config_translation_service->getSourceStatus($article_type));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $config_translation_service->getSourceStatus($article_type));
 
     // Ensure we are disassociated the config system.site.
     $mappers = \Drupal::service('plugin.manager.config_translation.mapper')->getMappers();
     $mapper = $mappers['system.site_information_settings'];
     $this->assertNull($config_translation_service->getConfigDocumentId($mapper), 'The system.site config mapper has been disassociated from its Lingotek Document ID');
-    $this->assertIdentical(Lingotek::STATUS_UNTRACKED, $config_translation_service->getConfigSourceStatus($mapper));
+    $this->assertSame(Lingotek::STATUS_UNTRACKED, $config_translation_service->getConfigSourceStatus($mapper));
 
     // Ensure the UIs show the right statuses.
     $this->goToContentBulkManagementForm('node');
@@ -321,10 +322,10 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
     // Let's try to disassociate then.
     $this->drupalGet('/admin/lingotek/settings');
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Disassociate');
-    $this->assertRaw("Are you sure you want to disassociate everything from Ray Enterprise?");
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertText('All translations have been disassociated.');
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->responseContains("Are you sure you want to disassociate everything from Ray Enterprise?");
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->pageTextContains('All translations have been disassociated.');
 
     // We create manually the given data for setting up an incorrect status.
     $metadata = LingotekContentMetadata::create();
@@ -335,10 +336,10 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
 
     // Let's try to disassociate then.
     $this->drupalGet('/admin/lingotek/settings');
-    $this->drupalPostForm('admin/lingotek/settings', [], 'Disassociate');
-    $this->assertRaw("Are you sure you want to disassociate everything from Ray Enterprise?");
-    $this->drupalPostForm(NULL, [], 'Disassociate');
-    $this->assertText('All translations have been disassociated.');
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->responseContains("Are you sure you want to disassociate everything from Ray Enterprise?");
+    $this->submitForm([], 'Disassociate');
+    $this->assertSession()->pageTextContains('All translations have been disassociated.');
   }
 
   protected function createAndCancelANode() {
@@ -366,14 +367,15 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
     $edit['name[0][value]'] = 'Llamas are cool';
     $edit['description[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
+    $this->drupalGet("admin/structure/taxonomy/manage/$bundle/add");
 
-    $this->drupalPostForm("admin/structure/taxonomy/manage/$bundle/add", $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
     $this->goToContentBulkManagementForm('taxonomy_term');
     $edit = [
       'table[2]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('taxonomy_term'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   protected function createAndCancelANodeType() {
@@ -388,7 +390,7 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
       'table[page]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('node_type'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
   protected function createAndCancelAConfig() {
@@ -401,7 +403,7 @@ class LingotekUtilitiesDisassociateAllDocumentsTest extends LingotekTestBase {
       'table[system.site_maintenance_mode]' => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForCancel('config'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
   }
 
 }
diff --git a/tests/src/Functional/LingotekViewsFunctionalTests.php b/tests/src/Functional/LingotekViewsFunctionalTests.php
index 15dd4964..ef3ddcb2 100644
--- a/tests/src/Functional/LingotekViewsFunctionalTests.php
+++ b/tests/src/Functional/LingotekViewsFunctionalTests.php
@@ -15,14 +15,14 @@ class LingotekViewsFunctionalTests extends LingotekTestBase {
   /**
    * {@inheritdoc}
    *
-   * Use 'classy' here, as we depend on views classesa added there.
+   * Use 'olivero' here, as we depend on views classesa added there.
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'olivero';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'views'];
+  protected static $modules = ['block', 'node', 'views'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/LingotekWebformBulkTranslationTest.php b/tests/src/Functional/LingotekWebformBulkTranslationTest.php
index 07df76ad..94ef75b3 100644
--- a/tests/src/Functional/LingotekWebformBulkTranslationTest.php
+++ b/tests/src/Functional/LingotekWebformBulkTranslationTest.php
@@ -17,7 +17,7 @@ class LingotekWebformBulkTranslationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'frozenintime', 'webform'];
+  protected static $modules = ['block', 'node', 'frozenintime', 'webform'];
 
   /**
    * A webform.
@@ -97,44 +97,44 @@ class LingotekWebformBulkTranslationTest extends LingotekTestBase {
     // And we cannot request yet a translation.
     $assert_session->linkByHrefNotExists($basepath . '/admin/lingotek/config/request/webform/test/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText(t('Test uploaded successfully'));
-    $this->assertIdentical('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
+    $this->assertSession()->pageTextContains(t('Test uploaded successfully'));
+    $this->assertSame('en_US', \Drupal::state()->get('lingotek.uploaded_locale'));
 
     // Check that only the configured fields have been uploaded.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual('Test', $data['title']);
-    $this->assertEqual(6, count($data['elements']));
-    $this->assertEqual('First name', $data['elements']['first_name']['#title']);
-    $this->assertEqual('Last name', $data['elements']['last_name']['#title']);
-    $this->assertEqual('Sex', $data['elements']['sex']['#title']);
-    $this->assertEqual('Martial status', $data['elements']['martial_status']['#title']);
-    $this->assertEqual('Employment status', $data['elements']['employment_status']['#title']);
-    $this->assertEqual('Age', $data['elements']['age']['#title']);
+    $this->assertEquals('Test', $data['title']);
+    $this->assertEquals(6, count($data['elements']));
+    $this->assertEquals('First name', $data['elements']['first_name']['#title']);
+    $this->assertEquals('Last name', $data['elements']['last_name']['#title']);
+    $this->assertEquals('Sex', $data['elements']['sex']['#title']);
+    $this->assertEquals('Martial status', $data['elements']['martial_status']['#title']);
+    $this->assertEquals('Employment status', $data['elements']['employment_status']['#title']);
+    $this->assertEquals('Age', $data['elements']['age']['#title']);
 
     // There is a link for checking status.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_upload/webform/test?destination=' . $basepath . '/admin/lingotek/config/manage');
     // And we can already request a translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/webform/test/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('EN', 1);
-    $this->assertText('Test status checked successfully');
+    $this->assertSession()->pageTextContains('Test status checked successfully');
 
     // Request the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/request/webform/test/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText("Translation to es_MX requested successfully");
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX requested successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.added_target_locale'));
 
     // Check status of the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/check_download/webform/test/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
-    $this->assertText("Translation to es_MX status checked successfully");
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.checked_target_locale'));
+    $this->assertSession()->pageTextContains("Translation to es_MX status checked successfully");
 
     // Download the Spanish translation.
     $assert_session->linkByHrefExists($basepath . '/admin/lingotek/config/download/webform/test/es_MX?destination=' . $basepath . '/admin/lingotek/config/manage');
     $this->clickLink('ES');
-    $this->assertText('Translation to es_MX downloaded successfully');
-    $this->assertIdentical('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
+    $this->assertSession()->pageTextContains('Translation to es_MX downloaded successfully');
+    $this->assertSame('es_MX', \Drupal::state()->get('lingotek.downloaded_locale'));
 
     // Now the link is to the workbench, and it opens in a new tab.
     $this->assertLingotekWorkbenchLink('es_MX', 'dummy-document-hash-id', 'ES');
diff --git a/tests/src/Functional/LingotekWorkbenchModerationCustomMenuLinkTest.php b/tests/src/Functional/LingotekWorkbenchModerationCustomMenuLinkTest.php
index e34fbcab..fca1a0e7 100644
--- a/tests/src/Functional/LingotekWorkbenchModerationCustomMenuLinkTest.php
+++ b/tests/src/Functional/LingotekWorkbenchModerationCustomMenuLinkTest.php
@@ -15,7 +15,7 @@ class LingotekWorkbenchModerationCustomMenuLinkTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'menu_ui', 'menu_link_content', 'workbench_moderation'];
+  protected static $modules = ['block', 'node', 'menu_ui', 'menu_link_content', 'workbench_moderation'];
 
   /**
    * {@inheritdoc}
@@ -68,10 +68,11 @@ class LingotekWorkbenchModerationCustomMenuLinkTest extends LingotekTestBase {
     $edit['link[0][uri]'] = '<front>';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/admin/structure/menu/manage/main/add', $edit, t('Save'));
+    $this->drupalGet('/admin/structure/menu/manage/main/add');
+    $this->submitForm($edit, t('Save'));
 
-    $this->assertText('The menu link has been saved.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('The menu link has been saved.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
 }
diff --git a/tests/src/Functional/LingotekWorkbenchModerationSettingsTest.php b/tests/src/Functional/LingotekWorkbenchModerationSettingsTest.php
index cde30b51..cbc84f32 100644
--- a/tests/src/Functional/LingotekWorkbenchModerationSettingsTest.php
+++ b/tests/src/Functional/LingotekWorkbenchModerationSettingsTest.php
@@ -19,7 +19,7 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['node', 'taxonomy', 'workbench_moderation'];
+  protected static $modules = ['node', 'taxonomy', 'workbench_moderation'];
 
   /**
    * Vocabulary for testing.
@@ -75,18 +75,14 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
 
     // We don't have any fields for configuring workbench moderation until it's
     // enabled.
-    $this->assertNoField('node[article][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as workbench moderation is not enabled for this bundle.');
-    $this->assertNoField('node[article][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as workbench moderation is not enabled for this bundle.');
+    $this->assertSession()->fieldNotExists('node[article][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[article][moderation][download_transition]');
 
-    $this->assertNoField('node[page][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as workbench moderation is not enabled for this bundle.');
-    $this->assertNoField('node[page][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as workbench moderation is not enabled for this bundle.');
+    $this->assertSession()->fieldNotExists('node[page][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[page][moderation][download_transition]');
 
     // We show a message and link for enabling it.
-    $this->assertText('This entity bundle is not enabled for moderation with workbench_moderation. You can change its settings here.');
+    $this->assertSession()->pageTextContains('This entity bundle is not enabled for moderation with workbench_moderation. You can change its settings here.');
     $assert_session->linkByHrefExists('/admin/structure/types/manage/article/moderation');
     $assert_session->linkByHrefExists('/admin/structure/types/manage/page/moderation');
 
@@ -98,20 +94,16 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
 
     // Assert the fields for setting up the integration exist and they have
     // sensible defaults.
-    $this->assertField('node[article][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded exists.');
-    $this->assertField('node[article][moderation][download_transition]',
-      'The field for setting the transition that must happen after download exists.');
+    $this->assertSession()->fieldExists('node[article][moderation][upload_status]');
+    $this->assertSession()->fieldExists('node[article][moderation][download_transition]');
     $assert_session->optionExists('edit-node-article-moderation-upload-status', 'published');
     $assert_session->optionExists('edit-node-article-moderation-download-transition', 'published_published');
 
     // The content types without moderation enabled should show a link instead
     // for configuring them.
-    $this->assertNoField('node[page][moderation][upload_status]',
-      'The field for setting the state when a content should be uploaded does not exist as workbench moderation is not enabled for this bundle.');
-    $this->assertNoField('node[page][moderation][download_transition]',
-      'The field for setting the transition that must happen after download does not exist as workbench moderation is not enabled for this bundle.');
-    $this->assertText('This entity bundle is not enabled for moderation with workbench_moderation. You can change its settings here.');
+    $this->assertSession()->fieldNotExists('node[page][moderation][upload_status]');
+    $this->assertSession()->fieldNotExists('node[page][moderation][download_transition]');
+    $this->assertSession()->pageTextContains('This entity bundle is not enabled for moderation with workbench_moderation. You can change its settings here.');
     $assert_session->linkByHrefNotExists('/admin/structure/types/manage/article/moderation');
     $assert_session->linkByHrefExists('/admin/structure/types/manage/page/moderation');
 
@@ -135,25 +127,21 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
     $assert_session->optionExists('edit-node-article-moderation-upload-status', 'draft');
     $assert_session->optionExists('edit-node-article-moderation-download-transition', 'draft_needs_review');
 
-    $this->assertNoField("taxonomy_term[$vocabulary_id][moderation][upload_status]",
-      'The field for setting the state when a content should be uploaded does not exist as workbench moderation is not available for this entity type.');
-    $this->assertNoField("taxonomy_term[$vocabulary_id][moderation][download_transition]",
-      'The field for setting the transition that must happen after download does not exist as workbench moderation is not available for this entity type.');
+    $this->assertSession()->fieldNotExists("taxonomy_term[$vocabulary_id][moderation][upload_status]");
+    $this->assertSession()->fieldNotExists("taxonomy_term[$vocabulary_id][moderation][download_transition]");
 
     $assert_session->linkByHrefExists("/admin/structure/taxonomy/manage/$vocabulary_id/moderation");
     // Users cannot be moderated.
-    $this->assertNoField("user[user][moderation][upload_status]",
-      'The field for setting the state when a content should be uploaded does not exist as workbench moderation is not available for this entity type.');
-    $this->assertNoField("user[user][moderation][download_transition]",
-      'The field for setting the transition that must happen after download does not exist as workbench moderation is not available for this entity type.');
+    $this->assertSession()->fieldNotExists("user[user][moderation][upload_status]");
+    $this->assertSession()->fieldNotExists("user[user][moderation][download_transition]");
     $assert_session->linkByHrefNotExists("/admin/structure/user/manage/user/moderation");
 
     $header = $this->xpath("//details[@id='edit-entity-node']//th[text()='Workbench Moderation']");
-    $this->assertEqual(count($header), 1, 'There is a Workbench Moderation column for content.');
+    $this->assertEquals(count($header), 1, 'There is a Workbench Moderation column for content.');
     $header = $this->xpath("//details[@id='edit-entity-taxonomy-term']//th[text()='Workbench Moderation']");
-    $this->assertEqual(count($header), 1, 'There is a Workbench Moderation column for terms.');
+    $this->assertEquals(count($header), 1, 'There is a Workbench Moderation column for terms.');
     $header = $this->xpath("//details[@id='edit-entity-user']//th[text()='Workbench Moderation']");
-    $this->assertEqual(count($header), 0, 'There is no Workbench Moderation column for users.');
+    $this->assertEquals(count($header), 0, 'There is no Workbench Moderation column for users.');
   }
 
   /**
@@ -168,8 +156,8 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
    */
   protected function enableModerationThroughUI($content_type_id, array $allowed_states, $default_state) {
     $this->drupalGet('admin/structure/types/manage/' . $content_type_id . '/moderation');
-    $this->assertFieldByName('enable_moderation_state');
-    $this->assertNoFieldChecked('edit-enable-moderation-state');
+    $this->assertSession()->fieldExists('enable_moderation_state');
+    $this->assertSession()->checkboxNotChecked('edit-enable-moderation-state');
 
     $edit['enable_moderation_state'] = 1;
 
@@ -181,7 +169,7 @@ class LingotekWorkbenchModerationSettingsTest extends LingotekTestBase {
 
     $edit['default_moderation_state'] = $default_state;
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
 }
diff --git a/tests/src/Functional/LingotekWorkbenchModerationTest.php b/tests/src/Functional/LingotekWorkbenchModerationTest.php
index c157453b..d924a167 100644
--- a/tests/src/Functional/LingotekWorkbenchModerationTest.php
+++ b/tests/src/Functional/LingotekWorkbenchModerationTest.php
@@ -17,7 +17,7 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'workbench_moderation'];
+  protected static $modules = ['block', 'node', 'workbench_moderation'];
 
   /**
    * {@inheritdoc}
@@ -92,10 +92,11 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Request Review'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Request Review'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -107,10 +108,11 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Request Review'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Request Review'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -122,10 +124,11 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -137,10 +140,11 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -152,13 +156,15 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->drupalPostForm('/node/1/edit', $edit, t('Save and Request Review (this translation)'));
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->drupalGet('/node/1/edit');
+    $this->submitForm($edit, t('Save and Request Review (this translation)'));
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -170,13 +176,15 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->drupalPostForm('/node/1/edit', $edit, t('Save and Request Review (this translation)'));
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->drupalGet('/node/1/edit');
+    $this->submitForm($edit, t('Save and Request Review (this translation)'));
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -188,14 +196,16 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
     $edit['title[0][value]'] = 'Llamas are cool!';
-    $this->drupalPostForm('/node/1/edit', $edit, t('Save and Create New Draft (this translation)'));
+    $this->drupalGet('/node/1/edit');
+    $this->submitForm($edit, t('Save and Create New Draft (this translation)'));
 
-    $this->assertText('Article Llamas are cool! has been updated.');
-    $this->assertText('Llamas are cool! was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool! has been updated.');
+    $this->assertSession()->pageTextContains('Llamas are cool! was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -208,18 +218,20 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
     $currentStatus = $this->getSession()->getPage()->find('css', 'div[id="edit-current"]');
-    $this->assertEqual($currentStatus->getText(), 'Status Draft');
+    $this->assertEquals($currentStatus->getText(), 'Status Draft');
+    $this->drupalGet('/node/1/edit');
 
-    $this->drupalPostForm('/node/1/edit', $edit, t('Save and Create New Draft (this translation)'));
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->submitForm($edit, t('Save and Create New Draft (this translation)'));
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextContains('Llamas are cool was updated and sent to Lingotek successfully.');
     $currentStatus = $this->getSession()->getPage()->find('css', 'div[id="edit-current"]');
-    $this->assertEqual($currentStatus->getText(), 'Status Draft');
+    $this->assertEquals($currentStatus->getText(), 'Status Draft');
   }
 
   /**
@@ -231,13 +243,15 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
-    $this->assertText('Article Llamas are cool has been created.');
-    $this->drupalPostForm('/node/1/edit', $edit, t('Save and Create New Draft (this translation)'));
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been created.');
+    $this->drupalGet('/node/1/edit');
+    $this->submitForm($edit, t('Save and Create New Draft (this translation)'));
 
-    $this->assertText('Article Llamas are cool has been updated.');
-    $this->assertNoText('Llamas are cool was updated and sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Article Llamas are cool has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool was updated and sent to Lingotek successfully.');
   }
 
   /**
@@ -252,7 +266,8 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
       'node[article][moderation][upload_status]' => 'needs_review',
       'node[article][moderation][download_transition]' => 'needs_review_published',
     ];
-    $this->drupalPostForm('admin/lingotek/settings', $edit, 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->drupalGet('admin/lingotek/settings', []);
+    $this->submitForm($edit, 'Save', 'lingoteksettings-tab-content-form');
   }
 
   /**
@@ -266,13 +281,14 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // Moderate.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -286,13 +302,14 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // Moderate.
     $edit = ['new_state' => 'published'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -306,13 +323,14 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // Moderate.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -326,13 +344,14 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'manual';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // Moderate.
     $edit = ['new_state' => 'published'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
-    $this->assertText('The moderation state has been updated.');
-    $this->assertNoText('Llamas are cool sent to Lingotek successfully.');
+    $this->submitForm($edit, 'Apply');
+    $this->assertSession()->pageTextContains('The moderation state has been updated.');
+    $this->assertSession()->pageTextNotContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -346,21 +365,22 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // The status is draft.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Draft', 'Workbench current status is draft');
+    $this->assertEquals($value, 'Draft', 'Workbench current status is draft');
 
     // Moderate to Needs review, so it's uploaded.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     // The status is needs review.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Needs Review', 'Workbench current status is Needs Review');
+    $this->assertEquals($value, 'Needs Review', 'Workbench current status is Needs Review');
 
     $this->goToContentBulkManagementForm();
     // Request translation.
@@ -372,7 +392,7 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
 
     // Let's see the current status is modified.
     $this->clickLink('Llamas are cool');
-    $this->assertNoFieldByName('new_state', 'The transition to a new workbench status happened (so no moderation form is shown).');
+    $this->assertSession()->fieldValueNotEquals('new_state', 'The transition to a new workbench status happened (so no moderation form is shown).');
   }
 
   public function testDownloadWhenContentModerationWasSetupAfterLingotek() {
@@ -411,20 +431,21 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['body[0][value]'] = 'Llamas are very cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
-    $this->drupalPostForm('/node/add/article', $edit, t('Save and Create New Draft'));
+    $this->drupalGet('/node/add/article');
+    $this->submitForm($edit, t('Save and Create New Draft'));
 
     // The status is draft.
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Draft', 'Workbench current status is draft');
+    $this->assertEquals($value, 'Draft', 'Workbench current status is draft');
 
     // Moderate to Needs review, so it's uploaded.
     $edit = ['new_state' => 'needs_review'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     // Moderate back to draft, so the transition won't happen on download.
     $edit = ['new_state' => 'draft'];
-    $this->drupalPostForm(NULL, $edit, 'Apply');
+    $this->submitForm($edit, 'Apply');
 
     $this->goToContentBulkManagementForm();
     // Request translation.
@@ -438,7 +459,7 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $this->clickLink('Llamas are cool');
     $value = $this->xpath('//div[@id="edit-current"]/text()');
     $value = trim($value[1]->getText());
-    $this->assertEqual($value, 'Draft', 'The transition to a new workbench status didn\'t happen because the source wasn\'t the expected.');
+    $this->assertEquals($value, 'Draft', 'The transition to a new workbench status didn\'t happen because the source wasn\'t the expected.');
   }
 
   /**
@@ -454,8 +475,8 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
     $edit['lingotek_translation_management[lingotek_translation_profile]'] = 'automatic';
     $this->saveAndPublishNodeForm($edit, 'page');
 
-    $this->assertText('Page Llamas are cool has been created.');
-    $this->assertText('Llamas are cool sent to Lingotek successfully.');
+    $this->assertSession()->pageTextContains('Page Llamas are cool has been created.');
+    $this->assertSession()->pageTextContains('Llamas are cool sent to Lingotek successfully.');
   }
 
   /**
@@ -470,8 +491,8 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
    */
   protected function enableModerationThroughUI($content_type_id, array $allowed_states, $default_state) {
     $this->drupalGet('admin/structure/types/manage/' . $content_type_id . '/moderation');
-    $this->assertFieldByName('enable_moderation_state');
-    $this->assertNoFieldChecked('edit-enable-moderation-state');
+    $this->assertSession()->fieldExists('enable_moderation_state');
+    $this->assertSession()->checkboxNotChecked('edit-enable-moderation-state');
 
     $edit['enable_moderation_state'] = 1;
 
@@ -483,7 +504,7 @@ class LingotekWorkbenchModerationTest extends LingotekTestBase {
 
     $edit['default_moderation_state'] = $default_state;
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
   }
 
 }
diff --git a/tests/src/Functional/Render/Element/RenderElementTypesTest.php b/tests/src/Functional/Render/Element/RenderElementTypesTest.php
index d3a03054..65eaf55f 100644
--- a/tests/src/Functional/Render/Element/RenderElementTypesTest.php
+++ b/tests/src/Functional/Render/Element/RenderElementTypesTest.php
@@ -18,7 +18,7 @@ class RenderElementTypesTest extends LingotekTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
+  protected static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
 
   /**
    * {@inheritdoc}
@@ -180,7 +180,7 @@ class RenderElementTypesTest extends LingotekTestBase {
     $this->drupalGet('/lingotek_form_test/lingotek_translation_statuses/node/1');
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//span[@class='language-icon target-untracked' and @title='Spanish - Translation exists, but it is not being tracked by Lingotek' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Span exists.');
+    $this->assertEquals(count($link), 1, 'Span exists.');
 
     $translation_service->setDocumentId($entity, 'test-document-id');
 
@@ -207,11 +207,11 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/download/test-document-id/ca_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_statuses/node/1' and @class='language-icon target-ready' and @title='Catalan - Ready for Download' and text()='CA']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/check_target/test-document-id/de_DE?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_statuses/node/1' and @class='language-icon target-pending' and @title='German - In-progress' and text()='DE']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/add_target/test-document-id/es_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_statuses/node/1' and @class='language-icon target-request' and @title='Spanish - Request translation' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_INTERMEDIATE);
     $translation_service->setTargetStatus($entity, 'de', Lingotek::STATUS_CURRENT);
@@ -230,11 +230,11 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/ca_ES' and @target='_blank' and @class='language-icon target-edited' and @title='Catalan - Not current' and text()='CA']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/de_DE' and @target='_blank' and @class='language-icon target-current' and @title='German - Current' and text()='DE']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/es_ES' and @target='_blank' and @class='language-icon target-intermediate' and @title='Spanish - In-progress (interim translation downloaded)' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_ERROR);
     $this->drupalGet('/lingotek_form_test/lingotek_translation_statuses/node/1');
@@ -255,7 +255,7 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/download/test-document-id/es_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_statuses/node/1' and @class='language-icon target-error' and @title='Spanish - Error' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_DISABLED);
     $this->drupalGet('/lingotek_form_test/lingotek_translation_statuses/node/1');
@@ -272,7 +272,7 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//span[@class='language-icon target-disabled' and @title='Spanish - Disabled' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Span exists.');
+    $this->assertEquals(count($link), 1, 'Span exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_DELETED);
     $translation_service->setTargetStatus($entity, 'de', Lingotek::STATUS_ARCHIVED);
@@ -353,7 +353,7 @@ class RenderElementTypesTest extends LingotekTestBase {
     $this->drupalGet('/lingotek_form_test/lingotek_translation_status/node/1');
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//span[@class='language-icon target-untracked' and @title='Spanish - Translation exists, but it is not being tracked by Lingotek' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Span exists.');
+    $this->assertEquals(count($link), 1, 'Span exists.');
 
     $translation_service->setDocumentId($entity, 'test-document-id');
 
@@ -380,11 +380,11 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/download/test-document-id/ca_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_status/node/1' and @class='language-icon target-ready' and @title='Catalan - Ready for Download' and text()='CA']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/check_target/test-document-id/de_DE?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_status/node/1' and @class='language-icon target-pending' and @title='German - In-progress' and text()='DE']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/add_target/test-document-id/es_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_status/node/1' and @class='language-icon target-request' and @title='Spanish - Request translation' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_INTERMEDIATE);
     $translation_service->setTargetStatus($entity, 'de', Lingotek::STATUS_CURRENT);
@@ -403,11 +403,11 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/ca_ES' and @target='_blank' and @class='language-icon target-edited' and @title='Catalan - Not current' and text()='CA']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/de_DE' and @target='_blank' and @class='language-icon target-current' and @title='German - Current' and text()='DE']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/workbench/test-document-id/es_ES' and @target='_blank' and @class='language-icon target-intermediate' and @title='Spanish - In-progress (interim translation downloaded)' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_ERROR);
     $this->drupalGet('/lingotek_form_test/lingotek_translation_status/node/1');
@@ -428,7 +428,7 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//a[@href='$basepath/admin/lingotek/entity/download/test-document-id/es_ES?destination=" . $basepath . "/lingotek_form_test/lingotek_translation_status/node/1' and @class='language-icon target-error' and @title='Spanish - Error' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Link exists.');
+    $this->assertEquals(count($link), 1, 'Link exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_DISABLED);
     $this->drupalGet('/lingotek_form_test/lingotek_translation_status/node/1');
@@ -445,7 +445,7 @@ class RenderElementTypesTest extends LingotekTestBase {
 
     $this->assertSession()->responseContains('lingotek/css/base.css');
     $link = $this->xpath("//span[@class='language-icon target-disabled' and @title='Spanish - Disabled' and text()='ES']");
-    $this->assertEqual(count($link), 1, 'Span exists.');
+    $this->assertEquals(count($link), 1, 'Span exists.');
 
     $translation_service->setTargetStatus($entity, 'es', Lingotek::STATUS_DELETED);
     $translation_service->setTargetStatus($entity, 'de', Lingotek::STATUS_ARCHIVED);
diff --git a/tests/src/Functional/Update/LingotekUpgrade8221RemoveContentCloudSettingsTest.php b/tests/src/Functional/Update/LingotekUpgrade8221RemoveContentCloudSettingsTest.php
index 46cfbdea..681f41b5 100644
--- a/tests/src/Functional/Update/LingotekUpgrade8221RemoveContentCloudSettingsTest.php
+++ b/tests/src/Functional/Update/LingotekUpgrade8221RemoveContentCloudSettingsTest.php
@@ -41,8 +41,8 @@ class LingotekUpgrade8221RemoveContentCloudSettingsTest extends UpdatePathTestBa
    */
   public function testUpgrade() {
     $this->assertFalse($this->lingotekConfiguration->getPreference('enable_content_cloud'));
-    $this->assertEqual($this->lingotekConfiguration->getPreference('content_cloud_import_format'), 'article');
-    $this->assertEqual($this->lingotekConfiguration->getPreference('content_cloud_import_status'), 0);
+    $this->assertEquals($this->lingotekConfiguration->getPreference('content_cloud_import_format'), 'article');
+    $this->assertEquals($this->lingotekConfiguration->getPreference('content_cloud_import_status'), 0);
 
     $this->runUpdates();
 
diff --git a/tests/src/Functional/Views/LingotekNodeBulkViewsCancelTest.php b/tests/src/Functional/Views/LingotekNodeBulkViewsCancelTest.php
index f098e03e..04b04f87 100644
--- a/tests/src/Functional/Views/LingotekNodeBulkViewsCancelTest.php
+++ b/tests/src/Functional/Views/LingotekNodeBulkViewsCancelTest.php
@@ -16,7 +16,7 @@ class LingotekNodeBulkViewsCancelTest extends LingotekNodeBulkCancelTest {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'views'];
+  protected static $modules = ['block', 'node', 'views'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/Views/LingotekNodeBulkViewsLocaleTranslationTest.php b/tests/src/Functional/Views/LingotekNodeBulkViewsLocaleTranslationTest.php
index 7dc63ff6..e0add871 100644
--- a/tests/src/Functional/Views/LingotekNodeBulkViewsLocaleTranslationTest.php
+++ b/tests/src/Functional/Views/LingotekNodeBulkViewsLocaleTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekNodeBulkViewsLocaleTranslationTest extends LingotekNodeBulkLocaleT
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'views'];
+  protected static $modules = ['block', 'node', 'views'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Functional/Views/LingotekNodeBulkViewsTranslationTest.php b/tests/src/Functional/Views/LingotekNodeBulkViewsTranslationTest.php
index 95facf4a..411cf20d 100644
--- a/tests/src/Functional/Views/LingotekNodeBulkViewsTranslationTest.php
+++ b/tests/src/Functional/Views/LingotekNodeBulkViewsTranslationTest.php
@@ -18,7 +18,7 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'views'];
+  protected static $modules = ['block', 'node', 'views'];
 
   /**
    * {@inheritdoc}
@@ -74,8 +74,8 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForUpload('node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
-    $this->assertIdentical('en_US', \Drupal::state()
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
+    $this->assertSame('en_US', \Drupal::state()
       ->get('lingotek.uploaded_locale'));
 
     // I can check current status.
@@ -90,10 +90,10 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
       $key => TRUE,
       $this->getBulkOperationFormName() => $this->getBulkOperationNameForRequestTranslation('it', 'node'),
     ];
-    $this->drupalPostForm(NULL, $edit, $this->getApplyActionsButtonLabel());
+    $this->submitForm($edit, $this->getApplyActionsButtonLabel());
 
     // But the disabled language won't be requested.
-    $this->assertText('Cannot request language Italian (it). That language is not enabled for Lingotek translation.');
+    $this->assertSession()->pageTextContains('Cannot request language Italian (it). That language is not enabled for Lingotek translation.');
   }
 
   /**
@@ -101,7 +101,7 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
    */
   protected function assertSelectionIsKept(string $key) {
     // No valid selection, so permission denied message.
-    $this->assertText('You are not authorized to access this page.');
+    $this->assertSession()->pageTextContains('You are not authorized to access this page.');
   }
 
   /**
@@ -118,16 +118,16 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
       $status_target = $this->xpath("//a[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
       // If not found, maybe it didn't have a link.
       if (count($status_target) === 1) {
-        $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+        $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
       }
       else {
         $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
         if (count($status_target) === 1) {
-          $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+          $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
         }
         else {
           $status_target = $this->xpath("//span[contains(@class,'language-icon')]");
-          $this->assertEqual(count($status_target), 0, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+          $this->assertEquals(count($status_target), 0, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
         }
       }
     }
@@ -135,11 +135,11 @@ class LingotekNodeBulkViewsTranslationTest extends LingotekNodeBulkTranslationTe
       $status_target = $this->xpath("//a[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
       // If not found, maybe it didn't have a link.
       if (count($status_target) === 1) {
-        $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+        $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
       }
       else {
         $status_target = $this->xpath("//span[contains(@class,'language-icon') and contains(@class,'source-" . strtolower($status) . "')  and contains(text(), '" . strtoupper($language) . "')]");
-        $this->assertEqual(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
+        $this->assertEquals(count($status_target), 1, 'The source ' . strtoupper($language) . ' has been marked with status ' . strtolower($status) . '.');
       }
     }
   }
diff --git a/tests/src/Functional/Views/LingotekNodeExistingBulkViewsTranslationTest.php b/tests/src/Functional/Views/LingotekNodeExistingBulkViewsTranslationTest.php
index c624c67c..8ff5499f 100644
--- a/tests/src/Functional/Views/LingotekNodeExistingBulkViewsTranslationTest.php
+++ b/tests/src/Functional/Views/LingotekNodeExistingBulkViewsTranslationTest.php
@@ -16,7 +16,7 @@ class LingotekNodeExistingBulkViewsTranslationTest extends LingotekNodeExistingB
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'node', 'views'];
+  protected static $modules = ['block', 'node', 'views'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/FunctionalJavascript/LingotekFunctionalJavascriptTestBase.php b/tests/src/FunctionalJavascript/LingotekFunctionalJavascriptTestBase.php
index 3db06bad..599a6f6b 100644
--- a/tests/src/FunctionalJavascript/LingotekFunctionalJavascriptTestBase.php
+++ b/tests/src/FunctionalJavascript/LingotekFunctionalJavascriptTestBase.php
@@ -17,12 +17,12 @@ abstract class LingotekFunctionalJavascriptTestBase extends WebDriverTestBase {
   /**
    * {@inheritdoc}
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'starterkit_theme';
 
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['lingotek', 'lingotek_test'];
+  protected static $modules = ['lingotek', 'lingotek_test'];
 
   /**
    * {@inheritdoc}
@@ -41,8 +41,8 @@ abstract class LingotekFunctionalJavascriptTestBase extends WebDriverTestBase {
   protected function connectToLingotek() {
     $this->drupalGet('admin/lingotek/setup/account');
     $this->clickLink('Connect Lingotek Account');
-    $this->drupalPostForm(NULL, ['community' => 'test_community'], 'Next');
-    $this->drupalPostForm(NULL, [
+    $this->submitForm(['community' => 'test_community'], 'Next');
+    $this->submitForm([
       'project' => 'test_project',
       'vault' => 'test_vault',
     ], 'Save configuration');
@@ -297,7 +297,7 @@ abstract class LingotekFunctionalJavascriptTestBase extends WebDriverTestBase {
         }
       }
     }
-    $this->drupalPostForm(NULL, [], 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm([], 'Save', 'lingoteksettings-tab-content-form');
   }
 
   /**
diff --git a/tests/src/FunctionalJavascript/LingotekNodeParagraphsTranslationTest.php b/tests/src/FunctionalJavascript/LingotekNodeParagraphsTranslationTest.php
index b446684a..d06279f8 100644
--- a/tests/src/FunctionalJavascript/LingotekNodeParagraphsTranslationTest.php
+++ b/tests/src/FunctionalJavascript/LingotekNodeParagraphsTranslationTest.php
@@ -19,7 +19,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['block', 'content_moderation', 'workflows', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
+  protected static $modules = ['block', 'content_moderation', 'workflows', 'node', 'image', 'comment', 'paragraphs', 'lingotek_paragraphs_test'];
 
   /**
    * {@inheritdoc}
@@ -100,20 +100,20 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool';
     $edit['moderation_state[0][state]'] = 'published';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -201,22 +201,22 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
     $edit['field_paragraphs_demo[2][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the third time';
     $edit['moderation_state[0][state]'] = 'published';
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     // Check that only the configured fields have been uploaded, including metatags.
     $data = json_decode(\Drupal::state()->get('lingotek.uploaded_content', '[]'), TRUE);
-    $this->assertEqual($data['title'][0]['value'], 'Llamas are cool');
-    $this->assertEqual($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
-    $this->assertEqual($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
-    $this->assertEqual($data['field_paragraphs_demo'][2]['field_text_demo'][0]['value'], 'Llamas are very cool for the third time');
+    $this->assertEquals($data['title'][0]['value'], 'Llamas are cool');
+    $this->assertEquals($data['field_paragraphs_demo'][0]['field_text_demo'][0]['value'], 'Llamas are very cool for the first time');
+    $this->assertEquals($data['field_paragraphs_demo'][1]['field_text_demo'][0]['value'], 'Llamas are very cool for the second time');
+    $this->assertEquals($data['field_paragraphs_demo'][2]['field_text_demo'][0]['value'], 'Llamas are very cool for the third time');
 
     // Check that the url used was the right one.
     $uploaded_url = \Drupal::state()->get('lingotek.uploaded_url');
-    $this->assertIdentical(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
+    $this->assertSame(\Drupal::request()->getUriForPath('/node/1'), $uploaded_url, 'The node url was used.');
 
     // Check that the profile used was the right one.
     $used_profile = \Drupal::state()->get('lingotek.used_profile');
-    $this->assertIdentical('automatic', $used_profile, 'The automatic profile was used.');
+    $this->assertSame('automatic', $used_profile, 'The automatic profile was used.');
 
     // Check that the translate tab is in the node.
     $this->drupalGet('node/1');
@@ -290,7 +290,7 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
     $edit['langcode[0][value]'] = 'en';
     $edit['field_paragraphs_demo[0][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the first time EDITED';
     $edit['field_paragraphs_demo[2][subform][field_text_demo][0][value]'] = 'Llamas are very cool for the third time EDITED';
-    $this->drupalPostForm(NULL, $edit, t('Save (this translation)'));
+    $this->submitForm($edit, t('Save (this translation)'));
 
     $assert_session->pageTextContains('Llamas are cool EDITED');
     $assert_session->pageTextContains('Llamas are very cool for the first time EDITED');
@@ -360,12 +360,12 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
     $this->drupalGet('node/1/edit');
     $assert_session->fieldValueEquals('field_paragraphs_demo[0][subform][field_text_demo][0][value]', 'Llamas are very cool');
 
-    $this->drupalPostForm(NULL, NULL, 'Remove');
+    $this->submitForm(NULL, 'Remove');
     $assert_session->waitForElementVisible('css', 'field_paragraphs_demo_0_confirm_remove', 1000);
-    $this->drupalPostForm(NULL, NULL, 'Confirm removal');
+    $this->submitForm(NULL, 'Confirm removal');
     $assert_session->waitForElementRemoved('css', 'field_paragraphs_demo_0_confirm_remove', 1000);
 
-    $this->drupalPostForm(NULL, NULL, 'Save (this translation)');
+    $this->submitForm(NULL, 'Save (this translation)');
     $assert_session->waitForElementVisible('css', $messages_locator);
     $assert_session->pageTextContains('Paragraphed article Llamas are cool has been updated.');
   }
@@ -374,7 +374,8 @@ class LingotekNodeParagraphsTranslationTest extends LingotekFunctionalJavascript
     $edit = [];
     $edit['settings[node][paragraphed_content_demo][fields][field_paragraphs_demo]'] = 1;
     $edit['settings[paragraph][image_text][fields][field_text_demo]'] = 1;
-    $this->drupalPostForm('/admin/config/regional/content-language', $edit, 'Save configuration');
+    $this->drupalGet('/admin/config/regional/content-language');
+    $this->submitForm($edit, 'Save configuration');
     $this->assertSession()->responseContains('Settings successfully updated.');
   }
 
diff --git a/tests/src/FunctionalJavascript/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php b/tests/src/FunctionalJavascript/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
index 41cf57f3..80788d48 100644
--- a/tests/src/FunctionalJavascript/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
+++ b/tests/src/FunctionalJavascript/LingotekNodeTranslatableParagraphsAsymmetricTranslationTest.php
@@ -15,7 +15,7 @@ class LingotekNodeTranslatableParagraphsAsymmetricTranslationTest extends Lingot
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['paragraphs_asymmetric_translation_widgets'];
+  protected static $modules = ['paragraphs_asymmetric_translation_widgets'];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/FunctionalJavascript/LingotekSettingsContentSingleFormTest.php b/tests/src/FunctionalJavascript/LingotekSettingsContentSingleFormTest.php
index 62308ed7..27565241 100644
--- a/tests/src/FunctionalJavascript/LingotekSettingsContentSingleFormTest.php
+++ b/tests/src/FunctionalJavascript/LingotekSettingsContentSingleFormTest.php
@@ -10,7 +10,7 @@ use Drupal\language\Entity\ContentLanguageSettings;
  */
 class LingotekSettingsContentSingleFormTest extends LingotekFunctionalJavascriptTestBase {
 
-  public static $modules = ['block', 'node', 'field_ui', 'image'];
+  protected static $modules = ['block', 'node', 'field_ui', 'image'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -59,39 +59,39 @@ class LingotekSettingsContentSingleFormTest extends LingotekFunctionalJavascript
 
     $page = $this->getSession()->getPage();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
-    $this->assertNoFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
-    $this->drupalPostForm(NULL, [], 'Save', [], 'lingoteksettings-content-single-form');
+    $this->submitForm([], 'Save', 'lingoteksettings-content-single-form');
 
     $this->assertSession()
       ->elementTextContains('css', '.messages.messages--status', 'The configuration options have been saved.');
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
   public function testWhenDisabledAndEnabledBackNodeArticleFieldsAreKept() {
@@ -112,36 +112,36 @@ class LingotekSettingsContentSingleFormTest extends LingotekFunctionalJavascript
 
     $page = $this->getSession()->getPage();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-uid');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-uid');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
     // We marked body and kept the others as they were.
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-uid');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-uid');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
   public function testFieldPropertiesDisabledIfFieldDisabled() {
@@ -149,21 +149,21 @@ class LingotekSettingsContentSingleFormTest extends LingotekFunctionalJavascript
 
     $page = $this->getSession()->getPage();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $imageCheckbox = $page->find('css', '#edit-node-article-fields-field-image');
     $imageCheckbox->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
 }
diff --git a/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormTest.php b/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormTest.php
index 5ffa19ea..ba9fad8e 100644
--- a/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormTest.php
+++ b/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormTest.php
@@ -10,7 +10,7 @@ use Drupal\language\Entity\ContentLanguageSettings;
  */
 class LingotekSettingsTabContentFormTest extends LingotekFunctionalJavascriptTestBase {
 
-  public static $modules = ['block', 'node', 'field_ui', 'image'];
+  protected static $modules = ['block', 'node', 'field_ui', 'image'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -64,42 +64,42 @@ class LingotekSettingsTabContentFormTest extends LingotekFunctionalJavascriptTes
     $nodeTabDetails = $page->find('css', '#edit-entity-node');
     $nodeTabDetails->click();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
-    $this->assertNoFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-text');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-text');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-text');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-text');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
-    $this->drupalPostForm(NULL, [], 'Save', [], 'lingoteksettings-tab-content-form');
+    $this->submitForm([], 'Save', 'lingoteksettings-tab-content-form');
 
     $this->assertSession()
       ->elementTextContains('css', '.messages.messages--status', 'The configuration options have been saved.');
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-field-text');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-text');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
   public function testWhenDisabledAndEnabledBackNodeArticleFieldsAreKept() {
@@ -124,38 +124,38 @@ class LingotekSettingsTabContentFormTest extends LingotekFunctionalJavascriptTes
     $nodeTabDetails = $page->find('css', '#edit-entity-node');
     $nodeTabDetails->click();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-uid');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-text');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-uid');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-text');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
 
     $fieldEnabled = $page->find('css', '#edit-node-article-enabled');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-enabled');
-    $this->assertFieldChecked('edit-node-article-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-title');
     // We marked body and field_text and kept the others as they were.
-    $this->assertFieldChecked('edit-node-article-fields-body');
-    $this->assertFieldChecked('edit-node-article-fields-uid');
-    $this->assertFieldChecked('edit-node-article-fields-field-text');
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-uid');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-text');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
   public function testFieldPropertiesDisabledIfFieldDisabled() {
@@ -167,21 +167,21 @@ class LingotekSettingsTabContentFormTest extends LingotekFunctionalJavascriptTes
     $nodeTabDetails = $page->find('css', '#edit-entity-node');
     $nodeTabDetails->click();
 
-    $this->assertNoFieldChecked('edit-node-article-enabled');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-title');
 
     $imageCheckbox = $page->find('css', '#edit-node-article-fields-field-image');
     $imageCheckbox->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('edit-node-article-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-fields-field-imageproperties-title');
   }
 
 }
diff --git a/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormWithLotsOfContentTest.php b/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormWithLotsOfContentTest.php
index 8c541c73..2c5899ce 100644
--- a/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormWithLotsOfContentTest.php
+++ b/tests/src/FunctionalJavascript/LingotekSettingsTabContentFormWithLotsOfContentTest.php
@@ -10,7 +10,7 @@ use Drupal\language\Entity\ContentLanguageSettings;
  */
 class LingotekSettingsTabContentFormWithLotsOfContentTest extends LingotekFunctionalJavascriptTestBase {
 
-  public static $modules = ['block', 'node', 'field_ui', 'image'];
+  protected static $modules = ['block', 'node', 'field_ui', 'image'];
 
   protected function setUp(): void {
     parent::setUp();
@@ -79,13 +79,13 @@ class LingotekSettingsTabContentFormWithLotsOfContentTest extends LingotekFuncti
     $nodeTabDetails = $page->find('css', '#edit-entity-node');
     $nodeTabDetails->click();
 
-    $this->assertNoFieldChecked('edit-node-article-readonly-enabled');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-title');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-body');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-field-imageproperties-file');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-field-imageproperties-alt');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-enabled');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-title');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-body');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-field-imageproperties-title');
 
     $this->assertSession()->fieldDisabled('edit-node-article-readonly-enabled');
     $this->assertSession()->fieldDisabled('edit-node-article-readonly-fields-title');
@@ -101,26 +101,26 @@ class LingotekSettingsTabContentFormWithLotsOfContentTest extends LingotekFuncti
     $this->assertSession()->assertWaitOnAjaxRequest();
     $this->assertSession()->waitForElementVisible('css', '#drupal-modal');
 
-    $this->assertNoFieldChecked('node[article][enabled]');
-    $this->assertNoFieldChecked('node[article][fields][title]');
-    $this->assertNoFieldChecked('node[article][fields][body]');
-    $this->assertNoFieldChecked('node[article][fields][field_image]');
-    $this->assertNoFieldChecked('node[article][fields][field_image:properties][file]');
-    $this->assertNoFieldChecked('node[article][fields][field_image:properties][alt]');
-    $this->assertNoFieldChecked('node[article][fields][field_image:properties][title]');
+    $this->assertSession()->checkboxNotChecked('node[article][enabled]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][title]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][body]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][field_image]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][field_image:properties][file]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][field_image:properties][alt]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][field_image:properties][title]');
 
     $fieldEnabled = $page->find('css', 'input[name="node[article][enabled]"]');
     $fieldEnabled->click();
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $this->assertFieldChecked('node[article][enabled]');
-    $this->assertFieldChecked('node[article][fields][title]');
-    $this->assertFieldChecked('node[article][fields][body]');
-    $this->assertFieldChecked('node[article][fields][field_image]');
-    $this->assertNoFieldChecked('node[article][fields][field_image:properties][file]');
-    $this->assertFieldChecked('node[article][fields][field_image:properties][alt]');
-    $this->assertFieldChecked('node[article][fields][field_image:properties][title]');
+    $this->assertSession()->checkboxChecked('node[article][enabled]');
+    $this->assertSession()->checkboxChecked('node[article][fields][title]');
+    $this->assertSession()->checkboxChecked('node[article][fields][body]');
+    $this->assertSession()->checkboxChecked('node[article][fields][field_image]');
+    $this->assertSession()->checkboxNotChecked('node[article][fields][field_image:properties][file]');
+    $this->assertSession()->checkboxChecked('node[article][fields][field_image:properties][alt]');
+    $this->assertSession()->checkboxChecked('node[article][fields][field_image:properties][title]');
 
     $button_pane_buttons = $this->getSession()->getPage()->findAll('css', '.ui-dialog-buttonpane button');
     $this->assertCount(1, $button_pane_buttons);
@@ -136,13 +136,13 @@ class LingotekSettingsTabContentFormWithLotsOfContentTest extends LingotekFuncti
     $nodeTabDetails = $page->find('css', '#edit-entity-node');
     $nodeTabDetails->click();
 
-    $this->assertFieldChecked('edit-node-article-readonly-enabled');
-    $this->assertFieldChecked('edit-node-article-readonly-fields-title');
-    $this->assertFieldChecked('edit-node-article-readonly-fields-body');
-    $this->assertFieldChecked('edit-node-article-readonly-fields-field-image');
-    $this->assertNoFieldChecked('edit-node-article-readonly-fields-field-imageproperties-file');
-    $this->assertFieldChecked('edit-node-article-readonly-fields-field-imageproperties-alt');
-    $this->assertFieldChecked('edit-node-article-readonly-fields-field-imageproperties-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-enabled');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-fields-title');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-fields-body');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-fields-field-image');
+    $this->assertSession()->checkboxNotChecked('edit-node-article-readonly-fields-field-imageproperties-file');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-fields-field-imageproperties-alt');
+    $this->assertSession()->checkboxChecked('edit-node-article-readonly-fields-field-imageproperties-title');
 
     $this->assertSession()->fieldDisabled('edit-node-article-readonly-enabled');
     $this->assertSession()->fieldDisabled('edit-node-article-readonly-fields-title');
diff --git a/tests/src/FunctionalJavascript/LingotekSourceActionsTest.php b/tests/src/FunctionalJavascript/LingotekSourceActionsTest.php
index 39fd8bb0..cec1e55c 100644
--- a/tests/src/FunctionalJavascript/LingotekSourceActionsTest.php
+++ b/tests/src/FunctionalJavascript/LingotekSourceActionsTest.php
@@ -14,7 +14,7 @@ class LingotekSourceActionsTest extends LingotekFunctionalJavascriptTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
+  protected static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
 
   /**
    * {@inheritdoc}
@@ -52,7 +52,7 @@ class LingotekSourceActionsTest extends LingotekFunctionalJavascriptTestBase {
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['body[0][value]'] = 'Llamas are very cool';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translationService = \Drupal::service('lingotek.content_translation');
diff --git a/tests/src/FunctionalJavascript/LingotekTargetActionsTest.php b/tests/src/FunctionalJavascript/LingotekTargetActionsTest.php
index a6aa33cc..8c49cc8b 100644
--- a/tests/src/FunctionalJavascript/LingotekTargetActionsTest.php
+++ b/tests/src/FunctionalJavascript/LingotekTargetActionsTest.php
@@ -14,7 +14,7 @@ class LingotekTargetActionsTest extends LingotekFunctionalJavascriptTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
+  protected static $modules = ['system', 'block', 'node', 'lingotek_form_test'];
 
   /**
    * {@inheritdoc}
@@ -56,7 +56,7 @@ class LingotekTargetActionsTest extends LingotekFunctionalJavascriptTestBase {
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['body[0][value]'] = 'Llamas are very cool';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translationService = \Drupal::service('lingotek.content_translation');
@@ -96,7 +96,7 @@ class LingotekTargetActionsTest extends LingotekFunctionalJavascriptTestBase {
     $edit['title[0][value]'] = 'Llamas are cool';
     $edit['langcode[0][value]'] = 'en';
     $edit['body[0][value]'] = 'Llamas are very cool';
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->submitForm($edit, t('Save'));
 
     /** @var \Drupal\lingotek\LingotekContentTranslationServiceInterface $translation_service */
     $translationService = \Drupal::service('lingotek.content_translation');
diff --git a/tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php b/tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php
index eef6264a..5a6391bd 100644
--- a/tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php
+++ b/tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php
@@ -26,35 +26,35 @@ class TranslationJobBreadcrumbBuilderTest extends UnitTestCase {
   /**
    * The request.
    *
-   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $request;
 
   /**
    * The request stack.
    *
-   * @var \Symfony\Component\HttpFoundation\RequestStack|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Symfony\Component\HttpFoundation\RequestStack|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $requestStack;
 
   /**
    * The access manager.
    *
-   * @var \Drupal\Core\Access\AccessManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Access\AccessManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $accessManager;
 
   /**
    * The title resolver.
    *
-   * @var \Drupal\Core\Controller\TitleResolverInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Controller\TitleResolverInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $titleResolver;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
@@ -71,9 +71,7 @@ class TranslationJobBreadcrumbBuilderTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $cache_contexts_manager = $this->getMockBuilder(CacheContextsManager::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $cache_contexts_manager = $this->createMock(CacheContextsManager::class);
     $cache_contexts_manager->method('assertValidTokens')->willReturn(TRUE);
     $container = new Container();
     $container->set('cache_contexts_manager', $cache_contexts_manager);
diff --git a/tests/src/Unit/Cli/LingotekCliServiceTest.php b/tests/src/Unit/Cli/LingotekCliServiceTest.php
index 134862a5..0b5d9935 100644
--- a/tests/src/Unit/Cli/LingotekCliServiceTest.php
+++ b/tests/src/Unit/Cli/LingotekCliServiceTest.php
@@ -23,35 +23,35 @@ class LingotekCliServiceTest extends UnitTestCase {
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeManager;
 
   /**
    * The Lingotek content translation service.
    *
-   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $translationService;
 
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
    * The output.
    *
-   * @var \Symfony\Component\Console\Output\OutputInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Symfony\Component\Console\Output\OutputInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $output;
 
   /**
    * The logger channel.
    *
-   * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $logger;
 
@@ -68,9 +68,7 @@ class LingotekCliServiceTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->entityTypeManager = $this->getMockBuilder(EntityTypeManager::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->entityTypeManager = $this->createMock(EntityTypeManager::class);
     $this->languageLocaleMapper = $this->createMock(LanguageLocaleMapperInterface::class);
     $this->translationService = $this->createMock(LingotekContentTranslationServiceInterface::class);
     $this->output = $this->createMock(OutputInterface::class);
@@ -376,12 +374,12 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testCheckTranslationsStatuses() {
-    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit_Framework_MockObject_MockObject $language */
+    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit\Framework\MockObject\MockObject $language */
     $language = $this->createMock(LanguageInterface::class);
     $language->expects($this->once())
       ->method('getId')
       ->willReturn('en');
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entity->expects($this->once())
       ->method('getUntranslated')
@@ -423,12 +421,12 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testCheckTranslationsStatusesAll() {
-    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit_Framework_MockObject_MockObject $language */
+    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit\Framework\MockObject\MockObject $language */
     $language = $this->createMock(LanguageInterface::class);
     $language->expects($this->once())
       ->method('getId')
       ->willReturn('en');
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entity->expects($this->once())
       ->method('getUntranslated')
@@ -470,12 +468,12 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testCheckTranslationsStatusesSome() {
-    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit_Framework_MockObject_MockObject $language */
+    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit\Framework\MockObject\MockObject $language */
     $language = $this->createMock(LanguageInterface::class);
     $language->expects($this->once())
       ->method('getId')
       ->willReturn('en');
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entity->expects($this->once())
       ->method('getUntranslated')
@@ -516,12 +514,12 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testCheckTranslationsStatusesUnexistingLanguage() {
-    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit_Framework_MockObject_MockObject $language */
+    /** @var \Drupal\Core\Language\LanguageInterface|\PHPUnit\Framework\MockObject\MockObject $language */
     $language = $this->createMock(LanguageInterface::class);
     $language->expects($this->once())
       ->method('getId')
       ->willReturn('en');
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entity->expects($this->once())
       ->method('getUntranslated')
@@ -589,7 +587,7 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testDownloadTranslationsAll() {
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entityStorage = $this->createMock(EntityStorageInterface::class);
     $entityStorage->expects($this->once())
@@ -612,7 +610,7 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testDownloadTranslationsSome() {
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entityStorage = $this->createMock(EntityStorageInterface::class);
     $entityStorage->expects($this->once())
@@ -646,7 +644,7 @@ class LingotekCliServiceTest extends UnitTestCase {
   }
 
   public function testDownloadTranslationsUnexistingLanguage() {
-    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit_Framework_MockObject_MockObject $entity */
+    /** @var \Drupal\Core\Entity\EntityInterface|\PHPUnit\Framework\MockObject\MockObject $entity */
     $entity = $this->createMock(ContentEntityInterface::class);
     $entityStorage = $this->createMock(EntityStorageInterface::class);
     $entityStorage->expects($this->once())
diff --git a/tests/src/Unit/Controller/LingotekDashboardControllerTest.php b/tests/src/Unit/Controller/LingotekDashboardControllerTest.php
index 32126954..0b5515bf 100644
--- a/tests/src/Unit/Controller/LingotekDashboardControllerTest.php
+++ b/tests/src/Unit/Controller/LingotekDashboardControllerTest.php
@@ -19,6 +19,7 @@ use Drupal\Core\Session\AccountInterface;
 use Psr\Log\LoggerInterface;
 use ReflectionClass;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\JsonResponse;
 
 /**
  * @coversDefaultClass \Drupal\lingotek\Controller\LingotekDashboardController
@@ -30,77 +31,77 @@ class LingotekDashboardControllerTest extends UnitTestCase {
   /**
    * The mocked request.
    *
-   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $request;
 
   /**
    * The config factory service.
    *
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeManager;
 
   /**
    * The language manager.
    *
-   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageManager;
 
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
    * The Lingotek configuration service.
    *
-   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekConfiguration;
 
   /**
    * The form builder.
    *
-   * @var \Drupal\Core\Form\FormBuilderInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Form\FormBuilderInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formBuilder;
 
   /**
    * The logger channel.
    *
-   * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $logger;
 
   /**
    * The mocked entity storage.
    *
-   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorage|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorage|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityStorage;
 
   /**
    * The url generator.
    *
-   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $urlGenerator;
 
diff --git a/tests/src/Unit/Controller/LingotekSupportedLocalesControllerTest.php b/tests/src/Unit/Controller/LingotekSupportedLocalesControllerTest.php
index 6b65103f..0a365593 100644
--- a/tests/src/Unit/Controller/LingotekSupportedLocalesControllerTest.php
+++ b/tests/src/Unit/Controller/LingotekSupportedLocalesControllerTest.php
@@ -25,77 +25,77 @@ class LingotekSupportedLocalesControllerTest extends UnitTestCase {
   /**
    * The mocked request.
    *
-   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Symfony\Component\HttpFoundation\Request|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $request;
 
   /**
    * The config factory service.
    *
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
   /**
    * The entity type manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeManager;
 
   /**
    * The language manager.
    *
-   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageManager;
 
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
    * The Lingotek configuration service.
    *
-   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekConfiguration;
 
   /**
    * The form builder.
    *
-   * @var \Drupal\Core\Form\FormBuilderInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Form\FormBuilderInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formBuilder;
 
   /**
    * The logger channel.
    *
-   * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $logger;
 
   /**
    * The mocked entity storage.
    *
-   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorage|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\Sql\SqlContentEntityStorage|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityStorage;
 
   /**
    * The url generator.
    *
-   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $urlGenerator;
 
diff --git a/tests/src/Unit/EventSubscriber/LingotekConfigSubscriberUnitTest.php b/tests/src/Unit/EventSubscriber/LingotekConfigSubscriberUnitTest.php
index 9842f005..59c3f8ba 100644
--- a/tests/src/Unit/EventSubscriber/LingotekConfigSubscriberUnitTest.php
+++ b/tests/src/Unit/EventSubscriber/LingotekConfigSubscriberUnitTest.php
@@ -25,56 +25,56 @@ namespace Drupal\Tests\lingotek\Unit\EventSubscriber {
     /**
      * The Lingotek content translation service.
      *
-     * @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\lingotek\LingotekConfigTranslationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $translationService;
 
     /**
      * The mapper manager.
      *
-     * @var \Drupal\config_translation\ConfigMapperManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\config_translation\ConfigMapperManagerInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $mapperManager;
 
     /**
      * A array of configuration mapper instances.
      *
-     * @var \Drupal\config_translation\ConfigMapperInterface[]|\PHPUnit_Framework_MockObject_MockObject[]
+     * @var \Drupal\config_translation\ConfigMapperInterface[]|\PHPUnit\Framework\MockObject\MockObject[]
      */
     protected $mappers;
 
     /**
      * A configuration mapper instance.
      *
-     * @var \Drupal\config_translation\ConfigMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\config_translation\ConfigMapperInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $mapper;
 
     /**
      * The Lingotek configuration service.
      *
-     * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $lingotekConfiguration;
 
     /**
      * Entity manager.
      *
-     * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $entityTypeManager;
 
     /**
      * The entity field manager.
      *
-     * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $entityFieldManager;
 
     /**
      * The entity type bundle info.
      *
-     * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $entityTypeBundleInfo;
 
diff --git a/tests/src/Unit/Form/LingotekJobManagementContentEntitiesFormTest.php b/tests/src/Unit/Form/LingotekJobManagementContentEntitiesFormTest.php
index 304cda2c..048b53ca 100644
--- a/tests/src/Unit/Form/LingotekJobManagementContentEntitiesFormTest.php
+++ b/tests/src/Unit/Form/LingotekJobManagementContentEntitiesFormTest.php
@@ -45,126 +45,126 @@ class LingotekJobManagementContentEntitiesFormTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
    * The entity manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeManager;
 
   /**
    * The entity field manager.
    *
-   * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityFieldManager;
 
   /**
    * The entity type bundle info.
    *
-   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeBundleInfo;
 
   /**
    * The language manager.
    *
-   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageManager;
 
   /**
    * The Lingotek configuration service.
    *
-   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekConfiguration;
 
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The content translation manager.
    *
-   * @var \Drupal\content_translation\ContentTranslationManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\content_translation\ContentTranslationManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $contentTranslationManager;
 
   /**
    * The Lingotek content translation service.
    *
-   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $contentTranslationService;
 
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The module handler.
    *
-   * @var \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $moduleHandler;
 
   /**
    * The state key value store.
    *
-   * @var \Drupal\Core\State\StateInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\State\StateInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $state;
 
   /**
    * The form component field manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFieldManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFieldManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentFieldManager;
 
   /**
    * The form component filter manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFilterManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFilterManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentFilterManager;
 
   /**
    * The form component bulk actions manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentActionsManager;
 
   /**
    * The form component bulk action options manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionOptionManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionOptionManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentActionOptionsManager;
 
   /**
    * Available form-bulk-actions executor.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionExecutor|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionExecutor|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formBulkActionExecutor;
 
@@ -174,9 +174,7 @@ class LingotekJobManagementContentEntitiesFormTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
     $this->entityTypeManager = $this->createMock(EntityTypeManagerInterface::class);
     $this->entityFieldManager = $this->createMock(EntityFieldManagerInterface::class);
     $this->entityTypeBundleInfo = $this->createMock(EntityTypeBundleInfoInterface::class);
@@ -186,9 +184,7 @@ class LingotekJobManagementContentEntitiesFormTest extends UnitTestCase {
     $this->languageLocaleMapper = $this->createMock(LanguageLocaleMapperInterface::class);
     $this->contentTranslationManager = $this->createMock(ContentTranslationManagerInterface::class);
     $this->contentTranslationService = $this->createMock(LingotekContentTranslationServiceInterface::class);
-    $this->tempStoreFactory = $this->getMockBuilder(PrivateTempStoreFactory::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->tempStoreFactory = $this->createMock(PrivateTempStoreFactory::class);
     $this->state = $this->createMock(StateInterface::class);
     $this->moduleHandler = $this->createMock(ModuleHandlerInterface::class);
     $this->formComponentFieldManager = $this->createMock(LingotekFormComponentFieldManager::class);
diff --git a/tests/src/Unit/Form/LingotekManagementFormTest.php b/tests/src/Unit/Form/LingotekManagementFormTest.php
index ac776242..312c54d7 100644
--- a/tests/src/Unit/Form/LingotekManagementFormTest.php
+++ b/tests/src/Unit/Form/LingotekManagementFormTest.php
@@ -50,126 +50,126 @@ class LingotekManagementFormTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
    * The entity manager.
    *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeManager;
 
   /**
    * The entity field manager.
    *
-   * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityFieldManager;
 
   /**
    * The entity type bundle info.
    *
-   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityTypeBundleInfo;
 
   /**
    * The language manager.
    *
-   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageManager;
 
   /**
    * The Lingotek configuration service.
    *
-   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekConfiguration;
 
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The content translation manager.
    *
-   * @var \Drupal\content_translation\ContentTranslationManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\content_translation\ContentTranslationManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $contentTranslationManager;
 
   /**
    * The Lingotek content translation service.
    *
-   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekContentTranslationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $contentTranslationService;
 
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The module handler.
    *
-   * @var \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $moduleHandler;
 
   /**
    * The state key value store.
    *
-   * @var \Drupal\Core\State\StateInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\State\StateInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $state;
 
   /**
    * The form component field manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFieldManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFieldManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentFieldManager;
 
   /**
    * The form component filter manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFilterManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentFilterManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentFilterManager;
 
   /**
    * The form component bulk actions manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentActionsManager;
 
   /**
    * The form component bulk action options manager.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionOptionManager|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionOptionManager|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formComponentActionOptionsManager;
 
   /**
    * Available form-bulk-actions executor.
    *
-   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionExecutor|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\FormComponent\LingotekFormComponentBulkActionExecutor|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $formBulkActionExecutor;
 
@@ -179,9 +179,7 @@ class LingotekManagementFormTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
     $this->entityTypeManager = $this->createMock(EntityTypeManagerInterface::class);
     $this->entityFieldManager = $this->createMock(EntityFieldManagerInterface::class);
     $this->entityTypeBundleInfo = $this->createMock(EntityTypeBundleInfoInterface::class);
@@ -191,9 +189,7 @@ class LingotekManagementFormTest extends UnitTestCase {
     $this->languageLocaleMapper = $this->createMock(LanguageLocaleMapperInterface::class);
     $this->contentTranslationManager = $this->createMock(ContentTranslationManagerInterface::class);
     $this->contentTranslationService = $this->createMock(LingotekContentTranslationServiceInterface::class);
-    $this->tempStoreFactory = $this->getMockBuilder(PrivateTempStoreFactory::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->tempStoreFactory = $this->createMock(PrivateTempStoreFactory::class);
     $this->state = $this->createMock(StateInterface::class);
     $this->moduleHandler = $this->createMock(ModuleHandlerInterface::class);
     $this->formComponentFieldManager = $this->createMock(LingotekFormComponentFieldManager::class);
@@ -353,7 +349,7 @@ class LingotekManagementFormTest extends UnitTestCase {
    * @covers ::formSubmit
    */
   public function testFormSubmitWithRedirect() {
-    /** @var \PHPUnit_Framework_MockObject_MockObject $plugin */
+    /** @var \PHPUnit\Framework\MockObject\MockObject $plugin */
     $plugin = $this->formComponentActionsManager->getApplicable([
       'form_id' => 'lingotek_management',
       'entity_type_id' => 'node',
@@ -407,7 +403,7 @@ class LingotekManagementFormTest extends UnitTestCase {
    * @covers ::formSubmit
    */
   public function testFormSubmitWithRedirectEntity() {
-    /** @var \PHPUnit_Framework_MockObject_MockObject $plugin */
+    /** @var \PHPUnit\Framework\MockObject\MockObject $plugin */
     $plugin = $this->formComponentActionsManager->getApplicable([
       'form_id' => 'lingotek_management',
       'entity_type_id' => 'node',
@@ -464,7 +460,7 @@ class LingotekManagementFormTest extends UnitTestCase {
    * @covers ::formSubmit
    */
   public function testFormSubmitWithEntitiesExecuteReturningFalseKeepsSelection() {
-    /** @var \PHPUnit_Framework_MockObject_MockObject $plugin */
+    /** @var \PHPUnit\Framework\MockObject\MockObject $plugin */
     $plugin = $this->formComponentActionsManager->getApplicable([
       'form_id' => 'lingotek_management',
       'entity_type_id' => 'node',
diff --git a/tests/src/Unit/Form/LingotekSettingsConnectFormTest.php b/tests/src/Unit/Form/LingotekSettingsConnectFormTest.php
index 9e4d0ec6..806ae883 100644
--- a/tests/src/Unit/Form/LingotekSettingsConnectFormTest.php
+++ b/tests/src/Unit/Form/LingotekSettingsConnectFormTest.php
@@ -22,35 +22,35 @@ class LingotekSettingsConnectFormTest extends UnitTestCase {
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The config factory.
    *
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
   /**
    * The Lingotek Filter manager.
    *
-   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekFilterManager;
 
   /**
    * The url generator.
    *
-   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $urlGenerator;
 
   /**
    * The link generator.
    *
-   * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $linkGenerator;
 
diff --git a/tests/src/Unit/Form/LingotekSettingsTabAccountFormTest.php b/tests/src/Unit/Form/LingotekSettingsTabAccountFormTest.php
index 61e8bf65..79922525 100644
--- a/tests/src/Unit/Form/LingotekSettingsTabAccountFormTest.php
+++ b/tests/src/Unit/Form/LingotekSettingsTabAccountFormTest.php
@@ -23,35 +23,35 @@ class LingotekSettingsTabAccountFormTest extends UnitTestCase {
   /**
    * The Lingotek service
    *
-   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotek;
 
   /**
    * The config factory.
    *
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
   /**
    * The Lingotek Filter manager.
    *
-   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekFilterManager;
 
   /**
    * The url generator.
    *
-   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $urlGenerator;
 
   /**
    * The link generator.
    *
-   * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $linkGenerator;
 
diff --git a/tests/src/Unit/Form/LingotekSettingsTabUtilitiesFormTest.php b/tests/src/Unit/Form/LingotekSettingsTabUtilitiesFormTest.php
index d78af0d1..636380f8 100644
--- a/tests/src/Unit/Form/LingotekSettingsTabUtilitiesFormTest.php
+++ b/tests/src/Unit/Form/LingotekSettingsTabUtilitiesFormTest.php
@@ -24,24 +24,24 @@ namespace Drupal\Tests\lingotek\Unit\Form {
     /**
      * The Lingotek service
      *
-     * @var \Drupal\lingotek\LingotekInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\lingotek\LingotekInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $lingotek;
 
     /**
      * The config factory.
      *
-     * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $configFactory;
 
     /**
-     * @var \Drupal\Core\State\StateInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\State\StateInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $state;
 
     /**
-     * @var \Drupal\Core\Routing\RouteBuilderInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Routing\RouteBuilderInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $routeBuilder;
 
@@ -53,14 +53,14 @@ namespace Drupal\Tests\lingotek\Unit\Form {
     /**
      * The url generator.
      *
-     * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $urlGenerator;
 
     /**
      * The link generator.
      *
-     * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Drupal\Core\Utility\LinkGeneratorInterface|\PHPUnit\Framework\MockObject\MockObject
      */
     protected $linkGenerator;
 
diff --git a/tests/src/Unit/FormComponent/LingotekFormComponentManagerBaseTest.php b/tests/src/Unit/FormComponent/LingotekFormComponentManagerBaseTest.php
index 0a590e77..b3a4eb88 100644
--- a/tests/src/Unit/FormComponent/LingotekFormComponentManagerBaseTest.php
+++ b/tests/src/Unit/FormComponent/LingotekFormComponentManagerBaseTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\lingotek\Unit\FormComponent;
 
+use Prophecy\PhpUnit\ProphecyTrait;
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Extension\ModuleHandlerInterface;
@@ -20,6 +21,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  */
 class LingotekFormComponentManagerBaseTest extends UnitTestCase {
 
+  use ProphecyTrait;
   /**
    * The form component manager under test.
    *
diff --git a/tests/src/Unit/LingotekFilterManagerUnitTest.php b/tests/src/Unit/LingotekFilterManagerUnitTest.php
index a28819ff..a902c111 100644
--- a/tests/src/Unit/LingotekFilterManagerUnitTest.php
+++ b/tests/src/Unit/LingotekFilterManagerUnitTest.php
@@ -32,7 +32,7 @@ class LingotekFilterManagerUnitTest extends UnitTestCase {
   /**
    * The config object.
    *
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $config;
 
@@ -40,12 +40,8 @@ class LingotekFilterManagerUnitTest extends UnitTestCase {
    * {@inheritdoc}
    */
   protected function setUp(): void {
-    $this->accountConfig = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $this->config = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->accountConfig = $this->createMock(Config::class);
+    $this->config = $this->createMock(Config::class);
     $configFactory = $this->createMock(ConfigFactoryInterface::class);
     $configFactory->expects($this->any())
       ->method('get')
@@ -68,7 +64,7 @@ class LingotekFilterManagerUnitTest extends UnitTestCase {
 
     $filters = $this->filterManager->getLocallyAvailableFilters();
     $this->assertNotEmpty($filters);
-    $this->assertArrayEquals($filters, ['project_default' => 'Project Default', 'drupal_default' => 'Drupal Default']);
+    $this->assertEquals($filters, ['project_default' => 'Project Default', 'drupal_default' => 'Drupal Default']);
 
     // Test with some filters.
     $this->accountConfig->expects($this->at(0))
diff --git a/tests/src/Unit/LingotekQueueWorkerTest.php b/tests/src/Unit/LingotekQueueWorkerTest.php
index e052ceb7..b459b70e 100644
--- a/tests/src/Unit/LingotekQueueWorkerTest.php
+++ b/tests/src/Unit/LingotekQueueWorkerTest.php
@@ -30,10 +30,8 @@ class LingotekQueueWorkerTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
     $this->lingotekDownloaderQueueWorker = new LingotekDownloaderQueueWorker([], 'lingotek_downloader_queue_worker', []);
-    $entity_type_manager = $this->getMockBuilder(EntityTypeManager::class)->disableOriginalConstructor()
-      ->getMock();
-    $node_storage = $this->getMockBuilder(NodeStorage::class)->disableOriginalConstructor()
-      ->getMock();
+    $entity_type_manager = $this->createMock(EntityTypeManager::class);
+    $node_storage = $this->createMock(NodeStorage::class);
     $node_storage->expects($this->any())
       ->method('load')
       ->with('random')
@@ -42,11 +40,10 @@ class LingotekQueueWorkerTest extends UnitTestCase {
       ->method('getStorage')
       ->with('random')
       ->willReturn($node_storage);
-    $logger_factory = $this->getMockBuilder(LoggerChannelFactory::class)->disableOriginalConstructor()
-      ->getMock();
+    $logger_factory = $this->createMock(LoggerChannelFactory::class);
     $logger_factory->expects($this->any())
       ->method('get')
-      ->willReturn($this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock());
+      ->willReturn($this->createMock(LoggerInterface::class));
     $container = new ContainerBuilder();
     $container->set('entity_type.manager', $entity_type_manager);
     $container->set('logger.factory', $logger_factory);
diff --git a/tests/src/Unit/LingotekUnitTest.php b/tests/src/Unit/LingotekUnitTest.php
index 6fd810c4..2a8c3bf1 100644
--- a/tests/src/Unit/LingotekUnitTest.php
+++ b/tests/src/Unit/LingotekUnitTest.php
@@ -37,46 +37,46 @@ class LingotekUnitTest extends UnitTestCase {
   /**
    * The language-locale mapper.
    *
-   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LanguageLocaleMapperInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $languageLocaleMapper;
 
   /**
-   * @var \Drupal\lingotek\Remote\LingotekHttpInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\Remote\LingotekHttpInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $api;
 
   /**
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $config;
 
   /**
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $accountConfig;
 
   /**
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configEditable;
 
   /**
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
   /**
    * The Lingotek Filter manager.
    *
-   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekFilterManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekFilterManager;
 
   /**
    * The Lingotek configuration service.
    *
-   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\lingotek\LingotekConfigurationServiceInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $lingotekConfiguration;
 
@@ -86,15 +86,9 @@ class LingotekUnitTest extends UnitTestCase {
   protected function setUp(): void {
     $this->api = $this->createMock(LingotekApiInterface::class);
     $this->languageLocaleMapper = $this->createMock(LanguageLocaleMapperInterface::class);
-    $this->config = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $this->accountConfig = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $this->configEditable = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->config = $this->createMock(Config::class);
+    $this->accountConfig = $this->createMock(Config::class);
+    $this->configEditable = $this->createMock(Config::class);
 
     $this->lingotekFilterManager = $this->createMock(LingotekFilterManagerInterface::class);
     $this->configFactory = $this->createMock(ConfigFactoryInterface::class);
@@ -127,7 +121,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('getVaults');
 
     $vaults = $this->lingotek->getVaults(FALSE);
-    $this->assertArrayEquals($vaults, ['a_vault' => 'A vault']);
+    $this->assertEquals($vaults, ['a_vault' => 'A vault']);
   }
 
   /**
@@ -172,7 +166,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $vaults = $this->lingotek->getVaults(FALSE);
-    $this->assertArrayEquals($vaults, ['a_vault' => 'A vault']);
+    $this->assertEquals($vaults, ['a_vault' => 'A vault']);
   }
 
   /**
@@ -218,7 +212,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $vaults = $this->lingotek->getVaults(TRUE);
-    $this->assertArrayEquals($vaults, ['a_vault' => 'A vault']);
+    $this->assertEquals($vaults, ['a_vault' => 'A vault']);
   }
 
   /**
@@ -277,7 +271,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $filters = $this->lingotek->getFilters(FALSE);
-    $this->assertArrayEquals($filters, ['a_filter' => 'A filter']);
+    $this->assertEquals($filters, ['a_filter' => 'A filter']);
   }
 
   /**
@@ -323,7 +317,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $filters = $this->lingotek->getFilters(TRUE);
-    $this->assertArrayEquals($filters, ['a_filter' => 'A filter']);
+    $this->assertEquals($filters, ['a_filter' => 'A filter']);
   }
 
   /**
@@ -338,7 +332,7 @@ class LingotekUnitTest extends UnitTestCase {
     $this->api->expects($this->never())
       ->method('getProjects');
     $projects = $this->lingotek->getProjects(FALSE);
-    $this->assertArrayEquals($projects, ['a_project' => 'A project']);
+    $this->assertEquals($projects, ['a_project' => 'A project']);
   }
 
   /**
@@ -383,7 +377,7 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $projects = $this->lingotek->getProjects(FALSE);
-    $this->assertArrayEquals($projects, ['a_project' => 'A project']);
+    $this->assertEquals($projects, ['a_project' => 'A project']);
   }
 
   /**
@@ -429,16 +423,14 @@ class LingotekUnitTest extends UnitTestCase {
       ->method('save');
 
     $projects = $this->lingotek->getProjects(TRUE);
-    $this->assertArrayEquals($projects, ['a_project' => 'A project']);
+    $this->assertEquals($projects, ['a_project' => 'A project']);
   }
 
   /**
    * @covers ::uploadDocument
    */
   public function testUploadDocument() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_ACCEPTED);
@@ -767,9 +759,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocumentBC() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_ACCEPTED);
@@ -994,9 +984,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::addTarget
    */
   public function testAddTarget() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_CREATED);
@@ -1089,9 +1077,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::addTarget
    */
   public function testAddTargetPaymentRequired() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_PAYMENT_REQUIRED);
@@ -1131,9 +1117,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::addTarget
    */
   public function testAddTargetGone() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_GONE);
@@ -1171,9 +1155,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::addTarget
    */
   public function testAddTargetLocked() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_LOCKED);
@@ -1212,9 +1194,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::addTarget
    */
   public function testAddTargetProcessedWordsLimit() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_TOO_MANY_REQUESTS);
@@ -1255,9 +1235,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::cancelDocument
    */
   public function testCancelDocument() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->at(0))
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_NO_CONTENT);
@@ -1308,9 +1286,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::cancelDocumentTarget
    */
   public function testCancelDocumentTarget() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->at(0))
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_NO_CONTENT);
@@ -1355,9 +1331,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::getDocumentTranslationStatus
    */
   public function testGetDocumentTranslationStatus() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_OK);
@@ -1419,9 +1393,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::getDocumentTranslationStatus
    */
   public function testGetDocumentTranslationStatusWithStrings() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_OK);
@@ -1483,9 +1455,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::getDocumentTranslationStatus
    */
   public function testGetDocumentTranslationStatusCancelled() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_OK);
@@ -1547,9 +1517,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::uploadDocument
    */
   public function testUploadWithNoMetadataLeaked() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_ACCEPTED);
@@ -1590,9 +1558,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateWithNoMetadataLeaked() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_ACCEPTED);
@@ -1637,9 +1603,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocument() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -1690,9 +1654,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocumentManualProfile() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_ACCEPTED);
@@ -1762,9 +1724,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocumentPaymentRequired() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -1814,9 +1774,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocumentGone() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -1866,9 +1824,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::updateDocument
    */
   public function testUpdateDocumentLocked() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -1919,9 +1875,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers::updateDocument
    */
   public function testUpdateDocumentProcessedWordsLimit() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -1972,9 +1926,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::uploadDocument
    */
   public function testUploadDocumentPaymentRequired() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
       ->willReturn('4f91482b-5aa1-4a4a-a43f-712af7b39625');
@@ -2026,9 +1978,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::uploadDocument
    */
   public function testUploadDocumentProcessedWordsLimit() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
 
     $this->lingotekFilterManager->expects($this->any())
       ->method('getFilterId')
@@ -2082,9 +2032,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::downloadDocument
    */
   public function testDownloadDocument() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_OK);
@@ -2125,9 +2073,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @covers ::downloadDocument
    */
   public function testDownloadDocumentGone() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_GONE);
@@ -2168,9 +2114,7 @@ class LingotekUnitTest extends UnitTestCase {
    * @dataProvider dataProviderGetProcessStatus
    */
   public function testGetProcessStatus($httpCode, $status, $progress, $expected) {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn($httpCode);
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignJobIdTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignJobIdTest.php
index 0dc3441a..32c5dab0 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignJobIdTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignJobIdTest.php
@@ -47,6 +47,13 @@ class AssignJobIdTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
@@ -71,14 +78,14 @@ class AssignJobIdTest extends UnitTestCase {
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignProfileTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignProfileTest.php
index dbef59cc..2bc0631c 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignProfileTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/AssignProfileTest.php
@@ -46,6 +46,13 @@ class AssignProfileTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTest.php
index 59468565..d10e1cf6 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTest.php
@@ -47,6 +47,13 @@ class CancelTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTranslationTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTranslationTest.php
index e437a970..3e9cc524 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTranslationTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CancelTranslationTest.php
@@ -49,6 +49,13 @@ class CancelTranslationTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationTest.php
index 9e634305..be546a21 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationTest.php
@@ -47,6 +47,13 @@ class CheckTranslationTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationsTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationsTest.php
index c2af6bac..393062d0 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationsTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckTranslationsTest.php
@@ -47,6 +47,13 @@ class CheckTranslationsTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckUploadTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckUploadTest.php
index 149df23c..ae6c3032 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckUploadTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/CheckUploadTest.php
@@ -47,6 +47,13 @@ class CheckUploadTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/ClearJobIdTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/ClearJobIdTest.php
index 6e8270de..4048f9e3 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/ClearJobIdTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/ClearJobIdTest.php
@@ -47,6 +47,13 @@ class ClearJobIdTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
@@ -71,14 +78,14 @@ class ClearJobIdTest extends UnitTestCase {
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteContentTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteContentTest.php
index 14aedafe..53532c2a 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteContentTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteContentTest.php
@@ -48,6 +48,13 @@ class DeleteContentTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
@@ -72,14 +79,14 @@ class DeleteContentTest extends UnitTestCase {
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationTest.php
index 5afaa016..ce9ba978 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationTest.php
@@ -65,14 +65,14 @@ class DeleteTranslationTest extends UnitTestCase {
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationsTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationsTest.php
index a992b4fa..16fde4be 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationsTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DeleteTranslationsTest.php
@@ -80,14 +80,14 @@ class DeleteTranslationsTest extends UnitTestCase {
   /**
    * The tempstore factory.
    *
-   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $tempStoreFactory;
 
   /**
    * The user currently logged in.
    *
-   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $currentUser;
 
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationTest.php
index 25a15f69..c22e3786 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationTest.php
@@ -65,6 +65,13 @@ class DownloadTranslationTest extends UnitTestCase {
    */
   protected $languageLocaleMapper;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek content translation service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationsTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationsTest.php
index b4a40050..d1b4f7ee 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationsTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/DownloadTranslationsTest.php
@@ -50,6 +50,13 @@ class DownloadTranslationsTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationTest.php
index 70a02041..1c689609 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationTest.php
@@ -59,6 +59,13 @@ class RequestTranslationTest extends UnitTestCase {
    */
   protected $languageLocaleMapper;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationsTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationsTest.php
index 6ed77eee..d4b3241c 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationsTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/BulkAction/RequestTranslationsTest.php
@@ -51,6 +51,13 @@ class RequestTranslationsTest extends UnitTestCase {
    */
   protected $entityTypeBundleInfo;
 
+  /**
+   * The mocked language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $languageManager;
+
   /**
    * The mocked Lingotek configuration service.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Field/TitleTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Field/TitleTest.php
index c48bd552..8c387239 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Field/TitleTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Field/TitleTest.php
@@ -42,6 +42,13 @@ class TitleTest extends UnitTestCase {
    */
   protected $languageManager;
 
+  /**
+   * The mocked entity field manager
+   *
+   * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityFieldManager;
+
   /**
    * The mocked entity type.
    *
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/BundleTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/BundleTest.php
index dcc6bac2..69db4060 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/BundleTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/BundleTest.php
@@ -34,7 +34,7 @@ class BundleTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -86,9 +86,7 @@ class BundleTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -209,7 +207,7 @@ class BundleTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     // Assert that condition is called filtering by the undefined language.
     $select->expects($this->never())
       ->method('condition')
@@ -236,8 +234,8 @@ class BundleTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
     // Assert that condition is called filtering by the undefined language.
     $select->expects($this->any())
       ->method('condition')
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DefaultQueryTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DefaultQueryTest.php
index 86f5dc2c..f4bb37a8 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DefaultQueryTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DefaultQueryTest.php
@@ -34,7 +34,7 @@ class DefaultQueryTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -86,9 +86,7 @@ class DefaultQueryTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -142,7 +140,7 @@ class DefaultQueryTest extends UnitTestCase {
    * @covers ::filter
    */
   public function testFilter() {
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects(($this->any()))
       ->method('extend')
       ->with('\Drupal\Core\Database\Query\PagerSelectExtender')
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DocumentIdTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DocumentIdTest.php
index 2cc85065..7800d2db 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DocumentIdTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/DocumentIdTest.php
@@ -33,7 +33,7 @@ class DocumentIdTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class DocumentIdTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -169,9 +167,9 @@ class DocumentIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
@@ -222,9 +220,9 @@ class DocumentIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/EntityIdTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/EntityIdTest.php
index 4ea50b9a..53bc0416 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/EntityIdTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/EntityIdTest.php
@@ -33,7 +33,7 @@ class EntityIdTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class EntityIdTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -164,9 +162,9 @@ class EntityIdTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('entity_data_table', 'entity_data', "entity_table.entity_id= entity_data.entity_id")
@@ -212,9 +210,9 @@ class EntityIdTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('entity_data_table', 'entity_data', "entity_table.entity_id= entity_data.entity_id")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/GnodeGroupTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/GnodeGroupTest.php
index 9af33a54..43ae067c 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/GnodeGroupTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/GnodeGroupTest.php
@@ -40,7 +40,7 @@ class GnodeGroupTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -106,9 +106,7 @@ class GnodeGroupTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -264,9 +262,9 @@ class GnodeGroupTest extends UnitTestCase {
       ],
     ]);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->at(0))
       ->method('innerJoin')
       ->with('group_content_field_data', 'group_content', "entity_table.entity_id= group_content.entity_id")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/JobIdTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/JobIdTest.php
index ff4ddef6..e09dc606 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/JobIdTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/JobIdTest.php
@@ -33,7 +33,7 @@ class JobIdTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class JobIdTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -169,9 +167,9 @@ class JobIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
@@ -222,9 +220,9 @@ class JobIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
@@ -275,9 +273,9 @@ class JobIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
@@ -328,9 +326,9 @@ class JobIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
@@ -381,9 +379,9 @@ class JobIdTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ModerationStateTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ModerationStateTest.php
index 2346ce06..f3915b49 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ModerationStateTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ModerationStateTest.php
@@ -40,7 +40,7 @@ class ModerationStateTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -106,9 +106,7 @@ class ModerationStateTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -243,9 +241,9 @@ class ModerationStateTest extends UnitTestCase {
       ->with('content_moderation_state')
       ->willReturn($content_moderation_type);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('content_moderation_state_field_data', 'content_moderation_data', "entity_table.entity_id= content_moderation_data.content_entity_id")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ProfileTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ProfileTest.php
index fc30f4f5..42ff08ba 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ProfileTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/ProfileTest.php
@@ -33,7 +33,7 @@ class ProfileTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class ProfileTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -179,9 +177,9 @@ class ProfileTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('metadata_content', 'metadata', "entity_table.entity_id= metadata.content_entity_id AND metadata.content_entity_type_id = 'my_entity_type'")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceLanguageTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceLanguageTest.php
index f7d09a05..b99b12a7 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceLanguageTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceLanguageTest.php
@@ -34,7 +34,7 @@ class SourceLanguageTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -86,9 +86,7 @@ class SourceLanguageTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -188,9 +186,9 @@ class SourceLanguageTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->at(0))
       ->method('innerJoin')
       ->with('entity_data_table', 'entity_data', "entity_table.entity_id= entity_data.entity_id")
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceStatusTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceStatusTest.php
index cbd7cf6a..561ec0d2 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceStatusTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/SourceStatusTest.php
@@ -33,7 +33,7 @@ class SourceStatusTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class SourceStatusTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -176,7 +174,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->at(0))
       ->method('innerJoin')
       ->with('metadata_content', 'metadata_source', "entity_table.entity_id= metadata_source.content_entity_id AND metadata_source.content_entity_type_id = 'my_entity_type_id'")
@@ -225,7 +223,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->at(0))
       ->method('innerJoin')
       ->with('metadata_content', 'metadata_source', "entity_table.entity_id= metadata_source.content_entity_id AND metadata_source.content_entity_type_id = 'my_entity_type_id'")
@@ -239,7 +237,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with('translation_status.translation_status_value', ['EDITED', 'REQUEST', 'CANCELLED', 'ERROR'], 'IN')
       ->willReturnSelf();
 
-    $no_metadata_query = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $no_metadata_query = $this->createMock(PagerSelectExtender::class);
     $this->connection->expects($this->at(0))
       ->method('select')
       ->with('metadata_content', 'mt')
@@ -253,7 +251,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with('entity_table.entity_id = mt.content_entity_id')
       ->willReturnSelf();
 
-    $union1 = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $union1 = $this->createMock(PagerSelectExtender::class);
     $this->connection->expects($this->at(1))
       ->method('select')
       ->with('entity_datatable', 'entity_table')
@@ -271,7 +269,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with($no_metadata_query)
       ->willReturnSelf();
 
-    $no_statuses_query = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $no_statuses_query = $this->createMock(PagerSelectExtender::class);
     $this->connection->expects($this->at(2))
       ->method('select')
       ->with('lingotek_content_metadata__translation_status', 'tst')
@@ -285,7 +283,7 @@ class SourceStatusTest extends UnitTestCase {
       ->with('mt2.metadata_id = tst.entity_id')
       ->willReturnSelf();
 
-    $union2 = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $union2 = $this->createMock(PagerSelectExtender::class);
     $this->connection->expects($this->at(3))
       ->method('select')
       ->with('entity_datatable', 'entity_table')
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TargetStatusTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TargetStatusTest.php
index b9abd7d3..51dab70c 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TargetStatusTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TargetStatusTest.php
@@ -33,7 +33,7 @@ class TargetStatusTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -85,9 +85,7 @@ class TargetStatusTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -181,7 +179,7 @@ class TargetStatusTest extends UnitTestCase {
       ->with('lingotek_content_metadata')
       ->willReturn($metadata);
 
-    $subquery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $subquery = $this->createMock(PagerSelectExtender::class);
     $this->connection->expects($this->once())
       ->method('select')
       ->with('entity_datatable', 'entity_table')
@@ -207,9 +205,9 @@ class TargetStatusTest extends UnitTestCase {
       ->with('translation_target_status.translation_status_value', ['CURRENT'], '=')
       ->willReturnSelf();
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('condition')
       ->with('entity_table.entity_id', $subquery, 'IN')
diff --git a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TitleTest.php b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TitleTest.php
index fa4f8fbd..65b5d21e 100644
--- a/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TitleTest.php
+++ b/tests/src/Unit/Plugin/LingotekFormComponent/Filter/TitleTest.php
@@ -36,7 +36,7 @@ class TitleTest extends UnitTestCase {
   /**
    * The connection object on which to run queries.
    *
-   * @var \Drupal\Core\Database\Connection|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Database\Connection|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $connection;
 
@@ -95,9 +95,7 @@ class TitleTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->connection = $this->getMockBuilder(Connection::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->connection = $this->createMock(Connection::class);
 
     $this->entityType = $this->createMock(ContentEntityTypeInterface::class);
     $this->entityType->expects($this->any())
@@ -217,9 +215,9 @@ class TitleTest extends UnitTestCase {
       ->with('my_entity_type_id')
       ->willReturn($entity_type);
 
-    $unionQuery = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $unionQuery = $this->createMock(PagerSelectExtender::class);
 
-    $select = $this->getMockBuilder(PagerSelectExtender::class)->disableOriginalConstructor()->getMock();
+    $select = $this->createMock(PagerSelectExtender::class);
     $select->expects($this->once())
       ->method('innerJoin')
       ->with('entity_data_table', 'entity_data', "entity_table.entity_id= entity_data.entity_id")
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/EntityEmbedDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/EntityEmbedDetectorTest.php
index b6f3d84d..083cbb1c 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/EntityEmbedDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/EntityEmbedDetectorTest.php
@@ -57,7 +57,7 @@ class EntityEmbedDetectorTest extends UnitTestCase {
   protected $lingotekConfiguration;
 
   /**
-   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityType;
 
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/FieldLinkDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/FieldLinkDetectorTest.php
index 2954855d..9156c4b1 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/FieldLinkDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/FieldLinkDetectorTest.php
@@ -60,6 +60,13 @@ class FieldLinkDetectorTest extends UnitTestCase {
    */
   protected $lingotekConfiguration;
 
+  /**
+   * The entityType MockOject.
+   *
+   * @var \Drupal\Core\Entity\EntityType|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityType;
+
   /**
    * {@inheritdoc}
    */
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/LinkItDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/LinkItDetectorTest.php
index 1a96df1f..0cf4cce3 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/LinkItDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/LinkItDetectorTest.php
@@ -57,7 +57,7 @@ class LinkItDetectorTest extends UnitTestCase {
   protected $lingotekConfiguration;
 
   /**
-   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityType;
 
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedCohesionEntityReferenceRevisionsDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedCohesionEntityReferenceRevisionsDetectorTest.php
index 62dc6b7d..c59bd780 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedCohesionEntityReferenceRevisionsDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedCohesionEntityReferenceRevisionsDetectorTest.php
@@ -59,6 +59,13 @@ class NestedCohesionEntityReferenceRevisionsDetectorTest extends UnitTestCase {
    */
   protected $lingotekConfiguration;
 
+  /**
+   * The mocked entity type.
+   *
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityType;
+
   /**
    * {@inheritdoc}
    */
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferenceRevisionsDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferenceRevisionsDetectorTest.php
index 8cb4f652..076dab40 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferenceRevisionsDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferenceRevisionsDetectorTest.php
@@ -60,6 +60,13 @@ class NestedEntityReferenceRevisionsDetectorTest extends UnitTestCase {
    */
   protected $lingotekConfiguration;
 
+  /**
+   * The mocked entity type.
+   *
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityType;
+
   /**
    * {@inheritdoc}
    */
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferencesDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferencesDetectorTest.php
index 203b3ce2..49834671 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferencesDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedEntityReferencesDetectorTest.php
@@ -60,6 +60,13 @@ class NestedEntityReferencesDetectorTest extends UnitTestCase {
    */
   protected $lingotekConfiguration;
 
+  /**
+   * The mocked entity type.
+   *
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityType;
+
   /**
    * {@inheritdoc}
    */
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedErViewmodeEntitiesDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedErViewmodeEntitiesDetectorTest.php
index 0989ee9d..472b5bca 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedErViewmodeEntitiesDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedErViewmodeEntitiesDetectorTest.php
@@ -47,19 +47,26 @@ class NestedErViewmodeEntitiesDetectorTest extends UnitTestCase {
   protected $entityTypeManager;
 
   /**
-   * The mocked entity field manager
+   * The mocked entity field manager.
    *
    * @var \Drupal\Core\Entity\EntityFieldManagerInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $entityFieldManager;
 
   /**
-   * The lingotek configuartion service.
+   * The lingotek configuration service.
    *
    * @var \Drupal\lingotek\LingotekConfigurationServiceInterface
    */
   protected $lingotekConfiguration;
 
+  /**
+   * The mocked entity type.
+   *
+   * @var \Drupal\Core\Entity\ContentEntityTypeInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $entityType;
+
   /**
    * {@inheritdoc}
    */
diff --git a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedLayoutBuilderEntitiesDetectorTest.php b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedLayoutBuilderEntitiesDetectorTest.php
index 02bac70d..f4e6e49d 100644
--- a/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedLayoutBuilderEntitiesDetectorTest.php
+++ b/tests/src/Unit/Plugin/RelatedEntitiesDetector/NestedLayoutBuilderEntitiesDetectorTest.php
@@ -99,7 +99,7 @@ class NestedLayoutBuilderEntitiesDetectorTest extends UnitTestCase {
       ->method('getLabel')
       ->willReturn('Entity');
 
-    $blockManager = $this->getMockBuilder(BlockManager::class)->disableOriginalConstructor()->getMock();
+    $blockManager = $this->createMock(BlockManager::class);
     $blockManager->expects($this->any())
       ->method('getDefinition')
       ->with('inline_block')
diff --git a/tests/src/Unit/Remote/LingotekApiUnitTest.php b/tests/src/Unit/Remote/LingotekApiUnitTest.php
index b467c713..b326e78c 100644
--- a/tests/src/Unit/Remote/LingotekApiUnitTest.php
+++ b/tests/src/Unit/Remote/LingotekApiUnitTest.php
@@ -33,10 +33,8 @@ class LingotekApiUnitTest extends UnitTestCase {
    * {@inheritdoc}
    */
   protected function setUp(): void {
-    $this->client = $this->getMockBuilder(LingotekHttpInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
+    $this->client = $this->createMock(LingotekHttpInterface::class);
+    $logger = $this->createMock(LoggerInterface::class);
 
     $this->lingotek_api = new LingotekApi($this->client, $logger);
   }
@@ -46,9 +44,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    */
   public function testAddTranslation() {
     // Ensure that the workflow is set when it's need to be.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->at(0))
       ->method('post')
       ->with('/api/document/fancy-document-id/translation', ['locale_code' => 'es_ES', 'workflow_id' => 'my_workflow'])
@@ -74,12 +70,8 @@ class LingotekApiUnitTest extends UnitTestCase {
    */
   public function testAddTranslationWithException() {
     // Ensure that the workflow is set when it's need to be.
-    $request = $this->getMockBuilder(RequestInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $request = $this->createMock(RequestInterface::class);
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_BAD_REQUEST);
@@ -104,9 +96,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    * @covers ::cancelDocument
    */
   public function testCancelDocument() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_NO_CONTENT);
@@ -172,9 +162,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    * @covers ::cancelDocumentTarget
    */
   public function testCancelDocumentTarget() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $response->expects($this->any())
       ->method('getStatusCode')
       ->willReturn(Response::HTTP_NO_CONTENT);
@@ -247,9 +235,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    */
   public function testGetCommunities() {
     // Ensure that the limit is set.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->once())
       ->method('get')
       ->with('/api/community', ['limit' => 100])
@@ -263,9 +249,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    */
   public function testGetProjects() {
     // Ensure that the limit and the community_id are set.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->once())
       ->method('get')
       ->with('/api/project', ['community_id' => 'my_community_id', 'limit' => 1000])
@@ -279,9 +263,7 @@ class LingotekApiUnitTest extends UnitTestCase {
    */
   public function testGetVaults() {
     // Ensure that the limit is set and the community_id is ignored.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->once())
       ->method('get')
       ->with('/api/vault', ['limit' => 100, 'is_owned' => 'TRUE'])
@@ -296,9 +278,7 @@ class LingotekApiUnitTest extends UnitTestCase {
   public function testGetWorkflows() {
     $community_id = 'my_community_id';
     // Ensure that the limit is set.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->once())
       ->method('get')
       ->with('/api/workflow', ['community_id' => $community_id, 'limit' => 1000])
@@ -309,9 +289,7 @@ class LingotekApiUnitTest extends UnitTestCase {
 
   public function testGetTranslation() {
     // Ensure that the useSource is set when it needs to be.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
 
     $this->client->expects($this->at(0))
       ->method('get')
@@ -339,9 +317,7 @@ class LingotekApiUnitTest extends UnitTestCase {
   public function testGetProcess() {
     $process_id = 'my-process-id';
     // Ensure that the limit is set.
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->client->expects($this->once())
       ->method('get')
       ->with('/api/process/my-process-id')
diff --git a/tests/src/Unit/Remote/LingotekHttpUnitTest.php b/tests/src/Unit/Remote/LingotekHttpUnitTest.php
index 1a9ba8be..888c655e 100644
--- a/tests/src/Unit/Remote/LingotekHttpUnitTest.php
+++ b/tests/src/Unit/Remote/LingotekHttpUnitTest.php
@@ -27,22 +27,22 @@ class LingotekHttpUnitTest extends UnitTestCase {
   /**
    * The HTTP client to interact with the Lingotek service.
    *
-   * @var \GuzzleHttp\ClientInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \GuzzleHttp\ClientInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $httpClient;
 
   /**
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $config;
 
   /**
-   * @var \Drupal\Core\Config\Config|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $accountConfig;
 
   /**
-   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit_Framework_MockObject_MockObject
+   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
    */
   protected $configFactory;
 
@@ -55,12 +55,8 @@ class LingotekHttpUnitTest extends UnitTestCase {
       ->addMethods(['get', 'post', 'patch', 'delete'])
       ->getMockForAbstractClass();
 
-    $this->config = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
-    $this->accountConfig = $this->getMockBuilder(Config::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->config = $this->createMock(Config::class);
+    $this->accountConfig = $this->createMock(Config::class);
 
     $this->accountConfig->expects($this->any())
       ->method('get')
@@ -79,9 +75,7 @@ class LingotekHttpUnitTest extends UnitTestCase {
    * @covers ::get
    */
   public function testGet() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->httpClient->expects($this->at(0))
       ->method('get')
       ->with('http://example.com/test', [
@@ -103,9 +97,7 @@ class LingotekHttpUnitTest extends UnitTestCase {
    * @covers ::post
    */
   public function testPost() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->httpClient->expects($this->at(0))
       ->method('post')
       ->with('http://example.com/test', [
@@ -153,9 +145,7 @@ class LingotekHttpUnitTest extends UnitTestCase {
    * @covers ::patch
    */
   public function testPatch() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->httpClient->expects($this->at(0))
       ->method('patch')
       ->with('http://example.com/test', [
@@ -205,9 +195,7 @@ class LingotekHttpUnitTest extends UnitTestCase {
    * @covers ::delete
    */
   public function testDelete() {
-    $response = $this->getMockBuilder(ResponseInterface::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $response = $this->createMock(ResponseInterface::class);
     $this->httpClient->expects($this->at(0))
       ->method('delete')
       ->with('http://example.com/test', [
