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