From 3d0a938ee8569700bdcf1322aedf641697be0699 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Sat, 26 Sep 2015 17:34:14 +0200
Subject: [PATCH] Issue #2529748 by Chernous_dn, jhedstrom, cilefen,
 davidhernandez, olli, dpi, pixelite, dawehner, jhodgdon: Regression: Views
 module CSS is not attached

---
 core/modules/views/src/Element/View.php               | 1 +
 core/modules/views/src/Tests/Plugin/StyleGridTest.php | 4 ++++
 core/modules/views/src/Tests/ViewAjaxTest.php         | 7 +++----
 core/modules/views/src/ViewExecutable.php             | 5 +----
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/core/modules/views/src/Element/View.php b/core/modules/views/src/Element/View.php
index 62fc24cab13a..e12037ed2a49 100644
--- a/core/modules/views/src/Element/View.php
+++ b/core/modules/views/src/Element/View.php
@@ -51,6 +51,7 @@ public static function preRenderViewElement($element) {
       $view = $element['#view'];
     }
 
+    $element += $view->element;
     $view->element = &$element;
     // Mark the element as being prerendered, so other code like
     // \Drupal\views\ViewExecutable::setCurrentPage knows that its no longer
diff --git a/core/modules/views/src/Tests/Plugin/StyleGridTest.php b/core/modules/views/src/Tests/Plugin/StyleGridTest.php
index d5d7e60376cd..ea212ddde7bd 100644
--- a/core/modules/views/src/Tests/Plugin/StyleGridTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleGridTest.php
@@ -51,6 +51,10 @@ public function testGrid() {
       $this->assertGrid($view, $alignment, 2);
       $this->assertGrid($view, $alignment, 1);
     }
+
+    // Ensure styles are properly added for grid views.
+    $this->drupalGet('test-grid');
+    $this->assertRaw('views/css/views.module.css');
   }
 
   /**
diff --git a/core/modules/views/src/Tests/ViewAjaxTest.php b/core/modules/views/src/Tests/ViewAjaxTest.php
index 35b5518b69f0..541b6ef4a992 100644
--- a/core/modules/views/src/Tests/ViewAjaxTest.php
+++ b/core/modules/views/src/Tests/ViewAjaxTest.php
@@ -55,13 +55,12 @@ public function testAjaxView() {
     $data = Json::decode($response);
 
     $this->assertTrue(isset($data[0]['settings']['views']['ajaxViews']));
-    $this->assertEqual($data[1]['command'], 'add_css');
 
     // Ensure that the view insert command is part of the result.
-    $this->assertEqual($data[2]['command'], 'insert');
-    $this->assertTrue(strpos($data[2]['selector'], '.js-view-dom-id-') === 0);
+    $this->assertEqual($data[1]['command'], 'insert');
+    $this->assertTrue(strpos($data[1]['selector'], '.js-view-dom-id-') === 0);
 
-    $this->setRawContent($data[2]['data']);
+    $this->setRawContent($data[1]['data']);
     $result = $this->xpath('//div[contains(@class, "views-row")]');
     $this->assertEqual(count($result), 2, 'Ensure that two items are rendered in the HTML.');
   }
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index 3638c9cd45f0..0fe630c71104 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -403,7 +403,7 @@ class ViewExecutable implements \Serializable {
    */
   public $element = [
     '#attached' => [
-      'library' => [],
+      'library' => ['views/views.module'],
       'drupalSettings' => [],
     ],
     '#cache' => [],
@@ -456,9 +456,6 @@ public function __construct(ViewEntityInterface $storage, AccountInterface $user
     $this->user = $user;
     $this->viewsData = $views_data;
     $this->routeProvider = $route_provider;
-
-    // Add the default css for a view.
-    $this->element['#attached']['library'][] = 'views/views.module';
   }
 
   /**
-- 
GitLab