comparison core/modules/views/tests/src/Functional/ViewsThemeIntegrationTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
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 }