class UrlEncodeTest
Same name in other branches
- 9 core/modules/migrate/tests/src/Unit/process/UrlEncodeTest.php \Drupal\Tests\migrate\Unit\process\UrlEncodeTest
- 8.9.x core/modules/migrate/tests/src/Unit/process/UrlEncodeTest.php \Drupal\Tests\migrate\Unit\process\UrlEncodeTest
- 10 core/modules/migrate/tests/src/Unit/process/UrlEncodeTest.php \Drupal\Tests\migrate\Unit\process\UrlEncodeTest
@coversDefaultClass \Drupal\migrate\Plugin\migrate\process\UrlEncode @group file
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait
- class \Drupal\Tests\migrate\Unit\MigrateTestCase extends \Drupal\Tests\UnitTestCase
- class \Drupal\Tests\migrate\Unit\process\UrlEncodeTest extends \Drupal\Tests\migrate\Unit\MigrateTestCase
- class \Drupal\Tests\migrate\Unit\MigrateTestCase extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of UrlEncodeTest
File
-
core/
modules/ migrate/ tests/ src/ Unit/ process/ UrlEncodeTest.php, line 16
Namespace
Drupal\Tests\migrate\Unit\processView source
class UrlEncodeTest extends MigrateTestCase {
/**
* {@inheritdoc}
*/
protected $migrationConfiguration = [
'id' => 'test',
];
/**
* The data provider for testing URL encoding scenarios.
*
* @return array
* An array of URLs to test.
*/
public static function urlDataProvider() {
return [
'A URL with no characters requiring encoding' => [
'http://example.com/normal_url.html',
'http://example.com/normal_url.html',
],
'The definitive use case - encoding spaces in URLs' => [
'http://example.com/url with spaces.html',
'http://example.com/url%20with%20spaces.html',
],
'Definitive use case 2 - spaces in directories' => [
'http://example.com/dir with spaces/foo.html',
'http://example.com/dir%20with%20spaces/foo.html',
],
'Local file specs without spaces should not be transformed' => [
'/tmp/normal.txt',
'/tmp/normal.txt',
],
'Local file specs with spaces should not be transformed' => [
'/tmp/with spaces.txt',
'/tmp/with spaces.txt',
],
'Make sure URL characters (:, ?, &) are not encoded but others are.' => [
'https://example.com/?a=b@c&d=e+f%',
'https://example.com/?a%3Db%40c&d%3De%2Bf%25',
],
];
}
/**
* Cover various encoding scenarios.
* @dataProvider urlDataProvider
*/
public function testUrls($input, $output) : void {
$this->assertEquals($output, $this->doTransform($input));
}
/**
* Perform the urlencode process plugin over the given value.
*
* @param string $value
* URL to be encoded.
*
* @return string
* Encoded URL.
*/
protected function doTransform($value) {
$executable = new MigrateExecutable($this->getMigration());
$row = new Row();
return (new UrlEncode([], 'urlencode', []))->transform($value, $executable, $row, 'foo');
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
ExpectDeprecationTrait::expectDeprecation | public | function | Adds an expected deprecation. | ||
ExpectDeprecationTrait::getCallableName | private static | function | Returns a callable as a string suitable for inclusion in a message. | ||
ExpectDeprecationTrait::setUpErrorHandler | public | function | Sets up the test error handler. | ||
ExpectDeprecationTrait::tearDownErrorHandler | public | function | Tears down the test error handler. | ||
MigrateTestCase::$idMap | protected | property | The migration ID map. | ||
MigrateTestCase::$migrationStatus | protected | property | Local store for mocking setStatus()/getStatus(). | ||
MigrateTestCase::createSchemaFromRow | protected | function | Generates a table schema from a row. | ||
MigrateTestCase::getDatabase | protected | function | Gets an SQLite database connection object for use in tests. | ||
MigrateTestCase::getMigration | protected | function | Retrieves a mocked migration. | ||
MigrateTestCase::getValue | protected | function | Gets the value on a row for a given key. | ||
MigrateTestCase::queryResultTest | public | function | Tests a query. | ||
MigrateTestCase::retrievalAssertHelper | protected | function | Asserts tested values during test retrieval. | ||
RandomGeneratorTrait::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | ||
RandomGeneratorTrait::randomMachineName | protected | function | Generates a unique random string containing letters and numbers. | ||
RandomGeneratorTrait::randomObject | public | function | Generates a random PHP object. | ||
RandomGeneratorTrait::randomString | public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | ||
UnitTestCase::$root | protected | property | The app root. | ||
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::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | ||
UnitTestCase::setUp | protected | function | 358 | ||
UnitTestCase::setUpBeforeClass | public static | function | |||
UrlEncodeTest::$migrationConfiguration | protected | property | An array of migration configuration values. | Overrides MigrateTestCase::$migrationConfiguration | |
UrlEncodeTest::doTransform | protected | function | Perform the urlencode process plugin over the given value. | ||
UrlEncodeTest::testUrls | public | function | Cover various encoding scenarios. @dataProvider urlDataProvider |
||
UrlEncodeTest::urlDataProvider | public static | function | The data provider for testing URL encoding scenarios. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.