diff --git a/core/MAINTAINERS.txt b/core/MAINTAINERS.txt
index d57c3e1..a877d15 100644
--- a/core/MAINTAINERS.txt
+++ b/core/MAINTAINERS.txt
@@ -63,7 +63,6 @@ Cron system
 
 CSS
 - John Albin Wilkins 'JohnAlbin' http://drupal.org/user/32095
-- Lewis Nyman 'LewisNyman' https://drupal.org/user/751964
 
 Database system
 - Larry Garfield 'Crell' http://drupal.org/user/26398
diff --git a/core/core.services.yml b/core/core.services.yml
index 9f5d6fc..b972add 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -508,8 +508,6 @@ services:
   validation.constraint:
     class: Drupal\Core\Validation\ConstraintManager
     parent: default_plugin_manager
-    tags:
-      - { name: plugin_manager_cache_clear }
   lock:
     class: Drupal\Core\Lock\DatabaseLockBackend
     arguments: ['@database']
@@ -990,7 +988,7 @@ services:
       - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
   token:
     class: Drupal\Core\Utility\Token
-    arguments: ['@module_handler', '@cache.discovery', '@language_manager', '@cache_tags.invalidator']
+    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
   batch.storage:
     class: Drupal\Core\Batch\BatchStorage
     arguments: ['@database', '@session_manager', '@csrf_token']
