annotate core/modules/jsonapi/tests/src/Functional/TourTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents
children
rev   line source
Chris@5 1 <?php
Chris@5 2
Chris@5 3 namespace Drupal\Tests\jsonapi\Functional;
Chris@5 4
Chris@5 5 use Drupal\Core\Url;
Chris@5 6 use Drupal\tour\Entity\Tour;
Chris@5 7
Chris@5 8 /**
Chris@5 9 * JSON:API integration test for the "Tour" config entity type.
Chris@5 10 *
Chris@5 11 * @group jsonapi
Chris@5 12 */
Chris@5 13 class TourTest extends ResourceTestBase {
Chris@5 14
Chris@5 15 /**
Chris@5 16 * {@inheritdoc}
Chris@5 17 */
Chris@5 18 public static $modules = ['tour'];
Chris@5 19
Chris@5 20 /**
Chris@5 21 * {@inheritdoc}
Chris@5 22 */
Chris@5 23 protected static $entityTypeId = 'tour';
Chris@5 24
Chris@5 25 /**
Chris@5 26 * {@inheritdoc}
Chris@5 27 */
Chris@5 28 protected static $resourceTypeName = 'tour--tour';
Chris@5 29
Chris@5 30 /**
Chris@5 31 * {@inheritdoc}
Chris@5 32 *
Chris@5 33 * @var \Drupal\tour\TourInterface
Chris@5 34 */
Chris@5 35 protected $entity;
Chris@5 36
Chris@5 37 /**
Chris@5 38 * {@inheritdoc}
Chris@5 39 */
Chris@5 40 protected function setUpAuthorization($method) {
Chris@5 41 $this->grantPermissionsToTestedRole(['access tour']);
Chris@5 42 }
Chris@5 43
Chris@5 44 /**
Chris@5 45 * {@inheritdoc}
Chris@5 46 */
Chris@5 47 protected function createEntity() {
Chris@5 48 $tour = Tour::create([
Chris@5 49 'id' => 'tour-llama',
Chris@5 50 'label' => 'Llama tour',
Chris@5 51 'langcode' => 'en',
Chris@5 52 'module' => 'tour',
Chris@5 53 'routes' => [
Chris@5 54 [
Chris@5 55 'route_name' => '<front>',
Chris@5 56 ],
Chris@5 57 ],
Chris@5 58 'tips' => [
Chris@5 59 'tour-llama-1' => [
Chris@5 60 'id' => 'tour-llama-1',
Chris@5 61 'plugin' => 'text',
Chris@5 62 'label' => 'Llama',
Chris@5 63 'body' => 'Who handle the awesomeness of llamas?',
Chris@5 64 'weight' => 100,
Chris@5 65 'attributes' => [
Chris@5 66 'data-id' => 'tour-llama-1',
Chris@5 67 ],
Chris@5 68 ],
Chris@5 69 ],
Chris@5 70 ]);
Chris@5 71 $tour->save();
Chris@5 72
Chris@5 73 return $tour;
Chris@5 74 }
Chris@5 75
Chris@5 76 /**
Chris@5 77 * {@inheritdoc}
Chris@5 78 */
Chris@5 79 protected function getExpectedDocument() {
Chris@5 80 $self_url = Url::fromUri('base:/jsonapi/tour/tour/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl();
Chris@5 81 return [
Chris@5 82 'jsonapi' => [
Chris@5 83 'meta' => [
Chris@5 84 'links' => [
Chris@5 85 'self' => ['href' => 'http://jsonapi.org/format/1.0/'],
Chris@5 86 ],
Chris@5 87 ],
Chris@5 88 'version' => '1.0',
Chris@5 89 ],
Chris@5 90 'links' => [
Chris@5 91 'self' => ['href' => $self_url],
Chris@5 92 ],
Chris@5 93 'data' => [
Chris@5 94 'id' => $this->entity->uuid(),
Chris@5 95 'type' => 'tour--tour',
Chris@5 96 'links' => [
Chris@5 97 'self' => ['href' => $self_url],
Chris@5 98 ],
Chris@5 99 'attributes' => [
Chris@5 100 'dependencies' => [],
Chris@5 101 'label' => 'Llama tour',
Chris@5 102 'langcode' => 'en',
Chris@5 103 'module' => 'tour',
Chris@5 104 'routes' => [
Chris@5 105 [
Chris@5 106 'route_name' => '<front>',
Chris@5 107 ],
Chris@5 108 ],
Chris@5 109 'status' => TRUE,
Chris@5 110 'tips' => [
Chris@5 111 'tour-llama-1' => [
Chris@5 112 'id' => 'tour-llama-1',
Chris@5 113 'plugin' => 'text',
Chris@5 114 'label' => 'Llama',
Chris@5 115 'body' => 'Who handle the awesomeness of llamas?',
Chris@5 116 'weight' => 100,
Chris@5 117 'attributes' => [
Chris@5 118 'data-id' => 'tour-llama-1',
Chris@5 119 ],
Chris@5 120 ],
Chris@5 121 ],
Chris@5 122 'drupal_internal__id' => 'tour-llama',
Chris@5 123 ],
Chris@5 124 ],
Chris@5 125 ];
Chris@5 126 }
Chris@5 127
Chris@5 128 /**
Chris@5 129 * {@inheritdoc}
Chris@5 130 */
Chris@5 131 protected function getPostDocument() {
Chris@5 132 // @todo Update in https://www.drupal.org/node/2300677.
Chris@5 133 }
Chris@5 134
Chris@5 135 /**
Chris@5 136 * {@inheritdoc}
Chris@5 137 */
Chris@5 138 protected function getExpectedUnauthorizedAccessMessage($method) {
Chris@5 139 return "The following permissions are required: 'access tour' OR 'administer site configuration'.";
Chris@5 140 }
Chris@5 141
Chris@5 142 }