Mercurial > hg > isophonics-drupal-site
annotate core/modules/jsonapi/tests/src/Functional/VocabularyTest.php @ 18:af1871eacc83
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:33:08 +0100 |
parents | |
children |
rev | line source |
---|---|
Chris@18 | 1 <?php |
Chris@18 | 2 |
Chris@18 | 3 namespace Drupal\Tests\jsonapi\Functional; |
Chris@18 | 4 |
Chris@18 | 5 use Drupal\Core\Url; |
Chris@18 | 6 use Drupal\taxonomy\Entity\Vocabulary; |
Chris@18 | 7 |
Chris@18 | 8 /** |
Chris@18 | 9 * JSON:API integration test for the "vocabulary" config entity type. |
Chris@18 | 10 * |
Chris@18 | 11 * @group jsonapi |
Chris@18 | 12 */ |
Chris@18 | 13 class VocabularyTest extends ResourceTestBase { |
Chris@18 | 14 |
Chris@18 | 15 /** |
Chris@18 | 16 * {@inheritdoc} |
Chris@18 | 17 */ |
Chris@18 | 18 public static $modules = ['taxonomy']; |
Chris@18 | 19 |
Chris@18 | 20 /** |
Chris@18 | 21 * {@inheritdoc} |
Chris@18 | 22 */ |
Chris@18 | 23 protected static $entityTypeId = 'taxonomy_vocabulary'; |
Chris@18 | 24 |
Chris@18 | 25 /** |
Chris@18 | 26 * {@inheritdoc} |
Chris@18 | 27 */ |
Chris@18 | 28 protected static $resourceTypeName = 'taxonomy_vocabulary--taxonomy_vocabulary'; |
Chris@18 | 29 |
Chris@18 | 30 /** |
Chris@18 | 31 * {@inheritdoc} |
Chris@18 | 32 * |
Chris@18 | 33 * @var \Drupal\taxonomy\VocabularyInterface |
Chris@18 | 34 */ |
Chris@18 | 35 protected $entity; |
Chris@18 | 36 |
Chris@18 | 37 /** |
Chris@18 | 38 * {@inheritdoc} |
Chris@18 | 39 */ |
Chris@18 | 40 protected function setUpAuthorization($method) { |
Chris@18 | 41 $this->grantPermissionsToTestedRole(['administer taxonomy']); |
Chris@18 | 42 } |
Chris@18 | 43 |
Chris@18 | 44 /** |
Chris@18 | 45 * {@inheritdoc} |
Chris@18 | 46 */ |
Chris@18 | 47 protected function createEntity() { |
Chris@18 | 48 $vocabulary = Vocabulary::create([ |
Chris@18 | 49 'name' => 'Llama', |
Chris@18 | 50 'vid' => 'llama', |
Chris@18 | 51 ]); |
Chris@18 | 52 $vocabulary->save(); |
Chris@18 | 53 |
Chris@18 | 54 return $vocabulary; |
Chris@18 | 55 } |
Chris@18 | 56 |
Chris@18 | 57 /** |
Chris@18 | 58 * {@inheritdoc} |
Chris@18 | 59 */ |
Chris@18 | 60 protected function getExpectedDocument() { |
Chris@18 | 61 $self_url = Url::fromUri('base:/jsonapi/taxonomy_vocabulary/taxonomy_vocabulary/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl(); |
Chris@18 | 62 return [ |
Chris@18 | 63 'jsonapi' => [ |
Chris@18 | 64 'meta' => [ |
Chris@18 | 65 'links' => [ |
Chris@18 | 66 'self' => ['href' => 'http://jsonapi.org/format/1.0/'], |
Chris@18 | 67 ], |
Chris@18 | 68 ], |
Chris@18 | 69 'version' => '1.0', |
Chris@18 | 70 ], |
Chris@18 | 71 'links' => [ |
Chris@18 | 72 'self' => ['href' => $self_url], |
Chris@18 | 73 ], |
Chris@18 | 74 'data' => [ |
Chris@18 | 75 'id' => $this->entity->uuid(), |
Chris@18 | 76 'type' => 'taxonomy_vocabulary--taxonomy_vocabulary', |
Chris@18 | 77 'links' => [ |
Chris@18 | 78 'self' => ['href' => $self_url], |
Chris@18 | 79 ], |
Chris@18 | 80 'attributes' => [ |
Chris@18 | 81 'langcode' => 'en', |
Chris@18 | 82 'status' => TRUE, |
Chris@18 | 83 'dependencies' => [], |
Chris@18 | 84 'name' => 'Llama', |
Chris@18 | 85 'description' => NULL, |
Chris@18 | 86 'weight' => 0, |
Chris@18 | 87 'drupal_internal__vid' => 'llama', |
Chris@18 | 88 ], |
Chris@18 | 89 ], |
Chris@18 | 90 ]; |
Chris@18 | 91 } |
Chris@18 | 92 |
Chris@18 | 93 /** |
Chris@18 | 94 * {@inheritdoc} |
Chris@18 | 95 */ |
Chris@18 | 96 protected function getPostDocument() { |
Chris@18 | 97 // @todo Update in https://www.drupal.org/node/2300677. |
Chris@18 | 98 } |
Chris@18 | 99 |
Chris@18 | 100 /** |
Chris@18 | 101 * {@inheritdoc} |
Chris@18 | 102 */ |
Chris@18 | 103 protected function getExpectedUnauthorizedAccessMessage($method) { |
Chris@18 | 104 if ($method === 'GET') { |
Chris@18 | 105 return "The following permissions are required: 'access taxonomy overview' OR 'administer taxonomy'."; |
Chris@18 | 106 } |
Chris@18 | 107 return parent::getExpectedUnauthorizedAccessMessage($method); |
Chris@18 | 108 } |
Chris@18 | 109 |
Chris@18 | 110 } |