annotate core/modules/views/tests/src/Functional/ViewsThemeIntegrationTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
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 }