annotate core/modules/views_ui/src/Tests/UITestBase.php @ 0:c75dbcec494b

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