class JsonApiSpecTest
Same name in other branches
- 8.9.x core/modules/jsonapi/tests/src/Unit/JsonApiSpecTest.php \Drupal\Tests\jsonapi\Unit\JsonApiSpecTest
- 10 core/modules/jsonapi/tests/src/Unit/JsonApiSpecTest.php \Drupal\Tests\jsonapi\Unit\JsonApiSpecTest
- 11.x core/modules/jsonapi/tests/src/Unit/JsonApiSpecTest.php \Drupal\Tests\jsonapi\Unit\JsonApiSpecTest
@coversDefaultClass \Drupal\jsonapi\JsonApiSpec @group jsonapi
@internal
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait
- class \Drupal\Tests\jsonapi\Unit\JsonApiSpecTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of JsonApiSpecTest
File
-
core/
modules/ jsonapi/ tests/ src/ Unit/ JsonApiSpecTest.php, line 14
Namespace
Drupal\Tests\jsonapi\UnitView source
class JsonApiSpecTest extends UnitTestCase {
/**
* Ensures that member names are properly validated.
*
* @dataProvider providerTestIsValidMemberName
* @covers ::isValidMemberName
*/
public function testIsValidMemberName($member_name, $expected) {
$this->assertSame($expected, JsonApiSpec::isValidMemberName($member_name));
}
/**
* Data provider for testIsValidMemberName.
*/
public function providerTestIsValidMemberName() {
// Copied from http://jsonapi.org/format/upcoming/#document-member-names.
$data = [];
$data['alphanumeric-lowercase'] = [
'12kittens',
TRUE,
];
$data['alphanumeric-uppercase'] = [
'12KITTENS',
TRUE,
];
$data['alphanumeric-mixed'] = [
'12KiTtEnS',
TRUE,
];
$data['unicode-above-u+0080'] = [
'12🐱🐱',
TRUE,
];
$data['hyphen-start'] = [
'-kittens',
FALSE,
];
$data['hyphen-middle'] = [
'kitt-ens',
TRUE,
];
$data['hyphen-end'] = [
'kittens-',
FALSE,
];
$data['lowline-start'] = [
'_kittens',
FALSE,
];
$data['lowline-middle'] = [
'kitt_ens',
TRUE,
];
$data['lowline-end'] = [
'kittens_',
FALSE,
];
$data['space-start'] = [
' kittens',
FALSE,
];
$data['space-middle'] = [
'kitt ens',
TRUE,
];
$data['space-end'] = [
'kittens ',
FALSE,
];
// Additional test cases.
// @todo When D8 requires PHP >= 7, convert to \u{10FFFF}.
$data['unicode-above-u+0080-highest-allowed'] = [
"12",
TRUE,
];
$data['single-character'] = [
'a',
TRUE,
];
$unsafe_chars = [
'+',
',',
'.',
'[',
']',
'!',
'"',
'#',
'$',
'%',
'&',
'\'',
'(',
')',
'*',
'/',
':',
';',
'<',
'=',
'>',
'?',
'@',
'\\',
'^',
'`',
'{',
'|',
'}',
'~',
];
foreach ($unsafe_chars as $unsafe_char) {
$data['unsafe-' . $unsafe_char] = [
'kitt' . $unsafe_char . 'ens',
FALSE,
];
}
// The ASCII control characters are in the range 0x00 to 0x1F plus 0x7F.
for ($ascii = 0; $ascii <= 0x1f; $ascii++) {
$data['unsafe-ascii-control-' . $ascii] = [
'kitt' . chr($ascii) . 'ens',
FALSE,
];
}
$data['unsafe-ascii-control-' . 0x7f] = [
'kitt' . chr(0x7f) . 'ens',
FALSE,
];
return $data;
}
/**
* Provides test cases.
*
* @dataProvider providerTestIsValidCustomQueryParameter
* @covers ::isValidCustomQueryParameter
* @covers ::isValidMemberName
*/
public function testIsValidCustomQueryParameter($custom_query_parameter, $expected) {
$this->assertSame($expected, JsonApiSpec::isValidCustomQueryParameter($custom_query_parameter));
}
/**
* Data provider for testIsValidCustomQueryParameter.
*/
public function providerTestIsValidCustomQueryParameter() {
$data = $this->providerTestIsValidMemberName();
// All valid member names are also valid custom query parameters, except for
// single-character ones.
$data['single-character'][1] = FALSE;
// Custom query parameter test cases.
$data['custom-query-parameter-lowercase'] = [
'foobar',
FALSE,
];
$data['custom-query-parameter-dash'] = [
'foo-bar',
TRUE,
];
$data['custom-query-parameter-underscore'] = [
'foo_bar',
TRUE,
];
$data['custom-query-parameter-camelcase'] = [
'fooBar',
TRUE,
];
return $data;
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|---|
JsonApiSpecTest::providerTestIsValidCustomQueryParameter | public | function | Data provider for testIsValidCustomQueryParameter. | ||
JsonApiSpecTest::providerTestIsValidMemberName | public | function | Data provider for testIsValidMemberName. | ||
JsonApiSpecTest::testIsValidCustomQueryParameter | public | function | Provides test cases. | ||
JsonApiSpecTest::testIsValidMemberName | public | function | Ensures that member names are properly validated. | ||
PhpUnitWarnings::$deprecationWarnings | private static | property | Deprecation warnings from PHPUnit to raise with @trigger_error(). | ||
PhpUnitWarnings::addWarning | public | function | Converts PHPUnit deprecation warnings to E_USER_DEPRECATED. | ||
UnitTestCase::$randomGenerator | protected | property | The random generator. | ||
UnitTestCase::$root | protected | property | The app root. | 1 | |
UnitTestCase::assertArrayEquals | Deprecated | protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | ||
UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | ||
UnitTestCase::getConfigStorageStub | public | function | Returns a stub config storage that returns the supplied configuration. | ||
UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | ||
UnitTestCase::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | ||
UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | ||
UnitTestCase::randomMachineName | public | function | Generates a unique random string containing letters and numbers. | ||
UnitTestCase::setUp | protected | function | 338 | ||
UnitTestCase::setUpBeforeClass | public static | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.