Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / views / tests / src / Functional / ViewsThemeIntegrationTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Functional;
4
5 /**
6  * Tests the Views theme integration.
7  *
8  * We test against test_basetheme and test_subtheme provided by theme_test
9  *
10  * @group views
11  */
12 class ViewsThemeIntegrationTest extends ViewTestBase {
13
14   /**
15    * Views used by this test.
16    *
17    * @var array
18    */
19   public static $testViews = ['test_page_display'];
20
21
22   /**
23    * Used by WebTestBase::setup()
24    *
25    * We need theme_test for testing against test_basetheme and test_subtheme.
26    *
27    * @var array
28    *
29    * @see \Drupal\simpletest\WebTestBase::setup()
30    */
31   public static $modules = ['views', 'theme_test'];
32
33   /**
34    * {@inheritdoc}
35    */
36   protected function setUp($import_test_views = TRUE) {
37     parent::setUp($import_test_views);
38
39     $this->enableViewsTestModule();
40   }
41
42   /**
43    * Tests for exceptions and successful execution of hook_views_pre_render()
44    * and hook_views_post_render() in theme and subtheme.
45    */
46   public function testThemedViewPage() {
47
48     \Drupal::service('theme_handler')->install(['test_basetheme', 'test_subtheme']);
49
50     // Make base theme default then test for hook invocations.
51     $this->config('system.theme')
52       ->set('default', 'test_basetheme')
53       ->save();
54     $this->assertEqual($this->config('system.theme')->get('default'), 'test_basetheme');
55
56     // Make sure a views rendered page is touched.
57     $this->drupalGet('test_page_display_200');
58
59     $this->assertRaw("test_basetheme_views_pre_render", "Views title changed by test_basetheme.test_basetheme_views_pre_render");
60     $this->assertRaw("test_basetheme_views_post_render", "Views title changed by test_basetheme.test_basetheme_views_post_render");
61
62     // Make sub theme default to test for hook invocation
63     // from both sub and base theme.
64     $this->config('system.theme')
65       ->set('default', 'test_subtheme')
66       ->save();
67     $this->assertEqual($this->config('system.theme')->get('default'), 'test_subtheme');
68
69     // Make sure a views rendered page is touched.
70     $this->drupalGet('test_page_display_200');
71
72     $this->assertRaw("test_subtheme_views_pre_render", "Views title changed by test_subtheme.test_subtheme_views_pre_render");
73     $this->assertRaw("test_subtheme_views_post_render", "Views title changed by test_subtheme.test_subtheme_views_post_render");
74
75     $this->assertRaw("test_basetheme_views_pre_render", "Views title changed by test_basetheme.test_basetheme_views_pre_render");
76     $this->assertRaw("test_basetheme_views_post_render", "Views title changed by test_basetheme.test_basetheme_views_post_render");
77
78     $this->assertRaw('<em class="placeholder">' . count($this->dataSet()) . '</em> items found.', 'Views group title added by test_subtheme.test_subtheme_views_post_render');
79   }
80
81 }