Update to Drupal 8.0-dev-2015-11-17. Commits through da81cd220, Tue Nov 17 15:53:49 2015 +0000, Issue #2617224 by Wim Leers: Move around/fix some documentation.
This commit is contained in:
parent
4afb23bbd3
commit
7784f4c23d
929 changed files with 19798 additions and 5304 deletions
|
@ -121,25 +121,30 @@ class LinkItem extends FieldItemBase implements LinkItemInterface {
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
|
||||
// Set of possible top-level domains.
|
||||
$tlds = array('com', 'net', 'gov', 'org', 'edu', 'biz', 'info');
|
||||
// Set random length for the domain name.
|
||||
$domain_length = mt_rand(7, 15);
|
||||
$random = new Random();
|
||||
if ($field_definition->getItemDefinition()->getSetting('link_type') & LinkItemInterface::LINK_EXTERNAL) {
|
||||
// Set of possible top-level domains.
|
||||
$tlds = array('com', 'net', 'gov', 'org', 'edu', 'biz', 'info');
|
||||
// Set random length for the domain name.
|
||||
$domain_length = mt_rand(7, 15);
|
||||
|
||||
switch ($field_definition->getSetting('title')) {
|
||||
case DRUPAL_DISABLED:
|
||||
$values['title'] = '';
|
||||
break;
|
||||
case DRUPAL_REQUIRED:
|
||||
$values['title'] = $random->sentences(4);
|
||||
break;
|
||||
case DRUPAL_OPTIONAL:
|
||||
// In case of optional title, randomize its generation.
|
||||
$values['title'] = mt_rand(0,1) ? $random->sentences(4) : '';
|
||||
break;
|
||||
switch ($field_definition->getSetting('title')) {
|
||||
case DRUPAL_DISABLED:
|
||||
$values['title'] = '';
|
||||
break;
|
||||
case DRUPAL_REQUIRED:
|
||||
$values['title'] = $random->sentences(4);
|
||||
break;
|
||||
case DRUPAL_OPTIONAL:
|
||||
// In case of optional title, randomize its generation.
|
||||
$values['title'] = mt_rand(0, 1) ? $random->sentences(4) : '';
|
||||
break;
|
||||
}
|
||||
$values['uri'] = 'http://www.' . $random->word($domain_length) . '.' . $tlds[mt_rand(0, (sizeof($tlds) - 1))];
|
||||
}
|
||||
else {
|
||||
$values['uri'] = 'base:' . $random->name(mt_rand(1, 64));
|
||||
}
|
||||
$values['uri'] = 'http://www.' . $random->word($domain_length) . '.' . $tlds[mt_rand(0, (sizeof($tlds)-1))];
|
||||
return $values;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
|
||||
namespace Drupal\link\Plugin\Validation\Constraint;
|
||||
|
||||
use Symfony\Component\Routing\Exception\InvalidParameterException;
|
||||
use Symfony\Component\Routing\Exception\MissingMandatoryParametersException;
|
||||
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
||||
use Symfony\Component\Validator\Constraint;
|
||||
use Symfony\Component\Validator\ConstraintValidatorInterface;
|
||||
|
@ -50,9 +52,17 @@ class LinkNotExistingInternalConstraintValidator implements ConstraintValidatorI
|
|||
try {
|
||||
$url->toString();
|
||||
}
|
||||
// The following exceptions are all possible during URL generation, and
|
||||
// should be considered as disallowed URLs.
|
||||
catch (RouteNotFoundException $e) {
|
||||
$allowed = FALSE;
|
||||
}
|
||||
catch (InvalidParameterException $e) {
|
||||
$allowed = FALSE;
|
||||
}
|
||||
catch (MissingMandatoryParametersException $e) {
|
||||
$allowed = FALSE;
|
||||
}
|
||||
if (!$allowed) {
|
||||
$this->context->addViolation($constraint->message, array('@uri' => $value->uri));
|
||||
}
|
||||
|
|
|
@ -129,8 +129,6 @@ class LinkFieldTest extends WebTestBase {
|
|||
'entity:user/1' => '- Restricted access - (1)',
|
||||
// URI for an entity that doesn't exist, but with a valid ID.
|
||||
'entity:user/999999' => 'entity:user/999999',
|
||||
// URI for an entity that doesn't exist, with an invalid ID.
|
||||
'entity:user/invalid-parameter' => 'entity:user/invalid-parameter',
|
||||
);
|
||||
|
||||
// Define some invalid URLs.
|
||||
|
@ -146,6 +144,8 @@ class LinkFieldTest extends WebTestBase {
|
|||
$invalid_internal_entries = array(
|
||||
'no-leading-slash' => $validation_error_2,
|
||||
'entity:non_existing_entity_type/yar' => $validation_error_1,
|
||||
// URI for an entity that doesn't exist, with an invalid ID.
|
||||
'entity:user/invalid-parameter' => $validation_error_1,
|
||||
);
|
||||
|
||||
// Test external and internal URLs for 'link_type' = LinkItemInterface::LINK_GENERIC.
|
||||
|
|
|
@ -10,7 +10,10 @@ namespace Drupal\link\Tests;
|
|||
use Drupal\Component\Utility\UrlHelper;
|
||||
use Drupal\Core\Field\FieldItemListInterface;
|
||||
use Drupal\Core\Field\FieldItemInterface;
|
||||
use Drupal\field\Entity\FieldConfig;
|
||||
use Drupal\field\Entity\FieldStorageConfig;
|
||||
use Drupal\field\Tests\FieldUnitTestBase;
|
||||
use Drupal\link\LinkItemInterface;
|
||||
|
||||
/**
|
||||
* Tests the new entity API for the link field type.
|
||||
|
@ -29,17 +32,40 @@ class LinkItemTest extends FieldUnitTestBase {
|
|||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Create a link field for validation.
|
||||
entity_create('field_storage_config', array(
|
||||
// Create a generic, external, and internal link fields for validation.
|
||||
FieldStorageConfig::create([
|
||||
'field_name' => 'field_test',
|
||||
'entity_type' => 'entity_test',
|
||||
'type' => 'link',
|
||||
))->save();
|
||||
entity_create('field_config', array(
|
||||
])->save();
|
||||
FieldConfig::create([
|
||||
'entity_type' => 'entity_test',
|
||||
'field_name' => 'field_test',
|
||||
'bundle' => 'entity_test',
|
||||
))->save();
|
||||
'settings' => ['link_type' => LinkItemInterface::LINK_GENERIC],
|
||||
])->save();
|
||||
FieldStorageConfig::create([
|
||||
'field_name' => 'field_test_external',
|
||||
'entity_type' => 'entity_test',
|
||||
'type' => 'link',
|
||||
])->save();
|
||||
FieldConfig::create([
|
||||
'entity_type' => 'entity_test',
|
||||
'field_name' => 'field_test_external',
|
||||
'bundle' => 'entity_test',
|
||||
'settings' => ['link_type' => LinkItemInterface::LINK_EXTERNAL],
|
||||
])->save();
|
||||
FieldStorageConfig::create([
|
||||
'field_name' => 'field_test_internal',
|
||||
'entity_type' => 'entity_test',
|
||||
'type' => 'link',
|
||||
])->save();
|
||||
FieldConfig::create([
|
||||
'entity_type' => 'entity_test',
|
||||
'field_name' => 'field_test_internal',
|
||||
'bundle' => 'entity_test',
|
||||
'settings' => ['link_type' => LinkItemInterface::LINK_INTERNAL],
|
||||
])->save();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -130,9 +156,12 @@ class LinkItemTest extends FieldUnitTestBase {
|
|||
$entity->field_test[0] = NULL;
|
||||
$this->assertNull($entity->field_test[0]->getValue());
|
||||
|
||||
// Test the generateSampleValue() method.
|
||||
// Test the generateSampleValue() method for generic, external, and internal
|
||||
// link types.
|
||||
$entity = entity_create('entity_test');
|
||||
$entity->field_test->generateSampleItems();
|
||||
$entity->field_test_external->generateSampleItems();
|
||||
$entity->field_test_internal->generateSampleItems();
|
||||
$this->entityValidateAndSave($entity);
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue