Update to Drupal 8.2.0. For more information, see https://www.drupal.org/project/drupal/releases/8.2.0
This commit is contained in:
parent
2f563ab520
commit
f1c8716f57
1732 changed files with 52334 additions and 11780 deletions
|
|
@ -5,7 +5,6 @@ namespace Drupal\simpletest;
|
|||
use Drupal\block\Entity\Block;
|
||||
use Drupal\Component\FileCache\FileCacheFactory;
|
||||
use Drupal\Component\Serialization\Json;
|
||||
use Drupal\Component\Serialization\Yaml;
|
||||
use Drupal\Component\Utility\Html;
|
||||
use Drupal\Component\Utility\NestedArray;
|
||||
use Drupal\Component\Utility\UrlHelper;
|
||||
|
|
@ -18,13 +17,15 @@ use Drupal\Core\EventSubscriber\AjaxResponseSubscriber;
|
|||
use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
|
||||
use Drupal\Core\Extension\MissingDependencyException;
|
||||
use Drupal\Core\Render\Element;
|
||||
use Drupal\Core\Serialization\Yaml;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\Core\Session\AnonymousUserSession;
|
||||
use Drupal\Core\Session\UserSession;
|
||||
use Drupal\Core\Site\Settings;
|
||||
use Drupal\Core\StreamWrapper\PublicStream;
|
||||
use Drupal\Core\Test\AssertMailTrait;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\system\Tests\Cache\AssertPageCacheContextsAndTagsTrait;
|
||||
use Drupal\Tests\TestFileCreationTrait;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Yaml\Yaml as SymfonyYaml;
|
||||
|
|
@ -38,6 +39,11 @@ use Zend\Diactoros\Uri;
|
|||
abstract class WebTestBase extends TestBase {
|
||||
|
||||
use AssertContentTrait;
|
||||
use TestFileCreationTrait {
|
||||
getTestFiles as drupalGetTestFiles;
|
||||
compareFiles as drupalCompareFiles;
|
||||
}
|
||||
use AssertPageCacheContextsAndTagsTrait;
|
||||
use BlockCreationTrait {
|
||||
placeBlock as drupalPlaceBlock;
|
||||
}
|
||||
|
|
@ -166,11 +172,6 @@ abstract class WebTestBase extends TestBase {
|
|||
*/
|
||||
protected $sessionId = NULL;
|
||||
|
||||
/**
|
||||
* Whether the files were copied to the test files directory.
|
||||
*/
|
||||
protected $generatedTestFiles = FALSE;
|
||||
|
||||
/**
|
||||
* The maximum number of redirects to follow when handling responses.
|
||||
*/
|
||||
|
|
@ -331,99 +332,6 @@ abstract class WebTestBase extends TestBase {
|
|||
return $this->xpath('//div[@id = :id]', array(':id' => 'block-' . $block->id()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of files that can be used in tests.
|
||||
*
|
||||
* The first time this method is called, it will call
|
||||
* simpletest_generate_file() to generate binary and ASCII text files in the
|
||||
* public:// directory. It will also copy all files in
|
||||
* core/modules/simpletest/files to public://. These contain image, SQL, PHP,
|
||||
* JavaScript, and HTML files.
|
||||
*
|
||||
* All filenames are prefixed with their type and have appropriate extensions:
|
||||
* - text-*.txt
|
||||
* - binary-*.txt
|
||||
* - html-*.html and html-*.txt
|
||||
* - image-*.png, image-*.jpg, and image-*.gif
|
||||
* - javascript-*.txt and javascript-*.script
|
||||
* - php-*.txt and php-*.php
|
||||
* - sql-*.txt and sql-*.sql
|
||||
*
|
||||
* Any subsequent calls will not generate any new files, or copy the files
|
||||
* over again. However, if a test class adds a new file to public:// that
|
||||
* is prefixed with one of the above types, it will get returned as well, even
|
||||
* on subsequent calls.
|
||||
*
|
||||
* @param $type
|
||||
* File type, possible values: 'binary', 'html', 'image', 'javascript',
|
||||
* 'php', 'sql', 'text'.
|
||||
* @param $size
|
||||
* (optional) File size in bytes to match. Defaults to NULL, which will not
|
||||
* filter the returned list by size.
|
||||
*
|
||||
* @return
|
||||
* List of files in public:// that match the filter(s).
|
||||
*/
|
||||
protected function drupalGetTestFiles($type, $size = NULL) {
|
||||
if (empty($this->generatedTestFiles)) {
|
||||
// Generate binary test files.
|
||||
$lines = array(64, 1024);
|
||||
$count = 0;
|
||||
foreach ($lines as $line) {
|
||||
simpletest_generate_file('binary-' . $count++, 64, $line, 'binary');
|
||||
}
|
||||
|
||||
// Generate ASCII text test files.
|
||||
$lines = array(16, 256, 1024, 2048, 20480);
|
||||
$count = 0;
|
||||
foreach ($lines as $line) {
|
||||
simpletest_generate_file('text-' . $count++, 64, $line, 'text');
|
||||
}
|
||||
|
||||
// Copy other test files from simpletest.
|
||||
$original = drupal_get_path('module', 'simpletest') . '/files';
|
||||
$files = file_scan_directory($original, '/(html|image|javascript|php|sql)-.*/');
|
||||
foreach ($files as $file) {
|
||||
file_unmanaged_copy($file->uri, PublicStream::basePath());
|
||||
}
|
||||
|
||||
$this->generatedTestFiles = TRUE;
|
||||
}
|
||||
|
||||
$files = array();
|
||||
// Make sure type is valid.
|
||||
if (in_array($type, array('binary', 'html', 'image', 'javascript', 'php', 'sql', 'text'))) {
|
||||
$files = file_scan_directory('public://', '/' . $type . '\-.*/');
|
||||
|
||||
// If size is set then remove any files that are not of that size.
|
||||
if ($size !== NULL) {
|
||||
foreach ($files as $file) {
|
||||
$stats = stat($file->uri);
|
||||
if ($stats['size'] != $size) {
|
||||
unset($files[$file->uri]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
usort($files, array($this, 'drupalCompareFiles'));
|
||||
return $files;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare two files based on size and file name.
|
||||
*/
|
||||
protected function drupalCompareFiles($file1, $file2) {
|
||||
$compare_size = filesize($file1->uri) - filesize($file2->uri);
|
||||
if ($compare_size) {
|
||||
// Sort by file size.
|
||||
return $compare_size;
|
||||
}
|
||||
else {
|
||||
// The files were the same size, so sort alphabetically.
|
||||
return strnatcmp($file1->name, $file2->name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log in a user with the internal browser.
|
||||
*
|
||||
|
|
@ -1160,9 +1068,7 @@ abstract class WebTestBase extends TestBase {
|
|||
}
|
||||
// We set the user agent header on each request so as to use the current
|
||||
// time and a new uniqid.
|
||||
if (preg_match('/simpletest\d+/', $this->databasePrefix, $matches)) {
|
||||
curl_setopt($this->curlHandle, CURLOPT_USERAGENT, drupal_generate_test_ua($matches[0]));
|
||||
}
|
||||
curl_setopt($this->curlHandle, CURLOPT_USERAGENT, drupal_generate_test_ua($this->databasePrefix));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2707,28 +2613,6 @@ abstract class WebTestBase extends TestBase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts whether an expected cache context was present in the last response.
|
||||
*
|
||||
* @param string $expected_cache_context
|
||||
* The expected cache context.
|
||||
*/
|
||||
protected function assertCacheContext($expected_cache_context) {
|
||||
$cache_contexts = explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Contexts'));
|
||||
$this->assertTrue(in_array($expected_cache_context, $cache_contexts), "'" . $expected_cache_context . "' is present in the X-Drupal-Cache-Contexts header.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a cache context was not present in the last response.
|
||||
*
|
||||
* @param string $not_expected_cache_context
|
||||
* The expected cache context.
|
||||
*/
|
||||
protected function assertNoCacheContext($not_expected_cache_context) {
|
||||
$cache_contexts = explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Contexts'));
|
||||
$this->assertFalse(in_array($not_expected_cache_context, $cache_contexts), "'" . $not_expected_cache_context . "' is not present in the X-Drupal-Cache-Contexts header.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts whether an expected cache tag was present in the last response.
|
||||
*
|
||||
|
|
|
|||
Reference in a new issue