Mercurial > hg > isophonics-drupal-site
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/views/tests/src/Functional/ViewsThemeIntegrationTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,81 @@ +<?php + +namespace Drupal\Tests\views\Functional; + +/** + * Tests the Views theme integration. + * + * We test against test_basetheme and test_subtheme provided by theme_test + * + * @group views + */ +class ViewsThemeIntegrationTest extends ViewTestBase { + + /** + * Views used by this test. + * + * @var array + */ + public static $testViews = ['test_page_display']; + + + /** + * Used by WebTestBase::setup() + * + * We need theme_test for testing against test_basetheme and test_subtheme. + * + * @var array + * + * @see \Drupal\simpletest\WebTestBase::setup() + */ + public static $modules = ['views', 'theme_test']; + + /** + * {@inheritdoc} + */ + protected function setUp($import_test_views = TRUE) { + parent::setUp($import_test_views); + + $this->enableViewsTestModule(); + } + + /** + * Tests for exceptions and successful execution of hook_views_pre_render() + * and hook_views_post_render() in theme and subtheme. + */ + public function testThemedViewPage() { + + \Drupal::service('theme_handler')->install(['test_basetheme', 'test_subtheme']); + + // Make base theme default then test for hook invocations. + $this->config('system.theme') + ->set('default', 'test_basetheme') + ->save(); + $this->assertEqual($this->config('system.theme')->get('default'), 'test_basetheme'); + + // Make sure a views rendered page is touched. + $this->drupalGet('test_page_display_200'); + + $this->assertRaw("test_basetheme_views_pre_render", "Views title changed by test_basetheme.test_basetheme_views_pre_render"); + $this->assertRaw("test_basetheme_views_post_render", "Views title changed by test_basetheme.test_basetheme_views_post_render"); + + // Make sub theme default to test for hook invocation + // from both sub and base theme. + $this->config('system.theme') + ->set('default', 'test_subtheme') + ->save(); + $this->assertEqual($this->config('system.theme')->get('default'), 'test_subtheme'); + + // Make sure a views rendered page is touched. + $this->drupalGet('test_page_display_200'); + + $this->assertRaw("test_subtheme_views_pre_render", "Views title changed by test_subtheme.test_subtheme_views_pre_render"); + $this->assertRaw("test_subtheme_views_post_render", "Views title changed by test_subtheme.test_subtheme_views_post_render"); + + $this->assertRaw("test_basetheme_views_pre_render", "Views title changed by test_basetheme.test_basetheme_views_pre_render"); + $this->assertRaw("test_basetheme_views_post_render", "Views title changed by test_basetheme.test_basetheme_views_post_render"); + + $this->assertRaw('<em class="placeholder">' . count($this->dataSet()) . '</em> items found.', 'Views group title added by test_subtheme.test_subtheme_views_post_render'); + } + +}