annotate core/modules/views_ui/src/Tests/UITestBase.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\views_ui\Tests;
Chris@0 4
Chris@18 5 @trigger_error(__NAMESPACE__ . '\UITestBase is deprecated for removal before Drupal 9.0.0. Use \Drupal\Tests\views_ui\Functional\UITestBase instead. See https://www.drupal.org/node/2999939', E_USER_DEPRECATED);
Chris@18 6
Chris@0 7 use Drupal\views\Tests\ViewTestBase;
Chris@0 8
Chris@0 9 /**
Chris@0 10 * Provides a base class for testing the Views UI.
Chris@0 11 *
Chris@0 12 * @deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.x.
Chris@0 13 * Use \Drupal\Tests\views_ui\Functional\UITestBase.
Chris@18 14 *
Chris@18 15 * @see https://www.drupal.org/node/2999939
Chris@0 16 */
Chris@0 17 abstract class UITestBase extends ViewTestBase {
Chris@0 18
Chris@0 19 /**
Chris@0 20 * An admin user with the 'administer views' permission.
Chris@0 21 *
Chris@0 22 * @var \Drupal\user\UserInterface
Chris@0 23 */
Chris@0 24 protected $adminUser;
Chris@0 25
Chris@0 26 /**
Chris@0 27 * An admin user with administrative permissions for views, blocks, and nodes.
Chris@0 28 *
Chris@0 29 * @var \Drupal\user\UserInterface
Chris@0 30 */
Chris@0 31 protected $fullAdminUser;
Chris@0 32
Chris@0 33 /**
Chris@0 34 * Modules to enable.
Chris@0 35 *
Chris@0 36 * @var array
Chris@0 37 */
Chris@0 38 public static $modules = ['node', 'views_ui', 'block', 'taxonomy'];
Chris@0 39
Chris@0 40 /**
Chris@0 41 * {@inheritdoc}
Chris@0 42 */
Chris@14 43 protected function setUp($import_test_views = TRUE) {
Chris@14 44 parent::setUp($import_test_views);
Chris@0 45
Chris@0 46 $this->enableViewsTestModule();
Chris@0 47
Chris@0 48 $this->adminUser = $this->drupalCreateUser(['administer views']);
Chris@0 49
Chris@0 50 $this->fullAdminUser = $this->drupalCreateUser(['administer views',
Chris@0 51 'administer blocks',
Chris@0 52 'bypass node access',
Chris@0 53 'access user profiles',
Chris@0 54 'view all revisions',
Chris@0 55 'administer permissions',
Chris@0 56 ]);
Chris@0 57 $this->drupalLogin($this->fullAdminUser);
Chris@0 58
Chris@0 59 @trigger_error('\Drupal\views_ui\Tests\UITestBase is deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.x. Instead, use \Drupal\Tests\views_ui\Functional\UITestBase', E_USER_DEPRECATED);
Chris@0 60 }
Chris@0 61
Chris@0 62 /**
Chris@0 63 * A helper method which creates a random view.
Chris@0 64 */
Chris@0 65 public function randomView(array $view = []) {
Chris@0 66 // Create a new view in the UI.
Chris@0 67 $default = [];
Chris@0 68 $default['label'] = $this->randomMachineName(16);
Chris@0 69 $default['id'] = strtolower($this->randomMachineName(16));
Chris@0 70 $default['description'] = $this->randomMachineName(16);
Chris@0 71 $default['page[create]'] = TRUE;
Chris@0 72 $default['page[path]'] = $default['id'];
Chris@0 73
Chris@0 74 $view += $default;
Chris@0 75
Chris@0 76 $this->drupalPostForm('admin/structure/views/add', $view, t('Save and edit'));
Chris@0 77
Chris@0 78 return $default;
Chris@0 79 }
Chris@0 80
Chris@0 81 /**
Chris@0 82 * {@inheritdoc}
Chris@0 83 */
Chris@0 84 protected function drupalGet($path, array $options = [], array $headers = []) {
Chris@0 85 $url = $this->buildUrl($path, $options);
Chris@0 86
Chris@0 87 // Ensure that each nojs page is accessible via ajax as well.
Chris@0 88 if (strpos($url, 'nojs') !== FALSE) {
Chris@0 89 $url = str_replace('nojs', 'ajax', $url);
Chris@0 90 $result = $this->drupalGet($url, $options, $headers);
Chris@0 91 $this->assertResponse(200);
Chris@0 92 $this->assertHeader('Content-Type', 'application/json');
Chris@0 93 $this->assertTrue(json_decode($result), 'Ensure that the AJAX request returned valid content.');
Chris@0 94 }
Chris@0 95
Chris@0 96 return parent::drupalGet($path, $options, $headers);
Chris@0 97 }
Chris@0 98
Chris@0 99 }