3 namespace Drupal\Tests\views\Functional;
6 * Tests the Views theme integration.
8 * We test against test_basetheme and test_subtheme provided by theme_test
12 class ViewsThemeIntegrationTest extends ViewTestBase {
15 * Views used by this test.
19 public static $testViews = ['test_page_display'];
23 * Used by WebTestBase::setup()
25 * We need theme_test for testing against test_basetheme and test_subtheme.
29 * @see \Drupal\simpletest\WebTestBase::setup()
31 public static $modules = ['views', 'theme_test'];
36 protected function setUp($import_test_views = TRUE) {
37 parent::setUp($import_test_views);
39 $this->enableViewsTestModule();
43 * Tests for exceptions and successful execution of hook_views_pre_render()
44 * and hook_views_post_render() in theme and subtheme.
46 public function testThemedViewPage() {
48 \Drupal::service('theme_handler')->install(['test_basetheme', 'test_subtheme']);
50 // Make base theme default then test for hook invocations.
51 $this->config('system.theme')
52 ->set('default', 'test_basetheme')
54 $this->assertEqual($this->config('system.theme')->get('default'), 'test_basetheme');
56 // Make sure a views rendered page is touched.
57 $this->drupalGet('test_page_display_200');
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");
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')
67 $this->assertEqual($this->config('system.theme')->get('default'), 'test_subtheme');
69 // Make sure a views rendered page is touched.
70 $this->drupalGet('test_page_display_200');
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");
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");
78 $this->assertRaw('<em class="placeholder">' . count($this->dataSet()) . '</em> items found.', 'Views group title added by test_subtheme.test_subtheme_views_post_render');