diff --git a/core/lib/Drupal/Core/Config/Schema/Sequence.php b/core/lib/Drupal/Core/Config/Schema/Sequence.php
index e66e027..bce81a9 100644
--- a/core/lib/Drupal/Core/Config/Schema/Sequence.php
+++ b/core/lib/Drupal/Core/Config/Schema/Sequence.php
@@ -84,31 +84,14 @@ public function first() {
   /**
    * {@inheritdoc}
    */
-  public function set($index, $value) {
-    $this->offsetSet($index, $value);
+  public function set($index, $item) {
+    $this->offsetSet($index, $item);
     return $this;
   }
 
   /**
    * {@inheritdoc}
    */
-  public function removeItem($index) {
-    $this->offsetUnset($index);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function appendItem($value = NULL) {
-    $offset = $this->count();
-    $this->offsetSet($offset, $value);
-    return $this->offsetGet($offset);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function filter($callback) {
     $this->value = array_filter($this->value, $callback);
     unset($this->elements);
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index be6ff7f..c95918c 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -665,39 +665,31 @@ protected function attachPropertyData(array &$entities) {
       // If a revision table is available, we need all the properties of the
       // latest revision. Otherwise we fall back to the data table.
       $table = $this->revisionDataTable ?: $this->dataTable;
-      $alias = $this->revisionDataTable ? 'revision' : 'data';
-      $query = $this->database->select($table, $alias, array('fetch' => \PDO::FETCH_ASSOC))
-        ->fields($alias)
-        ->condition($alias . '.' . $this->idKey, array_keys($entities), 'IN')
-        ->orderBy($alias . '.' . $this->idKey);
+      $query = $this->database->select($table, 'data', array('fetch' => \PDO::FETCH_ASSOC))
+        ->fields('data')
+        ->condition($this->idKey, array_keys($entities), 'IN')
+        ->orderBy('data.' . $this->idKey);
 
-      $table_mapping = $this->getTableMapping();
       if ($this->revisionDataTable) {
-        // Find revisioned fields that are not entity keys.
-        $fields = array_diff($table_mapping->getFieldNames($this->revisionDataTable), $table_mapping->getFieldNames($this->baseTable));
-
-        // Find fields that are not revisioned or entity keys. Data fields have
-        // the same value regardless of entity revision.
-        $data_fields = array_diff($table_mapping->getFieldNames($this->dataTable), $fields, $table_mapping->getFieldNames($this->baseTable));
-        if ($data_fields) {
-          $fields = array_merge($fields, $data_fields);
-          $query->leftJoin($this->dataTable, 'data', "(revision.$this->idKey = data.$this->idKey)");
-          $query->fields('data', $data_fields);
-        }
-
         // Get the revision IDs.
         $revision_ids = array();
         foreach ($entities as $values) {
           $revision_ids[] = is_object($values) ? $values->getRevisionId() : $values[$this->revisionKey][LanguageInterface::LANGCODE_DEFAULT];
         }
-        $query->condition('revision.' . $this->revisionKey, $revision_ids, 'IN');
+        $query->condition($this->revisionKey, $revision_ids, 'IN');
+      }
+
+      $data = $query->execute();
+
+      $table_mapping = $this->getTableMapping();
+      $translations = array();
+      if ($this->revisionDataTable) {
+        $data_fields = array_diff($table_mapping->getFieldNames($this->revisionDataTable), $table_mapping->getFieldNames($this->baseTable));
       }
       else {
-        $fields = $table_mapping->getFieldNames($this->dataTable);
+        $data_fields = $table_mapping->getFieldNames($this->dataTable);
       }
 
-      $translations = array();
-      $data = $query->execute();
       foreach ($data as $values) {
         $id = $values[$this->idKey];
 
@@ -707,7 +699,7 @@ protected function attachPropertyData(array &$entities) {
         $translations[$id][$langcode] = TRUE;
 
 
-        foreach ($fields as $field_name) {
+        foreach ($data_fields as $field_name) {
           $columns = $table_mapping->getColumnNames($field_name);
           // Do not key single-column fields by property name.
           if (count($columns) == 1) {
@@ -1098,7 +1090,7 @@ protected function mapToStorageRecord(ContentEntityInterface $entity, $table_nam
         // @todo Give field types more control over this behavior in
         //   https://drupal.org/node/2232427.
         if (!$definition->getMainPropertyName() && count($columns) == 1) {
-          $value = ($item = $entity->$field_name->first()) ? $item->getValue() : array();
+          $value = $entity->$field_name->first()->getValue();
         }
         else {
           $value = isset($entity->$field_name->$column_name) ? $entity->$field_name->$column_name : NULL;
@@ -1308,7 +1300,7 @@ protected function loadFieldItems(array $entities) {
             }
 
             // Add the item to the field values for the entity.
-            $entities[$row->entity_id]->getTranslation($row->langcode)->{$field_name}->appendItem($item);
+            $entities[$row->entity_id]->getTranslation($row->langcode)->{$field_name}[$delta_count[$row->entity_id][$row->langcode]] = $item;
             $delta_count[$row->entity_id][$row->langcode]++;
           }
         }
diff --git a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
index 1d2bf6d..c147eb1 100644
--- a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
+++ b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
@@ -510,12 +510,10 @@ public function setDefaultValue($value) {
    * {@inheritdoc}
    */
   public function getOptionsProvider($property_name, FieldableEntityInterface $entity) {
-    // If the field item class implements the interface, create an orphaned
-    // runtime item object, so that it can be used as the options provider
-    // without modifying the entity being worked on.
-    if (is_subclass_of($this->getFieldItemClass(), '\Drupal\Core\TypedData\OptionsProviderInterface')) {
-      $items = $entity->get($this->getName());
-      return \Drupal::typedDataManager()->getPropertyInstance($items, 0);
+    // If the field item class implements the interface, proxy it through.
+    $item = $entity->get($this->getName())->first();
+    if ($item instanceof OptionsProviderInterface) {
+      return $item;
     }
     // @todo: Allow setting custom options provider, see
     // https://www.drupal.org/node/2002138.
diff --git a/core/lib/Drupal/Core/Field/FieldItemList.php b/core/lib/Drupal/Core/Field/FieldItemList.php
index cfb5fdc..ba03cc0 100644
--- a/core/lib/Drupal/Core/Field/FieldItemList.php
+++ b/core/lib/Drupal/Core/Field/FieldItemList.php
@@ -43,6 +43,18 @@ class FieldItemList extends ItemList implements FieldItemListInterface {
   /**
    * {@inheritdoc}
    */
+  public function __construct(DataDefinitionInterface $definition, $name = NULL, TypedDataInterface $parent = NULL) {
+    parent::__construct($definition, $name, $parent);
+    // Always initialize one empty item as most times a value for at least one
+    // item will be present. That way prototypes created by
+    // \Drupal\Core\TypedData\TypedDataManager::getPropertyInstance() will
+    // already have this field item ready for use after cloning.
+    $this->list[0] = $this->createItem(0);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getEntity() {
     // The "parent" is the TypedData object for the entity, we need to unwrap
     // the actual entity.
@@ -121,39 +133,28 @@ public function setValue($values, $notify = TRUE) {
    * {@inheritdoc}
    */
   public function __get($property_name) {
-    // For empty fields, $entity->field->property is NULL.
-    if ($item = $this->first()) {
-      return $item->__get($property_name);
-    }
+    return $this->first()->__get($property_name);
   }
 
   /**
    * {@inheritdoc}
    */
   public function __set($property_name, $value) {
-    // For empty fields, $entity->field->property = $value automatically
-    // creates the item before assigning the value.
-    $item = $this->first() ?: $this->appendItem();
-    $item->__set($property_name, $value);
+    $this->first()->__set($property_name, $value);
   }
 
   /**
    * {@inheritdoc}
    */
   public function __isset($property_name) {
-    if ($item = $this->first()) {
-      return $item->__isset($property_name);
-    }
-    return FALSE;
+    return $this->first()->__isset($property_name);
   }
 
   /**
    * {@inheritdoc}
    */
   public function __unset($property_name) {
-    if ($item = $this->first()) {
-      $item->__unset($property_name);
-    }
+    return $this->first()->__unset($property_name);
   }
 
   /**
@@ -176,17 +177,16 @@ public function defaultAccess($operation = 'view', AccountInterface $account = N
    * {@inheritdoc}
    */
   public function applyDefaultValue($notify = TRUE) {
-    if ($value = $this->getFieldDefinition()->getDefaultValue($this->getEntity())) {
-      $this->setValue($value, $notify);
+    $value = $this->getFieldDefinition()->getDefaultValue($this->getEntity());
+
+    // NULL or array() mean "no default value", but  0, '0' and the empty string
+    // are valid default values.
+    if (!isset($value) || (is_array($value) && empty($value))) {
+      // Create one field item and apply defaults.
+      $this->first()->applyDefaultValue(FALSE);
     }
     else {
-      // Create one field item and give it a chance to apply its defaults.
-      // Remove it if this ended up doing nothing.
-      // @todo Having to create an item in case it wants to set a value is
-      // absurd. Remove that in https://www.drupal.org/node/2356623.
-      $item = $this->first() ?: $this->appendItem();
-      $item->applyDefaultValue(FALSE);
-      $this->filterEmptyItems();
+      $this->setValue($value, $notify);
     }
     return $this;
   }
diff --git a/core/lib/Drupal/Core/Field/WidgetBase.php b/core/lib/Drupal/Core/Field/WidgetBase.php
index 0ad9821..492c449 100644
--- a/core/lib/Drupal/Core/Field/WidgetBase.php
+++ b/core/lib/Drupal/Core/Field/WidgetBase.php
@@ -169,11 +169,6 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
     $elements = array();
 
     for ($delta = 0; $delta <= $max; $delta++) {
-      // Add a new empty item if it doesn't exist yet at this delta.
-      if (!isset($items[$delta])) {
-        $items->appendItem();
-      }
-
       // For multiple fields, title and description are handled by the wrapping
       // table.
       $element = array(
diff --git a/core/lib/Drupal/Core/TypedData/ListInterface.php b/core/lib/Drupal/Core/TypedData/ListInterface.php
index 936054f..09dce07 100644
--- a/core/lib/Drupal/Core/TypedData/ListInterface.php
+++ b/core/lib/Drupal/Core/TypedData/ListInterface.php
@@ -44,9 +44,9 @@ public function getItemDefinition();
    * @param int $index
    *   Index of the item to return.
    *
-   * @return \Drupal\Core\TypedData\TypedDataInterface|null
-   *   The item at the specified position in this list, or NULL if no item
-   *   exists at that position.
+   * @return \Drupal\Core\TypedData\TypedDataInterface
+   *   The item at the specified position in this list. An empty item is created
+   *   if it does not exist yet.
    *
    * @throws \Drupal\Core\TypedData\Exception\MissingDataException
    *   If the complex data structure is unset and no item can be created.
@@ -54,28 +54,20 @@ public function getItemDefinition();
   public function get($index);
 
   /**
-   * Sets the value of the item at a given position in the list.
+   * Replaces the item at the specified position in this list.
    *
    * @param int $index
-   *   The position of the item in the list. Since a List only contains
-   *   sequential, 0-based indexes, $index has to be:
-   * - Either the position of an existing item in the list. This updates the
-   *   item value.
-   * - Or the next available position in the sequence of the current list
-   *   indexes. This appends a new item with the provided value at the end of
-   *   the list.
-   * @param mixed $value
-   *   The value of the item to be stored at the specified position.
+   *   Index of the item to replace.
+   * @param mixed
+   *   Item to be stored at the specified position.
    *
-   * @return $this
+   * @return static
+   *   Returns the list.
    *
-   * @throws \InvalidArgumentException
-   *   If the $index is invalid (non-numeric, or pointing to an invalid
-   *   position in the list).
    * @throws \Drupal\Core\TypedData\Exception\MissingDataException
    *   If the complex data structure is unset and no item can be set.
    */
-  public function set($index, $value);
+  public function set($index, $item);
 
   /**
    * Returns the first item in this list.
@@ -89,27 +81,6 @@ public function set($index, $value);
   public function first();
 
   /**
-   * Appends a new item to the list.
-   *
-   * @param mixed $value
-   *   The value of the new item.
-   *
-   * @return \Drupal\Core\TypedData\TypedDataInterface
-   *   The item that was appended.
-   */
-  public function appendItem($value = NULL);
-
-  /**
-   * Removes the item at the specified position.
-   *
-   * @param int $index
-   *   Index of the item to remove.
-   *
-   * @return $this
-   */
-  public function removeItem($index);
-
-  /**
    * Filters the items in the list using a custom callback.
    *
    * @param callable $callback
diff --git a/core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php b/core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php
index 2a868db..52fc0b0 100644
--- a/core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php
+++ b/core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php
@@ -59,23 +59,25 @@ public function setValue($values, $notify = TRUE) {
       $this->list = array();
     }
     else {
-      // Only arrays with numeric keys are supported.
       if (!is_array($values)) {
         throw new \InvalidArgumentException('Cannot set a list with a non-array value.');
       }
-      // Assign incoming values. Keys are renumbered to ensure 0-based
-      // sequential deltas. If possible, reuse existing items rather than
-      // creating new ones.
-      foreach (array_values($values) as $delta => $value) {
-        if (!isset($this->list[$delta])) {
+
+      // Clear the values of properties for which no value has been passed.
+      $this->list = array_intersect_key($this->list, $values);
+
+      // Set the values.
+      foreach ($values as $delta => $value) {
+        if (!is_numeric($delta)) {
+          throw new \InvalidArgumentException('Unable to set a value with a non-numeric delta in a list.');
+        }
+        elseif (!isset($this->list[$delta])) {
           $this->list[$delta] = $this->createItem($delta, $value);
         }
         else {
           $this->list[$delta]->setValue($value, FALSE);
         }
       }
-      // Truncate extraneous pre-existing values.
-      $this->list = array_slice($this->list, 0, count($values));
     }
     // Notify the parent of any changes.
     if ($notify && isset($this->parent)) {
@@ -102,65 +104,28 @@ public function get($index) {
     if (!is_numeric($index)) {
       throw new \InvalidArgumentException('Unable to get a value with a non-numeric delta in a list.');
     }
-    // Automatically create the first item for computed fields.
-    if ($index == 0 && !isset($this->list[0]) && $this->definition->isComputed()) {
-      $this->list[0] = $this->createItem(0);
+    // Allow getting not yet existing items as well.
+    // @todo: Maybe add a public createItem() method in addition?
+    elseif (!isset($this->list[$index])) {
+      $this->list[$index] = $this->createItem($index);
     }
-    return isset($this->list[$index]) ? $this->list[$index] : NULL;
+    return $this->list[$index];
   }
 
   /**
    * {@inheritdoc}
    */
-  public function set($index, $value) {
-    if (!is_numeric($index)) {
-      throw new \InvalidArgumentException('Unable to set a value with a non-numeric delta in a list.');
-    }
-    // Ensure indexes stay sequential. We allow assigning an item at an existing
-    // index, or at the next index available.
-    if ($index < 0 || $index > count($this->list)) {
-      throw new \InvalidArgumentException('Unable to set a value to a non-subsequent delta in a list.');
-    }
-    // Support setting values via typed data objects.
-    if ($value instanceof TypedDataInterface) {
-      $value = $value->getValue();
-    }
-    // If needed, create the item at the next position.
-    $item = isset($this->list[$index]) ? $this->list[$index] : $this->appendItem();
-    $item->setValue($value);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function removeItem($index) {
-    if (isset($this->list) && array_key_exists($index, $this->list)) {
-      // Remove the item, and reassign deltas.
-      unset($this->list[$index]);
-      $this->rekey($index);
+  public function set($index, $item) {
+    if (is_numeric($index)) {
+      // Support setting values via typed data objects.
+      if ($item instanceof TypedDataInterface) {
+        $item = $item->getValue();
+      }
+      $this->get($index)->setValue($item);
+      return $this;
     }
     else {
-      throw new \InvalidArgumentException('Unable to remove item at non-existing index.');
-    }
-    return $this;
-  }
-
-  /**
-   * Renumbers the items in the list.
-   *
-   * @param int $from_index
-   *   Optionally, the index at which to start the renumbering, if it is known
-   *   that items before that can safely be skipped (for example, when removing
-   *   an item at a given index).
-   */
-  protected function rekey($from_index = 0) {
-    // Re-key the list to maintain consecutive indexes.
-    $this->list = array_values($this->list);
-    // Each item holds its own index as a "name", it needs to be updated
-    // according to the new list indexes.
-    for ($i = $from_index; $i < count($this->list); $i++) {
-      $this->list[$i]->setContext($i, $this);
+      throw new \InvalidArgumentException('Unable to set a value with a non-numeric delta in a list.');
     }
   }
 
@@ -175,15 +140,14 @@ public function first() {
    * Implements \ArrayAccess::offsetExists().
    */
   public function offsetExists($offset) {
-    // We do not want to throw exceptions here, so we do not use get().
-    return isset($this->list[$offset]);
+    return array_key_exists($offset, $this->list) && $this->get($offset)->getValue() !== NULL;
   }
 
   /**
    * Implements \ArrayAccess::offsetUnset().
    */
   public function offsetUnset($offset) {
-    $this->removeItem($offset);
+    unset($this->list[$offset]);
   }
 
   /**
@@ -194,29 +158,6 @@ public function offsetGet($offset) {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function offsetSet($offset, $value) {
-    if (!isset($offset)) {
-      // The [] operator has been used.
-      $this->appendItem($value);
-    }
-    else {
-      $this->set($offset, $value);
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function appendItem($value = NULL) {
-    $offset = count($this->list);
-    $item = $this->createItem($offset, $value);
-    $this->list[$offset] = $item;
-    return $item;
-  }
-
-  /**
    * Helper for creating a list item object.
    *
    * @return \Drupal\Core\TypedData\TypedDataInterface
@@ -233,6 +174,17 @@ public function getItemDefinition() {
   }
 
   /**
+   * Implements \ArrayAccess::offsetSet().
+   */
+  public function offsetSet($offset, $value) {
+    if (!isset($offset)) {
+      // The [] operator has been used so point at a new entry.
+      $offset = $this->list ? max(array_keys($this->list)) + 1 : 0;
+    }
+    $this->set($offset, $value);
+  }
+
+  /**
    * Implements \IteratorAggregate::getIterator().
    */
   public function getIterator() {
@@ -268,19 +220,22 @@ public function isEmpty() {
    * {@inheritdoc}
    */
   public function filter($callback) {
-    if (isset($this->list)) {
-      $removed = FALSE;
-      // Apply the filter, detecting if some items were actually removed.
-      $this->list = array_filter($this->list, function ($item) use ($callback, &$removed) {
-        if (call_user_func($callback, $item)) {
-          return TRUE;
-        }
-        else {
-          $removed = TRUE;
-        }
-      });
-      if ($removed) {
-        $this->rekey();
+    $removed = FALSE;
+    // Apply the filter, detecting if some items were actually removed.
+    $this->list = array_filter($this->list, function ($item) use ($callback, &$removed) {
+      if (call_user_func($callback, $item)) {
+        return TRUE;
+      }
+      else {
+        $removed = TRUE;
+      }
+    });
+    if ($removed) {
+      // Rekey the array using array_values().
+      $this->list = array_values($this->list);
+      // Manually update each item's delta.
+      foreach ($this->list as $delta => $item) {
+        $item->setContext($delta, $this);
       }
     }
     return $this;
diff --git a/core/lib/Drupal/Core/Utility/Token.php b/core/lib/Drupal/Core/Utility/Token.php
index 1078722..0bf3367 100644
--- a/core/lib/Drupal/Core/Utility/Token.php
+++ b/core/lib/Drupal/Core/Utility/Token.php
@@ -9,7 +9,6 @@
 
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
-use Drupal\Core\Cache\CacheTagsInvalidatorInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
@@ -98,13 +97,6 @@ class Token {
   protected $moduleHandler;
 
   /**
-   * The cache tags invalidator.
-   *
-   * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface
-   */
-  protected $cacheTagsInvalidator;
-
-  /**
    * Constructs a new class instance.
    *
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
@@ -113,14 +105,11 @@ class Token {
    *   The token cache.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
-   * @param \Drupal\Core\Cache\CacheTagsInvalidatorInterface $cache_tags_invalidator
-   *   The cache tags invalidator.
    */
-  public function __construct(ModuleHandlerInterface $module_handler, CacheBackendInterface $cache, LanguageManagerInterface $language_manager, CacheTagsInvalidatorInterface $cache_tags_invalidator) {
+  public function __construct(ModuleHandlerInterface $module_handler, CacheBackendInterface $cache, LanguageManagerInterface $language_manager) {
     $this->cache = $cache;
     $this->languageManager = $language_manager;
     $this->moduleHandler = $module_handler;
-    $this->cacheTagsInvalidator = $cache_tags_invalidator;
   }
 
   /**
@@ -358,6 +347,8 @@ public function setInfo(array $tokens) {
    */
   public function resetInfo() {
     $this->tokenInfo = NULL;
-    $this->cacheTagsInvalidator->invalidateTags([static::TOKEN_INFO_CACHE_TAG]);
+    Cache::invalidateTags(array(
+      static::TOKEN_INFO_CACHE_TAG => TRUE,
+    ));
   }
 }
diff --git a/core/modules/action/src/Plugin/Action/GotoAction.php b/core/modules/action/src/Plugin/Action/GotoAction.php
index 770f424..4ab688e 100644
--- a/core/modules/action/src/Plugin/Action/GotoAction.php
+++ b/core/modules/action/src/Plugin/Action/GotoAction.php
@@ -101,7 +101,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
     $form['url'] = array(
       '#type' => 'textfield',
       '#title' => t('URL'),
-      '#description' => t('The URL to which the user should be redirected. This can be an internal URL like node/1234 or an external URL like @url.', array('@url' => 'http://example.com')),
+      '#description' => t('The URL to which the user should be redirected. This can be an internal URL like node/1234 or an external URL like @url.', array('@url' => 'http://drupal.org')),
       '#default_value' => $this->configuration['url'],
       '#required' => TRUE,
     );
diff --git a/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml b/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
index 9dd0383..c2ae025 100644
--- a/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
+++ b/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
@@ -153,6 +153,8 @@ display:
           entity_type: node
           entity_field: created
       title: form
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -160,6 +162,8 @@ display:
     position: null
     display_options:
       path: test_bulk_form
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     id: page_2
@@ -180,3 +184,5 @@ display:
           empty: true
           content: 'This view is empty.'
           plugin_id: text_custom
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml b/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
index 8482e00..6aeb947 100644
--- a/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
+++ b/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
@@ -136,6 +136,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_items:
     display_plugin: feed
     id: feed_items
@@ -146,3 +148,5 @@ display:
       display_description: ''
       defaults:
         arguments: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/aggregator/config/install/views.view.aggregator_sources.yml b/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
index e2d8247..8612cff 100644
--- a/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
+++ b/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
@@ -141,12 +141,16 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
     display_title: Feed
     position: 2
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       style:
         type: opml
         options:
@@ -385,6 +389,8 @@ display:
     display_title: Page
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: aggregator/sources
       menu:
         type: normal
diff --git a/core/modules/aggregator/tests/modules/aggregator_test_views/test_views/views.view.test_aggregator_items.yml b/core/modules/aggregator/tests/modules/aggregator_test_views/test_views/views.view.test_aggregator_items.yml
index 22c6c53..5c094ae 100644
--- a/core/modules/aggregator/tests/modules/aggregator_test_views/test_views/views.view.test_aggregator_items.yml
+++ b/core/modules/aggregator/tests/modules/aggregator_test_views/test_views/views.view.test_aggregator_items.yml
@@ -168,6 +168,8 @@ display:
           entity_field: description
       filters: {  }
       sorts: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
@@ -179,3 +181,5 @@ display:
         type: aggregator_rss
         options:
           view_mode: default
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
index 18d3483..f5f9312 100644
--- a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
+++ b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
@@ -38,8 +38,13 @@ display:
           table: views_test_data
           field: name
       title: test_view_block
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
     display_title: Block
     position: null
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
index 6117152..bf2de47 100644
--- a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
+++ b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
@@ -40,18 +40,29 @@ display:
           table: views_test_data
           field: name
       title: test_view_block2
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
     display_title: Block
     position: null
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_2:
     display_plugin: block
     id: block_2
     display_title: Block
     position: null
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_3:
     display_plugin: block
     id: block_3
     display_title: Block
     position: null
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_id.yml b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_id.yml
index dcf6059..c872156 100644
--- a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_id.yml
+++ b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_id.yml
@@ -52,6 +52,8 @@ display:
           plugin_id: numeric
           entity_type: block_content
           entity_field: id
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_revision_id.yml b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_revision_id.yml
index 64db56d..7d35c4c 100644
--- a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_revision_id.yml
+++ b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_revision_revision_id.yml
@@ -54,6 +54,8 @@ display:
           plugin_id: block_content_id
           entity_type: block_content
           entity_field: id
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
     display_plugin: default
     display_title: Master
diff --git a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_view.yml b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_view.yml
index 96ca656..198e9ce 100644
--- a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_view.yml
+++ b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_block_content_view.yml
@@ -126,6 +126,8 @@ display:
       footer: {  }
       empty: {  }
       relationships: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
       arguments:
         type:
@@ -176,4 +178,6 @@ display:
     position: null
     display_options:
       path: test-block_content-view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
diff --git a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_filters.yml b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_filters.yml
index 16b1be5..f4edfd8 100644
--- a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_filters.yml
@@ -150,7 +150,9 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
-      rendering_language: '***LANGUAGE_entity_translation***'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
+      rendering_language: translation_language_renderer
       display_extenders: {  }
   page_bf:
     display_plugin: page
@@ -158,6 +160,8 @@ display:
     display_title: 'Body filter page'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-filter
       display_description: ''
       title: 'Test body filters'
@@ -215,6 +219,8 @@ display:
     display_title: 'Body filter page Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-paris
       display_description: ''
       title: 'Test body filters'
@@ -272,6 +278,8 @@ display:
     display_title: 'Info filter page'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-info-filter
       display_description: ''
       title: 'Test info filter'
@@ -329,6 +337,8 @@ display:
     display_title: 'Info filter page Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-info-paris
       display_description: ''
       title: 'Test info filter'
diff --git a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_type.yml b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_type.yml
index 5c8fe27..674cf7f 100644
--- a/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_type.yml
+++ b/core/modules/block_content/tests/modules/block_content_test_views/test_views/views.view.test_field_type.yml
@@ -22,6 +22,8 @@ display:
           plugin_id: block_content_type
           entity_type: block_content
           entity_field: type
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/comment/config/install/views.view.comments_recent.yml b/core/modules/comment/config/install/views.view.comments_recent.yml
index 347ca7c..41ee8e6 100644
--- a/core/modules/comment/config/install/views.view.comments_recent.yml
+++ b/core/modules/comment/config/install/views.view.comments_recent.yml
@@ -234,6 +234,8 @@ display:
           content: 'No comments available.'
           tokenize: false
           plugin_id: text_custom
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
@@ -242,5 +244,7 @@ display:
     display_options:
       block_description: 'Recent comments'
       block_category: 'Lists (Views)'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       allow:
         items_per_page: true
diff --git a/core/modules/comment/src/CommentFieldItemList.php b/core/modules/comment/src/CommentFieldItemList.php
deleted file mode 100644
index cac425d..0000000
--- a/core/modules/comment/src/CommentFieldItemList.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\comment\CommentFieldItemList.
- */
-
-namespace Drupal\comment;
-
-use Drupal\Core\Field\FieldItemList;
-
-/**
- * Defines a item list class for comment fields.
- */
-class CommentFieldItemList extends FieldItemList {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function get($index) {
-    // The Field API only applies the "field default value" to newly created
-    // entities. In the specific case of the "comment status", though, we need
-    // this default value to be also applied for existing entities created
-    // before the comment field was added, which have no value stored for the
-    // field.
-    if ($index == 0 && empty($this->list)) {
-      $field_default_value = $this->getFieldDefinition()->getDefaultValue($this->getEntity());
-      return $this->appendItem($field_default_value[0]);
-    }
-    return parent::get($index);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function offsetExists($offset) {
-    // For consistency with what happens in get(), we force offsetExists() to
-    // be TRUE for delta 0.
-    if ($offset === 0) {
-      return TRUE;
-    }
-    return parent::offsetExists($offset);
-  }
-
-}
diff --git a/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php b/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php
index 6b2378d..38ce505 100644
--- a/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php
+++ b/core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php
@@ -23,7 +23,6 @@
  *   id = "comment",
  *   label = @Translation("Comments"),
  *   description = @Translation("This field manages configuration and presentation of comments on an entity."),
- *   list_class = "\Drupal\comment\CommentFieldItemList",
  *   default_widget = "comment_default",
  *   default_formatter = "comment_default"
  * )
@@ -156,6 +155,20 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
   /**
    * {@inheritdoc}
    */
+  public function __get($name) {
+    if ($name == 'status' && !isset($this->values[$name])) {
+      // Get default value from the field when no data saved in entity.
+      $field_default_values = $this->getFieldDefinition()->getDefaultValue($this->getEntity());
+      return $field_default_values[0]['status'];
+    }
+    else {
+      return parent::__get($name);
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function isEmpty() {
     // There is always a value for this field, it is one of
     // CommentItemInterface::OPEN, CommentItemInterface::CLOSED or
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rest.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rest.yml
index 05e301d..bd04a83 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rest.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rest.yml
@@ -352,6 +352,8 @@ display:
           break_phrase: false
           not: false
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
   rest_export_1:
     display_plugin: rest_export
@@ -359,6 +361,8 @@ display:
     display_title: 'REST export'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: node/%node/comments
       pager:
         type: some
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_row.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_row.yml
index b928ad4..b92f2d6 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_row.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_row.yml
@@ -147,6 +147,8 @@ display:
       footer: {  }
       empty: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -154,3 +156,5 @@ display:
     position: 1
     display_options:
       path: test-comment-row
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
index b9b4c48..78fccb6 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
@@ -63,6 +63,8 @@ display:
           entity_field: subject
       filters: {  }
       sorts: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
@@ -70,3 +72,5 @@ display:
     position: null
     display_options:
       path: test-comment-rss
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
index f468659..8e852ce 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
@@ -55,6 +55,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
index 3d529e2..5b4a6bf 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
@@ -147,13 +147,17 @@ display:
       footer: {  }
       empty: {  }
       arguments: {  }
-      rendering_language: '***LANGUAGE_entity_translation***'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
+      rendering_language: translation_language_renderer
   page_bf:
     display_plugin: page
     id: page_bf
     display_title: 'Body Comida'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-filter
       display_description: ''
       filters:
@@ -210,6 +214,8 @@ display:
     display_title: 'Body Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-paris
       display_description: ''
       filters:
@@ -266,6 +272,8 @@ display:
     display_title: 'Title Comida'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-title-filter
       display_description: ''
   page_tp:
@@ -274,6 +282,8 @@ display:
     display_title: 'Title Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-title-paris
       display_description: ''
       filters:
diff --git a/core/modules/contact/tests/modules/contact_test_views/test_views/views.view.test_contact_link.yml b/core/modules/contact/tests/modules/contact_test_views/test_views/views.view.test_contact_link.yml
index cb3b7ce..23ad0d7 100644
--- a/core/modules/contact/tests/modules/contact_test_views/test_views/views.view.test_contact_link.yml
+++ b/core/modules/contact/tests/modules/contact_test_views/test_views/views.view.test_contact_link.yml
@@ -130,6 +130,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -137,3 +139,5 @@ display:
     position: 1
     display_options:
       path: test-contact-link
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
index cbae0d4..17d40cc 100644
--- a/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
+++ b/core/modules/content_translation/src/Tests/ContentTranslationSyncImageTest.php
@@ -149,7 +149,7 @@ function testImageFieldSync() {
         'alt' => $default_langcode . '_' . $fid . '_' . $this->randomMachineName(),
         'title' => $default_langcode . '_' . $fid . '_' . $this->randomMachineName(),
       );
-      $entity->{$this->fieldName}[] = $item;
+      $entity->{$this->fieldName}->get($delta)->setValue($item);
 
       // Store the generated values keying them by fid for easier lookup.
       $values[$default_langcode][$fid] = $item;
@@ -175,7 +175,7 @@ function testImageFieldSync() {
         'alt' => $langcode . '_' . $fid . '_' . $this->randomMachineName(),
         'title' => $langcode . '_' . $fid . '_' . $this->randomMachineName(),
       );
-      $translation->{$this->fieldName}[] = $item;
+      $translation->{$this->fieldName}->get($delta)->setValue($item);
 
       // Again store the generated values keying them by fid for easier lookup.
       $values[$langcode][$fid] = $item;
diff --git a/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml b/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
index 6a0515d..8b41eb5 100644
--- a/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
+++ b/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
@@ -104,6 +104,8 @@ display:
             value: 'No people available.'
             format: plain_text
           plugin_id: text
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -111,3 +113,5 @@ display:
     position: null
     display_options:
       path: test-entity-translations-link
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index 07707b9..35811bc 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -384,7 +384,7 @@ function testDefaultValue() {
 
     // Create a new node to check that datetime field default value is not set.
     $new_node = entity_create('node', array('type' => 'date_content'));
-    $this->assertNull($new_node->get($field_name)->value, 'Default value is not set');
+    $this->assertNull($new_node->get($field_name)->offsetGet(0)->value, 'Default value is not set');
   }
 
   /**
diff --git a/core/modules/dblog/tests/modules/dblog_test_views/test_views/views.view.test_dblog.yml b/core/modules/dblog/tests/modules/dblog_test_views/test_views/views.view.test_dblog.yml
index 0a9e356..a53325d 100644
--- a/core/modules/dblog/tests/modules/dblog_test_views/test_views/views.view.test_dblog.yml
+++ b/core/modules/dblog/tests/modules/dblog_test_views/test_views/views.view.test_dblog.yml
@@ -56,6 +56,8 @@ display:
           field: wid
           order: ASC
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -63,3 +65,5 @@ display:
     position: null
     display_options:
       path: test-dblog
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml b/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
index 393c681..3597b6f 100644
--- a/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
+++ b/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
@@ -109,6 +109,8 @@ display:
           plugin_id: date
           entity_type: node
           entity_field: created
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   entity_reference_1:
     display_plugin: entity_reference
     id: entity_reference_1
@@ -125,3 +127,5 @@ display:
         type: none
         options:
           offset: 0
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/entity_reference/tests/modules/entity_reference_test_views/test_views/views.view.test_entity_reference_view.yml b/core/modules/entity_reference/tests/modules/entity_reference_test_views/test_views/views.view.test_entity_reference_view.yml
index 2129235..8b92cb6 100644
--- a/core/modules/entity_reference/tests/modules/entity_reference_test_views/test_views/views.view.test_entity_reference_view.yml
+++ b/core/modules/entity_reference/tests/modules/entity_reference_test_views/test_views/views.view.test_entity_reference_view.yml
@@ -55,6 +55,8 @@ display:
           field: field_test
           relationship: none
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -70,6 +72,8 @@ display:
           field: reverse_field_test
           relationship: none
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     display_title: Embed
     id: embed_1
diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php
index a64f713..829aeef 100644
--- a/core/modules/field/src/Entity/FieldStorageConfig.php
+++ b/core/modules/field/src/Entity/FieldStorageConfig.php
@@ -592,12 +592,10 @@ public function getCardinality() {
    * {@inheritdoc}
    */
   public function getOptionsProvider($property_name, FieldableEntityInterface $entity) {
-    // If the field item class implements the interface, create an orphaned
-    // runtime item object, so that it can be used as the options provider
-    // without modifying the entity being worked on.
-    if (is_subclass_of($this->getFieldItemClass(), '\Drupal\Core\TypedData\OptionsProviderInterface')) {
-      $items = $entity->get($this->getName());
-      return \Drupal::typedDataManager()->getPropertyInstance($items, 0);
+    // If the field item class implements the interface, proxy it through.
+    $item = $entity->get($this->getName())->first();
+    if ($item instanceof OptionsProviderInterface) {
+      return $item;
     }
     // @todo: Allow setting custom options provider, see
     // https://www.drupal.org/node/2002138.
diff --git a/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php b/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php
index 6cc7718..7ce9eb6 100644
--- a/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php
+++ b/core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php
@@ -275,14 +275,14 @@ protected function buildRenderArray(array $referenced_entities, $formatter, $for
     // Create the entity that will have the entity reference field.
     $referencing_entity = entity_create($this->entityType, array('name' => $this->randomMachineName()));
 
-    $items = $referencing_entity->get($this->fieldName);
-
-    // Assign the referenced entities.
+    $delta = 0;
     foreach ($referenced_entities as $referenced_entity) {
-      $items[] = ['entity' => $referenced_entity];
+      $referencing_entity->{$this->fieldName}[$delta++]->entity = $referenced_entity;
     }
 
-    // Build the renderable array for the field.
+    // Build the renderable array for the entity reference field.
+    $items = $referencing_entity->get($this->fieldName);
+
     return $items->view(array('type' => $formatter, 'settings' => $formatter_options));
   }
 
diff --git a/core/modules/field/src/Tests/FieldDataCountTest.php b/core/modules/field/src/Tests/FieldDataCountTest.php
index 2a14652..1930c27 100644
--- a/core/modules/field/src/Tests/FieldDataCountTest.php
+++ b/core/modules/field/src/Tests/FieldDataCountTest.php
@@ -72,9 +72,11 @@ public function testEntityCountAndHasData() {
     // Create 12 entities to ensure that the purging works as expected.
     for ($i=0; $i < 12; $i++) {
       $entity = entity_create('entity_test');
-      $entity->field_int[] = mt_rand(1,99);
-      $entity->field_int[] = mt_rand(1,99);
-      $entity->name[] = $this->randomMachineName();
+      $value = mt_rand(1,99);
+      $value2 = mt_rand(1,99);
+      $entity->field_int[0]->value = $value;
+      $entity->field_int[1]->value = $value2;
+      $entity->name->value = $this->randomMachineName();
       $entity->save();
     }
 
diff --git a/core/modules/field/src/Tests/FieldStorageCrudTest.php b/core/modules/field/src/Tests/FieldStorageCrudTest.php
index 365f136..735b3d2 100644
--- a/core/modules/field/src/Tests/FieldStorageCrudTest.php
+++ b/core/modules/field/src/Tests/FieldStorageCrudTest.php
@@ -399,7 +399,7 @@ function testUpdate() {
       // Fill in the entity with more values than $cardinality.
       for ($i = 0; $i < 20; $i++) {
         // We can not use $i here because 0 values are filtered out.
-        $entity->field_update[] = $i + 1;
+        $entity->field_update[$i]->value = $i + 1;
       }
       // Load back and assert there are $cardinality number of values.
       $entity = $this->entitySaveReload($entity);
diff --git a/core/modules/field/src/Tests/FieldValidationTest.php b/core/modules/field/src/Tests/FieldValidationTest.php
index 71bb8ad..4454c23 100644
--- a/core/modules/field/src/Tests/FieldValidationTest.php
+++ b/core/modules/field/src/Tests/FieldValidationTest.php
@@ -52,7 +52,7 @@ function testCardinalityConstraint() {
     $entity = $this->entity;
 
     for ($delta = 0; $delta < $cardinality + 1; $delta++) {
-      $entity->{$this->fieldTestData->field_name}[] = array('value' => 1);
+      $entity->{$this->fieldTestData->field_name}->get($delta)->set('value', 1);
     }
 
     // Validate the field.
@@ -85,7 +85,7 @@ function testFieldConstraints() {
         $value = -1;
         $expected_violations[$delta . '.value'][] = t('%name does not accept the value -1.', array('%name' => $this->fieldTestData->field->getLabel()));
       }
-      $entity->{$this->fieldTestData->field_name}[] = $value;
+      $entity->{$this->fieldTestData->field_name}->get($delta)->set('value', $value);
     }
 
     // Validate the field.
diff --git a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
index 2c352dd..ed68d09 100644
--- a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
+++ b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
@@ -58,6 +58,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/field_ui/src/Form/FieldEditForm.php b/core/modules/field_ui/src/Form/FieldEditForm.php
index 9abf3d5..95985e5 100644
--- a/core/modules/field_ui/src/Form/FieldEditForm.php
+++ b/core/modules/field_ui/src/Form/FieldEditForm.php
@@ -86,7 +86,6 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldConf
     $ids = (object) array('entity_type' => $this->field->entity_type, 'bundle' => $this->field->bundle, 'entity_id' => NULL);
     $form['#entity'] = _field_create_entity_from_ids($ids);
     $items = $form['#entity']->get($this->field->getName());
-    $item = $items->first() ?: $items->appendItem();
 
     if (!empty($field_storage->locked)) {
       $form['locked'] = array(
@@ -141,7 +140,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldConf
 
     // Add field settings for the field type and a container for third party
     // settings that modules can add to via hook_form_FORM_ID_alter().
-    $form['field']['settings'] = $item->fieldSettingsForm($form, $form_state);
+    $form['field']['settings'] = $items[0]->fieldSettingsForm($form, $form_state);
     $form['field']['settings']['#weight'] = 10;
     $form['field']['third_party_settings'] = array();
     $form['field']['third_party_settings']['#weight'] = 11;
diff --git a/core/modules/field_ui/src/Form/FieldStorageEditForm.php b/core/modules/field_ui/src/Form/FieldStorageEditForm.php
index ff4c76b..5cd57b7 100644
--- a/core/modules/field_ui/src/Form/FieldStorageEditForm.php
+++ b/core/modules/field_ui/src/Form/FieldStorageEditForm.php
@@ -108,9 +108,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldConf
     // FieldItem.
     $ids = (object) array('entity_type' => $this->field->entity_type, 'bundle' => $this->field->bundle, 'entity_id' => NULL);
     $entity = _field_create_entity_from_ids($ids);
-    $items = $entity->get($field_storage->getName());
-    $item = $items->first() ?: $items->appendItem();
-    $form['field_storage']['settings'] += $item->storageSettingsForm($form, $form_state, $field_storage->hasData());
+    $form['field_storage']['settings'] += $entity->get($field_storage->getName())->first()->storageSettingsForm($form, $form_state, $field_storage->hasData());
 
     // Build the configurable field values.
     $cardinality = $field_storage->getCardinality();
diff --git a/core/modules/file/config/install/views.view.files.yml b/core/modules/file/config/install/views.view.files.yml
index 6c805da..550a9cc 100644
--- a/core/modules/file/config/install/views.view.files.yml
+++ b/core/modules/file/config/install/views.view.files.yml
@@ -680,6 +680,8 @@ display:
       arguments: {  }
       group_by: true
       show_admin_links: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -707,6 +709,8 @@ display:
           group_type: group
           admin_label: 'File usage'
           required: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     id: page_2
@@ -1056,3 +1060,5 @@ display:
           group_type: group
           admin_label: 'File usage'
           required: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/file/file.views.inc b/core/modules/file/file.views.inc
index a2edb20..a8fc0fe 100644
--- a/core/modules/file/file.views.inc
+++ b/core/modules/file/file.views.inc
@@ -23,7 +23,7 @@ function file_field_views_data(FieldStorageConfigInterface $field_storage) {
       'id' => 'standard',
       'base' => 'file_managed',
       'entity type' => 'file',
-      'base field' => 'target_id',
+      'base field' => 'fid',
       'label' => t('file from !field_name', array('!field_name' => $field_storage->getName())),
     );
   }
diff --git a/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php b/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
index 1ad5a1f..bcd4ac9 100644
--- a/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
+++ b/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
@@ -139,8 +139,6 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
     // Add one more empty row for new uploads except when this is a programmed
     // multiple form as it is not necessary.
     if ($empty_single_allowed || $empty_multiple_allowed) {
-      // Create a new empty item.
-      $items->appendItem();
       $element = array(
         '#title' => $title,
         '#description' => $description,
diff --git a/core/modules/file/src/Tests/Views/RelationshipUserFileDataTest.php b/core/modules/file/src/Tests/Views/RelationshipUserFileDataTest.php
new file mode 100644
index 0000000..582c662
--- /dev/null
+++ b/core/modules/file/src/Tests/Views/RelationshipUserFileDataTest.php
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\image\Tests\Views\RelationshipUserFileDataTest.
+ */
+
+namespace Drupal\file\Tests\Views;
+
+use Drupal\views\Tests\ViewTestBase;
+use Drupal\views\Views;
+use Drupal\views\Tests\ViewTestData;
+
+/**
+ * Tests file on user relationship handler.
+ *
+ * @group file
+ */
+class RelationshipUserFileDataTest extends ViewTestBase {
+
+  /**
+   * Modules to install.
+   *
+   * @var array
+   */
+  public static $modules = array('file', 'file_test_views', 'user');
+
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = array('test_file_user_file_data');
+
+  protected function setUp() {
+    parent::setUp();
+
+    // Create the user profile field and instance.
+    entity_create('field_storage_config', array(
+      'entity_type' => 'user',
+      'field_name' => 'user_file',
+      'type' => 'file',
+      'translatable' => '0',
+    ))->save();
+    entity_create('field_config', array(
+      'label' => 'User File',
+      'description' => '',
+      'field_name' => 'user_file',
+      'entity_type' => 'user',
+      'bundle' => 'user',
+      'required' => 0,
+    ))->save();
+
+    ViewTestData::createTestViews(get_class($this), array('file_test_views'));
+  }
+
+  /**
+   * Tests using the views file relationship.
+   */
+  public function testViewsHandlerRelationshipUserFileData() {
+    $file = entity_create('file', array(
+      'fid' => 2,
+      'uid' => 2,
+      'filename' => 'image-test.jpg',
+      'uri' => "public://image-test.jpg",
+      'filemime' => 'image/jpeg',
+      'created' => 1,
+      'changed' => 1,
+      'status' => FILE_STATUS_PERMANENT,
+    ));
+    $file->enforceIsNew();
+    file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-1.png'));
+    $file->save();
+
+    $account = $this->drupalCreateUser();
+    $account->user_file->target_id = 2;
+    $account->save();
+
+    $view = Views::getView('test_file_user_file_data');
+    // Tests \Drupal\taxonomy\Plugin\views\relationship\NodeTermData::calculateDependencies().
+    $expected = [
+      'module' => [
+        'file',
+        'user',
+      ],
+    ];
+    $this->assertIdentical($expected, $view->calculateDependencies());
+    $this->executeView($view);
+    $expected_result = array(
+      array(
+        'file_managed_user__user_file_fid' => '2',
+      ),
+    );
+    $column_map = array('file_managed_user__user_file_fid' => 'file_managed_user__user_file_fid');
+    $this->assertIdenticalResultset($view, $expected_result, $column_map);
+  }
+
+}
diff --git a/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml b/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
index 6f07b0c..c5149b0 100644
--- a/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
+++ b/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
@@ -47,6 +47,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml b/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml
new file mode 100644
index 0000000..9387275
--- /dev/null
+++ b/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml
@@ -0,0 +1,77 @@
+langcode: und
+status: true
+dependencies:
+  module:
+    - file
+    - user
+id: test_file_user_file_data
+label: test_file_user_file_data
+module: views
+description: ''
+tag: ''
+base_table: users
+base_field: uid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access user profiles'
+      cache:
+        type: none
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            name: name
+            fid: fid
+          info:
+            name:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            fid:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: '-1'
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      relationships:
+        user_file_target_id:
+          id: user_file_target_id
+          table: user__user_file
+          field: user_file_target_id
+          relationship: none
+          group_type: group
+          admin_label: 'file from user_file'
+          required: true
+          plugin_id: standard
+      arguments: {  }
+      display_extenders: {  }
diff --git a/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml b/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
index 0775d27..e421d24 100644
--- a/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
+++ b/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
@@ -148,3 +148,5 @@ display:
           plugin_id: numeric
       filters: {  }
       sorts: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php b/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
index a3caa35..110378f 100644
--- a/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
+++ b/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
@@ -177,16 +177,20 @@ public function denormalize($data, $class, $format = NULL, array $context = arra
     // Iterate through remaining items in data array. These should all
     // correspond to fields.
     foreach ($data as $field_name => $field_data) {
-      $items = $entity->get($field_name);
       // Remove any values that were set as a part of entity creation (e.g
-      // uuid). If the incoming field data is set to an empty array, this will
-      // also have the effect of emptying the field in REST module.
-      $items->setValue(array());
-      if ($field_data) {
-        // Denormalize the field data into the FieldItemList object.
-        $context['target_instance'] = $items;
-        $this->serializer->denormalize($field_data, get_class($items), $format, $context);
-      }
+      // uuid). If this field is set to an empty array in the data, this will
+      // also have the effect of marking the field for deletion in REST module.
+      $entity->{$field_name} = array();
+
+      $field = $entity->get($field_name);
+      // Get the class of the field. This will generally be the default Field
+      // class.
+      $field_class = get_class($field);
+      // Pass in the empty field object as a target instance. Since the context
+      // is already prepared for the field, any data added to it is
+      // automatically added to the entity.
+      $context['target_instance'] = $field;
+      $this->serializer->denormalize($field_data, $field_class, $format, $context);
     }
 
     return $entity;
diff --git a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
index 53c544c..a427fee 100644
--- a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
+++ b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
@@ -99,17 +99,20 @@ protected function constructValue($data, $context) {
    * @return \Drupal\Core\Field\FieldItemInterface
    *   The translated field item instance.
    */
-  protected function createTranslatedInstance(FieldItemInterface $item, $langcode) {
-    // Remove the untranslated item that was created for the default language
-    // by FieldNormalizer::denormalize().
-    $items = $item->getParent();
-    $delta = $item->getName();
-    unset($items[$delta]);
-
-    // Instead, create a new item for the entity in the requested language.
-    $entity_translation = $item->getEntity()->getTranslation($langcode);
-    $field_name = $item->getFieldDefinition()->getName();
-    return $entity_translation->get($field_name)->appendItem();
+  protected function createTranslatedInstance(FieldItemInterface $field_item, $langcode) {
+    $field_items = $field_item->getParent();
+
+    // Remove the untranslated instance from the field's list of items.
+    $field_items->offsetUnset($field_item->getName());
+
+    // Get the entity in the requested language and the field's item list from
+    // that.
+    $entity_translation = $field_item->getEntity()->getTranslation($langcode);
+    $field_items_translation = $entity_translation->get($field_item->getFieldDefinition()->getName());
+
+    // Create a new instance and return it.
+    $count = $field_items_translation->isEmpty() ? 0 : $field_items_translation->count();
+    return $field_items_translation->get($count);
   }
 
 }
diff --git a/core/modules/hal/src/Normalizer/FieldNormalizer.php b/core/modules/hal/src/Normalizer/FieldNormalizer.php
index e93f226..fd2851b 100644
--- a/core/modules/hal/src/Normalizer/FieldNormalizer.php
+++ b/core/modules/hal/src/Normalizer/FieldNormalizer.php
@@ -68,18 +68,19 @@ public function denormalize($data, $class, $format = NULL, array $context = arra
       throw new InvalidArgumentException('The field passed in via $context[\'target_instance\'] must have a parent set.');
     }
 
-    $items = $context['target_instance'];
-    $item_class = $items->getItemDefinition()->getClass();
-    foreach ($data as $item_data) {
-      // Create a new item and pass it as the target for the unserialization of
-      // $item_data. Note: if $item_data is about a different language than the
-      // default, FieldItemNormalizer::denormalize() will dismiss this item and
-      // create a new one for the right language.
-      $context['target_instance'] = $items->appendItem();
-      $this->serializer->denormalize($item_data, $item_class, $format, $context);
+    $field = $context['target_instance'];
+    foreach ($data as $field_item_data) {
+      $count = $field->count();
+      // Get the next field item instance. The offset will serve as the field
+      // item name.
+      $field_item = $field->get($count);
+      $field_item_class = get_class($field_item);
+      // Pass in the empty field item object as the target instance.
+      $context['target_instance'] = $field_item;
+      $this->serializer->denormalize($field_item_data, $field_item_class, $format, $context);
     }
 
-    return $items;
+    return $field;
 
   }
 
diff --git a/core/modules/hal/src/Tests/DenormalizeTest.php b/core/modules/hal/src/Tests/DenormalizeTest.php
index 599efcd..f0ca0d7 100644
--- a/core/modules/hal/src/Tests/DenormalizeTest.php
+++ b/core/modules/hal/src/Tests/DenormalizeTest.php
@@ -8,7 +8,6 @@
 namespace Drupal\hal\Tests;
 
 use Drupal\Core\Url;
-use Drupal\field\Entity\FieldConfig;
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 /**
@@ -80,30 +79,20 @@ public function testTypeHandling() {
   }
 
   /**
-   * Test that a field set to an empty array is different than an absent field.
+   * Test that a field set to an empty array is different than an empty field.
    */
   public function testMarkFieldForDeletion() {
-    // Add a default value for a field.
-    $field = FieldConfig::loadByName('entity_test', 'entity_test', 'field_test_text');
-    $field->default_value = array(array('value' => 'Llama'));
-    $field->save();
-
-    // Denormalize data that contains no entry for the field, and check that
-    // the default value is present in the resulting entity.
-    $data = array(
+    $no_field_data = array(
       '_links' => array(
         'type' => array(
           'href' => Url::fromUri('base:rest/type/entity_test/entity_test', array('absolute' => TRUE))->toString(),
         ),
       ),
     );
-    $entity = $this->serializer->denormalize($data, $this->entityClass, $this->format);
-    $this->assertEqual($entity->field_test_text->count(), 1);
-    $this->assertEqual($entity->field_test_text->value, 'Llama');
+    $no_field_denormalized = $this->serializer->denormalize($no_field_data, $this->entityClass, $this->format);
+    $no_field_value = $no_field_denormalized->field_test_text->getValue();
 
-    // Denormalize data that contains an empty entry for the field, and check
-    // that the field is empty in the resulting entity.
-    $data = array(
+    $empty_field_data = array(
       '_links' => array(
         'type' => array(
           'href' => Url::fromUri('base:rest/type/entity_test/entity_test', array('absolute' => TRUE))->toString(),
@@ -111,8 +100,10 @@ public function testMarkFieldForDeletion() {
       ),
       'field_test_text' => array(),
     );
-    $entity = $this->serializer->denormalize($data, get_class($entity), $this->format, [ 'target_instance' => $entity ]);
-    $this->assertEqual($entity->field_test_text->count(), 0);
+    $empty_field_denormalized = $this->serializer->denormalize($empty_field_data, $this->entityClass, $this->format);
+    $empty_field_value = $empty_field_denormalized->field_test_text->getValue();
+
+    $this->assertTrue(!empty($no_field_value) && empty($empty_field_value), 'A field set to an empty array in the data is structured differently than an empty field.');
   }
 
   /**
diff --git a/core/modules/image/image.views.inc b/core/modules/image/image.views.inc
index 36e5dfc..1131e87 100644
--- a/core/modules/image/image.views.inc
+++ b/core/modules/image/image.views.inc
@@ -22,7 +22,7 @@ function image_field_views_data(FieldStorageConfigInterface $field_storage) {
     $data[$table_name][$field_storage->getName() . '_target_id']['relationship'] = array(
       'id' => 'standard',
       'base' => 'file_managed',
-      'base field' => 'target_id',
+      'base field' => 'fid',
       'label' => t('image from !field_name', array('!field_name' => $field_storage->getName())),
     );
   }
diff --git a/core/modules/image/src/Tests/Views/RelationshipUserImageDataTest.php b/core/modules/image/src/Tests/Views/RelationshipUserImageDataTest.php
new file mode 100644
index 0000000..1164288
--- /dev/null
+++ b/core/modules/image/src/Tests/Views/RelationshipUserImageDataTest.php
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\image\Tests\Views\RelationshipUserImageDataTest.
+ */
+
+namespace Drupal\image\Tests\Views;
+
+use Drupal\views\Tests\ViewTestBase;
+use Drupal\views\Views;
+use Drupal\views\Tests\ViewTestData;
+
+/**
+ * Tests image on user relationship handler.
+ *
+ * @group image
+ */
+class RelationshipUserImageDataTest extends ViewTestBase {
+
+  /**
+   * Modules to install.
+   *
+   * @var array
+   */
+  public static $modules = array('image', 'image_test_views', 'user');
+
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = array('test_image_user_image_data');
+
+  protected function setUp() {
+    parent::setUp();
+
+    // Create the user profile field and instance.
+    entity_create('field_storage_config', array(
+      'entity_type' => 'user',
+      'field_name' => 'user_picture',
+      'type' => 'image',
+      'translatable' => '0',
+    ))->save();
+    entity_create('field_config', array(
+      'label' => 'User Picture',
+      'description' => '',
+      'field_name' => 'user_picture',
+      'entity_type' => 'user',
+      'bundle' => 'user',
+      'required' => 0,
+    ))->save();
+
+    ViewTestData::createTestViews(get_class($this), array('image_test_views'));
+  }
+
+  /**
+   * Tests using the views image relationship.
+   */
+  public function testViewsHandlerRelationshipUserImageData() {
+    $file = entity_create('file', array(
+      'fid' => 2,
+      'uid' => 2,
+      'filename' => 'image-test.jpg',
+      'uri' => "public://image-test.jpg",
+      'filemime' => 'image/jpeg',
+      'created' => 1,
+      'changed' => 1,
+      'status' => FILE_STATUS_PERMANENT,
+    ));
+    $file->enforceIsNew();
+    file_put_contents($file->getFileUri(), file_get_contents('core/modules/simpletest/files/image-1.png'));
+    $file->save();
+
+    $account = $this->drupalCreateUser();
+    $account->user_picture->target_id = 2;
+    $account->save();
+
+    $view = Views::getView('test_image_user_image_data');
+    // Tests \Drupal\taxonomy\Plugin\views\relationship\NodeTermData::calculateDependencies().
+    $expected = [
+      'module' => [
+        'file',
+        'user',
+      ],
+    ];
+    $this->assertIdentical($expected, $view->calculateDependencies());
+    $this->executeView($view);
+    $expected_result = array(
+      array(
+        'file_managed_user__user_picture_fid' => '2',
+      ),
+    );
+    $column_map = array('file_managed_user__user_picture_fid' => 'file_managed_user__user_picture_fid');
+    $this->assertIdenticalResultset($view, $expected_result, $column_map);
+  }
+
+}
diff --git a/core/modules/image/tests/modules/image_test_views/image_test_views.info.yml b/core/modules/image/tests/modules/image_test_views/image_test_views.info.yml
new file mode 100644
index 0000000..b5e1000
--- /dev/null
+++ b/core/modules/image/tests/modules/image_test_views/image_test_views.info.yml
@@ -0,0 +1,9 @@
+name: 'Image test views'
+type: module
+description: 'Provides default views for views image tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - image
+  - views
diff --git a/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml b/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml
new file mode 100644
index 0000000..62a82bd
--- /dev/null
+++ b/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml
@@ -0,0 +1,77 @@
+langcode: und
+status: true
+dependencies:
+  module:
+    - file
+    - user
+id: test_image_user_image_data
+label: test_image_user_image_data
+module: views
+description: ''
+tag: ''
+base_table: users
+base_field: uid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access user profiles'
+      cache:
+        type: none
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            name: name
+            fid: fid
+          info:
+            name:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+            fid:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: '-1'
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      relationships:
+        user_picture_target_id:
+          id: user_picture_target_id
+          table: user__user_picture
+          field: user_picture_target_id
+          relationship: none
+          group_type: group
+          admin_label: 'image from user_picture'
+          required: true
+          plugin_id: standard
+      arguments: {  }
+      display_extenders: {  }
diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
index 89bb779..e92fe53 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
@@ -142,7 +142,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     // If the field is configured to allow both internal and external links,
     // show a useful description.
     elseif ($this->supportsExternalLinks() && $this->supportsInternalLinks()) {
-      $element['uri']['#description'] = $this->t('This can be an internal path such as %add-node or an external URL such as %url. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%url' => 'http://example.com'));
+      $element['uri']['#description'] = $this->t('This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org'));
     }
 
     $element['title'] = array(
diff --git a/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php b/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php
index d7c3a84..63bd799 100644
--- a/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php
+++ b/core/modules/menu_link_content/src/Form/MenuLinkContentForm.php
@@ -221,8 +221,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form = parent::form($form, $form_state);
 
     $default = $this->entity->getMenuName() . ':' . $this->entity->getParentId();
-    $id = $this->entity->isNew() ? '' : $this->entity->getPluginId();
-    $form['menu_parent'] = $this->menuParentSelector->parentSelectElement($default, $id);
+    $form['menu_parent'] = $this->menuParentSelector->parentSelectElement($default, $this->entity->getPluginId());
     $form['menu_parent']['#weight'] = 10;
     $form['menu_parent']['#title'] = $this->t('Parent link');
     $form['menu_parent']['#description'] = $this->t('The maximum depth for a link and all its children is fixed. Some menu links may not be available as parents if selecting them would exceed this limit.');
diff --git a/core/modules/menu_ui/src/Tests/MenuTest.php b/core/modules/menu_ui/src/Tests/MenuTest.php
index 8d574f4..fbcad78 100644
--- a/core/modules/menu_ui/src/Tests/MenuTest.php
+++ b/core/modules/menu_ui/src/Tests/MenuTest.php
@@ -462,9 +462,6 @@ function doMenuTests() {
     $this->clickLink($item8->getTitle());
     $this->assertResponse(200);
 
-    // Check invalid menu link parents.
-    $this->checkInvalidParentMenuLinks();
-
     // Save menu links for later tests.
     $this->items[] = $item1;
     $this->items[] = $item2;
@@ -651,48 +648,6 @@ function addInvalidMenuLink() {
   }
 
   /**
-   * Tests that parent options are limited by depth when adding menu links.
-   */
-  function checkInvalidParentMenuLinks() {
-    $last_link = null;
-    $created_links = array();
-
-    // Get the max depth of the tree.
-    $menu_link_tree = \Drupal::service('menu.link_tree');
-    $max_depth = $menu_link_tree->maxDepth();
-
-    // Create a maximum number of menu links, each a child of the previous.
-    for ($i = 0; $i <= $max_depth - 1; $i++) {
-      $parent = $last_link ? 'tools:' . $last_link->getPluginId() : 'tools:';
-      $title = 'title' . $i;
-      $edit = array(
-        'link[0][uri]' => '<front>',
-        'title[0][value]' => $title,
-        'menu_parent' => $parent,
-        'description[0][value]' => '',
-        'enabled[value]' => 1,
-        'expanded[value]' => FALSE,
-        'weight[0][value]' => '0',
-      );
-      $this->drupalPostForm("admin/structure/menu/manage/{$this->menu->id()}/add", $edit, t('Save'));
-      $menu_links = entity_load_multiple_by_properties('menu_link_content', array('title' => $title));
-      $last_link = reset($menu_links);
-      $created_links[]  = 'tools:' . $last_link->getPluginId();
-    }
-
-    // The last link cannot be a parent in the new menu link form.
-    $this->drupalGet('admin/structure/menu/manage/admin/add');
-    $value = 'tools:' . $last_link->getPluginId();
-    $this->assertNoOption('edit-menu-parent', $value, 'The invalid option is not there.');
-
-    // All but the last link can be parents in the new menu link form.
-    array_pop($created_links);
-    foreach ($created_links as $key => $link) {
-      $this->assertOption('edit-menu-parent', $link, 'The valid option number ' . ($key + 1) . ' is there.');
-    }
-  }
-
-  /**
    * Verifies a menu link using the UI.
    *
    * @param \Drupal\menu_link_content\Entity\MenuLinkContent $item
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
index 85ec14a..214b0e8 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorFeedTest.php
@@ -41,16 +41,16 @@ public function testAggregatorFeedImport() {
     /** @var Feed $feed */
     $feed = Feed::load(5);
     $this->assertNotNull($feed->uuid());
-    $this->assertIdentical($feed->title->value, 'Know Your Meme');
-    $this->assertIdentical($feed->language()->getId(), 'en');
-    $this->assertIdentical($feed->url->value, 'http://knowyourmeme.com/newsfeed.rss');
-    $this->assertIdentical($feed->refresh->value, '900');
-    $this->assertIdentical($feed->checked->value, '1387659487');
-    $this->assertIdentical($feed->queued->value, '0');
-    $this->assertIdentical($feed->link->value, 'http://knowyourmeme.com');
-    $this->assertIdentical($feed->description->value, 'New items added to the News Feed');
-    $this->assertIdentical($feed->image->value, 'http://b.thumbs.redditmedia.com/harEHsUUZVajabtC.png');
-    $this->assertIdentical($feed->etag->value, '"213cc1365b96c310e92053c5551f0504"');
-    $this->assertIdentical($feed->modified->value, '0');
+    $this->assertEqual($feed->title->value, 'Know Your Meme');
+    $this->assertEqual($feed->language()->getId(), 'en');
+    $this->assertEqual($feed->url->value, 'http://knowyourmeme.com/newsfeed.rss');
+    $this->assertEqual($feed->refresh->value, 900);
+    $this->assertEqual($feed->checked->value, 1387659487);
+    $this->assertEqual($feed->queued->value, 0);
+    $this->assertEqual($feed->link->value, 'http://knowyourmeme.com');
+    $this->assertEqual($feed->description->value, 'New items added to the News Feed');
+    $this->assertEqual($feed->image->value, 'http://b.thumbs.redditmedia.com/harEHsUUZVajabtC.png');
+    $this->assertEqual($feed->etag->value, '"213cc1365b96c310e92053c5551f0504"');
+    $this->assertEqual($feed->modified->value, 0);
   }
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
index 0a8b14f..672711c 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateAggregatorItemTest.php
@@ -60,15 +60,15 @@ protected function setUp() {
   public function testAggregatorItem() {
     /** @var Item $item */
     $item = Item::load(1);
-    $this->assertIdentical($item->id(), '1');
-    $this->assertIdentical($item->getFeedId(), '5');
-    $this->assertIdentical($item->label(), 'This (three) weeks in Drupal Core - January 10th 2014');
-    $this->assertIdentical($item->getAuthor(), 'larowlan');
-    $this->assertIdentical($item->getDescription(), "<h2 id='new'>What's new with Drupal 8?</h2>");
-    $this->assertIdentical($item->getLink(), 'https://groups.drupal.org/node/395218');
-    $this->assertIdentical($item->getPostedTime(), '1389297196');
-    $this->assertIdentical($item->language()->getId(), 'en');
-    $this->assertIdentical($item->getGuid(), '395218 at https://groups.drupal.org');
+    $this->assertEqual($item->id(), 1);
+    $this->assertEqual($item->getFeedId(), 5);
+    $this->assertEqual($item->label(), 'This (three) weeks in Drupal Core - January 10th 2014');
+    $this->assertEqual($item->getAuthor(), 'larowlan');
+    $this->assertEqual($item->getDescription(), "<h2 id='new'>What's new with Drupal 8?</h2>");
+    $this->assertEqual($item->getLink(), 'https://groups.drupal.org/node/395218');
+    $this->assertEqual($item->getPostedTime(), 1389297196);
+    $this->assertEqual($item->language()->getId(), 'en');
+    $this->assertEqual($item->getGuid(), '395218 at https://groups.drupal.org');
 
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
index bb7ef96..f44346e 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockContentTest.php
@@ -56,20 +56,20 @@ protected function setUp() {
   public function testBlockMigration() {
     /** @var BlockContent $block */
     $block = entity_load('block_content', 1);
-    $this->assertIdentical('My block 1', $block->label());
-    $this->assertIdentical('1', $block->getRevisionId());
+    $this->assertEqual('My block 1', $block->label());
+    $this->assertEqual(1, $block->getRevisionId());
     $this->assertTrue(REQUEST_TIME <= $block->getChangedTime() && $block->getChangedTime() <= time());
-    $this->assertIdentical('en', $block->language()->getId());
-    $this->assertIdentical('<h3>My first custom block body</h3>', $block->body->value);
-    $this->assertIdentical('full_html', $block->body->format);
+    $this->assertEqual('en', $block->language()->getId());
+    $this->assertEqual('<h3>My first custom block body</h3>', $block->body->value);
+    $this->assertEqual('full_html', $block->body->format);
 
     $block = entity_load('block_content', 2);
-    $this->assertIdentical('My block 2', $block->label());
-    $this->assertIdentical('2', $block->getRevisionId());
+    $this->assertEqual('My block 2', $block->label());
+    $this->assertEqual(2, $block->getRevisionId());
     $this->assertTrue(REQUEST_TIME <= $block->getChangedTime() && $block->getChangedTime() <= time());
-    $this->assertIdentical('en', $block->language()->getId());
-    $this->assertIdentical('<h3>My second custom block body</h3>', $block->body->value);
-    $this->assertIdentical('full_html', $block->body->format);
+    $this->assertEqual('en', $block->language()->getId());
+    $this->assertEqual('<h3>My second custom block body</h3>', $block->body->value);
+    $this->assertEqual('full_html', $block->body->format);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
index ecf393a..84c1898 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBlockTest.php
@@ -87,98 +87,98 @@ protected function setUp() {
    */
   public function testBlockMigration() {
     $blocks = Block::loadMultiple();
-    $this->assertIdentical(count($blocks), 10);
+    $this->assertEqual(count($blocks), 10);
 
     // User blocks
     $test_block_user = $blocks['user'];
     $this->assertNotNull($test_block_user);
-    $this->assertIdentical('sidebar_first', $test_block_user->getRegion());
-    $this->assertIdentical('bartik', $test_block_user->getTheme());
+    $this->assertEqual('sidebar_first', $test_block_user->getRegion());
+    $this->assertEqual('bartik', $test_block_user->getTheme());
     $visibility = $test_block_user->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(0, $test_block_user->getWeight());
+    $this->assertEqual(0, $test_block_user->getWeight());
 
     $test_block_user_1 = $blocks['user_1'];
     $this->assertNotNull($test_block_user_1);
-    $this->assertIdentical('sidebar_first', $test_block_user_1->getRegion());
-    $this->assertIdentical('bartik', $test_block_user_1->getTheme());
+    $this->assertEqual('sidebar_first', $test_block_user_1->getRegion());
+    $this->assertEqual('bartik', $test_block_user_1->getTheme());
     $visibility = $test_block_user_1->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(0, $test_block_user_1->getWeight());
+    $this->assertEqual(0, $test_block_user_1->getWeight());
 
     $test_block_user_2 = $blocks['user_2'];
     $this->assertNotNull($test_block_user_2);
-    $this->assertIdentical('sidebar_second', $test_block_user_2->getRegion());
-    $this->assertIdentical('bartik', $test_block_user_2->getTheme());
+    $this->assertEqual('sidebar_second', $test_block_user_2->getRegion());
+    $this->assertEqual('bartik', $test_block_user_2->getTheme());
     $visibility = $test_block_user_2->getVisibility();
-    $this->assertIdentical($visibility['user_role']['id'], 'user_role');
+    $this->assertEqual($visibility['user_role']['id'], 'user_role');
     $roles = array();
     $roles['authenticated'] = 'authenticated';
-    $this->assertIdentical($visibility['user_role']['roles'], $roles);
+    $this->assertEqual($visibility['user_role']['roles'], $roles);
     $this->assertFalse($visibility['user_role']['negate']);
-    $this->assertIdentical(-9, $test_block_user_2->getWeight());
+    $this->assertEqual(-9, $test_block_user_2->getWeight());
 
     $test_block_user_3 = $blocks['user_3'];
     $this->assertNotNull($test_block_user_3);
-    $this->assertIdentical('sidebar_second', $test_block_user_3->getRegion());
-    $this->assertIdentical('bartik', $test_block_user_3->getTheme());
+    $this->assertEqual('sidebar_second', $test_block_user_3->getRegion());
+    $this->assertEqual('bartik', $test_block_user_3->getTheme());
     $visibility = $test_block_user_3->getVisibility();
-    $this->assertIdentical($visibility['user_role']['id'], 'user_role');
+    $this->assertEqual($visibility['user_role']['id'], 'user_role');
     $roles = array();
     $roles['migrate_test_role_1'] = 'migrate_test_role_1';
-    $this->assertIdentical($visibility['user_role']['roles'], $roles);
+    $this->assertEqual($visibility['user_role']['roles'], $roles);
     $this->assertFalse($visibility['user_role']['negate']);
-    $this->assertIdentical(-6, $test_block_user_3->getWeight());
+    $this->assertEqual(-6, $test_block_user_3->getWeight());
 
     // Check system block
     $test_block_system = $blocks['system'];
     $this->assertNotNull($test_block_system);
-    $this->assertIdentical('footer', $test_block_system->getRegion());
-    $this->assertIdentical('bartik', $test_block_system->getTheme());
+    $this->assertEqual('footer', $test_block_system->getRegion());
+    $this->assertEqual('bartik', $test_block_system->getTheme());
     $visibility = $test_block_system->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(-5, $test_block_system->getWeight());
+    $this->assertEqual(-5, $test_block_system->getWeight());
 
     // Check menu blocks
     $test_block_menu = $blocks['menu'];
     $this->assertNotNull($test_block_menu);
-    $this->assertIdentical('header', $test_block_menu->getRegion());
-    $this->assertIdentical('bartik', $test_block_menu->getTheme());
+    $this->assertEqual('header', $test_block_menu->getRegion());
+    $this->assertEqual('bartik', $test_block_menu->getTheme());
     $visibility = $test_block_menu->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(-5, $test_block_menu->getWeight());
+    $this->assertEqual(-5, $test_block_menu->getWeight());
 
     // Check custom blocks
     $test_block_block = $blocks['block'];
     $this->assertNotNull($test_block_block);
-    $this->assertIdentical('content', $test_block_block->getRegion());
-    $this->assertIdentical('bartik', $test_block_block->getTheme());
+    $this->assertEqual('content', $test_block_block->getRegion());
+    $this->assertEqual('bartik', $test_block_block->getTheme());
     $visibility = $test_block_block->getVisibility();
-    $this->assertIdentical($visibility['request_path']['pages'], '<front>');
-    $this->assertIdentical(0, $test_block_block->getWeight());
+    $this->assertEqual($visibility['request_path']['pages'], '<front>');
+    $this->assertEqual(0, $test_block_block->getWeight());
 
     $test_block_block_1 = $blocks['block_1'];
     $this->assertNotNull($test_block_block_1);
-    $this->assertIdentical('right', $test_block_block_1->getRegion());
-    $this->assertIdentical('bluemarine', $test_block_block_1->getTheme());
+    $this->assertEqual('right', $test_block_block_1->getRegion());
+    $this->assertEqual('bluemarine', $test_block_block_1->getTheme());
     $visibility = $test_block_block_1->getVisibility();
-    $this->assertIdentical($visibility['request_path']['pages'], 'node');
-    $this->assertIdentical(-4, $test_block_block_1->getWeight());
+    $this->assertEqual($visibility['request_path']['pages'], 'node');
+    $this->assertEqual(-4, $test_block_block_1->getWeight());
 
     $test_block_block_2 = $blocks['block_2'];
     $this->assertNotNull($test_block_block_2);
-    $this->assertIdentical('right', $test_block_block_2->getRegion());
-    $this->assertIdentical('test_theme', $test_block_block_2->getTheme());
+    $this->assertEqual('right', $test_block_block_2->getRegion());
+    $this->assertEqual('test_theme', $test_block_block_2->getTheme());
     $visibility = $test_block_block_2->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(-7, $test_block_block_2->getWeight());
+    $this->assertEqual(-7, $test_block_block_2->getWeight());
 
     $test_block_block_3 = $blocks['block_3'];
     $this->assertNotNull($test_block_block_3);
-    $this->assertIdentical('left', $test_block_block_3->getRegion());
-    $this->assertIdentical('test_theme', $test_block_block_3->getTheme());
+    $this->assertEqual('left', $test_block_block_3->getRegion());
+    $this->assertEqual('test_theme', $test_block_block_3->getTheme());
     $visibility = $test_block_block_3->getVisibility();
     $this->assertTrue(empty($visibility['request_path']['pages']));
-    $this->assertIdentical(-2, $test_block_block_3->getWeight());
+    $this->assertEqual(-2, $test_block_block_3->getWeight());
   }
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
index 23e9173..fe55e14 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateBookTest.php
@@ -55,26 +55,26 @@ protected function setUp() {
    */
   public function testBook() {
     $nodes = Node::loadMultiple(array(4, 5, 6, 7, 8));
-    $this->assertIdentical($nodes[4]->book['bid'], '4');
-    $this->assertIdentical($nodes[4]->book['pid'], '0');
+    $this->assertEqual($nodes[4]->book['bid'], 4);
+    $this->assertEqual($nodes[4]->book['pid'], 0);
 
-    $this->assertIdentical($nodes[5]->book['bid'], '4');
-    $this->assertIdentical($nodes[5]->book['pid'], '4');
+    $this->assertEqual($nodes[5]->book['bid'], 4);
+    $this->assertEqual($nodes[5]->book['pid'], 4);
 
-    $this->assertIdentical($nodes[6]->book['bid'], '4');
-    $this->assertIdentical($nodes[6]->book['pid'], '5');
+    $this->assertEqual($nodes[6]->book['bid'], 4);
+    $this->assertEqual($nodes[6]->book['pid'], 5);
 
-    $this->assertIdentical($nodes[7]->book['bid'], '4');
-    $this->assertIdentical($nodes[7]->book['pid'], '5');
+    $this->assertEqual($nodes[7]->book['bid'], 4);
+    $this->assertEqual($nodes[7]->book['pid'], 5);
 
-    $this->assertIdentical($nodes[8]->book['bid'], '8');
-    $this->assertIdentical($nodes[8]->book['pid'], '0');
+    $this->assertEqual($nodes[8]->book['bid'], 8);
+    $this->assertEqual($nodes[8]->book['pid'], 0);
 
     $tree = \Drupal::service('book.manager')->bookTreeAllData(4);
-    $this->assertIdentical($tree['49990 Node 4 4']['link']['nid'], '4');
-    $this->assertIdentical($tree['49990 Node 4 4']['below']['50000 Node 5 5']['link']['nid'], '5');
-    $this->assertIdentical($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 6 6']['link']['nid'], '6');
-    $this->assertIdentical($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 7 7']['link']['nid'], '7');
+    $this->assertEqual($tree['49990 Node 4 4']['link']['nid'], 4);
+    $this->assertEqual($tree['49990 Node 4 4']['below']['50000 Node 5 5']['link']['nid'], 5);
+    $this->assertEqual($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 6 6']['link']['nid'], 6);
+    $this->assertEqual($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 7 7']['link']['nid'], 7);
     $this->assertIdentical($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 6 6']['below'], array());
     $this->assertIdentical($tree['49990 Node 4 4']['below']['50000 Node 5 5']['below']['50000 Node 7 7']['below'], array());
   }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
index 35a73c5..64b286c 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldRevisionTest.php
@@ -76,8 +76,8 @@ protected function setUp() {
    */
   public function testCckFieldRevision() {
     $node = \Drupal::entityManager()->getStorage('node')->loadRevision(2);
-    $this->assertIdentical($node->id(), '1', 'Node 1 loaded.');
-    $this->assertIdentical($node->getRevisionId(), '2', 'Node 1 revision 2loaded.');
+    $this->assertEqual($node->id(), 1, 'Node 1 loaded.');
+    $this->assertEqual($node->getRevisionId(), 2, 'Node 1 revision 2loaded.');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
index a4e906a..a6485e4 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
@@ -84,9 +84,7 @@ protected function setUp() {
     entity_create('field_storage_config', array(
       'entity_type' => 'node',
       'field_name' => 'field_multivalue',
-      'type' => 'decimal',
-      'precision' => '10',
-      'scale' => '2',
+      'type' => 'integer',
       'cardinality' => -1,
     ))->save();
     entity_create('field_config', array(
@@ -169,16 +167,16 @@ protected function setUp() {
   public function testCckFields() {
     $node = Node::load(1);
 
-    $this->assertIdentical($node->field_test->value, 'This is a shared text field');
-    $this->assertIdentical($node->field_test->format, 'filtered_html');
-    $this->assertIdentical($node->field_test_two->value, '10');
-    $this->assertIdentical($node->field_test_two[1]->value, '20');
+    $this->assertEqual($node->field_test->value, 'This is a shared text field');
+    $this->assertEqual($node->field_test->format, 'filtered_html');
+    $this->assertEqual($node->field_test_two->value, 10);
+    $this->assertEqual($node->field_test_two[1]->value, 20);
 
-    $this->assertIdentical($node->field_test_three->value, '42.42', 'Single field second value is correct.');
-    $this->assertIdentical($node->field_test_integer_selectlist[0]->value, '3412');
-    $this->assertIdentical($node->field_test_identical1->value, '1', 'Integer value is correct');
-    $this->assertIdentical($node->field_test_identical2->value, '1', 'Integer value is correct');
-    $this->assertIdentical($node->field_test_exclude_unset->value, 'This is a field with exclude unset.', 'Field with exclude unset is correct.');
+    $this->assertEqual($node->field_test_three->value, '42.42', 'Single field second value is correct.');
+    $this->assertEqual($node->field_test_integer_selectlist[0]->value, '3412');
+    $this->assertEqual($node->field_test_identical1->value, '1', 'Integer value is correct');
+    $this->assertEqual($node->field_test_identical2->value, '1', 'Integer value is correct');
+    $this->assertEqual($node->field_test_exclude_unset->value, 'This is a field with exclude unset.', 'Field with exclude unset is correct.');
 
     // Test that link fields are migrated.
     $this->assertIdentical($node->field_test_link->uri, 'http://drupal.org/project/drupal');
@@ -190,8 +188,8 @@ public function testCckFields() {
     $this->assertIdentical($node->field_test_filefield->target_id, '5');
 
     $planet_node = Node::load(3);
-    $this->assertIdentical($planet_node->field_multivalue->value, '33.00');
-    $this->assertIdentical($planet_node->field_multivalue[1]->value, '44.00');
+    $this->assertEqual($planet_node->field_multivalue->value, 33);
+    $this->assertEqual($planet_node->field_multivalue[1]->value, 44);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
index e44f31a..c1e9273 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTest.php
@@ -75,21 +75,21 @@ protected function setUp() {
   public function testComments() {
     /** @var \Drupal\comment\CommentInterface $comment */
     $comment = entity_load('comment', 1);
-    $this->assertIdentical('The first comment.', $comment->getSubject());
-    $this->assertIdentical('The first comment body.', $comment->comment_body->value);
-    $this->assertIdentical('filtered_html', $comment->comment_body->format);
-    $this->assertIdentical('0', $comment->pid->target_id);
-    $this->assertIdentical('1', $comment->getCommentedEntityId());
-    $this->assertIdentical('node', $comment->getCommentedEntityTypeId());
-    $this->assertIdentical('en', $comment->language()->getId());
-    $this->assertIdentical('comment_no_subject', $comment->getTypeId());
+    $this->assertEqual('The first comment.', $comment->getSubject());
+    $this->assertEqual('The first comment body.', $comment->comment_body->value);
+    $this->assertEqual('filtered_html', $comment->comment_body->format);
+    $this->assertEqual(0, $comment->pid->target_id);
+    $this->assertEqual(1, $comment->getCommentedEntityId());
+    $this->assertEqual('node', $comment->getCommentedEntityTypeId());
+    $this->assertEqual('en', $comment->language()->getId());
+    $this->assertEqual('comment_no_subject', $comment->getTypeId());
 
     $comment = entity_load('comment', 2);
-    $this->assertIdentical('The response to the second comment.', $comment->subject->value);
-    $this->assertIdentical('3', $comment->pid->target_id);
+    $this->assertEqual('The response to the second comment.', $comment->subject->value);
+    $this->assertEqual(3, $comment->pid->target_id);
 
     $comment = entity_load('comment', 3);
-    $this->assertIdentical('The second comment.', $comment->subject->value);
-    $this->assertIdentical('0', $comment->pid->target_id);
+    $this->assertEqual('The second comment.', $comment->subject->value);
+    $this->assertEqual(0, $comment->pid->target_id);
   }
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
index a056db4..45da40b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentTypeTest.php
@@ -42,9 +42,9 @@ protected function setUp() {
    */
   public function testCommentType() {
     $comment_type = entity_load('comment_type', 'comment');
-    $this->assertIdentical('node', $comment_type->getTargetEntityTypeId());
+    $this->assertEqual('node', $comment_type->getTargetEntityTypeId());
     $comment_type = entity_load('comment_type', 'comment_no_subject');
-    $this->assertIdentical('node', $comment_type->getTargetEntityTypeId());
+    $this->assertEqual('node', $comment_type->getTargetEntityTypeId());
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplayTest.php
index 0a6a4a8..d7f7a5f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityDisplayTest.php
@@ -30,9 +30,9 @@ class MigrateCommentVariableEntityDisplayTest extends MigrateCommentVariableDisp
   public function testCommentEntityDisplay() {
     foreach ($this->types as $type) {
       $component = entity_get_display('node', $type, 'default')->getComponent('comment');
-      $this->assertIdentical($component['label'], 'hidden');
-      $this->assertIdentical($component['type'], 'comment_default');
-      $this->assertIdentical($component['weight'], 20);
+      $this->assertEqual($component['label'], 'hidden');
+      $this->assertEqual($component['type'], 'comment_default');
+      $this->assertEqual($component['weight'], 20);
     }
   }
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
index 30bd4cb..8d6f970 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplaySubjectTest.php
@@ -60,8 +60,8 @@ protected function setUp() {
   public function testCommentEntityFormDisplay() {
     $component = entity_get_form_display('comment', 'comment', 'default')
       ->getComponent('subject');
-    $this->assertIdentical($component['type'], 'string_textfield');
-    $this->assertIdentical($component['weight'], 10);
+    $this->assertEqual($component['type'], 'string_textfield');
+    $this->assertEqual($component['weight'], 10);
     $component = entity_get_form_display('comment', 'comment_no_subject', 'default')
       ->getComponent('subject');
     $this->assertNull($component);
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
index 427b375..f0b3dc5 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableEntityFormDisplayTest.php
@@ -25,8 +25,8 @@ class MigrateCommentVariableEntityFormDisplayTest extends MigrateCommentVariable
   public function testCommentEntityFormDisplay() {
     foreach ($this->types as $type) {
       $component = entity_get_form_display('node', $type, 'default')->getComponent('comment');
-      $this->assertIdentical($component['type'], 'comment_default');
-      $this->assertIdentical($component['weight'], 20);
+      $this->assertEqual($component['type'], 'comment_default');
+      $this->assertEqual($component['weight'], 20);
     }
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstanceTest.php
index 5b5b31d..9ca6577 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCommentVariableInstanceTest.php
@@ -66,24 +66,24 @@ protected function setUp() {
    */
   public function testCommentFieldInstance() {
     $node = entity_create('node', array('type' => 'page'));
-    $this->assertIdentical($node->comment->status, 0);
-    $this->assertIdentical($node->comment->getFieldDefinition()->getName(), 'comment');
+    $this->assertEqual($node->comment->status, 0);
+    $this->assertEqual($node->comment->getFieldDefinition()->getName(), 'comment');
     $settings = $node->comment->getFieldDefinition()->getSettings();
-    $this->assertIdentical($settings['default_mode'], 4);
-    $this->assertIdentical($settings['per_page'], 50);
-    $this->assertIdentical($settings['anonymous'], 0);
-    $this->assertIdentical($settings['form_location'], FALSE);
-    $this->assertIdentical($settings['preview'], 1);
+    $this->assertEqual($settings['default_mode'], 4);
+    $this->assertEqual($settings['per_page'], 50);
+    $this->assertEqual($settings['anonymous'], 0);
+    $this->assertEqual($settings['form_location'], 0);
+    $this->assertEqual($settings['preview'], 1);
 
     $node = entity_create('node', array('type' => 'story'));
-    $this->assertIdentical($node->comment_no_subject->status, 2);
-    $this->assertIdentical($node->comment_no_subject->getFieldDefinition()->getName(), 'comment_no_subject');
+    $this->assertEqual($node->comment_no_subject->status, 2);
+    $this->assertEqual($node->comment_no_subject->getFieldDefinition()->getName(), 'comment_no_subject');
     $settings = $node->comment_no_subject->getFieldDefinition()->getSettings();
-    $this->assertIdentical($settings['default_mode'], 2);
-    $this->assertIdentical($settings['per_page'], 70);
-    $this->assertIdentical($settings['anonymous'], 1);
-    $this->assertIdentical($settings['form_location'], FALSE);
-    $this->assertIdentical($settings['preview'], 0);
+    $this->assertEqual($settings['default_mode'], 2);
+    $this->assertEqual($settings['per_page'], 70);
+    $this->assertEqual($settings['anonymous'], 1);
+    $this->assertEqual($settings['form_location'], 0);
+    $this->assertEqual($settings['preview'], 0);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
index 2655306..3d690d9 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateContactCategoryTest.php
@@ -46,22 +46,22 @@ protected function setUp() {
   public function testContactCategory() {
     /** @var \Drupal\contact\Entity\ContactForm $contact_form */
     $contact_form = ContactForm::load('website_feedback');
-    $this->assertIdentical($contact_form->label(), 'Website feedback');
-    $this->assertIdentical($contact_form->getRecipients(), array('admin@example.com'));
-    $this->assertIdentical($contact_form->getReply(), '');
-    $this->assertIdentical($contact_form->getWeight(), 0);
+    $this->assertEqual($contact_form->label(), 'Website feedback');
+    $this->assertEqual($contact_form->getRecipients(), array('admin@example.com'));
+    $this->assertEqual($contact_form->getReply(), '');
+    $this->assertEqual($contact_form->getWeight(), 0);
 
     $contact_form = ContactForm::load('some_other_category');
-    $this->assertIdentical($contact_form->label(), 'Some other category');
-    $this->assertIdentical($contact_form->getRecipients(), array('test@example.com'));
-    $this->assertIdentical($contact_form->getReply(), 'Thanks for contacting us, we will reply ASAP!');
-    $this->assertIdentical($contact_form->getWeight(), 1);
+    $this->assertEqual($contact_form->label(), 'Some other category');
+    $this->assertEqual($contact_form->getRecipients(), array('test@example.com'));
+    $this->assertEqual($contact_form->getReply(), 'Thanks for contacting us, we will reply ASAP!');
+    $this->assertEqual($contact_form->getWeight(), 1);
 
     $contact_form = ContactForm::load('a_category_much_longer_than_thir');
-    $this->assertIdentical($contact_form->label(), 'A category much longer than thirty two characters');
-    $this->assertIdentical($contact_form->getRecipients(), array('fortyninechars@example.com'));
-    $this->assertIdentical($contact_form->getReply(), '');
-    $this->assertIdentical($contact_form->getWeight(), 2);
+    $this->assertEqual($contact_form->label(), 'A category much longer than thirty two characters');
+    $this->assertEqual($contact_form->getRecipients(), array('fortyninechars@example.com'));
+    $this->assertEqual($contact_form->getReply(), '');
+    $this->assertEqual($contact_form->getWeight(), 2);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
index 0bd3d1c..b1c967e 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDateFormatTest.php
@@ -35,13 +35,13 @@ protected function setUp() {
    */
   public function testDateFormats() {
     $short_date_format = entity_load('date_format', 'short');
-    $this->assertIdentical('\S\H\O\R\T m/d/Y - H:i', $short_date_format->getPattern());
+    $this->assertEqual('\S\H\O\R\T m/d/Y - H:i', $short_date_format->getPattern());
 
     $medium_date_format = entity_load('date_format', 'medium');
-    $this->assertIdentical('\M\E\D\I\U\M D, m/d/Y - H:i', $medium_date_format->getPattern());
+    $this->assertEqual('\M\E\D\I\U\M D, m/d/Y - H:i', $medium_date_format->getPattern());
 
     $long_date_format = entity_load('date_format', 'long');
-    $this->assertIdentical('\L\O\N\G l, F j, Y - H:i', $long_date_format->getPattern());
+    $this->assertEqual('\L\O\N\G l, F j, Y - H:i', $long_date_format->getPattern());
 
     // Test that we can re-import using the EntityDateFormat destination.
     Database::getConnection('default', 'migrate')
@@ -55,7 +55,7 @@ public function testDateFormats() {
     $executable->import();
 
     $short_date_format = entity_load('date_format', 'short');
-    $this->assertIdentical('\S\H\O\R\T d/m/Y - H:i', $short_date_format->getPattern());
+    $this->assertEqual('\S\H\O\R\T d/m/Y - H:i', $short_date_format->getPattern());
 
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
index 71f3e0f..99520a3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
@@ -84,8 +84,8 @@ public function testEntityDisplaySettings() {
     // Run tests.
     $field_name = "field_test";
     $expected = array(
-      'label' => 'above',
       'weight' => 1,
+      'label' => 'above',
       'type' => 'text_trimmed',
       'settings' => array('trim_length' => 600),
       'third_party_settings' => array(),
@@ -93,23 +93,23 @@ public function testEntityDisplaySettings() {
 
     // Can we load any entity display.
     $display = entity_load('entity_view_display', 'node.story.teaser');
-    $this->assertIdentical($display->getComponent($field_name), $expected);
+    $this->assertEqual($display->getComponent($field_name), $expected);
 
     // Test migrate worked with multiple bundles.
     $display = entity_load('entity_view_display', 'node.test_page.teaser');
     $expected['weight'] = 35;
-    $this->assertIdentical($display->getComponent($field_name), $expected);
+    $this->assertEqual($display->getComponent($field_name), $expected);
 
     // Test RSS because that has been converted from 4 to rss.
     $display = entity_load('entity_view_display', 'node.story.rss');
     $expected['weight'] = 1;
-    $this->assertIdentical($display->getComponent($field_name), $expected);
+    $this->assertEqual($display->getComponent($field_name), $expected);
 
     // Test the default format with text_default which comes from a static map.
     $expected['type'] = 'text_default';
     $expected['settings'] = array();
     $display = entity_load('entity_view_display', 'node.story.default');
-    $this->assertIdentical($display->getComponent($field_name), $expected);
+    $this->assertEqual($display->getComponent($field_name), $expected);
 
     // Check that we can migrate multiple fields.
     $content = $display->get('content');
@@ -127,111 +127,107 @@ public function testEntityDisplaySettings() {
       'prefix_suffix' => TRUE,
     );
     $component = $display->getComponent('field_test_two');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $expected['weight'] = 2;
     $expected['type'] = 'number_decimal';
-    $expected['settings'] = array(
-       'scale' => 2,
-       'decimal_separator' => '.',
-       'thousand_separator' => ',',
-       'prefix_suffix' => TRUE,
-    );
+    $expected['settings']['scale'] = 2;
+    $expected['settings']['decimal_separator'] = '.';
     $component = $display->getComponent('field_test_three');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test the email field formatter settings are correct.
     $expected['weight'] = 6;
     $expected['type'] = 'email_mailto';
     $expected['settings'] = array();
     $component = $display->getComponent('field_test_email');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test the link field formatter settings.
     $expected['weight'] = 7;
     $expected['type'] = 'link';
     $expected['settings'] = array(
       'trim_length' => 80,
-      'url_only' => TRUE,
-      'url_plain' => TRUE,
-      'rel' => '0',
-      'target' => '0',
+      'url_only' => 1,
+      'url_plain' => 1,
+      'rel' => 0,
+      'target' => 0,
     );
     $component = $display->getComponent('field_test_link');
-    $this->assertIdentical($component, $expected);
-    $expected['settings']['url_only'] = FALSE;
-    $expected['settings']['url_plain'] = FALSE;
+    $this->assertEqual($component, $expected);
+    $expected['settings']['url_only'] = 0;
+    $expected['settings']['url_plain'] = 0;
     $display = entity_load('entity_view_display', 'node.story.teaser');
     $component = $display->getComponent('field_test_link');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test the file field formatter settings.
     $expected['weight'] = 8;
     $expected['type'] = 'file_default';
     $expected['settings'] = array();
     $component = $display->getComponent('field_test_filefield');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $display = entity_load('entity_view_display', 'node.story.default');
     $expected['type'] = 'file_url_plain';
     $component = $display->getComponent('field_test_filefield');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test the image field formatter settings.
     $expected['weight'] = 9;
     $expected['type'] = 'image';
     $expected['settings'] = array('image_style' => '', 'image_link' => '');
     $component = $display->getComponent('field_test_imagefield');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $display = entity_load('entity_view_display', 'node.story.teaser');
     $expected['settings']['image_link'] = 'file';
     $component = $display->getComponent('field_test_imagefield');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test phone field.
     $expected['weight'] = 13;
     $expected['type'] = 'basic_string';
     $expected['settings'] = array();
     $component = $display->getComponent('field_test_phone');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test date field.
     $expected['weight'] = 10;
     $expected['type'] = 'datetime_default';
     $expected['settings'] = array('format_type' => 'fallback');
     $component = $display->getComponent('field_test_date');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $display = entity_load('entity_view_display', 'node.story.default');
     $expected['settings']['format_type'] = 'long';
     $component = $display->getComponent('field_test_date');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test date stamp field.
     $expected['weight'] = 11;
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datestamp');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $display = entity_load('entity_view_display', 'node.story.teaser');
     $expected['settings'] = array('format_type' => 'medium');
     $component = $display->getComponent('field_test_datestamp');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test datetime field.
     $expected['weight'] = 12;
     $expected['settings'] = array('format_type' => 'short');
     $component = $display->getComponent('field_test_datetime');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     $display = entity_load('entity_view_display', 'node.story.default');
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datetime');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Test a date field with a random format which should be mapped
     // to datetime_default.
     $display = entity_load('entity_view_display', 'node.story.rss');
     $expected['settings']['format_type'] = 'fallback';
     $component = $display->getComponent('field_test_datetime');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
     // Test that our Id map has the correct data.
-    $this->assertIdentical(array('node', 'story', 'teaser', 'field_test'), entity_load('migration', 'd6_field_formatter_settings')->getIdMap()->lookupDestinationID(array('story', 'teaser', 'node', 'field_test')));
+    $this->assertEqual(array('node', 'story', 'teaser', 'field_test'), entity_load('migration', 'd6_field_formatter_settings')->getIdMap()->lookupDestinationID(array('story', 'teaser', 'node', 'field_test')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
index cf75770..dc4d2c8 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
@@ -89,42 +89,42 @@ public function testFieldInstanceSettings() {
     $entity = entity_create('node', array('type' => 'story'));
     // Test a text field.
     $field = FieldConfig::load('node.story.field_test');
-    $this->assertIdentical($field->label(), 'Text Field');
+    $this->assertEqual($field->label(), 'Text Field');
     $expected = array('max_length' => 255);
-    $this->assertIdentical($field->getSettings(), $expected);
-    $this->assertIdentical('text for default value', $entity->field_test->value);
+    $this->assertEqual($field->getSettings(), $expected);
+    $this->assertEqual('text for default value', $entity->field_test->value);
 
     // Test a number field.
     $field = FieldConfig::load('node.story.field_test_two');
-    $this->assertIdentical($field->label(), 'Integer Field');
+    $this->assertEqual($field->label(), 'Integer Field');
     $expected = array(
-      'min' => 10,
-      'max' => 100,
+      'min' => '10',
+      'max' => '100',
       'prefix' => 'pref',
       'suffix' => 'suf',
-      'unsigned' => FALSE,
+      'unsigned' => '',
       'size' => 'normal',
     );
-    $this->assertIdentical($field->getSettings(), $expected);
+    $this->assertEqual($field->getSettings(), $expected);
 
     $field = FieldConfig::load('node.story.field_test_four');
-    $this->assertIdentical($field->label(), 'Float Field');
+    $this->assertEqual($field->label(), 'Float Field');
     $expected = array(
-      'min' => 100.0,
-      'max' => 200.0,
+      'min' => 100,
+      'max' => 200,
       'prefix' => 'id-',
       'suffix' => '',
     );
-    $this->assertIdentical($field->getSettings(), $expected);
+    $this->assertEqual($field->getSettings(), $expected);
 
     // Test email field.
     $field = FieldConfig::load('node.story.field_test_email');
-    $this->assertIdentical($field->label(), 'Email Field');
-    $this->assertIdentical('benjy@example.com', $entity->field_test_email->value);
+    $this->assertEqual($field->label(), 'Email Field');
+    $this->assertEqual('benjy@example.com', $entity->field_test_email->value);
 
     // Test a filefield.
     $field = FieldConfig::load('node.story.field_test_filefield');
-    $this->assertIdentical($field->label(), 'File Field');
+    $this->assertEqual($field->label(), 'File Field');
     $expected = array(
       'file_extensions' => 'txt pdf doc',
       'file_directory' => 'images',
@@ -143,11 +143,11 @@ public function testFieldInstanceSettings() {
 
     // Test a link field.
     $field = FieldConfig::load('node.story.field_test_link');
-    $this->assertIdentical($field->label(), 'Link Field');
+    $this->assertEqual($field->label(), 'Link Field');
     $expected = array('title' => 2, 'link_type' => LinkItemInterface::LINK_GENERIC);
-    $this->assertIdentical($field->getSettings(), $expected);
-    $this->assertIdentical('default link title', $entity->field_test_link->title, 'Field field_test_link default title is correct.');
-    $this->assertIdentical('http://drupal.org', $entity->field_test_link->url, 'Field field_test_link default title is correct.');
+    $this->assertEqual($field->getSettings(), $expected);
+    $this->assertEqual('default link title', $entity->field_test_link->title, 'Field field_test_link default title is correct.');
+    $this->assertEqual('http://drupal.org', $entity->field_test_link->url, 'Field field_test_link default title is correct.');
     $this->assertIdentical($entity->field_test_link->options['attributes'], []);
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
index 296ae36..d2ca2ad 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
@@ -52,67 +52,68 @@ public function testFields() {
     /** @var \Drupal\field\Entity\FieldStorageConfig $field_storage */
     $field_storage = FieldStorageConfig::load('node.field_test');
     $expected = array('max_length' => 255);
-    $this->assertIdentical($field_storage->type, "text",  t('Field type is @fieldtype. It should be text.', array('@fieldtype' => $field_storage->type)));
-    $this->assertIdentical($field_storage->settings, $expected, "Field type text settings are correct");
+    $this->assertEqual($field_storage->type, "text",  t('Field type is @fieldtype. It should be text.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->settings, $expected, "Field type text settings are correct");
 
     // Integer field.
     $field_storage = FieldStorageConfig::load('node.field_test_two');
-    $this->assertIdentical($field_storage->type, "integer",  t('Field type is @fieldtype. It should be integer.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "integer",  t('Field type is @fieldtype. It should be integer.', array('@fieldtype' => $field_storage->type)));
 
     // Float field.
     $field_storage = FieldStorageConfig::load('node.field_test_three');
-    $this->assertIdentical($field_storage->type, "decimal",  t('Field type is @fieldtype. It should be decimal.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "decimal",  t('Field type is @fieldtype. It should be decimal.', array('@fieldtype' => $field_storage->type)));
 
     // Link field.
     $field_storage = FieldStorageConfig::load('node.field_test_link');
-    $this->assertIdentical($field_storage->type, "link",  t('Field type is @fieldtype. It should be link.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "link",  t('Field type is @fieldtype. It should be link.', array('@fieldtype' => $field_storage->type)));
 
     // File field.
     $field_storage = FieldStorageConfig::load('node.field_test_filefield');
-    $this->assertIdentical($field_storage->type, "file",  t('Field type is @fieldtype. It should be file.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "file",  t('Field type is @fieldtype. It should be file.', array('@fieldtype' => $field_storage->type)));
 
     $field_storage = FieldStorageConfig::load('node.field_test_imagefield');
-    $this->assertIdentical($field_storage->type, "image",  t('Field type is @fieldtype. It should be image.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "image",  t('Field type is @fieldtype. It should be image.', array('@fieldtype' => $field_storage->type)));
     $settings = $field_storage->getSettings();
-    $this->assertIdentical($settings['target_type'], 'file');
-    $this->assertIdentical($settings['uri_scheme'], 'public');
-    $this->assertIdentical(array_filter($settings['default_image']), array());
+    $this->assertEqual($settings['target_type'], 'file');
+    $this->assertEqual($settings['uri_scheme'], 'public');
+    $this->assertEqual($settings['default_image']['uuid'], '');
+    $this->assertEqual(array_filter($settings['default_image']), array());
 
     // Phone field.
     $field_storage = FieldStorageConfig::load('node.field_test_phone');
-    $this->assertIdentical($field_storage->type, "telephone",  t('Field type is @fieldtype. It should be telephone.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "telephone",  t('Field type is @fieldtype. It should be telephone.', array('@fieldtype' => $field_storage->type)));
 
     // Date field.
     $field_storage = FieldStorageConfig::load('node.field_test_datetime');
-    $this->assertIdentical($field_storage->type, "datetime",  t('Field type is @fieldtype. It should be datetime.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "datetime",  t('Field type is @fieldtype. It should be datetime.', array('@fieldtype' => $field_storage->type)));
 
     // Decimal field with radio buttons.
     $field_storage = FieldStorageConfig::load('node.field_test_decimal_radio_buttons');
-    $this->assertIdentical($field_storage->type, "list_float",  t('Field type is @fieldtype. It should be list_float.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "list_float",  t('Field type is @fieldtype. It should be list_float.', array('@fieldtype' => $field_storage->type)));
     $this->assertNotNull($field_storage->settings['allowed_values']['1.2'], t('First allowed value key is set to 1.2'));
     $this->assertNotNull($field_storage->settings['allowed_values']['2.1'], t('Second allowed value key is set to 2.1'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['1.2'], '1.2', t('First allowed value is set to 1.2'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['2.1'], '2.1', t('Second allowed value is set to 1.2'));
+    $this->assertEqual($field_storage->settings['allowed_values']['1.2'], '1.2', t('First allowed value is set to 1.2'));
+    $this->assertEqual($field_storage->settings['allowed_values']['2.1'], '2.1', t('Second allowed value is set to 1.2'));
 
     // Float field with a single checkbox.
     $field_storage = FieldStorageConfig::load('node.field_test_float_single_checkbox');
-    $this->assertIdentical($field_storage->type, "boolean",  t('Field type is @fieldtype. It should be boolean.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "boolean",  t('Field type is @fieldtype. It should be boolean.', array('@fieldtype' => $field_storage->type)));
 
     // Integer field with a select list.
     $field_storage = FieldStorageConfig::load('node.field_test_integer_selectlist');
-    $this->assertIdentical($field_storage->type, "list_integer",  t('Field type is @fieldtype. It should be list_integer.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "list_integer",  t('Field type is @fieldtype. It should be list_integer.', array('@fieldtype' => $field_storage->type)));
     $this->assertNotNull($field_storage->settings['allowed_values']['1234'], t('First allowed value key is set to 1234'));
     $this->assertNotNull($field_storage->settings['allowed_values']['2341'], t('Second allowed value key is set to 2341'));
     $this->assertNotNull($field_storage->settings['allowed_values']['3412'], t('Third allowed value key is set to 3412'));
     $this->assertNotNull($field_storage->settings['allowed_values']['4123'], t('Fourth allowed value key is set to 4123'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['1234'], '1234', t('First allowed value is set to 1234'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['2341'], '2341', t('Second allowed value is set to 2341'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['3412'], '3412', t('Third allowed value is set to 3412'));
-    $this->assertIdentical($field_storage->settings['allowed_values']['4123'], '4123', t('Fourth allowed value is set to 4123'));
+    $this->assertEqual($field_storage->settings['allowed_values']['1234'], '1234', t('First allowed value is set to 1234'));
+    $this->assertEqual($field_storage->settings['allowed_values']['2341'], '2341', t('Second allowed value is set to 2341'));
+    $this->assertEqual($field_storage->settings['allowed_values']['3412'], '3412', t('Third allowed value is set to 3412'));
+    $this->assertEqual($field_storage->settings['allowed_values']['4123'], '4123', t('Fourth allowed value is set to 4123'));
 
     // Text field with a single checkbox.
     $field_storage = FieldStorageConfig::load('node.field_test_text_single_checkbox');
-    $this->assertIdentical($field_storage->type, "boolean",  t('Field type is @fieldtype. It should be boolean.', array('@fieldtype' => $field_storage->type)));
+    $this->assertEqual($field_storage->type, "boolean",  t('Field type is @fieldtype. It should be boolean.', array('@fieldtype' => $field_storage->type)));
 
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
index 25612c2..d9346b3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
@@ -81,37 +81,37 @@ protected function setUp() {
   public function testWidgetSettings() {
     // Test the config can be loaded.
     $form_display = entity_load('entity_form_display', 'node.story.default');
-    $this->assertIdentical(is_null($form_display), FALSE, "Form display node.story.default loaded with config.");
+    $this->assertEqual(is_null($form_display), FALSE, "Form display node.story.default loaded with config.");
 
     // Text field.
     $component = $form_display->getComponent('field_test');
     $expected = array('weight' => 1, 'type' => 'text_textfield');
     $expected['settings'] = array('size' => 60, 'placeholder' => '');
     $expected['third_party_settings'] = array();
-    $this->assertIdentical($component, $expected, 'Text field settings are correct.');
+    $this->assertEqual($component, $expected, 'Text field settings are correct.');
 
     // Integer field.
     $component = $form_display->getComponent('field_test_two');
     $expected['type'] = 'number';
     $expected['weight'] = 1;
     $expected['settings'] = array('placeholder' => '');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Float field.
     $component = $form_display->getComponent('field_test_three');
     $expected['weight'] = 2;
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Email field.
     $component = $form_display->getComponent('field_test_email');
     $expected['type'] = 'email_default';
     $expected['weight'] = 6;
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Link field.
     $component = $form_display->getComponent('field_test_link');
-    $this->assertIdentical($component['type'], 'link_default');
-    $this->assertIdentical($component['weight'], 7);
+    $this->assertEqual($component['type'], 'link_default');
+    $this->assertEqual($component['weight'], 7);
     $this->assertFalse(array_filter($component['settings']));
 
     // File field.
@@ -119,36 +119,36 @@ public function testWidgetSettings() {
     $expected['type'] = 'file_generic';
     $expected['weight'] = 8;
     $expected['settings'] = array('progress_indicator' => 'bar');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Image field.
     $component = $form_display->getComponent('field_test_imagefield');
     $expected['type'] = 'image_image';
     $expected['weight'] = 9;
     $expected['settings'] = array('progress_indicator' => 'bar', 'preview_image_style' => 'thumbnail');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Phone field.
     $component = $form_display->getComponent('field_test_phone');
     $expected['type'] = 'telephone_default';
     $expected['weight'] = 13;
     $expected['settings'] = array('placeholder' => '');
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     // Date fields.
     $component = $form_display->getComponent('field_test_date');
     $expected['type'] = 'datetime_default';
     $expected['weight'] = 10;
     $expected['settings'] = array();
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     $component = $form_display->getComponent('field_test_datestamp');
     $expected['weight'] = 11;
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
     $component = $form_display->getComponent('field_test_datetime');
     $expected['weight'] = 12;
-    $this->assertIdentical($component, $expected);
+    $this->assertEqual($component, $expected);
 
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
index acbcd24..9799c5c 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
@@ -54,10 +54,10 @@ protected function setUp() {
   public function testFiles() {
     /** @var \Drupal\file\FileInterface $file */
     $file = entity_load('file', 1);
-    $this->assertIdentical($file->getFilename(), 'Image1.png');
-    $this->assertIdentical($file->getSize(), '39325');
-    $this->assertIdentical($file->getFileUri(), 'public://image-1.png');
-    $this->assertIdentical($file->getMimeType(), 'image/png');
+    $this->assertEqual($file->getFilename(), 'Image1.png');
+    $this->assertEqual($file->getSize(), 39325);
+    $this->assertEqual($file->getFileUri(), 'public://image-1.png');
+    $this->assertEqual($file->getMimeType(), 'image/png');
     // It is pointless to run the second half from MigrateDrupal6Test.
     if (empty($this->standalone)) {
       return;
@@ -86,7 +86,7 @@ public function testFiles() {
     $executable->import();
 
     $file = entity_load('file', 2);
-    $this->assertIdentical($file->getFileUri(), 'public://core/modules/simpletest/files/image-2.jpg');
+    $this->assertEqual($file->getFileUri(), 'public://core/modules/simpletest/files/image-2.jpg');
 
     // Ensure that a temporary file has been migrated.
     $file = entity_load('file', 6);
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
index 5522673..fc89648 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateMenuTest.php
@@ -39,9 +39,9 @@ protected function setUp() {
    */
   public function testMenu() {
     $navigation_menu = Menu::load('navigation');
-    $this->assertIdentical($navigation_menu->id(), 'navigation');
-    $this->assertIdentical($navigation_menu->label(), 'Navigation');
-    $this->assertIdentical($navigation_menu->getDescription() , 'The navigation menu is provided by Drupal and is the main interactive menu for any site. It is usually the only menu that contains personalized links for authenticated users, and is often not even visible to anonymous users.');
+    $this->assertEqual($navigation_menu->id(), 'navigation');
+    $this->assertEqual($navigation_menu->label(), 'Navigation');
+    $this->assertEqual($navigation_menu->getDescription() , 'The navigation menu is provided by Drupal and is the main interactive menu for any site. It is usually the only menu that contains personalized links for authenticated users, and is often not even visible to anonymous users.');
 
     // Test that we can re-import using the ConfigEntityBase destination.
     Database::getConnection('default', 'migrate')
@@ -56,7 +56,7 @@ public function testMenu() {
     $executable->import();
 
     $navigation_menu = entity_load_unchanged('menu', 'navigation');
-    $this->assertIdentical($navigation_menu->label(), 'Home Navigation');
+    $this->assertEqual($navigation_menu->label(), 'Home Navigation');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeBundleSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeBundleSettingsTest.php
index 2306cbf..503780c 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeBundleSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeBundleSettingsTest.php
@@ -86,21 +86,21 @@ public function testNodeBundleSettings() {
 
     // Test settings on test_page bundle.
     $node = entity_create('node', array('type' => 'test_page'));
-    $this->assertIdentical($node->status->value, 1);
-    $this->assertIdentical($node->promote->value, 1);
-    $this->assertIdentical($node->sticky->value, 1);
+    $this->assertEqual($node->status->value, TRUE);
+    $this->assertEqual($node->promote->value, TRUE);
+    $this->assertEqual($node->sticky->value, TRUE);
 
     // Test settings for test_story bundle.
     $node = entity_create('node', array('type' => 'test_story'));
-    $this->assertIdentical($node->status->value, 1);
-    $this->assertIdentical($node->promote->value, 1);
-    $this->assertIdentical($node->sticky->value, 0);
+    $this->assertEqual($node->status->value, TRUE);
+    $this->assertEqual($node->promote->value, TRUE);
+    $this->assertEqual($node->sticky->value, FALSE);
 
     // Test settings for the test_event bundle.
     $node = entity_create('node', array('type' => 'test_event'));
-    $this->assertIdentical($node->status->value, 0);
-    $this->assertIdentical($node->promote->value, 0);
-    $this->assertIdentical($node->sticky->value, 1);
+    $this->assertEqual($node->status->value, FALSE);
+    $this->assertEqual($node->promote->value, FALSE);
+    $this->assertEqual($node->sticky->value, TRUE);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
index d5aa3b3..c16044a 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeRevisionTest.php
@@ -55,22 +55,22 @@ protected function setUp() {
   public function testNodeRevision() {
     $node = \Drupal::entityManager()->getStorage('node')->loadRevision(2);
     /** @var \Drupal\node\NodeInterface $node */
-    $this->assertIdentical($node->id(), '1');
-    $this->assertIdentical($node->getRevisionId(), '2');
-    $this->assertIdentical($node->langcode->value, 'und');
-    $this->assertIdentical($node->getTitle(), 'Test title rev 2');
-    $this->assertIdentical($node->body->value, 'body test rev 2');
-    $this->assertIdentical($node->body->summary, 'teaser test rev 2');
-    $this->assertIdentical($node->getRevisionAuthor()->id(), '2');
-    $this->assertIdentical($node->revision_log->value, 'modified rev 2');
-    $this->assertIdentical($node->getRevisionCreationTime(), '1390095702');
+    $this->assertEqual($node->id(), 1);
+    $this->assertEqual($node->getRevisionId(), 2);
+    $this->assertEqual($node->langcode->value, 'und');
+    $this->assertEqual($node->getTitle(), 'Test title rev 2');
+    $this->assertEqual($node->body->value, 'body test rev 2');
+    $this->assertEqual($node->body->summary, 'teaser test rev 2');
+    $this->assertEqual($node->getRevisionAuthor()->id(), 2);
+    $this->assertEqual($node->revision_log->value, 'modified rev 2');
+    $this->assertEqual($node->getRevisionCreationTime(), '1390095702');
 
     $node = \Drupal::entityManager()->getStorage('node')->loadRevision(5);
-    $this->assertIdentical($node->id(), '1');
-    $this->assertIdentical($node->body->value, 'body test rev 3');
-    $this->assertIdentical($node->getRevisionAuthor()->id(), '1');
-    $this->assertIdentical($node->revision_log->value, 'modified rev 3');
-    $this->assertIdentical($node->getRevisionCreationTime(), '1390095703');
+    $this->assertEqual($node->id(), 1);
+    $this->assertEqual($node->body->value, 'body test rev 3');
+    $this->assertEqual($node->getRevisionAuthor()->id(), 1);
+    $this->assertEqual($node->revision_log->value, 'modified rev 3');
+    $this->assertEqual($node->getRevisionCreationTime(), '1390095703');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
index 6da7ab0..d682bab 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTest.php
@@ -38,24 +38,24 @@ protected function setUp() {
    */
   public function testNode() {
     $node = Node::load(1);
-    $this->assertIdentical($node->id(), '1', 'Node 1 loaded.');
-    $this->assertIdentical($node->langcode->value, 'und');
-    $this->assertIdentical($node->body->value, 'test');
-    $this->assertIdentical($node->body->summary, 'test');
-    $this->assertIdentical($node->body->format, 'filtered_html');
-    $this->assertIdentical($node->getType(), 'story', 'Node has the correct bundle.');
-    $this->assertIdentical($node->getTitle(), 'Test title', 'Node has the correct title.');
-    $this->assertIdentical($node->getCreatedTime(), '1388271197', 'Node has the correct created time.');
-    $this->assertIdentical($node->isSticky(), FALSE);
-    $this->assertIdentical($node->getOwnerId(), '1');
-    $this->assertIdentical($node->getRevisionCreationTime(), '1420861423');
+    $this->assertEqual($node->id(), 1, 'Node 1 loaded.');
+    $this->assertEqual($node->langcode->value, 'und');
+    $this->assertEqual($node->body->value, 'test');
+    $this->assertEqual($node->body->summary, 'test');
+    $this->assertEqual($node->body->format, 'filtered_html');
+    $this->assertEqual($node->getType(), 'story', 'Node has the correct bundle.');
+    $this->assertEqual($node->getTitle(), 'Test title', 'Node has the correct title.');
+    $this->assertEqual($node->getCreatedTime(), 1388271197, 'Node has the correct created time.');
+    $this->assertEqual($node->isSticky(), FALSE);
+    $this->assertEqual($node->getOwnerId(), 1);
+    $this->assertEqual($node->getRevisionCreationTime(), 1420861423);
 
     /** @var \Drupal\node\NodeInterface $node_revision */
     $node_revision = \Drupal::entityManager()->getStorage('node')->loadRevision(1);
-    $this->assertIdentical($node_revision->getTitle(), 'Test title');
-    $this->assertIdentical($node_revision->getRevisionAuthor()->id(), '1', 'Node revision has the correct user');
+    $this->assertEqual($node_revision->getTitle(), 'Test title');
+    $this->assertEqual($node_revision->getRevisionAuthor()->id(), 1, 'Node revision has the correct user');
     // This is empty on the first revision.
-    $this->assertIdentical($node_revision->revision_log->value, '');
+    $this->assertEqual($node_revision->revision_log->value, '');
 
     // It is pointless to run the second half from MigrateDrupal6Test.
     if (empty($this->standalone)) {
@@ -81,10 +81,10 @@ public function testNode() {
     $executable->import();
 
     $node = Node::load(1);
-    $this->assertIdentical($node->getTitle(), 'New node title');
+    $this->assertEqual($node->getTitle(), 'New node title');
     // Test a multi-column fields are correctly upgraded.
-    $this->assertIdentical($node->body->value, 'test');
-    $this->assertIdentical($node->body->format, 'full_html');
+    $this->assertEqual($node->body->value, 'test');
+    $this->assertEqual($node->body->format, 'full_html');
 
     $node = Node::load(3);
     // Test that format = 0 from source maps to filtered_html.
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php
index 30bbae7..20343a6 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php
@@ -64,7 +64,6 @@ protected function setUp() {
       'type' => 'story',
       'nid' => 1,
       'vid' => 1,
-      'revision_log' => '',
     ));
     $node->enforceIsNew();
     $node->save();
@@ -73,7 +72,6 @@ protected function setUp() {
       'type' => 'test_planet',
       'nid' => 3,
       'vid' => 4,
-      'revision_log' => '',
     ));
     $node->enforceIsNew();
     $node->save();
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
index c90d1f1..809bc4f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTypeTest.php
@@ -47,42 +47,42 @@ public function testNodeType() {
     $migration = entity_load('migration', 'd6_node_type');
     // Test the test_page content type.
     $node_type_page = entity_load('node_type', 'test_page');
-    $this->assertIdentical($node_type_page->id(), 'test_page', 'Node type test_page loaded');
+    $this->assertEqual($node_type_page->id(), 'test_page', 'Node type test_page loaded');
 
-    $this->assertIdentical($node_type_page->displaySubmitted(), TRUE);
-    $this->assertIdentical($node_type_page->isNewRevision(), FALSE);
-    $this->assertIdentical($node_type_page->getPreviewMode(), DRUPAL_OPTIONAL);
-    $this->assertIdentical(array('test_page'), $migration->getIdMap()->lookupDestinationID(array('test_page')));
+    $this->assertEqual($node_type_page->displaySubmitted(), TRUE);
+    $this->assertEqual($node_type_page->isNewRevision(), FALSE);
+    $this->assertEqual($node_type_page->getPreviewMode(), DRUPAL_OPTIONAL);
+    $this->assertEqual(array('test_page'), $migration->getIdMap()->lookupDestinationID(array('test_page')));
 
     // Test we have a body field.
     $field = FieldConfig::loadByName('node', 'test_page', 'body');
-    $this->assertIdentical($field->getLabel(), 'This is the body field label', 'Body field was found.');
+    $this->assertEqual($field->getLabel(), 'This is the body field label', 'Body field was found.');
 
     // Test the test_story content type.
     $node_type_story = entity_load('node_type', 'test_story');
-    $this->assertIdentical($node_type_story->id(), 'test_story', 'Node type test_story loaded');
+    $this->assertEqual($node_type_story->id(), 'test_story', 'Node type test_story loaded');
 
-    $this->assertIdentical($node_type_story->displaySubmitted(), TRUE);
-    $this->assertIdentical($node_type_story->isNewRevision(), FALSE);
-    $this->assertIdentical($node_type_story->getPreviewMode(), DRUPAL_OPTIONAL);
-    $this->assertIdentical(array('test_story'), $migration->getIdMap()->lookupDestinationID(array('test_story')));
+    $this->assertEqual($node_type_story->displaySubmitted(), TRUE);
+    $this->assertEqual($node_type_story->isNewRevision(), FALSE);
+    $this->assertEqual($node_type_story->getPreviewMode(), DRUPAL_OPTIONAL);
+    $this->assertEqual(array('test_story'), $migration->getIdMap()->lookupDestinationID(array('test_story')));
 
     // Test we don't have a body field.
     $field = FieldConfig::loadByName('node', 'test_story', 'body');
-    $this->assertIdentical($field, NULL, 'No body field found');
+    $this->assertEqual($field, NULL, 'No body field found');
 
     // Test the test_event content type.
     $node_type_event = entity_load('node_type', 'test_event');
-    $this->assertIdentical($node_type_event->id(), 'test_event', 'Node type test_event loaded');
+    $this->assertEqual($node_type_event->id(), 'test_event', 'Node type test_event loaded');
 
-    $this->assertIdentical($node_type_event->displaySubmitted(), TRUE);
-    $this->assertIdentical($node_type_event->isNewRevision(), TRUE);
-    $this->assertIdentical($node_type_event->getPreviewMode(), DRUPAL_OPTIONAL);
-    $this->assertIdentical(array('test_event'), $migration->getIdMap()->lookupDestinationID(array('test_event')));
+    $this->assertEqual($node_type_event->displaySubmitted(), TRUE);
+    $this->assertEqual($node_type_event->isNewRevision(), TRUE);
+    $this->assertEqual($node_type_event->getPreviewMode(), DRUPAL_OPTIONAL);
+    $this->assertEqual(array('test_event'), $migration->getIdMap()->lookupDestinationID(array('test_event')));
 
     // Test we have a body field.
     $field = FieldConfig::loadByName('node', 'test_event', 'body');
-    $this->assertIdentical($field->getLabel(), 'Body', 'Body field was found.');
+    $this->assertEqual($field->getLabel(), 'Body', 'Body field was found.');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
index 59bce29..c17876b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateSearchPageTest.php
@@ -47,15 +47,15 @@ public function testSearchPage() {
     $id = 'node_search';
     /** @var \Drupal\search\Entity\SearchPage $search_page */
     $search_page = entity_load('search_page', $id);
-    $this->assertIdentical($search_page->id(), $id);
+    $this->assertEqual($search_page->id(), $id);
     $configuration = $search_page->getPlugin()->getConfiguration();
-    $this->assertIdentical($configuration['rankings'], array(
+    $this->assertEqual($configuration['rankings'], array(
       'comments' => 5,
       'relevance' => 2,
       'sticky' => 8,
       'views' => 1,
     ));
-    $this->assertIdentical($search_page->getPath(), 'node');
+    $this->assertEqual($search_page->getPath(), 'node');
 
     // Test that we can re-import using the EntitySearchPage destination.
     Database::getConnection('default', 'migrate')
@@ -70,7 +70,7 @@ public function testSearchPage() {
 
     $search_page = entity_load('search_page', $id);
     $configuration = $search_page->getPlugin()->getConfiguration();
-    $this->assertIdentical($configuration['rankings']['comments'], 4);
+    $this->assertEqual($configuration['rankings']['comments'], 4);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
index 08c6e09..9e8b315 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
@@ -92,17 +92,17 @@ public function testTaxonomyTerms() {
       $term = $terms[$tid];
       $this->assertIdentical($term->name->value, "term {$tid} of vocabulary {$values['source_vid']}");
       $this->assertIdentical($term->description->value, "description of term {$tid} of vocabulary {$values['source_vid']}");
-      $this->assertIdentical($term->vid->target_id, $values['vid']);
-      $this->assertIdentical($term->weight->value, (string) $values['weight']);
+      $this->assertEqual($term->vid->target_id, $values['vid']);
+      $this->assertEqual($term->weight->value, $values['weight']);
       if ($values['parent'] === array(0)) {
-        $this->assertNull($term->parent->target_id);
+        $this->assertEqual($term->parent->target_id, 0);
       }
       else {
         $parents = array();
         foreach (taxonomy_term_load_parents($tid) as $parent) {
-          $parents[] = (int) $parent->id();
+          $parents[] = $parent->id();
         }
-        $this->assertIdentical($values['parent'], $parents);
+        $this->assertEqual($values['parent'], $parents);
       }
     }
   }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
index 4764dad..ff3c3f2 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyVocabularyTest.php
@@ -47,17 +47,17 @@ public function testTaxonomyVocabulary() {
     for ($i = 0; $i < 3; $i++) {
       $j = $i + 1;
       $vocabulary = Vocabulary::load("vocabulary_{$j}_i_{$i}_");
-      $this->assertIdentical(array($vocabulary->id()), entity_load('migration', 'd6_taxonomy_vocabulary')->getIdMap()->lookupDestinationID(array($j)));
-      $this->assertIdentical($vocabulary->label(), "vocabulary $j (i=$i)");
-      $this->assertIdentical($vocabulary->getDescription(), "description of vocabulary $j (i=$i)");
-      $this->assertIdentical($vocabulary->getHierarchy(), $i);
-      $this->assertIdentical($vocabulary->get('weight'), 4 + $i);
+      $this->assertEqual(array($vocabulary->id()), entity_load('migration', 'd6_taxonomy_vocabulary')->getIdMap()->lookupDestinationID(array($j)));
+      $this->assertEqual($vocabulary->label(), "vocabulary $j (i=$i)");
+      $this->assertEqual($vocabulary->getDescription(), "description of vocabulary $j (i=$i)");
+      $this->assertEqual($vocabulary->getHierarchy(), $i);
+      $this->assertEqual($vocabulary->get('weight'), 4 + $i);
     }
     $vocabulary = Vocabulary::load('vocabulary_name_much_longer_than');
-    $this->assertIdentical($vocabulary->label(), 'vocabulary name much longer than thirty two characters');
-    $this->assertIdentical($vocabulary->getDescription(), 'description of vocabulary name much longer than thirty two characters');
-    $this->assertIdentical($vocabulary->getHierarchy(), 3);
-    $this->assertIdentical($vocabulary->get('weight'), 7);
+    $this->assertEqual($vocabulary->label(), 'vocabulary name much longer than thirty two characters');
+    $this->assertEqual($vocabulary->getDescription(), 'description of vocabulary name much longer than thirty two characters');
+    $this->assertEqual($vocabulary->getHierarchy(), 3);
+    $this->assertEqual($vocabulary->get('weight'), 7);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
index 74df698..6992929 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeRevisionTest.php
@@ -43,9 +43,9 @@ protected function setUp() {
    */
   public function testTermRevisionNode() {
     $node = \Drupal::entityManager()->getStorage('node')->loadRevision(2);
-    $this->assertIdentical(count($node->vocabulary_3_i_2_), 2);
-    $this->assertIdentical($node->vocabulary_3_i_2_[0]->target_id, '4');
-    $this->assertIdentical($node->vocabulary_3_i_2_[1]->target_id, '5');
+    $this->assertEqual(count($node->vocabulary_3_i_2_), 2);
+    $this->assertEqual($node->vocabulary_3_i_2_[0]->target_id, 4);
+    $this->assertEqual($node->vocabulary_3_i_2_[1]->target_id, 5);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
index 2b81ad7..cd51592 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTermNodeTest.php
@@ -38,12 +38,12 @@ public function testTermNode() {
     $node_storage->resetCache(array(1, 2));
     $nodes = Node::loadMultiple(array(1, 2));
     $node = $nodes[1];
-    $this->assertIdentical(count($node->vocabulary_1_i_0_), 1);
-    $this->assertIdentical($node->vocabulary_1_i_0_[0]->target_id, '1');
+    $this->assertEqual(count($node->vocabulary_1_i_0_), 1);
+    $this->assertEqual($node->vocabulary_1_i_0_[0]->target_id, 1);
     $node = $nodes[2];
-    $this->assertIdentical(count($node->vocabulary_2_i_1_), 2);
-    $this->assertIdentical($node->vocabulary_2_i_1_[0]->target_id, '2');
-    $this->assertIdentical($node->vocabulary_2_i_1_[1]->target_id, '3');
+    $this->assertEqual(count($node->vocabulary_2_i_1_), 2);
+    $this->assertEqual($node->vocabulary_2_i_1_[0]->target_id, 2);
+    $this->assertEqual($node->vocabulary_2_i_1_[1]->target_id, 3);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
index f69630f..e95b243 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityDisplayTest.php
@@ -57,18 +57,18 @@ protected function setUp() {
   public function testUploadEntityDisplay() {
     $display = entity_get_display('node', 'page', 'default');
     $component = $display->getComponent('upload');
-    $this->assertIdentical($component['type'], 'file_default');
+    $this->assertEqual($component['type'], 'file_default');
 
     $display = entity_get_display('node', 'story', 'default');
     $component = $display->getComponent('upload');
-    $this->assertIdentical($component['type'], 'file_default');
+    $this->assertEqual($component['type'], 'file_default');
 
     // Assure this doesn't exist.
     $display = entity_get_display('node', 'article', 'default');
     $component = $display->getComponent('upload');
     $this->assertTrue(is_null($component));
 
-    $this->assertIdentical(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_display')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertEqual(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_display')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
index a6c8533..3eed337 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadEntityFormDisplayTest.php
@@ -58,18 +58,18 @@ protected function setUp() {
   public function testUploadEntityFormDisplay() {
     $display = entity_get_form_display('node', 'page', 'default');
     $component = $display->getComponent('upload');
-    $this->assertIdentical($component['type'], 'file_generic');
+    $this->assertEqual($component['type'], 'file_generic');
 
     $display = entity_get_form_display('node', 'story', 'default');
     $component = $display->getComponent('upload');
-    $this->assertIdentical($component['type'], 'file_generic');
+    $this->assertEqual($component['type'], 'file_generic');
 
     // Assure this doesn't exist.
     $display = entity_get_form_display('node', 'article', 'default');
     $component = $display->getComponent('upload');
     $this->assertTrue(is_null($component));
 
-    $this->assertIdentical(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_form_display')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertEqual(array('node', 'page', 'default', 'upload'), entity_load('migration', 'd6_upload_entity_form_display')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
index 332181e..49d2f73 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadFieldTest.php
@@ -40,8 +40,8 @@ protected function setUp() {
    */
   public function testUpload() {
     $field_storage = FieldStorageConfig::load('node.upload');
-    $this->assertIdentical($field_storage->id(), 'node.upload');
-    $this->assertIdentical(array('node', 'upload'), entity_load('migration', 'd6_upload_field')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertEqual($field_storage->id(), 'node.upload');
+    $this->assertEqual(array('node', 'upload'), entity_load('migration', 'd6_upload_field')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
index e613b98..bc717fa 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadInstanceTest.php
@@ -68,19 +68,19 @@ protected function setUp() {
   public function testUploadFieldInstance() {
     $field = FieldConfig::load('node.page.upload');
     $settings = $field->getSettings();
-    $this->assertIdentical($field->id(), 'node.page.upload');
-    $this->assertIdentical($settings['file_extensions'], 'jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp');
-    $this->assertIdentical($settings['max_filesize'], '1MB');
-    $this->assertIdentical($settings['description_field'], TRUE);
+    $this->assertEqual($field->id(), 'node.page.upload');
+    $this->assertEqual($settings['file_extensions'], 'jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp');
+    $this->assertEqual($settings['max_filesize'], '1MB');
+    $this->assertEqual($settings['description_field'], TRUE);
 
     $field = FieldConfig::load('node.story.upload');
-    $this->assertIdentical($field->id(), 'node.story.upload');
+    $this->assertEqual($field->id(), 'node.story.upload');
 
     // Shouldn't exist.
     $field = FieldConfig::load('node.article.upload');
     $this->assertTrue(is_null($field));
 
-    $this->assertIdentical(array('node', 'page', 'upload'), entity_load('migration', 'd6_upload_field_instance')->getIdMap()->lookupDestinationID(array('page')));
+    $this->assertEqual(array('node', 'page', 'upload'), entity_load('migration', 'd6_upload_field_instance')->getIdMap()->lookupDestinationID(array('page')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
index 1c4cd87..ca1ee62 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUploadTest.php
@@ -36,19 +36,19 @@ function testUpload() {
     $node_storage->resetCache(array(1, 2));
     $nodes = Node::loadMultiple(array(1, 2));
     $node = $nodes[1];
-    $this->assertIdentical(count($node->upload), 1);
-    $this->assertIdentical($node->upload[0]->target_id, '1');
-    $this->assertIdentical($node->upload[0]->description, 'file 1-1-1');
-    $this->assertIdentical($node->upload[0]->isDisplayed(), FALSE);
+    $this->assertEqual(count($node->upload), 1);
+    $this->assertEqual($node->upload[0]->target_id, 1);
+    $this->assertEqual($node->upload[0]->description, 'file 1-1-1');
+    $this->assertEqual($node->upload[0]->isDisplayed(), FALSE);
 
     $node = $nodes[2];
-    $this->assertIdentical(count($node->upload), 2);
-    $this->assertIdentical($node->upload[0]->target_id, '3');
-    $this->assertIdentical($node->upload[0]->description, 'file 2-3-3');
-    $this->assertIdentical($node->upload[0]->isDisplayed(), FALSE);
-    $this->assertIdentical($node->upload[1]->target_id, '2');
-    $this->assertIdentical($node->upload[1]->isDisplayed(), TRUE);
-    $this->assertIdentical($node->upload[1]->description, 'file 2-3-2');
+    $this->assertEqual(count($node->upload), 2);
+    $this->assertEqual($node->upload[0]->target_id, 3);
+    $this->assertEqual($node->upload[0]->description, 'file 2-3-3');
+    $this->assertEqual($node->upload[0]->isDisplayed(), FALSE);
+    $this->assertEqual($node->upload[1]->target_id, 2);
+    $this->assertEqual($node->upload[1]->isDisplayed(), TRUE);
+    $this->assertEqual($node->upload[1]->description, 'file 2-3-2');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
index 7debfa1..92bcc51 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUrlAliasTest.php
@@ -46,7 +46,7 @@ public function testUrlAlias() {
     );
     $path = \Drupal::service('path.alias_storage')->load($conditions);
     $this->assertNotNull($path, "Path alias for node/1 successfully loaded.");
-    $this->assertIdentical(array('1'), $migration->getIdMap()->lookupDestinationID(array($path['pid'])), "Test IdMap");
+    $this->assertEqual(array(1), $migration->getIdMap()->lookupDestinationID(array($path['pid'])), "Test IdMap");
     $conditions = array(
       'source' => 'node/2',
       'alias' => 'alias-two',
@@ -70,7 +70,7 @@ public function testUrlAlias() {
     $executable->import();
 
     $path = \Drupal::service('path.alias_storage')->load(array('pid' => $path['pid']));
-    $this->assertIdentical($path['alias'], 'new-url-alias');
+    $this->assertEqual($path['alias'], 'new-url-alias');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
index ef718d8..040c906 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityDisplayTest.php
@@ -48,10 +48,10 @@ protected function setUp() {
   public function testUserPictureEntityDisplay() {
     $display = entity_get_display('user', 'user', 'default');
     $component = $display->getComponent('user_picture');
-    $this->assertIdentical($component['type'], 'image');
-    $this->assertIdentical($component['settings']['image_link'], 'content');
+    $this->assertEqual($component['type'], 'image');
+    $this->assertEqual($component['settings']['image_link'], 'content');
 
-    $this->assertIdentical(array('user', 'user', 'default', 'user_picture'), entity_load('migration', 'd6_user_picture_entity_display')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertEqual(array('user', 'user', 'default', 'user_picture'), entity_load('migration', 'd6_user_picture_entity_display')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
index d272bba..3a1b06a 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureEntityFormDisplayTest.php
@@ -47,10 +47,10 @@ protected function setUp() {
   public function testUserPictureEntityFormDisplay() {
     $display = entity_get_form_display('user', 'user', 'default');
     $component = $display->getComponent('user_picture');
-    $this->assertIdentical($component['type'], 'image_image');
-    $this->assertIdentical($component['settings']['progress_indicator'], 'throbber');
+    $this->assertEqual($component['type'], 'image_image');
+    $this->assertEqual($component['settings']['progress_indicator'], 'throbber');
 
-    $this->assertIdentical(array('user', 'user', 'default', 'user_picture'), entity_load('migration', 'd6_user_picture_entity_form_display')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertEqual(array('user', 'user', 'default', 'user_picture'), entity_load('migration', 'd6_user_picture_entity_form_display')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
index ed6e69b..e0f34bb 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFieldTest.php
@@ -35,8 +35,8 @@ protected function setUp() {
    */
   public function testUserPictureField() {
     $field_storage = FieldStorageConfig::load('user.user_picture');
-    $this->assertIdentical($field_storage->id(), 'user.user_picture');
-    $this->assertIdentical(array('user', 'user_picture'), entity_load('migration', 'd6_user_picture_field')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertEqual($field_storage->id(), 'user.user_picture');
+    $this->assertEqual(array('user', 'user_picture'), entity_load('migration', 'd6_user_picture_field')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
index 3627964..ecd279f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureFileTest.php
@@ -56,14 +56,14 @@ public function testUserPictures() {
     $files = entity_load_multiple('file', $file_ids);
     /** @var \Drupal\file\FileInterface $file */
     $file = array_shift($files);
-    $this->assertIdentical($file->getFilename(), 'image-test.jpg');
-    $this->assertIdentical($file->getFileUri(), 'public://image-test.jpg');
-    $this->assertIdentical($file->getSize(), '1901');
-    $this->assertIdentical($file->getMimeType(), 'image/jpeg');
+    $this->assertEqual($file->getFilename(), 'image-test.jpg');
+    $this->assertEqual($file->getFileUri(), 'public://image-test.jpg');
+    $this->assertEqual($file->getSize(), 1901);
+    $this->assertEqual($file->getMimeType(), 'image/jpeg');
 
     $file = array_shift($files);
-    $this->assertIdentical($file->getFilename(), 'image-test.png');
-    $this->assertIdentical($file->getFileUri(), 'public://image-test.png');
+    $this->assertEqual($file->getFilename(), 'image-test.png');
+    $this->assertEqual($file->getFileUri(), 'public://image-test.png');
     $this->assertFalse($files);
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
index 08015a3..edd676a 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserPictureInstanceTest.php
@@ -55,12 +55,12 @@ protected function setUp() {
   public function testUserPictureFieldInstance() {
     $field = FieldConfig::load('user.user.user_picture');
     $settings = $field->getSettings();
-    $this->assertIdentical($settings['file_extensions'], 'png gif jpg jpeg');
-    $this->assertIdentical($settings['file_directory'], 'pictures');
-    $this->assertIdentical($settings['max_filesize'], '30KB');
-    $this->assertIdentical($settings['max_resolution'], '85x85');
+    $this->assertEqual($settings['file_extensions'], 'png gif jpg jpeg');
+    $this->assertEqual($settings['file_directory'], 'pictures');
+    $this->assertEqual($settings['max_filesize'], '30KB');
+    $this->assertEqual($settings['max_resolution'], '85x85');
 
-    $this->assertIdentical(array('user', 'user', 'user_picture'), entity_load('migration', 'd6_user_picture_field_instance')->getIdMap()->lookupDestinationID(array('')));
+    $this->assertEqual(array('user', 'user', 'user_picture'), entity_load('migration', 'd6_user_picture_field_instance')->getIdMap()->lookupDestinationID(array('')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
index 001935e..69dc0eb 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
@@ -110,15 +110,15 @@ public function testUserProfileFields() {
 
     // Test a text field.
     $component = $display->getComponent('profile_color');
-    $this->assertIdentical($component['type'], 'text_default');
+    $this->assertEqual($component['type'], 'text_default');
 
     // Test a list field.
     $component = $display->getComponent('profile_bands');
-    $this->assertIdentical($component['type'], 'text_default');
+    $this->assertEqual($component['type'], 'text_default');
 
     // Test a date field.
     $component = $display->getComponent('profile_birthdate');
-    $this->assertIdentical($component['type'], 'datetime_default');
+    $this->assertEqual($component['type'], 'datetime_default');
 
     // Test PROFILE_PRIVATE field is hidden.
     $this->assertNull($display->getComponent('profile_sell_address'));
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
index 23583ca..a92ce81 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
@@ -107,15 +107,15 @@ public function testUserProfileEntityFormDisplay() {
 
     // Test a text field.
     $component = $display->getComponent('profile_color');
-    $this->assertIdentical($component['type'], 'text_textfield');
+    $this->assertEqual($component['type'], 'text_textfield');
 
     // Test a list field.
     $component = $display->getComponent('profile_bands');
-    $this->assertIdentical($component['type'], 'text_textfield');
+    $this->assertEqual($component['type'], 'text_textfield');
 
     // Test a date field.
     $component = $display->getComponent('profile_birthdate');
-    $this->assertIdentical($component['type'], 'datetime_default');
+    $this->assertEqual($component['type'], 'datetime_default');
 
     // Test PROFILE_PRIVATE field is hidden.
     $this->assertNull($display->getComponent('profile_sell_address'));
@@ -125,8 +125,8 @@ public function testUserProfileEntityFormDisplay() {
 
     // Test that a checkbox field has the proper display label setting.
     $component = $display->getComponent('profile_love_migrations');
-    $this->assertIdentical($component['type'], 'boolean_checkbox');
-    $this->assertIdentical($component['settings']['display_label'], true);
+    $this->assertEqual($component['type'], 'boolean_checkbox');
+    $this->assertEqual($component['settings']['display_label'], true);
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
index 9ed9249..faa481b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
@@ -54,45 +54,45 @@ protected function setUp() {
   public function testUserProfileFields() {
     // Migrated a text field.
     $field = FieldConfig::load('user.user.profile_color');
-    $this->assertIdentical($field->label(), 'Favorite color');
-    $this->assertIdentical($field->getDescription(), 'List your favorite color');
+    $this->assertEqual($field->label(), 'Favorite color');
+    $this->assertEqual($field->getDescription(), 'List your favorite color');
 
     // Migrated a textarea.
     $field = FieldConfig::load('user.user.profile_biography');
-    $this->assertIdentical($field->label(), 'Biography');
-    $this->assertIdentical($field->getDescription(), 'Tell people a little bit about yourself');
+    $this->assertEqual($field->label(), 'Biography');
+    $this->assertEqual($field->getDescription(), 'Tell people a little bit about yourself');
 
     // Migrated checkbox field.
     $field = FieldConfig::load('user.user.profile_sell_address');
-    $this->assertIdentical($field->label(), 'Sell your email address?');
-    $this->assertIdentical($field->getDescription(), "If you check this box, we'll sell your address to spammers to help line the pockets of our shareholders. Thanks!");
+    $this->assertEqual($field->label(), 'Sell your email address?');
+    $this->assertEqual($field->getDescription(), "If you check this box, we'll sell your address to spammers to help line the pockets of our shareholders. Thanks!");
 
     // Migrated selection field.
     $field = FieldConfig::load('user.user.profile_sold_to');
-    $this->assertIdentical($field->label(), 'Sales Category');
-    $this->assertIdentical($field->getDescription(), "Select the sales categories to which this user's address was sold.");
+    $this->assertEqual($field->label(), 'Sales Category');
+    $this->assertEqual($field->getDescription(), "Select the sales categories to which this user's address was sold.");
 
     // Migrated list field.
     $field = FieldConfig::load('user.user.profile_bands');
-    $this->assertIdentical($field->label(), 'Favorite bands');
-    $this->assertIdentical($field->getDescription(), "Enter your favorite bands. When you've saved your profile, you'll be able to find other people with the same favorites.");
+    $this->assertEqual($field->label(), 'Favorite bands');
+    $this->assertEqual($field->getDescription(), "Enter your favorite bands. When you've saved your profile, you'll be able to find other people with the same favorites.");
 
 /*
     // Migrated URL field.
     $field = FieldConfig::load('user.user.profile_blog');
-    $this->assertIdentical($field->label(), 'Your blog');
-    $this->assertIdentical($field->getDescription(), "Paste the full URL, including http://, of your personal blog.");
+    $this->assertEqual($field->label(), 'Your blog');
+    $this->assertEqual($field->getDescription(), "Paste the full URL, including http://, of your personal blog.");
 */
 
     // Migrated date field.
     $field = FieldConfig::load('user.user.profile_birthdate');
-    $this->assertIdentical($field->label(), 'Birthdate');
-    $this->assertIdentical($field->getDescription(), "Enter your birth date and we'll send you a coupon.");
+    $this->assertEqual($field->label(), 'Birthdate');
+    $this->assertEqual($field->getDescription(), "Enter your birth date and we'll send you a coupon.");
 
     // Another migrated checkbox field, with a different source visibility setting.
     $field = FieldConfig::load('user.user.profile_love_migrations');
-    $this->assertIdentical($field->label(), 'I love migrations');
-    $this->assertIdentical($field->getDescription(), "If you check this box, you love migrations.");
+    $this->assertEqual($field->label(), 'I love migrations');
+    $this->assertEqual($field->getDescription(), "If you check this box, you love migrations.");
   }
 
   /**
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
index 35644ce..0c3b5c6 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
@@ -44,22 +44,22 @@ protected function setUp() {
   public function testUserProfileFields() {
     // Migrated a text field.
     $field_storage = FieldStorageConfig::load('user.profile_color');
-    $this->assertIdentical($field_storage->type, 'text', 'Field type is text.');
-    $this->assertIdentical($field_storage->cardinality, 1, 'Text field has correct cardinality');
+    $this->assertEqual($field_storage->type, 'text', 'Field type is text.');
+    $this->assertEqual($field_storage->cardinality, 1, 'Text field has correct cardinality');
 
     // Migrated a textarea.
     $field_storage = FieldStorageConfig::load('user.profile_biography');
-    $this->assertIdentical($field_storage->type, 'text_long', 'Field type is text_long.');
+    $this->assertEqual($field_storage->type, 'text_long', 'Field type is text_long.');
 
     // Migrated checkbox field.
     $field_storage = FieldStorageConfig::load('user.profile_sell_address');
-    $this->assertIdentical($field_storage->type, 'boolean', 'Field type is boolean.');
+    $this->assertEqual($field_storage->type, 'boolean', 'Field type is boolean.');
 
     // Migrated selection field.
     $field_storage = FieldStorageConfig::load('user.profile_sold_to');
-    $this->assertIdentical($field_storage->type, 'list_string', 'Field type is list_string.');
+    $this->assertEqual($field_storage->type, 'list_string', 'Field type is list_string.');
     $settings = $field_storage->getSettings();
-    $this->assertIdentical($settings['allowed_values'], array(
+    $this->assertEqual($settings['allowed_values'], array(
       'Pill spammers' => 'Pill spammers',
       'Fitness spammers' => 'Fitness spammers',
       'Back\slash' => 'Back\slash',
@@ -68,23 +68,23 @@ public function testUserProfileFields() {
       'Faithful servant' => 'Faithful servant',
       'Anonymous donor' => 'Anonymous donor',
     ));
-    $this->assertIdentical($field_storage->type, 'list_string', 'Field type is list_string.');
+    $this->assertEqual($field_storage->type, 'list_string', 'Field type is list_string.');
 
     // Migrated list field.
     $field_storage = FieldStorageConfig::load('user.profile_bands');
-    $this->assertIdentical($field_storage->type, 'text', 'Field type is text.');
-    $this->assertIdentical($field_storage->cardinality, -1, 'List field has correct cardinality');
+    $this->assertEqual($field_storage->type, 'text', 'Field type is text.');
+    $this->assertEqual($field_storage->cardinality, -1, 'List field has correct cardinality');
 
 /*
     // Migrated URL field.
     $field_storage = FieldStorageConfig::load('user.profile_blog');
-    $this->assertIdentical($field_storage->type, 'link', 'Field type is link.');
+    $this->assertEqual($field_storage->type, 'link', 'Field type is link.');
 */
 
     // Migrated date field.
     $field_storage = FieldStorageConfig::load('user.profile_birthdate');
-    $this->assertIdentical($field_storage->type, 'datetime', 'Field type is datetime.');
-    $this->assertIdentical($field_storage->settings['datetime_type'], 'date');
+    $this->assertEqual($field_storage->type, 'datetime', 'Field type is datetime.');
+    $this->assertEqual($field_storage->settings['datetime_type'], 'date');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileValuesTest.php
index a0a7bb0..465b6d5 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileValuesTest.php
@@ -152,24 +152,24 @@ protected function setUp() {
   public function testUserProfileValues() {
     $user = User::load(2);
     $this->assertFalse(is_null($user));
-    $this->assertIdentical($user->profile_color->value, 'red');
-    $this->assertIdentical($user->profile_biography->value, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nulla sapien, congue nec risus ut, adipiscing aliquet felis. Maecenas quis justo vel nulla varius euismod. Quisque metus metus, cursus sit amet sem non, bibendum vehicula elit. Cras dui nisl, eleifend at iaculis vitae, lacinia ut felis. Nullam aliquam ligula volutpat nulla consectetur accumsan. Maecenas tincidunt molestie diam, a accumsan enim fringilla sit amet. Morbi a tincidunt tellus. Donec imperdiet scelerisque porta. Sed quis sem bibendum eros congue sodales. Vivamus vel fermentum est, at rutrum orci. Nunc consectetur purus ut dolor pulvinar, ut volutpat felis congue. Cras tincidunt odio sed neque sollicitudin, vehicula tempor metus scelerisque.');
-    $this->assertIdentical($user->profile_sell_address->value, '1');
-    $this->assertIdentical($user->profile_sold_to->value, 'Back\slash');
-    $this->assertIdentical($user->profile_bands[0]->value, 'AC/DC');
-    $this->assertIdentical($user->profile_bands[1]->value, 'Eagles');
-    $this->assertIdentical($user->profile_bands[2]->value, 'Elton John');
-    $this->assertIdentical($user->profile_bands[3]->value, 'Lemonheads');
-    $this->assertIdentical($user->profile_bands[4]->value, 'Rolling Stones');
-    $this->assertIdentical($user->profile_bands[5]->value, 'Queen');
-    $this->assertIdentical($user->profile_bands[6]->value, 'The White Stripes');
-    $this->assertIdentical($user->profile_birthdate->value, '1974-06-02');
+    $this->assertEqual($user->profile_color->value, 'red');
+    $this->assertEqual($user->profile_biography->value, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nulla sapien, congue nec risus ut, adipiscing aliquet felis. Maecenas quis justo vel nulla varius euismod. Quisque metus metus, cursus sit amet sem non, bibendum vehicula elit. Cras dui nisl, eleifend at iaculis vitae, lacinia ut felis. Nullam aliquam ligula volutpat nulla consectetur accumsan. Maecenas tincidunt molestie diam, a accumsan enim fringilla sit amet. Morbi a tincidunt tellus. Donec imperdiet scelerisque porta. Sed quis sem bibendum eros congue sodales. Vivamus vel fermentum est, at rutrum orci. Nunc consectetur purus ut dolor pulvinar, ut volutpat felis congue. Cras tincidunt odio sed neque sollicitudin, vehicula tempor metus scelerisque.');
+    $this->assertEqual($user->profile_sell_address->value, '1');
+    $this->assertEqual($user->profile_sold_to->value, 'Back\slash');
+    $this->assertEqual($user->profile_bands[0]->value, 'AC/DC');
+    $this->assertEqual($user->profile_bands[1]->value, 'Eagles');
+    $this->assertEqual($user->profile_bands[2]->value, 'Elton John');
+    $this->assertEqual($user->profile_bands[3]->value, 'Lemonheads');
+    $this->assertEqual($user->profile_bands[4]->value, 'Rolling Stones');
+    $this->assertEqual($user->profile_bands[5]->value, 'Queen');
+    $this->assertEqual($user->profile_bands[6]->value, 'The White Stripes');
+    $this->assertEqual($user->profile_birthdate->value, '1974-06-02');
 
     $user = User::load(8);
-    $this->assertIdentical($user->profile_sold_to->value, 'Forward/slash');
+    $this->assertEqual($user->profile_sold_to->value, 'Forward/slash');
 
     $user = User::load(15);
-    $this->assertIdentical($user->profile_sold_to->value, 'Dot.in.the.middle');
+    $this->assertEqual($user->profile_sold_to->value, 'Dot.in.the.middle');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
index 3f977bc..bb3ad6f 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserRoleTest.php
@@ -61,22 +61,22 @@ public function testUserRole() {
     $migration = entity_load('migration', 'd6_user_role');
     $rid = 'anonymous';
     $anonymous = Role::load($rid);
-    $this->assertIdentical($anonymous->id(), $rid);
-    $this->assertIdentical($anonymous->getPermissions(), array('migrate test anonymous permission', 'use text format filtered_html'));
-    $this->assertIdentical(array($rid), $migration->getIdMap()->lookupDestinationId(array(1)));
+    $this->assertEqual($anonymous->id(), $rid);
+    $this->assertEqual($anonymous->getPermissions(), array('migrate test anonymous permission', 'use text format filtered_html'));
+    $this->assertEqual(array($rid), $migration->getIdMap()->lookupDestinationId(array(1)));
     $rid = 'authenticated';
     $authenticated = Role::load($rid);
-    $this->assertIdentical($authenticated->id(), $rid);
-    $this->assertIdentical($authenticated->getPermissions(), array('migrate test authenticated permission', 'use text format filtered_html'));
-    $this->assertIdentical(array($rid), $migration->getIdMap()->lookupDestinationId(array(2)));
+    $this->assertEqual($authenticated->id(), $rid);
+    $this->assertEqual($authenticated->getPermissions(), array('migrate test authenticated permission', 'use text format filtered_html'));
+    $this->assertEqual(array($rid), $migration->getIdMap()->lookupDestinationId(array(2)));
     $rid = 'migrate_test_role_1';
     $migrate_test_role_1 = Role::load($rid);
-    $this->assertIdentical($migrate_test_role_1->id(), $rid);
-    $this->assertIdentical($migrate_test_role_1->getPermissions(), array(0 => 'migrate test role 1 test permission', 'use text format full_html'));
-    $this->assertIdentical(array($rid), $migration->getIdMap()->lookupDestinationId(array(3)));
+    $this->assertEqual($migrate_test_role_1->id(), $rid);
+    $this->assertEqual($migrate_test_role_1->getPermissions(), array(0 => 'migrate test role 1 test permission', 'use text format full_html'));
+    $this->assertEqual(array($rid), $migration->getIdMap()->lookupDestinationId(array(3)));
     $rid = 'migrate_test_role_2';
     $migrate_test_role_2 = Role::load($rid);
-    $this->assertIdentical($migrate_test_role_2->getPermissions(), array(
+    $this->assertEqual($migrate_test_role_2->getPermissions(), array(
       'migrate test role 2 test permission',
       'use PHP for settings',
       'administer contact forms',
@@ -93,12 +93,12 @@ public function testUserRole() {
       'administer nodes',
       'access content overview',
     ));
-    $this->assertIdentical($migrate_test_role_2->id(), $rid);
-    $this->assertIdentical(array($rid), $migration->getIdMap()->lookupDestinationId(array(4)));
+    $this->assertEqual($migrate_test_role_2->id(), $rid);
+    $this->assertEqual(array($rid), $migration->getIdMap()->lookupDestinationId(array(4)));
     $rid = 'migrate_test_role_3_that_is_long';
     $migrate_test_role_3 = Role::load($rid);
-    $this->assertIdentical($migrate_test_role_3->id(), $rid);
-    $this->assertIdentical(array($rid), $migration->getIdMap()->lookupDestinationId(array(5)));
+    $this->assertEqual($migrate_test_role_3->id(), $rid);
+    $this->assertEqual(array($rid), $migration->getIdMap()->lookupDestinationId(array(5)));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
index 6f216cb..7ca1274 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
@@ -160,30 +160,30 @@ public function testUser() {
       $signature_format = $source->signature_format === '0' ? [NULL] : $migration_format->getIdMap()->lookupDestinationId(array($source->signature_format));
 
       $user = User::load($source->uid);
-      $this->assertIdentical($user->id(), $source->uid);
-      $this->assertIdentical($user->label(), $source->name);
-      $this->assertIdentical($user->getEmail(), $source->mail);
-      $this->assertIdentical($user->getSignature(), $source->signature);
+      $this->assertEqual($user->id(), $source->uid);
+      $this->assertEqual($user->label(), $source->name);
+      $this->assertEqual($user->getEmail(), $source->mail);
+      $this->assertEqual($user->getSignature(), $source->signature);
       $this->assertIdentical($user->getSignatureFormat(), reset($signature_format));
-      $this->assertIdentical($user->getCreatedTime(), $source->created);
-      $this->assertIdentical($user->getLastAccessedTime(), $source->access);
-      $this->assertIdentical($user->getLastLoginTime(), $source->login);
+      $this->assertEqual($user->getCreatedTime(), $source->created);
+      $this->assertEqual($user->getLastAccessedTime(), $source->access);
+      $this->assertEqual($user->getLastLoginTime(), $source->login);
       $is_blocked = $source->status == 0;
-      $this->assertIdentical($user->isBlocked(), $is_blocked);
+      $this->assertEqual($user->isBlocked(), $is_blocked);
       // $user->getPreferredLangcode() might fallback to default language if the
       // user preferred language is not configured on the site. We just want to
       // test if the value was imported correctly.
-      $this->assertIdentical($user->preferred_langcode->value, $source->language);
+      $this->assertEqual($user->preferred_langcode->value, $source->language);
       $time_zone = $source->expected_timezone ?: $this->config('system.date')->get('timezone.default');
-      $this->assertIdentical($user->getTimeZone(), $time_zone);
-      $this->assertIdentical($user->getInitialEmail(), $source->init);
-      $this->assertIdentical($user->getRoles(), $roles);
+      $this->assertEqual($user->getTimeZone(), $time_zone);
+      $this->assertEqual($user->getInitialEmail(), $source->init);
+      $this->assertEqual($user->getRoles(), $roles);
 
       // We have one empty picture in the data so don't try load that.
       if (!empty($source->picture)) {
         // Test the user picture.
         $file = File::load($user->user_picture->target_id);
-        $this->assertIdentical($file->getFilename(), basename($source->picture));
+        $this->assertEqual($file->getFilename(), basename($source->picture));
       }
 
       // Use the UI to check if the password has been salted and re-hashed to
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
index 22ac840..4fa1282 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateViewModesTest.php
@@ -49,10 +49,10 @@ protected function setUp() {
   public function testViewModes() {
     // Test a new view mode.
     $view_mode = EntityViewMode::load('node.preview');
-    $this->assertIdentical(is_null($view_mode), FALSE, 'Preview view mode loaded.');
-    $this->assertIdentical($view_mode->label(), 'Preview', 'View mode has correct label.');
+    $this->assertEqual(is_null($view_mode), FALSE, 'Preview view mode loaded.');
+    $this->assertEqual($view_mode->label(), 'Preview', 'View mode has correct label.');
     // Test the Id Map.
-    $this->assertIdentical(array('node', 'preview'), entity_load('migration', 'd6_view_modes')->getIdMap()->lookupDestinationID(array(1)));
+    $this->assertEqual(array('node', 'preview'), entity_load('migration', 'd6_view_modes')->getIdMap()->lookupDestinationID(array(1)));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
index 6865294..2bd19c6 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityDisplayTest.php
@@ -75,10 +75,10 @@ protected function setUp() {
   public function testVocabularyEntityDisplay() {
     // Test that the field exists.
     $component = entity_get_display('node', 'page', 'default')->getComponent('tags');
-    $this->assertIdentical($component['type'], 'taxonomy_term_reference_link');
-    $this->assertIdentical($component['weight'], 20);
+    $this->assertEqual($component['type'], 'taxonomy_term_reference_link');
+    $this->assertEqual($component['weight'], 20);
     // Test the Id map.
-    $this->assertIdentical(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertEqual(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
index 17878c3..5d56c44 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyEntityFormDisplayTest.php
@@ -76,10 +76,10 @@ protected function setUp() {
   public function testVocabularyEntityFormDisplay() {
     // Test that the field exists.
     $component = entity_get_form_display('node', 'page', 'default')->getComponent('tags');
-    $this->assertIdentical($component['type'], 'options_select');
-    $this->assertIdentical($component['weight'], 20);
+    $this->assertEqual($component['type'], 'options_select');
+    $this->assertEqual($component['weight'], 20);
     // Test the Id map.
-    $this->assertIdentical(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_form_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertEqual(array('node', 'article', 'default', 'tags'), entity_load('migration', 'd6_vocabulary_entity_form_display')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
index dad5356..ec7f221 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldInstanceTest.php
@@ -86,14 +86,14 @@ public function testVocabularyFieldInstance() {
     // Test that the field exists.
     $field_id = 'node.article.tags';
     $field = FieldConfig::load($field_id);
-    $this->assertIdentical($field->id(), $field_id, 'Field instance exists on article bundle.');
+    $this->assertEqual($field->id(), $field_id, 'Field instance exists on article bundle.');
 
     // Test the page bundle as well.
     $field_id = 'node.page.tags';
     $field = FieldConfig::load($field_id);
-    $this->assertIdentical($field->id(), $field_id, 'Field instance exists on page bundle.');
+    $this->assertEqual($field->id(), $field_id, 'Field instance exists on page bundle.');
 
-    $this->assertIdentical(array('node', 'article', 'tags'), entity_load('migration', 'd6_vocabulary_field_instance')->getIdMap()->lookupDestinationID(array(4, 'article')));
+    $this->assertEqual(array('node', 'article', 'tags'), entity_load('migration', 'd6_vocabulary_field_instance')->getIdMap()->lookupDestinationID(array(4, 'article')));
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
index ecae929..7760d0e 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateVocabularyFieldTest.php
@@ -62,10 +62,10 @@ public function testVocabularyField() {
     // Test that the field exists.
     $field_storage_id = 'node.tags';
     $field_storage = FieldStorageConfig::load($field_storage_id);
-    $this->assertIdentical($field_storage->id(), $field_storage_id);
+    $this->assertEqual($field_storage->id(), $field_storage_id);
     $settings = $field_storage->getSettings();
-    $this->assertIdentical('tags', $settings['allowed_values'][0]['vocabulary'], "Vocabulary has correct settings.");
-    $this->assertIdentical(array('node', 'tags'), entity_load('migration', 'd6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap");
+    $this->assertEqual('tags', $settings['allowed_values'][0]['vocabulary'], "Vocabulary has correct settings.");
+    $this->assertEqual(array('node', 'tags'), entity_load('migration', 'd6_vocabulary_field')->getIdMap()->lookupDestinationID(array(4)), "Test IdMap");
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
index 244d609..0e0193d 100644
--- a/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/dependencies/MigrateDependenciesTest.php
@@ -29,7 +29,7 @@ public function testMigrateDependenciesOrder() {
     $migration_items = array('d6_comment', 'd6_filter_format', 'd6_node');
     $migrations = entity_load_multiple('migration', $migration_items);
     $expected_order = array('d6_filter_format', 'd6_node', 'd6_comment');
-    $this->assertIdentical(array_keys($migrations), $expected_order);
+    $this->assertEqual(array_keys($migrations), $expected_order);
     $expected_requirements = array(
       'd6_node',
       'd6_node_type',
@@ -43,9 +43,9 @@ public function testMigrateDependenciesOrder() {
     // Migration dependencies for comment include dependencies for node
     // migration as well.
     $actual_requirements = $migrations['d6_comment']->get('requirements');
-    $this->assertIdentical(count($actual_requirements), count($expected_requirements));
+    $this->assertEqual(count($actual_requirements), count($expected_requirements));
     foreach ($expected_requirements as $requirement) {
-      $this->assertIdentical($actual_requirements[$requirement], $requirement);
+      $this->assertEqual($actual_requirements[$requirement], $requirement);
     }
   }
 
@@ -62,7 +62,7 @@ public function testAggregatorMigrateDependencies() {
     $executable = new MigrateExecutable($migration, $this);
     $this->startCollectingMessages();
     $executable->import();
-    $this->assertIdentical($this->migrateMessages['error'], array(String::format('Migration @id did not meet the requirements. Missing migrations d6_aggregator_feed. requirements: d6_aggregator_feed.', array('@id' => $migration->id()))));
+    $this->assertEqual($this->migrateMessages['error'], array(String::format('Migration @id did not meet the requirements. Missing migrations d6_aggregator_feed. requirements: d6_aggregator_feed.', array('@id' => $migration->id()))));
     $this->collectMessages = FALSE;
   }
 
diff --git a/core/modules/node/config/install/views.view.archive.yml b/core/modules/node/config/install/views.view.archive.yml
index da261db..047d062 100644
--- a/core/modules/node/config/install/views.view.archive.yml
+++ b/core/modules/node/config/install/views.view.archive.yml
@@ -165,6 +165,8 @@ display:
       empty: {  }
       relationships: {  }
       fields: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     id: block_1
     display_title: Block
@@ -194,6 +196,8 @@ display:
           specify_validation: true
           plugin_id: date_year_month
           entity_type: node
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     id: page_1
     display_title: Page
@@ -204,3 +208,5 @@ display:
         type: views_query
         options: {  }
       path: archive
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/config/install/views.view.content.yml b/core/modules/node/config/install/views.view.content.yml
index fcef7ca..7fd418a 100644
--- a/core/modules/node/config/install/views.view.content.yml
+++ b/core/modules/node/config/install/views.view.content.yml
@@ -501,6 +501,8 @@ display:
         operator: AND
         groups:
           1: AND
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -521,6 +523,8 @@ display:
         description: 'Find and manage content'
         menu_name: admin
         weight: -10
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/node/config/install/views.view.content_recent.yml b/core/modules/node/config/install/views.view.content_recent.yml
index 8e06125..4bbe54f 100644
--- a/core/modules/node/config/install/views.view.content_recent.yml
+++ b/core/modules/node/config/install/views.view.content_recent.yml
@@ -413,6 +413,8 @@ display:
           plugin_id: standard
       arguments: {  }
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       use_more: true
       use_more_always: true
       use_more_text: More
@@ -423,3 +425,7 @@ display:
     id: block_1
     display_title: Block
     position: 1
+    display_options:
+      display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/config/install/views.view.frontpage.yml b/core/modules/node/config/install/views.view.frontpage.yml
index a932d3a..b5d02e9 100644
--- a/core/modules/node/config/install/views.view.frontpage.yml
+++ b/core/modules/node/config/install/views.view.frontpage.yml
@@ -233,6 +233,8 @@ display:
       relationships: {  }
       fields: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -264,9 +266,13 @@ display:
         options:
           relationship: none
           view_mode: rss
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_options:
       path: node
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/node/config/install/views.view.glossary.yml b/core/modules/node/config/install/views.view.glossary.yml
index b780209..1625bdd 100644
--- a/core/modules/node/config/install/views.view.glossary.yml
+++ b/core/modules/node/config/install/views.view.glossary.yml
@@ -306,6 +306,8 @@ display:
       footer: {  }
       empty: {  }
       sorts: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       filters:
         langcode:
           id: langcode
@@ -404,6 +406,8 @@ display:
         default: default
         page_1: page_1
       inherit_arguments: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     id: page_1
     display_title: Page
@@ -420,3 +424,5 @@ display:
         weight: 0
         menu_name: main
         parent: ''
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
index 9fcbca5..93c4bb6 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
@@ -109,7 +109,7 @@ protected function setUp() {
       'private' => FALSE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 0;
+    $translation->field_private[0]->value = 0;
     $node->save();
 
     $this->nodes['private_both_public'] = $node = $this->drupalCreateNode(array(
@@ -119,7 +119,7 @@ protected function setUp() {
       'private' => TRUE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 0;
+    $translation->field_private[0]->value = 0;
     $node->save();
 
     $this->nodes['public_hu_private'] = $node = $this->drupalCreateNode(array(
@@ -129,7 +129,7 @@ protected function setUp() {
       'private' => FALSE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 0;
+    $translation->field_private[0]->value = 0;
     $node->save();
 
     $this->nodes['public_ca_private'] = $node = $this->drupalCreateNode(array(
@@ -139,7 +139,7 @@ protected function setUp() {
       'private' => FALSE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 1;
+    $translation->field_private[0]->value = 1;
     $node->save();
 
     $this->nodes['public_both_private'] = $node = $this->drupalCreateNode(array(
@@ -149,7 +149,7 @@ protected function setUp() {
       'private' => FALSE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 1;
+    $translation->field_private[0]->value = 1;
     $node->save();
 
     $this->nodes['private_both_private'] = $node = $this->drupalCreateNode(array(
@@ -159,7 +159,7 @@ protected function setUp() {
       'private' => TRUE,
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 1;
+    $translation->field_private[0]->value = 1;
     $node->save();
 
     $this->nodes['public_no_language_private'] = $this->drupalCreateNode(array(
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
index 77d8ce9..0b0fcd1 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
@@ -103,7 +103,7 @@ protected function setUp() {
       'field_private' => array(array('value' => 0)),
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 0;
+    $translation->field_private[0]->value = 0;
     $node->save();
 
     $this->nodes['ca_private'] = $node = $this->drupalCreateNode(array(
@@ -112,7 +112,7 @@ protected function setUp() {
       'field_private' => array(array('value' => 0)),
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 1;
+    $translation->field_private[0]->value = 1;
     $node->save();
 
     $this->nodes['hu_private'] = $node = $this->drupalCreateNode(array(
@@ -121,7 +121,7 @@ protected function setUp() {
       'field_private' => array(array('value' => 1)),
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 0;
+    $translation->field_private[0]->value = 0;
     $node->save();
 
     $this->nodes['both_private'] = $node = $this->drupalCreateNode(array(
@@ -130,7 +130,7 @@ protected function setUp() {
       'field_private' => array(array('value' => 1)),
     ));
     $translation = $node->getTranslation('ca');
-    $translation->field_private->value = 1;
+    $translation->field_private[0]->value = 1;
     $node->save();
 
     $this->nodes['no_language_public'] = $this->drupalCreateNode(array(
diff --git a/core/modules/node/src/Tests/NodeTranslationUITest.php b/core/modules/node/src/Tests/NodeTranslationUITest.php
index d16d13a..01185b5 100644
--- a/core/modules/node/src/Tests/NodeTranslationUITest.php
+++ b/core/modules/node/src/Tests/NodeTranslationUITest.php
@@ -245,7 +245,7 @@ function testTranslationRendering() {
     // Enable the translation language renderer.
     $view = \Drupal::entityManager()->getStorage('view')->load('frontpage');
     $display = &$view->getDisplay('default');
-    $display['display_options']['rendering_language'] = '***LANGUAGE_entity_translation***';
+    $display['display_options']['rendering_language'] = 'translation_language_renderer';
     $view->save();
 
     // Need to check from the beginning, including the base_path, in the url
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
index 0543c9f..ad1e38f 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
@@ -68,6 +68,8 @@ display:
       relationships: {  }
       fields: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -93,6 +95,8 @@ display:
         menu_name: tools
         weight: 0
         context: '1'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
index 0284d4d..d23420b 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
@@ -162,13 +162,17 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
-      rendering_language: '***LANGUAGE_entity_translation***'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
+      rendering_language: translation_language_renderer
   page_bf:
     display_plugin: page
     id: page_bf
     display_title: 'Body filter page'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-filter
       display_description: ''
       title: 'Test body filters'
@@ -236,6 +240,8 @@ display:
     display_title: 'Body filter page Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-body-paris
       display_description: ''
       title: 'Test body filters'
@@ -303,6 +309,8 @@ display:
     display_title: 'Title filter page'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-title-filter
       display_description: ''
       title: 'Test title filter'
@@ -370,6 +378,8 @@ display:
     display_title: 'Title filter page Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-title-paris
       display_description: ''
       title: 'Test title filter'
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
index f7e1e82..b2f9b3f 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
@@ -22,6 +22,8 @@ display:
           plugin_id: node_type
           entity_type: node
           entity_field: type
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
index f34d663..8ce5ac0 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
@@ -65,6 +65,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
index 7b379f8..462d371 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
@@ -282,10 +282,14 @@ display:
           plugin_id: language
           entity_type: node
           entity_field: langcode
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
     display_title: Page
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-language
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
index 094f9ec..f01d13d 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
@@ -45,6 +45,8 @@ display:
           plugin_id: standard
           entity_type: node
           entity_field: nid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -52,3 +54,5 @@ display:
     position: null
     display_options:
       path: test-node-bulk-form
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
index 4c4c5fa..d9faafd 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
@@ -52,6 +52,8 @@ display:
           plugin_id: node_nid
           entity_type: node
           entity_field: nid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
index dea39a7..72e8182 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
@@ -52,6 +52,8 @@ display:
           plugin_id: node_nid
           entity_type: node
           entity_field: nid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
index 3579def..0139a99 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
@@ -47,6 +47,8 @@ display:
       style:
         type: default
       title: test_node_row_plugin
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -54,6 +56,8 @@ display:
   page_1:
     display_options:
       path: test-node-row-plugin
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
index ace4be0..2302614 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
@@ -197,6 +197,8 @@ display:
           plugin_id: node_type
           entity_type: node
           entity_field: type
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -204,3 +206,5 @@ display:
     position: null
     display_options:
       path: test-node-view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
index bf3dcd3..59b4408 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
@@ -137,9 +137,13 @@ display:
         operator: AND
         groups:
           1: AND
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_options:
       path: test_status_extra
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_numeric.yml b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_numeric.yml
index af7ba6c..69398b3 100644
--- a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_numeric.yml
+++ b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_numeric.yml
@@ -192,6 +192,8 @@ display:
           not: false
           plugin_id: number_list_field
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
@@ -199,3 +201,5 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_string.yml b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_string.yml
index 32f9d4e..ef09354 100644
--- a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_string.yml
+++ b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_argument_string.yml
@@ -191,6 +191,8 @@ display:
           break_phrase: false
           plugin_id: string_list_field
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
@@ -198,3 +200,5 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_filter.yml b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_filter.yml
index cf91e09..4da80ea 100644
--- a/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_filter.yml
+++ b/core/modules/options/tests/options_test_views/test_views/views.view.test_options_list_filter.yml
@@ -196,6 +196,8 @@ display:
       relationships: {  }
       arguments: {  }
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
@@ -203,3 +205,5 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/rest/src/Plugin/ResourceBase.php b/core/modules/rest/src/Plugin/ResourceBase.php
index d0d22a3..ef16078 100644
--- a/core/modules/rest/src/Plugin/ResourceBase.php
+++ b/core/modules/rest/src/Plugin/ResourceBase.php
@@ -207,11 +207,7 @@ protected function getBaseRoute($canonical_path, $method) {
       '_method' => $method,
       '_permission' => "restful $lower_method $this->pluginId",
     ), array(
-      // All access restrictions on this route must grant access because the
-      // permission AND the CSRF protection added in
-      // \Drupal\rest\Routing\ResourceRoutes::alterRoutes() must be taken into
-      // account.
-      '_access_mode' => AccessManagerInterface::ACCESS_MODE_ALL,
+      '_access_mode' => AccessManagerInterface::ACCESS_MODE_ANY,
     ));
     return $route;
   }
diff --git a/core/modules/rest/src/Tests/CreateTest.php b/core/modules/rest/src/Tests/CreateTest.php
index d125f1b..9a6b66e 100644
--- a/core/modules/rest/src/Tests/CreateTest.php
+++ b/core/modules/rest/src/Tests/CreateTest.php
@@ -76,30 +76,6 @@ public function testCreateResourceRestApiNotEnabled() {
   }
 
   /**
-   * Ensure that an entity cannot be created without the restful permission.
-   */
-  public function testCreateWithoutPermission() {
-    $entity_type = 'entity_test';
-    // Enables the REST service for 'entity_test' entity type.
-    $this->enableService('entity:' . $entity_type, 'POST');
-    $permissions = $this->entityPermissions($entity_type, 'create');
-    // Create a user without the 'restful post entity:entity_test permission.
-    $account = $this->drupalCreateUser($permissions);
-    $this->drupalLogin($account);
-    // Populate some entity properties before create the entity.
-    $entity_values = $this->entityValues($entity_type);
-    $entity = EntityTest::create($entity_values);
-
-    // Serialize the entity before the POST request.
-    $serialized = $this->serializer->serialize($entity, $this->defaultFormat, ['account' => $account]);
-
-    // Create the entity over the REST API.
-    $this->httpRequest('entity/' . $entity_type, 'POST', $serialized, $this->defaultMimeType);
-    $this->assertResponse(403);
-    $this->assertFalse(EntityTest::loadMultiple(), 'No entity has been created in the database.');
-  }
-
-  /**
    * Tests several valid and invalid create requests for 'entity_test' entity type.
    */
   public function testCreateEntityTest() {
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
index 26facb7..03d3aa6 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
@@ -44,6 +44,8 @@ display:
           entity_field: id
       title: 'Test serialize'
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   rest_export_1:
     display_plugin: rest_export
     id: rest_export_1
@@ -53,3 +55,5 @@ display:
       defaults:
         access: false
       path: test/serialize/entity
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
index 04b0d75..84fc0e6 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
@@ -67,6 +67,8 @@ display:
           plugin_id: date
       title: 'Test serialize'
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   rest_export_1:
     display_plugin: rest_export
     id: rest_export_1
@@ -84,6 +86,8 @@ display:
         type: serializer
       row:
         type: data_field
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   rest_export_2:
     display_plugin: rest_export
     id: rest_export_2
@@ -103,3 +107,5 @@ display:
         type: serializer
       row:
         type: data_field
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
index 80bc8ac..feac2e8 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
@@ -112,6 +112,8 @@ display:
           entity_field: body
       title: 'Test serialize'
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   rest_export_1:
     display_plugin: rest_export
     id: rest_export_1
@@ -129,3 +131,5 @@ display:
         type: serializer
       row:
         type: data_field
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/serialization/src/Tests/EntitySerializationTest.php b/core/modules/serialization/src/Tests/EntitySerializationTest.php
index 2a0bf9d..d45c2a6 100644
--- a/core/modules/serialization/src/Tests/EntitySerializationTest.php
+++ b/core/modules/serialization/src/Tests/EntitySerializationTest.php
@@ -100,9 +100,6 @@ public function testNormalize() {
           'format' => $this->values['field_test_text']['format'],
         ),
       ),
-      'created' => array(
-        array('value' => $this->entity->created->value),
-      ),
     );
 
     $normalized = $this->serializer->normalize($this->entity);
@@ -155,7 +152,6 @@ public function testSerialize() {
       'user_id' => '<user_id><target_id>' . $this->values['user_id'] . '</target_id></user_id>',
       'revision_id' => '<revision_id><value>' . $this->entity->getRevisionId() . '</value></revision_id>',
       'field_test_text' => '<field_test_text><value>' . $this->values['field_test_text']['value'] . '</value><format>' . $this->values['field_test_text']['format'] . '</format></field_test_text>',
-      'created' => '<created><value>' . $this->entity->created->value . '</value></created>',
     );
     // Sort it in the same order as normalised.
     $expected = array_merge($normalized, $expected);
diff --git a/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml b/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
index 07a6e06..a82936f 100644
--- a/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
+++ b/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
@@ -244,6 +244,8 @@ display:
           order: DESC
           entity_type: node
           entity_field: created
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -251,3 +253,5 @@ display:
     position: null
     display_options:
       path: test_statistics_integration
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php b/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
index 32861c7..ecc5578 100644
--- a/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFieldDefaultValueTest.php
@@ -9,6 +9,7 @@
 
 use Drupal\Component\Uuid\Uuid;
 use Drupal\Component\Utility\String;
+use Drupal\Core\Language\LanguageInterface;
 
 /**
  * Tests default values for entity fields.
@@ -52,7 +53,7 @@ protected function assertDefaultValues($entity_type_id) {
     $langcode_key = $definition->getKey('langcode');
     $this->assertEqual($entity->{$langcode_key}->value, 'en', String::format('%entity_type: Default language', array('%entity_type' => $entity_type_id)));
     $this->assertTrue(Uuid::isValid($entity->uuid->value), String::format('%entity_type: Default UUID', array('%entity_type' => $entity_type_id)));
-    $this->assertEqual($entity->name->getValue(), array(), 'Field has one empty value by default.');
+    $this->assertEqual($entity->name->getValue(), array(0 => array('value' => NULL)), 'Field has one empty value by default.');
   }
 
   /**
diff --git a/core/modules/system/src/Tests/Entity/EntityFieldTest.php b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
index d62af4b..fdc66e6 100644
--- a/core/modules/system/src/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
@@ -277,25 +277,20 @@ protected function doTestReadWrite($entity_type) {
 
     // Tests adding a value to a field item list.
     $entity->name[] = 'Another name';
-    $this->assertEqual($entity->name[1]->value, 'Another name', format_string('%entity_type: List item added via [] and the first property.', array('%entity_type' => $entity_type)));
-    $entity->name[] = array('value' => 'Third name');
-    $this->assertEqual($entity->name[2]->value, 'Third name', format_string('%entity_type: List item added via [] and an array of properties.', array('%entity_type' => $entity_type)));
-    $entity->name[3] = array('value' => 'Fourth name');
-    $this->assertEqual($entity->name[3]->value, 'Fourth name', format_string('%entity_type: List item added via offset and an array of properties.', array('%entity_type' => $entity_type)));
-    unset($entity->name[3]);
+    $this->assertEqual($entity->name[1]->value, 'Another name', format_string('%entity_type: List item added via [].', array('%entity_type' => $entity_type)));
+    $entity->name[2]->value = 'Third name';
+    $this->assertEqual($entity->name[2]->value, 'Third name', format_string('%entity_type: List item added by a accessing not yet created item.', array('%entity_type' => $entity_type)));
 
     // Test removing and empty-ing list items.
     $this->assertEqual(count($entity->name), 3, format_string('%entity_type: List has 3 items.', array('%entity_type' => $entity_type)));
     unset($entity->name[1]);
     $this->assertEqual(count($entity->name), 2, format_string('%entity_type: Second list item has been removed.', array('%entity_type' => $entity_type)));
-    $this->assertEqual($entity->name[1]->value, 'Third name', format_string('%entity_type: The subsequent items have been shifted up.', array('%entity_type' => $entity_type)));
-    $this->assertEqual($entity->name[1]->getName(), 1, format_string('%entity_type: The items names have been updated to their new delta.', array('%entity_type' => $entity_type)));
-    $entity->name[1] = NULL;
+    $entity->name[2] = NULL;
     $this->assertEqual(count($entity->name), 2, format_string('%entity_type: Assigning NULL does not reduce array count.', array('%entity_type' => $entity_type)));
-    $this->assertTrue($entity->name[1]->isEmpty(), format_string('%entity_type: Assigning NULL empties the item.', array('%entity_type' => $entity_type)));
+    $this->assertTrue($entity->name[2]->isEmpty(), format_string('%entity_type: Assigning NULL empties the item.', array('%entity_type' => $entity_type)));
 
     // Test using isEmpty().
-    unset($entity->name[1]);
+    unset($entity->name[2]);
     $this->assertFalse($entity->name[0]->isEmpty(), format_string('%entity_type: Name item is not empty.', array('%entity_type' => $entity_type)));
     $entity->name->value = NULL;
     $this->assertTrue($entity->name[0]->isEmpty(), format_string('%entity_type: Name item is empty.', array('%entity_type' => $entity_type)));
@@ -659,7 +654,8 @@ public function testEntityConstraintValidation() {
       ->setLabel('Test entity')
       ->setSetting('target_type', 'entity_test');
     $reference_field = \Drupal::typedDataManager()->create($definition);
-    $reference = $reference_field->appendItem(array('entity' => $entity))->get('entity');
+    $reference = $reference_field->first()->get('entity');
+    $reference->setValue($entity);
 
     // Test validation the typed data object.
     $violations = $reference->validate();
@@ -686,7 +682,8 @@ public function testEntityConstraintValidation() {
         'target_bundle' => 'article',
       ));
     $reference_field = \Drupal::TypedDataManager()->create($definition);
-    $reference = $reference_field->appendItem(array('entity' => $node))->get('entity');
+    $reference = $reference_field->first()->get('entity');
+    $reference->setValue($node);
     $violations = $reference->validate();
     $this->assertEqual($violations->count(), 1);
 
diff --git a/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php b/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
index 06168a2..d484c8b 100644
--- a/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityRevisionsTest.php
@@ -63,7 +63,6 @@ protected function assertRevisions($entity_type) {
 
     $names = array();
     $texts = array();
-    $created = array();
     $revision_ids = array();
 
     // Create three revisions.
@@ -77,7 +76,6 @@ protected function assertRevisions($entity_type) {
       $entity->setNewRevision(TRUE);
       $names[] = $entity->name->value = $this->randomMachineName(32);
       $texts[] = $entity->field_test_text->value = $this->randomMachineName(32);
-      $created[] = $entity->created->value = time() + $i + 1;
       $entity->save();
       $revision_ids[] = $entity->revision_id->value;
 
@@ -95,10 +93,6 @@ protected function assertRevisions($entity_type) {
       $this->assertEqual($entity_revision->revision_id->value, $revision_ids[$i], format_string('%entity_type: Revision ID matches.', array('%entity_type' => $entity_type)));
       $this->assertEqual($entity_revision->name->value, $names[$i], format_string('%entity_type: Name matches.', array('%entity_type' => $entity_type)));
       $this->assertEqual($entity_revision->field_test_text->value, $texts[$i], format_string('%entity_type: Text matches.', array('%entity_type' => $entity_type)));
-
-      // Check non-revisioned values are loaded.
-      $this->assertTrue(isset($entity_revision->created->value), format_string('%entity_type: Non-revisioned field is loaded.', array('%entity_type' => $entity_type)));
-      $this->assertEqual($entity_revision->created->value, $created[2], format_string('%entity_type: Non-revisioned field value is the same between revisions.', array('%entity_type' => $entity_type)));
     }
 
     // Confirm the correct revision text appears in the edit form.
diff --git a/core/modules/system/src/Tests/Entity/EntityValidationTest.php b/core/modules/system/src/Tests/Entity/EntityValidationTest.php
index 44c9031..719b783 100644
--- a/core/modules/system/src/Tests/Entity/EntityValidationTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityValidationTest.php
@@ -79,19 +79,6 @@ protected function createTestEntity($entity_type) {
    * Tests validating test entity types.
    */
   public function testValidation() {
-    // Ensure that the constraint manager is marked as cached cleared.
-    $plugin_cache_clearer = \Drupal::service('plugin.cache_clearer');
-    $get_cached_discoveries = function () {
-      return $this->cachedDiscoveries;
-    };
-    $get_cached_discoveries = $get_cached_discoveries->bindTo($plugin_cache_clearer, $plugin_cache_clearer);
-    $cached_discoveries = $get_cached_discoveries();
-    $cached_discovery_classes = [];
-    foreach ($cached_discoveries as $cached_discovery) {
-      $cached_discovery_classes[] = get_class($cached_discovery);
-    }
-    $this->assertTrue(in_array('Drupal\Core\Validation\ConstraintManager', $cached_discovery_classes));
-
     // All entity variations have to have the same results.
     foreach (entity_test_entity_types() as $entity_type) {
       $this->checkValidation($entity_type);
diff --git a/core/modules/system/src/Tests/Lock/LockFunctionalTest.php b/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
index cece86d..846b44d 100644
--- a/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
+++ b/core/modules/system/src/Tests/Lock/LockFunctionalTest.php
@@ -28,8 +28,8 @@ class LockFunctionalTest extends WebTestBase {
    */
   public function testLockAcquire() {
     $lock = $this->container->get('lock');
-    $lock_acquired = 'TRUE: Lock successfully acquired in \Drupal\system_test\Controller\SystemTestController::lockAcquire()';
-    $lock_not_acquired = 'FALSE: Lock not acquired in \Drupal\system_test\Controller\SystemTestController::lockAcquire()';
+    $lock_acquired = 'TRUE: Lock successfully acquired in system_test_lock_acquire()';
+    $lock_not_acquired = 'FALSE: Lock not acquired in system_test_lock_acquire()';
     $this->assertTrue($lock->acquire('system_test_lock_acquire'), 'Lock acquired by this request.', 'Lock');
     $this->assertTrue($lock->acquire('system_test_lock_acquire'), 'Lock extended by this request.', 'Lock');
     $lock->release('system_test_lock_acquire');
@@ -54,7 +54,7 @@ public function testLockAcquire() {
     $this->assertFalse($lock->acquire('system_test_lock_acquire'), 'Lock cannot be extended by this request.', 'Lock');
 
     // Check the shut-down function.
-    $lock_acquired_exit = 'TRUE: Lock successfully acquired in \Drupal\system_test\Controller\SystemTestController::lockExit()';
+    $lock_acquired_exit = 'TRUE: Lock successfully acquired in system_test_lock_exit()';
     $this->drupalGet('system-test/lock-exit');
     $this->assertText($lock_acquired_exit, 'Lock acquired by the other request before exit.', 'Lock');
     $this->assertTrue($lock->acquire('system_test_lock_exit'), 'Lock acquired by this request after the other request exits.', 'Lock');
diff --git a/core/modules/system/src/Tests/TypedData/TypedDataTest.php b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
index 19a030d..99032f4 100644
--- a/core/modules/system/src/Tests/TypedData/TypedDataTest.php
+++ b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
@@ -331,9 +331,11 @@ public function testTypedDataLists() {
 
     // Test using array access.
     $this->assertEqual($typed_data[0]->getValue(), 'one');
-    $typed_data[] = 'four';
-    $this->assertEqual($typed_data[3]->getValue(), 'four');
-    $this->assertEqual($typed_data->count(), 4);
+    $typed_data[4] = 'four';
+    $this->assertEqual($typed_data[4]->getValue(), 'four');
+    $typed_data[] = 'five';
+    $this->assertEqual($typed_data[5]->getValue(), 'five');
+    $this->assertEqual($typed_data->count(), 5);
     $this->assertTrue(isset($typed_data[0]));
     $this->assertTrue(!isset($typed_data[6]));
 
@@ -364,14 +366,13 @@ public function testTypedDataLists() {
 
     $this->assertEqual($typed_data->getValue(), array(NULL, '', 'three'));
     // Test unsetting.
-    unset($typed_data[1]);
+    unset($typed_data[2]);
     $this->assertEqual(count($typed_data), 2);
-    // Check that items were shifted.
-    $this->assertEqual($typed_data[1]->getValue(), 'three');
+    $this->assertNull($typed_data[3]->getValue());
 
-    // Getting a not set list item returns NULL, and does not create a new item.
-    $this->assertNull($typed_data[2]);
-    $this->assertEqual(count($typed_data), 2);
+    // Getting a not set list item sets it.
+    $this->assertNull($typed_data[4]->getValue());
+    $this->assertEqual(count($typed_data), 4);
 
     // Test setting the list with less values.
     $typed_data->setValue(array('one'));
@@ -379,6 +380,13 @@ public function testTypedDataLists() {
 
     // Test setting invalid values.
     try {
+      $typed_data->setValue(array('not a list' => 'one'));
+      $this->fail('No exception has been thrown when setting an invalid value.');
+    }
+    catch (\Exception $e) {
+      $this->pass('Exception thrown:' . $e->getMessage());
+    }
+    try {
       $typed_data->setValue('string');
       $this->fail('No exception has been thrown when setting an invalid value.');
     }
diff --git a/core/modules/system/templates/field.html.twig b/core/modules/system/templates/field.html.twig
index 0745f84..5fcfd4f 100644
--- a/core/modules/system/templates/field.html.twig
+++ b/core/modules/system/templates/field.html.twig
@@ -7,16 +7,12 @@
  * to your theme's directory and customize it, just like customizing other
  * Drupal templates such as page.html.twig or node.html.twig.
  *
- * Instead of overriding the theming for all fields, you can also just override
- * theming for a subset of fields using
- * @link themeable Theme hook suggestions. @endlink For example,
- * here are some theme hook suggestions that can be used for a field_foo field
- * on an article node type:
- * - field--node--field-foo--article.html.twig
- * - field--node--field-foo.html.twig
- * - field--node--article.html.twig
- * - field--field-foo.html.twig
- * - field--text-with-summary.html.twig
+ * For example, for a field named 'body' displayed on the 'article' content
+ * type, any of the following templates will override this default
+ * implementation. The first of these templates that exists is used:
+ * - field--body--article.html.twig
+ * - field--article.html.twig
+ * - field--body.html.twig
  * - field.html.twig
  *
  * Available variables:
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module
index 9317d3c..f56a27e 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.module
+++ b/core/modules/system/tests/modules/entity_test/entity_test.module
@@ -333,10 +333,10 @@ function entity_test_entity_test_insert($entity) {
 function entity_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
   if ($field_definition->getName() == 'field_test_text') {
     if ($items) {
-      if ($items->value == 'no access value') {
+      if ($items[0]->value == 'no access value') {
         return AccessResult::forbidden()->cacheUntilEntityChanges($items->getEntity());
       }
-      elseif ($operation == 'delete' && $items->value == 'no delete access value') {
+      elseif ($operation == 'delete' && $items[0]->value == 'no delete access value') {
         return AccessResult::forbidden()->cacheUntilEntityChanges($items->getEntity());
       }
     }
@@ -351,7 +351,7 @@ function entity_test_entity_field_access($operation, FieldDefinitionInterface $f
  * @see \Drupal\system\Tests\Entity\FieldAccessTest::testFieldAccess()
  */
 function entity_test_entity_field_access_alter(array &$grants, array $context) {
-  if ($context['field_definition']->getName() == 'field_test_text' && $context['items']->value == 'access alter value') {
+  if ($context['field_definition']->getName() == 'field_test_text' && $context['items'][0]->value == 'access alter value') {
     $grants[':default'] = AccessResult::forbidden()->inheritCacheability($grants[':default'])->cacheUntilEntityChanges($context['items']->getEntity());
   }
 }
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
index 0549257..0d6234d 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTest.php
@@ -100,11 +100,6 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ->setDescription(t('The bundle of the test entity.'))
       ->setRequired(TRUE);
 
-    $fields['created'] = BaseFieldDefinition::create('created')
-      ->setLabel(t('Authored on'))
-      ->setDescription(t('Time the entity was created'))
-      ->setTranslatable(TRUE);
-
     $fields['user_id'] = BaseFieldDefinition::create('entity_reference')
       ->setLabel(t('User ID'))
       ->setDescription(t('The ID of the associated user.'))
diff --git a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
index 5b4bf73..492f425 100644
--- a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
+++ b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
@@ -8,8 +8,6 @@
 namespace Drupal\system_test\Controller;
 
 use Drupal\Core\Controller\ControllerBase;
-use Drupal\Core\Url;
-use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Drupal\Core\Lock\LockBackendInterface;
@@ -21,13 +19,6 @@
 class SystemTestController extends ControllerBase {
 
   /**
-   * The lock service.
-   *
-   * @var \Drupal\Core\Lock\LockBackendInterface
-   */
-  protected $lock;
-
-  /**
    * The persistent lock service.
    *
    * @var \Drupal\Core\Lock\LockBackendInterface
@@ -37,13 +28,10 @@ class SystemTestController extends ControllerBase {
   /**
    * Constructs the SystemTestController.
    *
-   * @param \Drupal\Core\Lock\LockBackendInterface $lock
-   *   The lock service.
    * @param \Drupal\Core\Lock\LockBackendInterface $persistent_lock
    *   The persistent lock service.
    */
-  public function __construct(LockBackendInterface $lock, LockBackendInterface $persistent_lock) {
-    $this->lock = $lock;
+  public function __construct(LockBackendInterface $persistent_lock) {
     $this->persistentLock = $persistent_lock;
   }
 
@@ -51,7 +39,7 @@ public function __construct(LockBackendInterface $lock, LockBackendInterface $pe
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container) {
-    return new static($container->get('lock'), $container->get('lock.persistent'));
+    return new static($container->get('lock.persistent'));
   }
 
   /**
@@ -88,30 +76,17 @@ public function drupalSetMessageTest() {
   }
 
   /**
-   * Try to acquire a named lock and report the outcome.
+   * @todo Remove system_test_lock_acquire().
    */
   public function lockAcquire() {
-    if ($this->lock->acquire('system_test_lock_acquire')) {
-      $this->lock->release('system_test_lock_acquire');
-      return ['#markup' => 'TRUE: Lock successfully acquired in \Drupal\system_test\Controller\SystemTestController::lockAcquire()'];
-    }
-    else {
-      return ['#markup' => 'FALSE: Lock not acquired in \Drupal\system_test\Controller\SystemTestController::lockAcquire()'];
-    }
+    return system_test_lock_acquire();
   }
 
   /**
-   * Try to acquire a specific lock, and then exit.
+   * @todo Remove system_test_lock_exit().
    */
   public function lockExit() {
-    if ($this->lock->acquire('system_test_lock_exit', 900)) {
-      echo 'TRUE: Lock successfully acquired in \Drupal\system_test\Controller\SystemTestController::lockExit()';
-      // The shut-down function should release the lock.
-      exit();
-    }
-    else {
-      return ['#markup' => 'FALSE: Lock not acquired in system_test_lock_exit()'];
-    }
+    return system_test_lock_exit();
   }
 
   /**
@@ -157,14 +132,10 @@ public static function preRenderCacheTags($elements) {
   }
 
   /**
-   * Initialize authorize.php during testing.
-   *
-   * @see system_authorized_init().
+   * @todo Remove system_test_authorize_init_page().
    */
   public function authorizeInit($page_title) {
-    $authorize_url = Url::fromUri('base:core/authorize.php', array('absolute' => TRUE))->toString();
-    system_authorized_init('system_test_authorize_run', drupal_get_path('module', 'system_test') . '/system_test.module', array(), $page_title);
-    return new RedirectResponse($authorize_url);
+    return system_test_authorize_init_page($page_title);
   }
 
   /**
@@ -180,10 +151,10 @@ public function setHeader(Request $request) {
   }
 
   /**
-   * A simple page callback which adds a register shutdown function.
+   * @todo Remove system_test_page_shutdown_functions().
    */
   public function shutdownFunctions($arg1, $arg2) {
-    drupal_register_shutdown_function('_system_test_first_shutdown_function', $arg1, $arg2);
+    system_test_page_shutdown_functions($arg1, $arg2);
     // If using PHP-FPM then fastcgi_finish_request() will have been fired
     // preventing further output to the browser which means that the escaping of
     // the exception message can not be tested.
diff --git a/core/modules/system/tests/modules/system_test/system_test.module b/core/modules/system/tests/modules/system_test/system_test.module
index 5e8a552..b44e0a0 100644
--- a/core/modules/system/tests/modules/system_test/system_test.module
+++ b/core/modules/system/tests/modules/system_test/system_test.module
@@ -1,6 +1,7 @@
 <?php
 
 use Drupal\Core\Extension\Extension;
+use Symfony\Component\HttpFoundation\RedirectResponse;
 
 /**
  * Implements hook_modules_installed().
@@ -64,6 +65,37 @@ function system_test_system_info_alter(&$info, Extension $file, $type) {
 }
 
 /**
+ * Try to acquire a named lock and report the outcome.
+ *
+ * @deprecated \Drupal\system_test\Controller\SystemTestController::lockAcquire()
+ */
+function system_test_lock_acquire() {
+  if (\Drupal::lock()->acquire('system_test_lock_acquire')) {
+    \Drupal::lock()->release('system_test_lock_acquire');
+    return ['#markup' => 'TRUE: Lock successfully acquired in system_test_lock_acquire()'];
+  }
+  else {
+    return ['#markup' => 'FALSE: Lock not acquired in system_test_lock_acquire()'];
+  }
+}
+
+/**
+ * Try to acquire a specific lock, and then exit.
+ *
+ * @deprecated \Drupal\system_test\Controller\SystemTestController::lockExit()
+ */
+function system_test_lock_exit() {
+  if (\Drupal::lock()->acquire('system_test_lock_exit', 900)) {
+    echo 'TRUE: Lock successfully acquired in system_test_lock_exit()';
+    // The shut-down function should release the lock.
+    exit();
+  }
+  else {
+    return ['#markup' => 'FALSE: Lock not acquired in system_test_lock_exit()'];
+  }
+}
+
+/**
  * Implements hook_page_attachments().
  */
 function system_test_page_attachments(array &$page) {
@@ -75,6 +107,15 @@ function system_test_page_attachments(array &$page) {
 }
 
 /**
+ * A simple page callback which adds a register shutdown function.
+ *
+ * @deprecated \Drupal\system_test\Controller\SystemTestController::shutdownFunctions()
+ */
+function system_test_page_shutdown_functions($arg1, $arg2) {
+  drupal_register_shutdown_function('_system_test_first_shutdown_function', $arg1, $arg2);
+}
+
+/**
  * Dummy shutdown function which registers another shutdown function.
  */
 function _system_test_first_shutdown_function($arg1, $arg2) {
@@ -111,6 +152,19 @@ function system_test_filetransfer_info() {
 }
 
 /**
+ * Page callback to initialize authorize.php during testing.
+ *
+ * @see system_authorized_init().
+ *
+ * @deprecated \Drupal\system_test\Controller\SystemTestController::authorizeInit()
+ */
+function system_test_authorize_init_page($page_title) {
+  $authorize_url = $GLOBALS['base_url'] . '/core/authorize.php';
+  system_authorized_init('system_test_authorize_run', drupal_get_path('module', 'system_test') . '/system_test.module', array(), $page_title);
+  return new RedirectResponse($authorize_url);
+}
+
+/**
  * Implements hook_module_preinstall().
  */
 function system_test_module_preinstall($module) {
diff --git a/core/modules/system/theme.api.php b/core/modules/system/theme.api.php
index b88f740..9bc3d5b 100644
--- a/core/modules/system/theme.api.php
+++ b/core/modules/system/theme.api.php
@@ -150,9 +150,6 @@
  *   PLUGIN is the machine name of the particular search plugin type that was
  *   used for the search (such as node_search or user_search).
  *
- * For further information on overriding theme hooks see
- * https://www.drupal.org/node/2186401
- *
  * @section sec_alternate_suggestions Altering theme hook suggestions
  * Modules can also alter the theme suggestions provided using the mechanisms
  * of the previous section. There are two hooks for this: the
diff --git a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
index b8518f8..885d416 100644
--- a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
+++ b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
@@ -235,6 +235,8 @@ display:
       empty: {  }
       relationships: {  }
       fields: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     id: feed_1
     display_title: Feed
@@ -280,6 +282,8 @@ display:
         options:
           relationship: none
           view_mode: default
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     id: page_1
     display_title: Page
@@ -290,3 +294,5 @@ display:
         type: views_query
         options: {  }
       path: taxonomy/term/%
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
index 1e64695..c65d9c9 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
@@ -161,4 +161,6 @@ display:
           plugin_id: taxonomy
           entity_type: taxonomy_term
           entity_field: tid
-      rendering_language: '***LANGUAGE_entity_translation***'
+      field_langcode: '***LANGUAGE_site_default***'
+      field_langcode_add_to_query: null
+      rendering_language: translation_language_renderer
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
index 4642b07..66b30fb 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
@@ -135,12 +135,16 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_dc:
     display_plugin: page
     id: page_dc
     display_title: 'Description Comida'
     position: 3
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       path: test-desc-filter
       filters:
@@ -197,6 +201,8 @@ display:
     display_title: 'Description Comida'
     position: 3
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       path: test-desc-paris
       filters:
@@ -253,6 +259,8 @@ display:
     display_title: 'Field Comida'
     position: 3
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       path: test-field-filter
       filters:
@@ -309,6 +317,8 @@ display:
     display_title: 'Field Paris'
     position: 3
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       path: test-field-paris
       filters:
@@ -365,6 +375,8 @@ display:
     display_title: 'Name Comida'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-name-filter
       display_description: ''
   page_np:
@@ -373,6 +385,8 @@ display:
     display_title: 'Name Paris'
     position: 1
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-name-paris
       display_description: ''
       filters:
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
index f6ea2df..c8b3192 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
@@ -177,3 +177,5 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
index e2eee61..30ed9f5 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
@@ -73,6 +73,8 @@ display:
       style:
         type: default
       title: test_groupwise
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
index 5b482c1..c96c7da 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
@@ -83,6 +83,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
index eb82cca..efaaa62 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
@@ -131,3 +131,5 @@ display:
           required: true
           plugin_id: standard
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
index 914ad91..10ef4ef 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
@@ -154,3 +154,5 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
index dc22ddf..223ac1b 100644
--- a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
+++ b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
@@ -181,3 +181,5 @@ display:
           validate_options: {  }
           plugin_id: tracker_user_uid
           entity_type: node
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/config/install/views.view.user_admin_people.yml b/core/modules/user/config/install/views.view.user_admin_people.yml
index 9be97a9..a62860e 100644
--- a/core/modules/user/config/install/views.view.user_admin_people.yml
+++ b/core/modules/user/config/install/views.view.user_admin_people.yml
@@ -815,6 +815,8 @@ display:
         operator: AND
         groups:
           1: AND
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
   page_1:
     display_plugin: page
@@ -839,4 +841,6 @@ display:
         weight: 0
       defaults:
         show_admin_links: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
diff --git a/core/modules/user/config/install/views.view.who_s_new.yml b/core/modules/user/config/install/views.view.who_s_new.yml
index 6545b94..51ef2c5 100644
--- a/core/modules/user/config/install/views.view.who_s_new.yml
+++ b/core/modules/user/config/install/views.view.who_s_new.yml
@@ -166,6 +166,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   block_1:
     display_plugin: block
     id: block_1
@@ -175,3 +177,5 @@ display:
       display_description: 'A list of new users'
       block_description: 'Who''s new'
       block_category: User
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/config/install/views.view.who_s_online.yml b/core/modules/user/config/install/views.view.who_s_online.yml
index 13f4af8..9c0faef 100644
--- a/core/modules/user/config/install/views.view.who_s_online.yml
+++ b/core/modules/user/config/install/views.view.who_s_online.yml
@@ -196,6 +196,8 @@ display:
           plugin_id: text_custom
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   who_s_online_block:
     display_plugin: block
     id: who_s_online_block
@@ -204,3 +206,5 @@ display:
     display_options:
       block_description: 'Who''s online'
       display_description: 'A list of users that are currently logged in.'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_perm.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_perm.yml
index 194d676..caeeca3 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_perm.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_perm.yml
@@ -28,6 +28,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_role.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_role.yml
index 5aa6178..6f2f936 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_role.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_access_role.yml
@@ -32,6 +32,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -39,6 +41,8 @@ display:
   page_1:
     display_options:
       path: test-role
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_field_permission.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_field_permission.yml
index a3d1ba6..6ae987e 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_field_permission.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_field_permission.yml
@@ -138,3 +138,5 @@ display:
           plugin_id: user_permissions
       filters: {  }
       sorts: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
index 1490795..48a4761 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
@@ -140,3 +140,5 @@ display:
           plugin_id: standard
           entity_type: user
           entity_field: uid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
index 4e90e9f..427c7cb 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
@@ -86,6 +86,8 @@ display:
       style:
         type: default
       title: test_groupwise_user
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
index b9f33de..10beeb4 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
@@ -58,6 +58,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
index 80ea23c..3dd3a31 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
@@ -55,6 +55,8 @@ display:
           plugin_id: boolean
           entity_type: user
           entity_field: status
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -62,3 +64,5 @@ display:
     position: null
     display_options:
       path: test-user-bulk-form
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
index 60b55d4..f5baa99 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
@@ -43,6 +43,8 @@ display:
           entity_type: user
           entity_field: changed
       filters: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -50,6 +52,8 @@ display:
   page_1:
     display_options:
       path: test_user_changed
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
index 72ce406..5bd259e 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
@@ -130,3 +130,5 @@ display:
           plugin_id: date
           entity_type: user
           entity_field: created
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
index 8674303..ccd87b7 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
@@ -49,6 +49,8 @@ display:
               anonymous: '0'
           entity_type: user
           entity_field: uid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -56,6 +58,8 @@ display:
   page_1:
     display_options:
       path: test_user_name
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
index b3f9811..6a3907d 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
@@ -111,6 +111,8 @@ display:
         options:
           default_field_elements: true
           hide_empty: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
index cf824cc..9458729 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
@@ -32,6 +32,8 @@ display:
           plugin_id: user_uid
           entity_type: user
           entity_field: uid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
index 496afc6..99c541a 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
@@ -34,6 +34,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
index 3318782..af599f8 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
@@ -34,6 +34,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
index 2044a11..40f21bc 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
@@ -157,6 +157,8 @@ display:
           entity_field: status
       sorts: {  }
       title: test_user_role
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -164,3 +166,5 @@ display:
     position: null
     display_options:
       path: test-views-handler-field-role
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
index 931e8b1..8f2a9ee 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
@@ -53,6 +53,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/config/schema/views.data_types.schema.yml b/core/modules/views/config/schema/views.data_types.schema.yml
index 4dce050..f2aece5 100644
--- a/core/modules/views/config/schema/views.data_types.schema.yml
+++ b/core/modules/views/config/schema/views.data_types.schema.yml
@@ -247,6 +247,12 @@ views_display:
     hide_attachment_summary:
       type: boolean
       label: 'Hide attachments in summary'
+    field_langcode:
+      type: string
+      label: 'Field langcode'
+    field_langcode_add_to_query:
+      type: string
+      label: 'Add the field language to the query'
     rendering_language:
       type: string
       label: 'Entity language'
diff --git a/core/modules/views/src/Entity/Render/ConfigurableLanguageRenderer.php b/core/modules/views/src/Entity/Render/ConfigurableLanguageRenderer.php
deleted file mode 100644
index 8470efd..0000000
--- a/core/modules/views/src/Entity/Render/ConfigurableLanguageRenderer.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\views\Entity\Render\ConfigurableLanguageRenderer.
- */
-
-namespace Drupal\views\Entity\Render;
-
-use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Language\LanguageManagerInterface;
-use Drupal\views\ResultRow;
-use Drupal\views\ViewExecutable;
-
-/**
- * Renders entities in a configured language.
- */
-class ConfigurableLanguageRenderer extends RendererBase {
-
-  /**
-   * A specific language code for rendering if available.
-   *
-   * @var string|null
-   */
-  protected $langcode;
-
-  /**
-   * Constructs a renderer object.
-   *
-   * @param \Drupal\views\ViewExecutable $view
-   *   The entity row being rendered.
-   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
-   *   The language manager.
-   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
-   *   The entity type.
-   * @param string|null $langcode
-   *   A specific language code to set, if available.
-   */
-  public function __construct(ViewExecutable $view, LanguageManagerInterface $language_manager, EntityTypeInterface $entity_type, $langcode) {
-    parent::__construct($view, $language_manager, $entity_type);
-    $this->langcode = $langcode;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getLangcode(ResultRow $row) {
-    return $this->langcode;
-  }
-
-}
diff --git a/core/modules/views/src/Entity/Render/CurrentLanguageRenderer.php b/core/modules/views/src/Entity/Render/CurrentLanguageRenderer.php
new file mode 100644
index 0000000..fb91787
--- /dev/null
+++ b/core/modules/views/src/Entity/Render/CurrentLanguageRenderer.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Entity\Render\CurrentLanguageRenderer.
+ */
+
+namespace Drupal\views\Entity\Render;
+
+use Drupal\views\ResultRow;
+
+/**
+ * Renders entities in the current language.
+ */
+class CurrentLanguageRenderer extends RendererBase {
+
+  /**
+   * Returns NULL so that the current language is used.
+   *
+   * @param \Drupal\views\ResultRow $row
+   *   The result row.
+   */
+  protected function getLangcode(ResultRow $row) {
+  }
+
+}
diff --git a/core/modules/views/src/Entity/Render/DefaultLanguageRenderer.php b/core/modules/views/src/Entity/Render/DefaultLanguageRenderer.php
index bab75d8..2e99c12 100644
--- a/core/modules/views/src/Entity/Render/DefaultLanguageRenderer.php
+++ b/core/modules/views/src/Entity/Render/DefaultLanguageRenderer.php
@@ -15,9 +15,15 @@
 class DefaultLanguageRenderer extends RendererBase {
 
   /**
-   * {@inheritdoc}
+   * Returns the language code associated to the given row.
+   *
+   * @param \Drupal\views\ResultRow $row
+   *   The result row.
+   *
+   * @return string
+   *   A language code.
    */
-  public function getLangcode(ResultRow $row) {
+  protected function getLangcode(ResultRow $row) {
     return $row->_entity->getUntranslated()->language()->getId();
   }
 
diff --git a/core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php b/core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php
deleted file mode 100644
index 1be7364..0000000
--- a/core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\views\Entity\Render\EntityTranslationRenderTrait.
- */
-
-namespace Drupal\views\Entity\Render;
-
-use Drupal\views\Plugin\views\PluginBase;
-
-/**
- * Trait used to instantiate the view's entity language render.
- */
-trait EntityTranslationRenderTrait {
-
-  /**
-   * The renderer to be used to render the entity row.
-   *
-   * @var \Drupal\views\Entity\Render\RendererBase
-   */
-  protected $entityLanguageRenderer;
-
-  /**
-   * Returns the current renderer.
-   *
-   * @return \Drupal\views\Entity\Render\RendererBase
-   *   The configured renderer.
-   */
-  protected function getEntityTranslationRenderer() {
-    if (!isset($this->entityLanguageRenderer)) {
-      $view = $this->getView();
-      $rendering_language = $view->display_handler->getOption('rendering_language');
-      $langcode = NULL;
-      $dynamic_renderers = array(
-        '***LANGUAGE_entity_translation***' => 'TranslationLanguageRenderer',
-        '***LANGUAGE_entity_default***' => 'DefaultLanguageRenderer',
-      );
-      if (isset($dynamic_renderers[$rendering_language])) {
-        // Dynamic language set based on result rows or instance defaults.
-        $renderer = $dynamic_renderers[$rendering_language];
-      }
-      else {
-        if (strpos($rendering_language, '***LANGUAGE_') !== FALSE) {
-          $langcode = PluginBase::queryLanguageSubstitutions()[$rendering_language];
-        }
-        else {
-          // Specific langcode set.
-          $langcode = $rendering_language;
-        }
-        $renderer = 'ConfigurableLanguageRenderer';
-      }
-      $class = '\Drupal\views\Entity\Render\\' . $renderer;
-      $entity_type = $this->getEntityManager()->getDefinition($this->getEntityTypeId());
-      $this->entityLanguageRenderer = new $class($view, $this->getLanguageManager(), $entity_type, $langcode);
-    }
-    return $this->entityLanguageRenderer;
-  }
-
-  /**
-   * Returns the entity type identifier.
-   *
-   * @return string
-   *   The entity type identifier.
-   */
-  abstract public function getEntityTypeId();
-
-  /**
-   * Returns the entity manager.
-   *
-   * @return \Drupal\Core\Entity\EntityManagerInterface
-   *   The entity manager.
-   */
-  abstract protected function getEntityManager();
-
-  /**
-   * Returns the language manager.
-   *
-   * @return \Drupal\Core\Language\LanguageManagerInterface
-   *   The language manager.
-   */
-  abstract protected function getLanguageManager();
-
-  /**
-   * Returns the top object of a view.
-   *
-   * @return \Drupal\views\ViewExecutable
-   *   The view object.
-   */
-  abstract protected function getView();
-
-}
diff --git a/core/modules/views/src/Entity/Render/RendererBase.php b/core/modules/views/src/Entity/Render/RendererBase.php
index be8aea6..c74964d 100644
--- a/core/modules/views/src/Entity/Render/RendererBase.php
+++ b/core/modules/views/src/Entity/Render/RendererBase.php
@@ -23,7 +23,7 @@
    *
    * @var \Drupal\views\ViewExecutable
    */
-  public $view;
+  public $view = NULL;
 
   /**
    * The language manager.
@@ -63,17 +63,6 @@ public function __construct(ViewExecutable $view, LanguageManagerInterface $lang
   }
 
   /**
-   * Returns the language code associated to the given row.
-   *
-   * @param \Drupal\views\ResultRow $row
-   *   The result row.
-   *
-   * @return string
-   *   A language code.
-   */
-  abstract public function getLangcode(ResultRow $row);
-
-  /**
    * Alters the query if needed.
    *
    * @param \Drupal\views\Plugin\views\query\QueryPluginBase $query
diff --git a/core/modules/views/src/Entity/Render/TranslationLanguageRenderer.php b/core/modules/views/src/Entity/Render/TranslationLanguageRenderer.php
index 58c8ff0..9b0e0da 100644
--- a/core/modules/views/src/Entity/Render/TranslationLanguageRenderer.php
+++ b/core/modules/views/src/Entity/Render/TranslationLanguageRenderer.php
@@ -13,7 +13,7 @@
 /**
  * Renders entity translations in their active language.
  */
-class TranslationLanguageRenderer extends RendererBase {
+class TranslationLanguageRenderer extends DefaultLanguageRenderer {
 
   /**
    * Stores the field alias of the langcode column.
@@ -71,7 +71,7 @@ public function render(ResultRow $row) {
   /**
    * {@inheritdoc}
    */
-  public function getLangcode(ResultRow $row) {
+  protected function getLangcode(ResultRow $row) {
     return isset($row->{$this->langcodeAlias}) ? $row->{$this->langcodeAlias} : $this->languageManager->getDefaultLanguage()->getId();
   }
 
diff --git a/core/modules/views/src/Plugin/views/PluginBase.php b/core/modules/views/src/Plugin/views/PluginBase.php
index d26a5ea..e09545f 100644
--- a/core/modules/views/src/Plugin/views/PluginBase.php
+++ b/core/modules/views/src/Plugin/views/PluginBase.php
@@ -52,13 +52,6 @@
   const INCLUDE_NEGOTIATED = 16;
 
   /**
-   * Include entity row languages when listing languages.
-   *
-   * @see \Drupal\views\Plugin\views\PluginBase::listLanguages()
-   */
-  const INCLUDE_ENTITY = 32;
-
-  /**
    * Query string to indicate the site default language.
    *
    * @see \Drupal\Core\Language\LanguageInterface::LANGCODE_DEFAULT
@@ -497,25 +490,16 @@ public function getProvider() {
    *     note that this is not included in STATE_ALL.
    *   - \Drupal\views\Plugin\views\PluginBase::INCLUDE_NEGOTIATED: Add
    *     negotiated language types.
-   *   - \Drupal\views\Plugin\views\PluginBase::INCLUDE_ENTITY: Add
-   *     entity row language types. Note that these are only supported for
-   *     display options, not substituted in queries.
    *
    * @return array
    *   An array of language names, keyed by the language code. Negotiated and
    *   special languages have special codes that are substituted in queries by
-   *   PluginBase::queryLanguageSubstitutions().
+   *   static::queryLanguageSubstitutions().
    */
   protected function listLanguages($flags = LanguageInterface::STATE_ALL) {
     $manager = \Drupal::languageManager();
     $list = array();
 
-    // The entity languages should come first, if requested.
-    if ($flags & PluginBase::INCLUDE_ENTITY) {
-      $list['***LANGUAGE_entity_translation***'] = $this->t('Content language of view row');
-      $list['***LANGUAGE_entity_default***'] = $this->t('Original language of content in view row');
-    }
-
     // The Language Manager class takes care of the STATE_SITE_DEFAULT case.
     // It comes in with ID set to LanguageInterface::LANGCODE_SITE_DEFAULT.
     // Since this is not a real language, surround it by '***LANGUAGE_...***',
@@ -537,7 +521,7 @@ protected function listLanguages($flags = LanguageInterface::STATE_ALL) {
         // IDs by '***LANGUAGE_...***', to avoid query collisions.
         if (isset($type['name'])) {
           $id = '***LANGUAGE_' . $id . '***';
-          $list[$id] = $this->t('!type language selected for page', array('!type' => $type['name']));
+          $list[$id] = $this->t('Language selected for !type', array('!type' => $type['name']));
         }
       }
     }
@@ -549,7 +533,7 @@ protected function listLanguages($flags = LanguageInterface::STATE_ALL) {
    * Returns substitutions for Views queries for languages.
    *
    * This is needed so that the language options returned by
-   * PluginBase::listLanguages() are able to be used in queries. It is called
+   * $this->listLanguages() are able to be used in queries. It is called
    * by the Views module implementation of hook_views_query_substitutions()
    * to get the language-related substitutions.
    *
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 7595977..ac4d9ba 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -195,6 +195,15 @@ public function initDisplay(ViewExecutable $view, array &$display, array &$optio
       $this->unpackOptions($this->options, $options);
     }
 
+    // Convert the field_langcode and field_language_add_to_query settings.
+    $field_langcode = $this->getOption('field_langcode');
+    $field_language_add_to_query = $this->getOption('field_language_add_to_query');
+    if (isset($field_langcode)) {
+      $this->setOption('field_langcode', $field_langcode);
+      $this->setOption('field_langcode_add_to_query', $field_language_add_to_query);
+      $changed = TRUE;
+    }
+
     // Mark the view as changed so the user has a chance to save it.
     if ($changed) {
       $this->view->changed = TRUE;
@@ -530,8 +539,14 @@ protected function defineOptions() {
       'group_by' => array(
         'default' => FALSE,
       ),
+      'field_langcode' => array(
+        'default' => '***LANGUAGE_language_content***',
+      ),
+      'field_langcode_add_to_query' => array(
+        'default' => TRUE,
+      ),
       'rendering_language' => array(
-        'default' => '***LANGUAGE_entity_translation***',
+        'default' => 'translation_language_renderer',
       ),
 
       // These types are all plugins that can have individual settings
@@ -1160,9 +1175,15 @@ public function optionsSummary(&$categories, &$options) {
       $rendering_language_options = $this->buildRenderingLanguageOptions();
       $options['rendering_language'] = array(
         'category' => 'language',
-        'title' => $this->t('Rendering Language'),
+        'title' => $this->t('Entity Language'),
         'value' => $rendering_language_options[$this->getOption('rendering_language')],
-        'desc' => $this->t('All content that supports translations will be displayed in the selected language.'),
+      );
+      $language_options = $this->listLanguages(LanguageInterface::STATE_ALL | LanguageInterface::STATE_SITE_DEFAULT | PluginBase::INCLUDE_NEGOTIATED);
+      $options['field_langcode'] = array(
+        'category' => 'language',
+        'title' => $this->t('Field Language'),
+        'value' => $language_options[$this->getOption('field_langcode')],
+        'desc' => $this->t('All fields that support translations will be displayed in the selected language.'),
       );
     }
 
@@ -1512,15 +1533,36 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           $this->view->query->buildOptionsForm($form['query']['options'], $form_state);
         }
         break;
+      case 'field_langcode':
+        $form['#title'] .= $this->t('Field Language');
+        if ($this->isBaseTableTranslatable()) {
+          $languages = $this->listLanguages(LanguageInterface::STATE_ALL | LanguageInterface::STATE_SITE_DEFAULT | PluginBase::INCLUDE_NEGOTIATED);
+
+          $form['field_langcode'] = array(
+            '#type' => 'select',
+            '#title' => $this->t('Field Language'),
+            '#description' => $this->t('All fields which support translations will be displayed in the selected language.'),
+            '#options' => $languages,
+            '#default_value' => $this->getOption('field_langcode'),
+          );
+          $form['field_langcode_add_to_query'] = array(
+            '#type' => 'checkbox',
+            '#title' => $this->t('When needed, add the field language condition to the query'),
+            '#default_value' => $this->getOption('field_langcode_add_to_query'),
+          );
+        }
+        else {
+          $form['field_language']['#markup'] = $this->t("You don't have translatable entity types.");
+        }
+        break;
       case 'rendering_language':
-        $form['#title'] .= $this->t('Rendering language');
+        $form['#title'] .= $this->t('Entity Language');
         if ($this->isBaseTableTranslatable()) {
           $options = $this->buildRenderingLanguageOptions();
           $form['rendering_language'] = array(
             '#type' => 'select',
             '#options' => $options,
-            '#title' => $this->t('Rendering language'),
-            '#description' => $this->t('All content that supports translations will be displayed in the selected language.'),
+            '#title' => $this->t('Entity language'),
             '#default_value' => $this->getOption('rendering_language'),
           );
         }
@@ -1840,6 +1882,10 @@ public function submitOptionsForm(&$form, FormStateInterface $form_state) {
       case 'group_by':
         $this->setOption($section, $form_state->getValue($section));
         break;
+      case 'field_langcode':
+        $this->setOption('field_langcode', $form_state->getValue('field_langcode'));
+        $this->setOption('field_langcode_add_to_query', $form_state->getValue('field_langcode_add_to_query'));
+        break;
       case 'rendering_language':
         $this->setOption('rendering_language', $form_state->getValue('rendering_language'));
         break;
@@ -2469,7 +2515,11 @@ public function getExtenders() {
    */
   protected function buildRenderingLanguageOptions() {
     // @todo Consider making these plugins. See https://drupal.org/node/2173811.
-    return $this->listLanguages(LanguageInterface::STATE_CONFIGURABLE | LanguageInterface::STATE_SITE_DEFAULT | PluginBase::INCLUDE_NEGOTIATED | PluginBase::INCLUDE_ENTITY);
+    return array(
+      'current_language_renderer' => $this->t('Current language'),
+      'default_language_renderer' => $this->t('Default language'),
+      'translation_language_renderer' => $this->t('Translation language'),
+    );
   }
 
   /**
diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php
index 5a146f8..1be60ce 100644
--- a/core/modules/views/src/Plugin/views/field/Field.php
+++ b/core/modules/views/src/Plugin/views/field/Field.php
@@ -8,9 +8,12 @@
 namespace Drupal\views\Plugin\views\field;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\Component\Utility\Xss as CoreXss;
+use Drupal\Component\Utility\Xss;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Field\BaseFieldDefinition;
+use Drupal\Core\Field\FieldConfigInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Field\FormatterPluginManager;
@@ -21,12 +24,15 @@
 use Drupal\Core\Render\Element;
 use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\field\FieldStorageConfigInterface;
 use Drupal\field\Views\FieldAPIHandlerTrait;
-use Drupal\views\Entity\Render\EntityTranslationRenderTrait;
 use Drupal\views\Plugin\CacheablePluginInterface;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
+use Drupal\views\Plugin\views\field\FieldPluginBase;
+use Drupal\views\Plugin\views\field\MultiItemsFieldHandlerInterface;
 use Drupal\views\ResultRow;
 use Drupal\views\ViewExecutable;
+use Drupal\views\Views;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -39,7 +45,6 @@
  * @ViewsField("field")
  */
 class Field extends FieldPluginBase implements CacheablePluginInterface, MultiItemsFieldHandlerInterface {
-  use EntityTranslationRenderTrait;
 
   use FieldAPIHandlerTrait;
 
@@ -201,33 +206,6 @@ public function init(ViewExecutable $view, DisplayPluginBase $display, array &$o
   /**
    * {@inheritdoc}
    */
-  public function getEntityTypeId() {
-    return $this->getEntityType();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getEntityManager() {
-    return $this->entityManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getLanguageManager() {
-    return $this->languageManager;
-  }
-  /**
-   * {@inheritdoc}
-   */
-  protected function getView() {
-    return $this->view;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function access(AccountInterface $account) {
     $access_control_handler = $this->entityManager->getAccessControlHandler($this->getEntityType());
     return $access_control_handler->fieldAccess('view', $this->getFieldDefinition(), $account);
@@ -269,10 +247,24 @@ public function query($use_groupby = FALSE) {
     if ($this->add_field_table($use_groupby)) {
       $this->ensureMyTable();
       $this->addAdditionalFields($fields);
-    }
 
-    // Let the configured entity translation renderer alter the query if needed.
-    $this->getEntityTranslationRenderer()->query($this->query);
+      // If we are grouping by something on this field, we want to group by
+      // the displayed value, which is translated. So, we need to figure out
+      // which language should be used to translate the value. See also
+      // $this->field_langcode().
+      $field = $field_definition;
+      if ($field->isTranslatable() && !empty($this->view->display_handler->options['field_langcode_add_to_query'])) {
+        $column = $this->tableAlias . '.langcode';
+        $langcode = $this->view->display_handler->options['field_langcode'];
+        $substitutions = static::queryLanguageSubstitutions();
+        if (isset($substitutions[$langcode])) {
+          $langcode = $substitutions[$langcode];
+        }
+        $placeholder = $this->placeholder();
+        $langcode_fallback_candidates = $this->languageManager->getFallbackCandidates(array('langcode' => $langcode, 'operation' => 'views_query', 'data' => $this));
+        $this->query->addWhereExpression(0, "$column IN($placeholder) OR $column IS NULL", array($placeholder => $langcode_fallback_candidates));
+      }
+    }
   }
 
   /**
@@ -766,7 +758,7 @@ public function getItems(ResultRow $values) {
   function process_entity(ResultRow $values, EntityInterface $entity) {
     $processed_entity = clone $entity;
 
-    $langcode = $this->getFieldLangcode($processed_entity, $values);
+    $langcode = $this->field_langcode($processed_entity);
     $processed_entity = $processed_entity->getTranslation($langcode);
 
     // If we are grouping, copy our group fields into the cloned entity.
@@ -884,7 +876,7 @@ protected function addSelfTokens(&$tokens, $item) {
                (is_object($item['raw']) ? (array)$item['raw'] : NULL);
       }
       if (isset($raw) && isset($raw[$id]) && is_scalar($raw[$id])) {
-        $tokens['{{ ' . $this->options['id'] . '-' . $id . ' }}'] = CoreXss::filterAdmin($raw[$id]);
+        $tokens['{{ ' . $this->options['id'] . '-' . $id . ' }}'] = Xss::filterAdmin($raw[$id]);
       }
       else {
         // Make sure that empty values are replaced as well.
@@ -894,23 +886,16 @@ protected function addSelfTokens(&$tokens, $item) {
   }
 
   /**
-   * Return the code of the language the field should be displayed in.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface $entity
-   *   The entity object the field value being processed is attached to.
-   * @param \Drupal\views\ResultRow $row
-   *   The result row the field value being processed belongs to.
-   *
-   * @return string
-   *   The field language code.
+   * Return the language code of the language the field should be displayed in,
+   * according to the settings.
    */
-  protected function getFieldLangcode(EntityInterface $entity, ResultRow $row) {
+  function field_langcode(EntityInterface $entity) {
     if ($this->getFieldDefinition()->isTranslatable()) {
-      // Even if the current field is not attached to the main entity, we use it
-      // to determine the field language, as we assume the same language should
-      // be used for all values belonging to a single row, when possible. Below
-      // we apply language fallback to ensure a valid value is always picked.
-      $langcode = $this->getEntityTranslationRenderer()->getLangcode($row);
+      $langcode = $this->view->display_handler->options['field_langcode'];
+      $substitutions = static::queryLanguageSubstitutions();
+      if (isset($substitutions[$langcode])) {
+        $langcode = $substitutions[$langcode];
+      }
 
       // Give the Entity Field API a chance to fallback to a different language
       // (or LanguageInterface::LANGCODE_NOT_SPECIFIED), in case the field has
diff --git a/core/modules/views/src/Plugin/views/row/EntityRow.php b/core/modules/views/src/Plugin/views/row/EntityRow.php
index 071314f..159a1d4 100644
--- a/core/modules/views/src/Plugin/views/row/EntityRow.php
+++ b/core/modules/views/src/Plugin/views/row/EntityRow.php
@@ -8,10 +8,10 @@
 namespace Drupal\views\Plugin\views\row;
 
 use Drupal\Component\Utility\String;
+use Drupal\Core\DependencyInjection\Container;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
-use Drupal\views\Entity\Render\EntityTranslationRenderTrait;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 use Drupal\views\ViewExecutable;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -25,7 +25,6 @@
  * )
  */
 class EntityRow extends RowPluginBase {
-  use EntityTranslationRenderTrait;
 
   /**
    * The table the entity is using for storage.
@@ -56,6 +55,13 @@ class EntityRow extends RowPluginBase {
   protected $entityType;
 
   /**
+   * The renderer to be used to render the entity row.
+   *
+   * @var \Drupal\views\Entity\Rendering\RendererBase
+   */
+  protected $renderer;
+
+  /**
    * The entity manager.
    *
    * @var \Drupal\Core\Entity\EntityManagerInterface
@@ -104,34 +110,6 @@ public static function create(ContainerInterface $container, array $configuratio
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function getEntityTypeId() {
-    return $this->entityType->id();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getEntityManager() {
-    return $this->entityManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getLanguageManager() {
-    return $this->languageManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getView() {
-    return $this->view;
-  }
-
-  /**
    * Overrides Drupal\views\Plugin\views\row\RowPluginBase::defineOptions().
    */
   protected function defineOptions() {
@@ -168,11 +146,25 @@ public function summaryTitle() {
   }
 
   /**
+   * Returns the current renderer.
+   *
+   * @return \Drupal\views\Entity\Render\RendererBase
+   *   The configured renderer.
+   */
+  protected function getRenderer() {
+    if (!isset($this->renderer)) {
+      $class = '\Drupal\views\Entity\Render\\' . Container::camelize($this->displayHandler->getOption('rendering_language'));
+      $this->renderer = new $class($this->view, $this->languageManager, $this->entityType);
+    }
+    return $this->renderer;
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function query() {
     parent::query();
-    $this->getEntityTranslationRenderer()->query($this->view->getQuery());
+    $this->getRenderer()->query($this->view->getQuery());
   }
 
   /**
@@ -181,7 +173,7 @@ public function query() {
   public function preRender($result) {
     parent::preRender($result);
     if ($result) {
-      $this->getEntityTranslationRenderer()->preRender($result);
+      $this->getRenderer()->preRender($result);
     }
   }
 
@@ -189,7 +181,7 @@ public function preRender($result) {
    * Overrides Drupal\views\Plugin\views\row\RowPluginBase::render().
    */
   public function render($row) {
-    return $this->getEntityTranslationRenderer()->render($row);
+    return $this->getRenderer()->render($row);
   }
 
   /**
diff --git a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
index 1d83776..0c2adca 100644
--- a/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
+++ b/core/modules/views/src/Tests/Entity/RowEntityRenderersTest.php
@@ -25,7 +25,7 @@ class RowEntityRenderersTest extends ViewUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('field', 'filter', 'text', 'node', 'user', 'language', 'entity_reference', 'views_test_language');
+  public static $modules = array('field', 'filter', 'text', 'node', 'user', 'language', 'entity_reference');
 
   /**
    * Views used by this test.
@@ -42,13 +42,6 @@ class RowEntityRenderersTest extends ViewUnitTestBase {
   protected $langcodes;
 
   /**
-   * An array of titles for each node per language.
-   *
-   * @var array
-   */
-  protected $expected;
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -73,8 +66,13 @@ protected function setUp() {
     $node_type = NodeType::create(array('type' => 'test'));
     $node_type->setDisplaySubmitted(FALSE);
     $node_type->save();
+  }
 
-    $this->values = array();
+  /**
+   * Tests the entity row renderers.
+   */
+  public function testRenderers() {
+    $values = array();
     $controller = \Drupal::entityManager()->getStorage('node');
     $langcode_index = 0;
 
@@ -87,45 +85,19 @@ protected function setUp() {
 
       foreach ($langcodes as $langcode) {
         // Ensure we have a predictable result order.
-        $this->values[$i][$langcode] = $i . '-' . $langcode . '-' . $this->randomMachineName();
+        $values[$i][$langcode] = $i . '-' . $langcode . '-' . $this->randomMachineName();
 
         if ($langcode != $default_langcode) {
-          $node->addTranslation($langcode, array('title' => $this->values[$i][$langcode]));
+          $node->addTranslation($langcode, array('title' => $values[$i][$langcode]));
         }
         else {
-          $node->setTitle($this->values[$i][$langcode]);
+          $node->setTitle($values[$i][$langcode]);
         }
 
         $node->save();
       }
     }
-  }
 
-  /**
-   * Tests the entity row renderers.
-   */
-  public function testEntityRenderers() {
-    $this->checkLanguageRenderers('page_1', $this->values);
-  }
-
-  /**
-   * Tests the field row renderers.
-   */
-  public function testFieldRenderers() {
-    $this->checkLanguageRenderers('page_2', $this->values);
-  }
-
-  /**
-   * Checks that the language renderer configurations work as expected.
-   *
-   * @param string $display
-   *   Name of display to test with.
-   * @param array $values
-   *   An array of node information which are each an array of node titles
-   *   associated with language keys appropriate for the translation of that
-   *   node.
-   */
-  protected function checkLanguageRenderers($display, $values) {
     $expected = array(
       $values[0]['en'],
       $values[0]['en'],
@@ -137,7 +109,7 @@ protected function checkLanguageRenderers($display, $values) {
       $values[2]['en'],
       $values[2]['en'],
     );
-    $this->assertTranslations($display, '***LANGUAGE_language_content***', $expected, 'The current language renderer behaves as expected.');
+    $this->assertTranslations('current_language_renderer', $expected, 'The current language renderer behaves as expected.');
 
     $expected = array(
       $values[0]['en'],
@@ -150,7 +122,7 @@ protected function checkLanguageRenderers($display, $values) {
       $values[2]['l1'],
       $values[2]['l1'],
     );
-    $this->assertTranslations($display, '***LANGUAGE_entity_default***', $expected, 'The default language renderer behaves as expected.');
+    $this->assertTranslations('default_language_renderer', $expected, 'The default language renderer behaves as expected.');
 
     $expected = array(
       $values[0]['en'],
@@ -163,40 +135,12 @@ protected function checkLanguageRenderers($display, $values) {
       $values[2]['l0'],
       $values[2]['l1'],
     );
-    $this->assertTranslations($display, '***LANGUAGE_entity_translation***', $expected, 'The translation language renderer behaves as expected.');
-
-    $expected = array(
-      $values[0][$this->langcodes[0]],
-      $values[0][$this->langcodes[0]],
-      $values[0][$this->langcodes[0]],
-      $values[1][$this->langcodes[0]],
-      $values[1][$this->langcodes[0]],
-      $values[1][$this->langcodes[0]],
-      $values[2][$this->langcodes[0]],
-      $values[2][$this->langcodes[0]],
-      $values[2][$this->langcodes[0]],
-    );
-    $this->assertTranslations($display, '***LANGUAGE_site_default***', $expected, 'The site default language renderer behaves as expected.');
-
-    $expected = array(
-      $values[0]['l0'],
-      $values[0]['l0'],
-      $values[0]['l0'],
-      $values[1]['l0'],
-      $values[1]['l0'],
-      $values[1]['l0'],
-      $values[2]['l0'],
-      $values[2]['l0'],
-      $values[2]['l0'],
-    );
-    $this->assertTranslations($display, 'l0', $expected, 'The language specific renderer behaves as expected.');
+    $this->assertTranslations('translation_language_renderer', $expected, 'The translation language renderer behaves as expected.');
   }
 
   /**
    * Checks that the view results match the expected values.
    *
-   * @param string $display
-   *   Name of display to test with.
    * @param string $renderer_id
    *   The id of the renderer to be tested.
    * @param array $expected
@@ -209,24 +153,17 @@ protected function checkLanguageRenderers($display, $values) {
    * @return bool
    *   TRUE if the assertion succeeded, FALSE otherwise.
    */
-  protected function assertTranslations($display, $renderer_id, array $expected, $message = '', $group = 'Other') {
+  protected function assertTranslations($renderer_id, array $expected, $message = '', $group = 'Other') {
     $view = Views::getView('test_entity_row_renderers');
-    $view->setDisplay($display);
     $view->getDisplay()->setOption('rendering_language', $renderer_id);
     $view->preview();
 
-    $result = FALSE;
-    foreach ($expected as $index => $expected_output) {
-      if (!empty($view->result[$index])) {
-        $build = $view->rowPlugin->render($view->result[$index]);
-        $output = drupal_render($build);
-        $result = strpos($output, $expected_output) !== FALSE;
-        if (!$result) {
-          break;
-        }
-      }
-      else {
-        $result = FALSE;
+    $result = TRUE;
+    foreach ($view->result as $index => $row) {
+      $build = $view->rowPlugin->render($row);
+      $output = drupal_render($build);
+      $result = strpos($output, $expected[$index]) !== FALSE;
+      if (!$result) {
         break;
       }
     }
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_access_none.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_access_none.yml
index 0c49729..5f8cca3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_access_none.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_access_none.yml
@@ -24,6 +24,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
index 28af711..b156d2d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
@@ -59,6 +59,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
index 5701f34..1a67001 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
@@ -49,6 +49,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       use_ajax: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -56,6 +58,8 @@ display:
   page_1:
     display_options:
       path: test_ajax_view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
index dcf6e1d..a6dbf35 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
@@ -91,6 +91,8 @@ display:
         type: views_query
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
index 215e042..f8ee30a 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
@@ -42,6 +42,8 @@ display:
           table: views
           plugin_id: title
           title: test_title_empty
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -58,6 +60,8 @@ display:
           table: views
           plugin_id: title
           title: test_title_header
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: 'Page 1'
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
index 081e4b0..68302cb 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
@@ -43,6 +43,8 @@ display:
           view_to_insert: 'test_simple_argument:default'
           inherit_arguments: true
           plugin_id: view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
index 707454b..aa218bf 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
@@ -41,6 +41,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -55,6 +57,8 @@ display:
           id: date_day
           table: views_test_data
           plugin_id: date_day
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     id: embed_1
     display_title: ''
@@ -69,6 +73,8 @@ display:
           id: date_month
           table: views_test_data
           plugin_id: date_month
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     id: embed_2
     display_title: ''
@@ -83,6 +89,8 @@ display:
           id: date_week
           table: views_test_data
           plugin_id: date_week
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     id: embed_3
     display_title: ''
@@ -97,6 +105,8 @@ display:
           id: date_year
           table: views_test_data
           plugin_id: date_year
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     id: embed_4
     display_title: ''
@@ -111,6 +121,8 @@ display:
           id: date_year_month
           table: views_test_data
           plugin_id: date_year_month
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: embed
     id: embed_5
     display_title: ''
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
index 8b7b5fb..a82ee33 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
@@ -58,6 +58,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
index 60f617d..4b8e8c8 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
@@ -58,6 +58,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_dependency.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_dependency.yml
index f792ea1..fce7f88 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_dependency.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_dependency.yml
@@ -216,3 +216,5 @@ display:
           entity_field: uid
           plugin_id: numeric
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
index d366739..a7db540 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
@@ -34,6 +34,8 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -43,6 +45,9 @@ display:
     display_title: Attachment
     id: attachment_1
     position: 1
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
@@ -65,10 +70,14 @@ display:
             guid_field: id
             guid_field_is_permalink: false
       path: test_attachment_ui_feed
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     display_title: Page
     display_options:
       path: test_attachment_ui
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     id: page_1
     position: 2
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
index 82908d8..746c99d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
@@ -42,3 +42,5 @@ display:
           table: views_test_data
           field: id
           relationship: none
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
index 680e51e..8cfdba2 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
@@ -46,6 +46,8 @@ display:
               default_sort_order: desc
             created:
               sortable: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -53,6 +55,8 @@ display:
   page_1:
     display_options:
       path: test_click_sort
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
index 5661a18..7e5e4eb 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
@@ -163,6 +163,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -174,6 +176,8 @@ display:
         page_1: page_1
       pager:
         type: some
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: attachment
     display_title: Attachment
     id: attachment_1
@@ -185,6 +189,8 @@ display:
         page_1: page_1
       pager:
         type: some
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: attachment
     display_title: Attachment
     id: attachment_2
@@ -192,6 +198,8 @@ display:
   page_1:
     display_options:
       path: test_destroy
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_disabled_display.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_disabled_display.yml
index 032e20b..31db06e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_disabled_display.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_disabled_display.yml
@@ -143,6 +143,8 @@ display:
       relationships: {  }
       arguments: {  }
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   attachment_1:
     display_plugin: attachment
     id: attachment_1
@@ -150,6 +152,8 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       displays:
         page_2: page_2
       display_description: ''
@@ -161,6 +165,8 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       enabled: false
   embed_1:
@@ -170,6 +176,8 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       enabled: false
   feed_1:
@@ -179,6 +187,8 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_description: ''
       enabled: false
       path: test-disabled-display.xml
@@ -189,6 +199,8 @@ display:
     position: 1
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-disabled-display
   page_2:
     display_plugin: page
@@ -197,6 +209,8 @@ display:
     position: 2
     display_options:
       display_extenders: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: test-disabled-display-2
       display_description: ''
       enabled: false
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
index 4358c39..23ea953 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
@@ -59,6 +59,8 @@ display:
           entity_type: node
           entity_field: created
       title: 'Test Display'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -77,6 +79,8 @@ display:
         type: some
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: block
     display_title: Block
     id: block_1
@@ -84,6 +88,8 @@ display:
   page_1:
     display_options:
       path: test-display
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
index 7822bc3..bafbdc9 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
@@ -50,6 +50,8 @@ display:
           hide_empty: false
           empty_zero: false
       title: test_display_attachment
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   attachment_1:
     display_plugin: attachment
     id: attachment_1
@@ -58,6 +60,8 @@ display:
     display_options:
       displays:
         page_1: page_1
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -65,3 +69,5 @@ display:
     position: 1
     display_options:
       path: test-display-attachment
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
index 224019c..af8b888 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
@@ -49,3 +49,5 @@ display:
           field: created
           order: DESC
           plugin_id: date
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_empty.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_empty.yml
index 25eaf1a..237b401 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_empty.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_empty.yml
@@ -39,6 +39,8 @@ display:
           id: area
           table: views
           plugin_id: text
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
index a88f655..4ab684f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
@@ -76,6 +76,8 @@ display:
       style:
         type: default
       title: test_display_feed
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -91,6 +93,8 @@ display:
       style:
         type: rss
       sitename_title: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: feed
     display_title: Feed
     id: feed_1
@@ -98,6 +102,8 @@ display:
   page:
     display_options:
       path: test-feed-display
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
index 3d10813..01ba2cc 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
@@ -24,6 +24,8 @@ display:
           plugin_id: numeric
           entity_type: node
           entity_field: nid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -33,9 +35,14 @@ display:
     id: block_1
     display_title: Block
     position: 1
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_options:
       path: test_display_invalid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
index 674daca..857c0c0 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
@@ -39,6 +39,8 @@ display:
       use_more_always: true
       use_more_text: 'custom more text'
       link_display: page_1
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -50,3 +52,5 @@ display:
     position: 1
     display_options:
       path: test_display_more
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
index 8da09eb..3439017 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
@@ -233,6 +233,8 @@ display:
           entity_type: node
           entity_field: created
       title: test_dropbutton
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -240,3 +242,5 @@ display:
     position: null
     display_options:
       path: test-dropbutton
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
index 74e7c59..d3e98c1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
@@ -58,6 +58,8 @@ display:
         options:
           offset: 0
         type: none
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_operations.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_operations.yml
index 73e6b12..205e8ce 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_operations.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_operations.yml
@@ -180,6 +180,8 @@ display:
           entity_type: node
           entity_field: created
       title: test_entity_operations
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -187,3 +189,5 @@ display:
     position: null
     display_options:
       path: test-entity-operations
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row.yml
index d0e1e7f..a0b397c 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row.yml
@@ -25,6 +25,8 @@ display:
         options:
           relationship: none
           view_mode: full
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml
index edf5b71..9c7307d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_row_renderers.yml
@@ -1,8 +1,6 @@
 langcode: und
 status: true
 dependencies:
-  config:
-    - core.entity_view_mode.node.teaser
   module:
     - node
 id: test_entity_row_renderers
@@ -41,32 +39,6 @@ display:
           plugin_id: standard
           entity_type: node
           entity_field: title
-      rendering_language: '***LANGUAGE_entity_translation***'
-      fields:
-        title:
-          id: title
-          table: node_field_data
-          field: title
-          entity_type: node
-          entity_field: title
-          plugin_id: field
-  page_1:
-    display_plugin: page
-    id: page_1
-    display_title: Page
-    position: 1
-    display_options:
-      rendering_language: '***LANGUAGE_entity_translation***'
-      path: test_entity_row_renderers/entities
-  page_2:
-    display_plugin: page
-    id: page_2
-    display_title: 'Page 2'
-    position: 2
-    display_options:
-      rendering_language: '***LANGUAGE_entity_translation***'
-      path: test_entity_row_renderers/fields
-      defaults:
-        row: false
-      row:
-        type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
+      rendering_language: translation_language_renderer
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
index 726bbc0..98e061c 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
@@ -92,3 +92,5 @@ display:
           plugin_id: bundle
           entity_type: node
           entity_field: type
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
index a8b6f8d..d472bc0 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
@@ -33,6 +33,8 @@ display:
           id: test_example
           table: views
           plugin_id: test_example
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_executable_displays.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_executable_displays.yml
index 8f2ef55..c3cd401 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_executable_displays.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_executable_displays.yml
@@ -15,11 +15,17 @@ display:
     display_title: Master
     id: default
     position: 0
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     display_title: Page
     id: page_1
     position: 1
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     display_title: 'Page 2'
@@ -30,3 +36,5 @@ display:
         style: false
       style:
         type: grid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
index 280c930..ee30393 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
@@ -90,6 +90,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -97,6 +99,8 @@ display:
   page_1:
     display_options:
       path: test_exposed_admin_ui
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
index 281080c..53983ff 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
@@ -46,6 +46,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -54,6 +56,8 @@ display:
     display_options:
       path: test_exposed_block
       exposed_block: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
index dc966a3..cc37f74 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
@@ -47,6 +47,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -54,6 +56,8 @@ display:
   page_1:
     display_options:
       path: test_exposed_form_buttons
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
index d834164..e45746f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
@@ -23,6 +23,8 @@ display:
           plugin_id: numeric
       style:
         type: html_list
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -30,6 +32,8 @@ display:
   page_1:
     display_options:
       path: test_field_classes
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
index 55bf2a2..27fa4e1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
@@ -75,6 +75,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
index 6eabc02..722823b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
@@ -24,6 +24,8 @@ display:
           plugin_id: string
       style:
         type: html_list
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
index b08aa62..b3a4c06 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
@@ -47,6 +47,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Defaults
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
index 61da33a..552f95f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
@@ -43,6 +43,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
index b7ab7cc..57cc2f5 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
@@ -46,6 +46,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
index 13e9e8f..82037bc 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
@@ -53,6 +53,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -60,6 +62,8 @@ display:
   page_1:
     display_options:
       path: test
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
index 936b849..c374195 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
@@ -89,6 +89,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -135,6 +137,8 @@ display:
           entity_type: node
           entity_field: status
       path: test-filter-groups
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
index 0e97477..2746699 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
@@ -39,6 +39,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
index b07ee55..c7205ec 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
@@ -80,6 +80,8 @@ display:
           entity_type: node
           entity_field: created
       title: test_get_attach_displays
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
@@ -96,6 +98,8 @@ display:
       displays:
         default: default
         page_1: page_1
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_2:
     display_plugin: feed
     id: feed_2
@@ -105,6 +109,8 @@ display:
       displays:
         default: default
         page_1: page_1
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -112,3 +118,5 @@ display:
     position: null
     display_options:
       path: test-get-attach-displays
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
index 716dbfb..9effcbc 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
@@ -54,6 +54,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_grid.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_grid.yml
index d48597f..d8400f7 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_grid.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_grid.yml
@@ -60,6 +60,8 @@ display:
           row_class_custom: 'age-{{ age }}'
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -67,6 +69,8 @@ display:
   page_1:
     display_options:
       path: test-grid
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: 'Page display'
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
index ff5a1d8..ac85982 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
@@ -61,6 +61,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
index 4aa2248..bd57f7c 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
@@ -55,6 +55,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_rows.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_rows.yml
index 9b99880..588bc71 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_rows.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_rows.yml
@@ -99,4 +99,6 @@ display:
           separator: ', '
           field_api_classes: false
           plugin_id: field
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       display_extenders: {  }
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
index 43f5464..872ab9e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
@@ -73,6 +73,8 @@ display:
       style:
         type: default
       title: test_groupwise
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
index 62e3069..1fd3c3f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
@@ -34,6 +34,8 @@ display:
           field: node
           relationship: comment_cid
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
index 9afaf2a..13d1ce8 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
@@ -56,6 +56,8 @@ display:
           table: views_test_data
           field: access_callback_arguments
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
index 29a8dfc..79f5361 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
@@ -127,6 +127,8 @@ display:
           order: DESC
           entity_type: node
           entity_field: created
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -135,6 +137,8 @@ display:
     display_options:
       display_description: ''
       path: test-without-history
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     id: page_2
@@ -226,3 +230,5 @@ display:
         operator: AND
         groups:
           1: AND
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_http_status_code.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_http_status_code.yml
index 3d31fb7..4ab699f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_http_status_code.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_http_status_code.yml
@@ -85,6 +85,8 @@ display:
           empty: true
           status_code: 200
           plugin_id: http_status_code
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -92,3 +94,5 @@ display:
     position: null
     display_options:
       path: test-http-status-code
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
index 4743186..af8e374 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
@@ -86,6 +86,8 @@ display:
       filter_groups:
         operator: AND
         groups: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -93,6 +95,8 @@ display:
     position: null
     display_options:
       path: test_mini_pager
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     id: page_2
@@ -106,6 +110,8 @@ display:
         type: mini
         options:
           items_per_page: 1
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_3:
     display_plugin: page
     id: page_3
@@ -119,3 +125,5 @@ display:
         type: mini
         options:
           items_per_page: 0
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
index af65cc4..b80d96a 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
@@ -24,6 +24,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -31,6 +33,8 @@ display:
   page_1:
     display_options:
       path: test_page_display_403
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
@@ -38,6 +42,8 @@ display:
   page_2:
     display_options:
       path: test_page_display_404
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_2
@@ -45,6 +51,8 @@ display:
   page_3:
     display_options:
       path: test_page_display_200
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_3
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
index 081b746..2b3ff40 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
@@ -22,6 +22,8 @@ display:
           field: id
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -29,6 +31,8 @@ display:
   page_1:
     display_options:
       path: test_route_without_arguments
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
@@ -45,6 +49,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_2
@@ -61,6 +67,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_suffix/%/suffix
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_3
@@ -83,6 +91,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_suffix_and_argument/%/suffix
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_4
@@ -99,6 +109,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_long_argument/%
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_5
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
index b672203..6d524b9 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
@@ -22,6 +22,8 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -45,6 +47,8 @@ display:
         weight: 0
       defaults:
         title: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
@@ -62,6 +66,8 @@ display:
         context: '0'
       defaults:
         title: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_2
@@ -79,6 +85,8 @@ display:
         context: '0'
       defaults:
         title: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_3
@@ -97,6 +105,8 @@ display:
         context: '0'
       defaults:
         title: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_4
@@ -115,6 +125,8 @@ display:
         context: '0'
       defaults:
         title: false
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_5
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
index bd034bb..7b412f9 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
@@ -26,6 +26,8 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -33,6 +35,8 @@ display:
   page_1:
     display_options:
       path: test_route_without_arguments
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
@@ -49,6 +53,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_2
@@ -65,6 +71,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument/%/suffix
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_3
@@ -87,6 +95,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument/%/suffix
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_4
@@ -109,6 +119,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_5
@@ -131,6 +143,8 @@ display:
           table: views_test_data
           plugin_id: numeric
       path: test_route_with_argument/%/%
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_6
@@ -142,6 +156,8 @@ display:
       access:
         type: test_static
       path: test_route_arguments_access
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_7
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
index 0d2be99..3909cf7 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
@@ -23,6 +23,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -31,4 +33,7 @@ display:
     display_plugin: page
     display_title: 'Test page view'
     id: page_1
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     position: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_full.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_full.yml
index a347a76..b6e8798 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_full.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_full.yml
@@ -30,6 +30,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_none.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_none.yml
index d72584d..283b72b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_none.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_none.yml
@@ -26,6 +26,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_some.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_some.yml
index 2d432a7..c6cc162 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_some.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_pager_some.yml
@@ -29,6 +29,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml
index c7818d2..acd118f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml
@@ -47,6 +47,8 @@ display:
         type: test_style
       row:
         type: test_row
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
index a1629b4..d032aab 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
@@ -126,3 +126,5 @@ display:
           content: 'Test empty text'
           tokenize: false
           plugin_id: text_custom
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
index b3272bb..d93ac85 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
@@ -80,6 +80,8 @@ display:
           entity_type: node
           entity_field: created
       title: test_redirect_view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -87,3 +89,5 @@ display:
     position: null
     display_options:
       path: test-redirect-view
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
index 6b05cf1..b6b43c3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
@@ -50,6 +50,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
index f7993e8..a7729b1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
@@ -126,6 +126,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     display_plugin: page
     id: page_1
@@ -191,6 +193,8 @@ display:
           1: AND
       path: test-filter
       title: 'Filter Page'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_2:
     display_plugin: page
     id: page_2
@@ -257,3 +261,5 @@ display:
           validate_options: {  }
           plugin_id: search
       title: 'Arg Page'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
index 2689298..651ef5b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
@@ -59,6 +59,8 @@ display:
           field: age
           relationship: none
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_store_pager_settings.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_store_pager_settings.yml
index 0be4da4..358af74 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_store_pager_settings.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_store_pager_settings.yml
@@ -26,6 +26,8 @@ display:
         type: default
       row:
         type: 'entity:node'
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
index 35a0496..c78101f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
@@ -48,3 +48,5 @@ display:
           id: name
           table: views_test_data
           field: name
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
index 12aac8d..81a8c88 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
@@ -59,6 +59,8 @@ display:
             title_field: name
             toggle_numeric_field: true
             toggle_title_field: true
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
index 06f24de..55f399d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
@@ -252,6 +252,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   feed_1:
     display_plugin: feed
     id: feed_1
@@ -277,6 +279,8 @@ display:
           url_field: ''
       path: test-feed-opml-style
       displays: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page:
     display_plugin: page
     id: page_1
@@ -284,3 +288,5 @@ display:
     position: 1
     display_options:
       path: test-opml-style
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
index 7460f10..b3714a3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
@@ -129,6 +129,8 @@ display:
           content: 'custom text'
           tokenize: false
           plugin_id: text_custom
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -136,6 +138,8 @@ display:
   page_1:
     display_options:
       path: test-table
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: 'Page display'
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
index 79ab084..802f06f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
@@ -64,6 +64,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
index 44e4c48..cc7732d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
@@ -40,6 +40,8 @@ display:
         type: full
         options:
           items_per_page: 10
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -57,3 +59,5 @@ display:
         type: views_query
         options: {  }
       path: test_tokens
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
index 2861c7a..8a32058 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
@@ -49,6 +49,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
index 015262f..313b763 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
@@ -34,6 +34,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
index a7fe7c9..f247a1e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
@@ -77,6 +77,8 @@ display:
         options:
           offset: 0
         type: none
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_delete.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_delete.yml
index b1ad67d..62017c8 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_delete.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_delete.yml
@@ -26,6 +26,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Defaults
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
index ac29cb6..2c2abd5 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
@@ -44,3 +44,5 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_embed.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_embed.yml
index 9b0b319..8ca9e5c 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_embed.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_embed.yml
@@ -49,6 +49,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
index 51ddaa1..95b533b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
@@ -27,6 +27,8 @@ display:
         options:
           offset: 0
         type: none
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test.yml
index 03c0a78..ff18212 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test.yml
@@ -59,6 +59,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_additional_base_field.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_additional_base_field.yml
index c05cd7d..9527955 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_additional_base_field.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_additional_base_field.yml
@@ -59,6 +59,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_data.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_data.yml
index 2245c42..a711cf4 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_data.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_data.yml
@@ -59,6 +59,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_revision.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_revision.yml
index a65b090..e80028b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_revision.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_entity_test_revision.yml
@@ -59,6 +59,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
index f656bdd..9b5c3d4 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
@@ -65,6 +65,8 @@ display:
           id: numeric
           table: views_test_data
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
index ead31fd..a9cdc0f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
@@ -49,6 +49,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
index 3e1aa09..1dec7f0 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
@@ -49,6 +49,8 @@ display:
           plugin_id: standard
       style:
         type: table
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_status.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_status.yml
index 312c2c4..177e0b1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_status.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_status.yml
@@ -15,3 +15,6 @@ display:
     id: default
     display_title: Master
     position: null
+    display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
index 8d39cd3..5a8ad5f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
@@ -31,6 +31,8 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: standard
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -44,6 +46,8 @@ display:
       query:
         type: views_query
         options: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
   page_1:
     id: page_1
     display_title: Page
@@ -54,3 +58,5 @@ display:
         type: views_query
         options: {  }
       path: test_view_storage
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
index 10c979a..f2d15cf 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
@@ -30,6 +30,8 @@ display:
           table: views_test_data
           id: id
           plugin_id: numeric
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_data/test_views/views.view.test_access_static.yml b/core/modules/views/tests/modules/views_test_data/test_views/views.view.test_access_static.yml
index 270fd81..7835dc9 100644
--- a/core/modules/views/tests/modules/views_test_data/test_views/views.view.test_access_static.yml
+++ b/core/modules/views/tests/modules/views_test_data/test_views/views.view.test_access_static.yml
@@ -28,6 +28,8 @@ display:
         type: default
       row:
         type: fields
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -35,6 +37,8 @@ display:
   page_1:
     display_options:
       path: test_access_static
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_language/views_test_language.info.yml b/core/modules/views/tests/modules/views_test_language/views_test_language.info.yml
deleted file mode 100644
index 0163ecb..0000000
--- a/core/modules/views/tests/modules/views_test_language/views_test_language.info.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: 'Views Test Language'
-type: module
-description: 'Test module for Views.'
-package: Testing
-version: VERSION
-core: 8.x
-dependencies:
-  - views
-  - language
diff --git a/core/modules/views/tests/modules/views_test_language/views_test_language.views.inc b/core/modules/views/tests/modules/views_test_language/views_test_language.views.inc
deleted file mode 100644
index b75d1f5..0000000
--- a/core/modules/views/tests/modules/views_test_language/views_test_language.views.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @file
- * Provides views data and hooks for views_test_language module.
- */
-
-/**
- * Implements hook_views_data_alter().
- */
-function views_test_language_views_data_alter(array &$data) {
-  // Make node titles use configurable field rendering for this test.
-  // @todo No need for this once https://www.drupal.org/node/2342045 lands.
-  $data['node_field_data']['title']['field']['id'] = 'field';
-}
diff --git a/core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php b/core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php
index 08f5c42..90ac97c 100644
--- a/core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php
@@ -56,13 +56,6 @@ class FieldTest extends UnitTestCase {
   protected $renderer;
 
   /**
-   * The container.
-   *
-   * @var \Drupal\Core\DependencyInjection\Container
-   */
-  protected $container;
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -90,9 +83,9 @@ protected function setUp() {
       ->disableOriginalConstructor()
       ->getMock();
 
-    $this->container = new ContainerBuilder();
-    $this->container->set('plugin.manager.field.field_type', $this->fieldTypePluginManager);
-    \Drupal::setContainer($this->container);
+    $container = new ContainerBuilder();
+    $container->set('plugin.manager.field.field_type', $this->fieldTypePluginManager);
+    \Drupal::setContainer($container);
   }
 
   /**
@@ -413,8 +406,6 @@ public function testQueryWithGroupByForBaseField() {
     $handler = new Field([], 'field', $definition, $this->entityManager, $this->formatterPluginManager, $this->fieldTypePluginManager, $this->languageManager, $this->renderer);
     $handler->view = $this->executable;
 
-    $this->setupLanguageRenderer($handler, $definition);
-
     $field_storage = $this->getBaseFieldStorage();
     $this->entityManager->expects($this->any())
       ->method('getFieldStorageDefinitions')
@@ -474,8 +465,6 @@ public function testQueryWithGroupByForConfigField() {
     $handler = new Field([], 'field', $definition, $this->entityManager, $this->formatterPluginManager, $this->fieldTypePluginManager, $this->languageManager, $this->renderer);
     $handler->view = $this->executable;
 
-    $this->setupLanguageRenderer($handler, $definition);
-
     $field_storage = $this->getConfigFieldStorage();
     $this->entityManager->expects($this->any())
       ->method('getFieldStorageDefinitions')
@@ -576,41 +565,4 @@ public function providerSortOrders() {
     ];
   }
 
-  /**
-   * Setup the mock data needed to make language renderers work.
-   *
-   * @param \Drupal\views\Plugin\views\field\Field $handler
-   *   The field handler.
-   * @param $definition
-   *   An array with entity type definition data.
-   */
-  protected function setupLanguageRenderer(Field $handler, $definition) {
-    $display_handler = $this->getMockBuilder('\Drupal\views\Plugin\views\display\DisplayPluginBase')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $display_handler->expects($this->any())
-      ->method('getOption')
-      ->with($this->equalTo('rendering_language'))
-      ->willReturn('en');
-    $handler->view->display_handler = $display_handler;
-
-    $data['table']['entity type'] = $definition['entity_type'];
-    $views_data = $this->getMockBuilder('\Drupal\views\ViewsData')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $views_data->expects($this->any())
-      ->method('get')
-      ->willReturn($data);
-    $this->container->set('views.views_data', $views_data);
-
-    $entity_type = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
-    $entity_type->expects($this->any())
-      ->method('id')
-      ->willReturn($definition['entity_type']);
-
-    $this->entityManager->expects($this->any())
-      ->method('getDefinition')
-      ->willReturn($entity_type);
-  }
-
 }
diff --git a/core/modules/views_ui/src/Tests/ViewEditTest.php b/core/modules/views_ui/src/Tests/ViewEditTest.php
index 9048972..b46dd6b 100644
--- a/core/modules/views_ui/src/Tests/ViewEditTest.php
+++ b/core/modules/views_ui/src/Tests/ViewEditTest.php
@@ -100,10 +100,9 @@ public function testEditFormLanguageOptions() {
     foreach ($test_views as $view_name => $display) {
       $this->drupalGet('admin/structure/views/view/' . $view_name);
       $this->assertResponse(200);
-      $langcode_url = 'admin/structure/views/nojs/display/' . $view_name . '/' . $display . '/rendering_language';
+      $langcode_url = 'admin/structure/views/nojs/display/' . $view_name . '/' . $display . '/field_langcode';
       $this->assertNoLinkByHref($langcode_url);
-      $this->assertNoLink(t('!type language selected for page', array('!type' => t('Content'))));
-      $this->assertNoLink(t('Content language of view row'));
+      $this->assertNoLink(t('Language selected for !type', array('!type' => t('Content'))));
     }
 
     // Make the site multilingual and test the options again.
@@ -112,20 +111,18 @@ public function testEditFormLanguageOptions() {
     $this->resetAll();
     $this->rebuildContainer();
 
-    // Language options should now exist with entity language the default.
+    // Language options should now exist with content language defaults.
     foreach ($test_views as $view_name => $display) {
       $this->drupalGet('admin/structure/views/view/' . $view_name);
       $this->assertResponse(200);
-      $langcode_url = 'admin/structure/views/nojs/display/' . $view_name . '/' . $display . '/rendering_language';
+      $langcode_url = 'admin/structure/views/nojs/display/' . $view_name . '/' . $display . '/field_langcode';
       if ($view_name == 'test_view') {
         $this->assertNoLinkByHref($langcode_url);
-        $this->assertNoLink(t('!type language selected for page', array('!type' => t('Content'))));
-        $this->assertNoLink(t('Content language of view row'));
+        $this->assertNoLink(t('Language selected for !type', array('!type' => t('Content'))));
       }
       else {
         $this->assertLinkByHref($langcode_url);
-        $this->assertNoLink(t('!type language selected for page', array('!type' => t('Content'))));
-        $this->assertLink(t('Content language of view row'));
+        $this->assertLink(t('Language selected for !type', array('!type' => t('Content'))));
       }
 
       $this->drupalGet($langcode_url);
@@ -134,7 +131,8 @@ public function testEditFormLanguageOptions() {
         $this->assertText(t("You don't have translatable entity types."));
       }
       else {
-        $this->assertFieldByName('rendering_language', '***LANGUAGE_entity_translation***');
+        $this->assertFieldByName('field_langcode', '***LANGUAGE_language_content***');
+        $this->assertFieldByName('field_langcode_add_to_query', TRUE);
       }
     }
   }
diff --git a/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml b/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
index 7eb6653..342917b 100644
--- a/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
+++ b/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
@@ -179,6 +179,8 @@ display:
       empty: {  }
       relationships: {  }
       arguments: {  }
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       title: '<marquee>VIEWS TITLE</marquee>'
   page_1:
     display_plugin: page
@@ -186,4 +188,6 @@ display:
     display_title: Page
     position: 2
     display_options:
+      field_langcode: '***LANGUAGE_language_content***'
+      field_langcode_add_to_query: null
       path: foobar
diff --git a/core/tests/Drupal/Tests/Core/Utility/TokenTest.php b/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
index 0a9a570..f5a16cb 100644
--- a/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/TokenTest.php
@@ -53,13 +53,6 @@ class TokenTest extends UnitTestCase {
   protected $token;
 
   /**
-   * The cache tags invalidator.
-   *
-   * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface|\PHPUnit_Framework_MockObject_MockObject
-   */
-  protected $cacheTagsInvalidator;
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -71,9 +64,7 @@ protected function setUp() {
 
     $this->language = $this->getMock('\Drupal\Core\Language\LanguageInterface');
 
-    $this->cacheTagsInvalidator = $this->getMock('\Drupal\Core\Cache\CacheTagsInvalidatorInterface');
-
-    $this->token = new Token($this->moduleHandler, $this->cache, $this->languageManager, $this->cacheTagsInvalidator);
+    $this->token = new Token($this->moduleHandler, $this->cache, $this->languageManager);
   }
 
   /**
@@ -122,15 +113,4 @@ public function testGetInfo() {
     $this->token->getInfo();
   }
 
-  /**
-   * @covers ::resetInfo
-   */
-  public function testResetInfo() {
-    $this->cacheTagsInvalidator->expects($this->once())
-      ->method('invalidateTags')
-      ->with(['token_info']);
-
-    $this->token->resetInfo();
-  }
-
 }
diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine
index 240118a..5ef2f10 100644
--- a/core/themes/engines/twig/twig.engine
+++ b/core/themes/engines/twig/twig.engine
@@ -40,15 +40,15 @@ function twig_init(Extension $theme) {
  * If the Twig debug setting is enabled, HTML comments including _theme() call
  * and template file name suggestions will surround the template markup.
  *
- * @param string $template_file
+ * @param $template_file
  *   The file name of the template to render.
- * @param array $variables
+ * @param $variables
  *   A keyed array of variables that will appear in the output.
  *
  * @return string
  *   The output generated by the template, plus any debug information.
  */
-function twig_render_template($template_file, array $variables) {
+function twig_render_template($template_file, $variables) {
   /** @var \Twig_Environment $twig_service */
   $twig_service = \Drupal::service('twig');
   try {
@@ -118,9 +118,9 @@ function twig_render_template($template_file, array $variables) {
  * returned directly.
  *
  * @param mixed $arg
- *   String, Object or Render Array.
+ *   String, Object or Render Array
  *
- * @return mixed
+ * @return
  *   The rendered output or an Twig_Markup object.
  *
  * @see render
@@ -167,7 +167,7 @@ function twig_render_var($arg) {
  * elements. The original renderable array is still available and can be used
  * to print child elements in their entirety in the twig template.
  *
- * @param array|object $element
+ * @param array $element
  *   The parent renderable array to exclude the child items.
  * @param string[] $args, ...
  *   The string keys of $element to prevent printing.
@@ -197,14 +197,14 @@ function twig_without($element) {
  *
  * Replacement function for Twig's escape filter.
  *
- * @param \Twig_Environment $env
+ * @param Twig_Environment $env
  *   A Twig_Environment instance.
  * @param string $string
  *   The value to be escaped.
  * @param string $strategy
  *   The escaping strategy. Defaults to 'html'.
  * @param string $charset
- *   The charset.
+ *  The charset.
  * @param bool $autoescape
  *   Whether the function is called by the auto-escaping feature (TRUE) or by
  *   the developer (FALSE).
