class TokenTest in Lightweight Directory Access Protocol (LDAP) 8.4
@coversDefaultClass \Drupal\ldap_servers\Processor\TokenProcessor @group ldap
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses PhpunitCompatibilityTrait
- class \Drupal\Tests\ldap_servers\Unit\TokenTest
Expanded class hierarchy of TokenTest
File
- ldap_servers/
tests/ src/ Unit/ TokenTest.php, line 16
Namespace
Drupal\Tests\ldap_servers\UnitView source
class TokenTest extends UnitTestCase {
/**
* LDAP Entry.
*
* @var \Symfony\Component\Ldap\Entry
*/
private $ldapEntry;
/**
* TokenProcessor.
*
* @var \Drupal\ldap_servers\Processor\TokenProcessor
*/
private $processor;
/**
* Test setup.
*/
protected function setUp() : void {
parent::setUp();
$this->ldapEntry = new Entry('cn=hpotter,ou=Gryffindor,ou=student,ou=people,dc=hogwarts,dc=edu', [
'mail' => [
'hpotter@hogwarts.edu',
],
'sAMAccountName' => [
'hpotter',
],
'house' => [
'Gryffindor',
'Privet Drive',
],
'guid' => [
'sdafsdfsdf',
],
]);
$this->processor = $this
->getMockBuilder(TokenProcessor::class)
->setMethods(NULL)
->disableOriginalConstructor()
->getMock();
}
/**
* Test the replacement of tokens.
*
* See http://drupal.org/node/1245736 for test tokens.
*/
public function testTokenReplacement() : void {
$literalValue = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, 'literalvalue');
self::assertEquals('literalvalue', $literalValue);
$dn = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[dn]');
self::assertEquals($this->ldapEntry
->getDn(), $dn);
$house0 = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house:0]');
self::assertEquals('Gryffindor', $house0);
$house_noindex = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house]');
self::assertEquals('Gryffindor', $house_noindex);
$houseLast = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house:last]');
self::assertEquals('Privet Drive', $houseLast);
$mixed = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, 'thisold[house:0]');
self::assertEquals('thisoldGryffindor', $mixed);
$compound = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName:0][house:0]');
self::assertEquals('hpotterGryffindor', $compound);
}
/**
* Test case sensitive issues.
*/
public function testTokenReplacementCaseSensitivity() : void {
$sAMAccountName = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[samaccountname:0]');
self::assertEquals('hpotter', $sAMAccountName);
$sAMAccountNameMixedCase = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName:0]');
self::assertEquals('hpotter', $sAMAccountNameMixedCase);
$sAMAccountName2 = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[samaccountname]');
self::assertEquals('hpotter', $sAMAccountName2);
$sAMAccountName3 = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName]');
self::assertEquals('hpotter', $sAMAccountName3);
}
/**
* Test binary conversion.
*/
public function testBinaryConversion() : void {
$base64encode = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;base64_encode]');
self::assertEquals(base64_encode('sdafsdfsdf'), $base64encode);
$bin2hex = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;bin2hex]');
self::assertEquals(bin2hex('sdafsdfsdf'), $bin2hex);
$msguid = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;msguid]');
self::assertEquals(ConversionHelper::convertMsguidToString('sdafsdfsdf'), $msguid);
$binary = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;binary]');
self::assertEquals(bin2hex('sdafsdfsdf'), $binary);
}
/**
* Test reversal.
*/
public function testReversal() : void {
// Test regular reversal (2 elements) at beginning.
$dc = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[dc:reverse:0]');
self::assertEquals('edu', $dc);
// Test single element reversion.
$ou = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[cn:reverse:0]');
self::assertEquals('hpotter', $ou);
// Test 3 element reversion at end.
$ou2 = $this->processor
->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[ou:reverse:2]');
self::assertEquals('Gryffindor', $ou2);
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PhpunitCompatibilityTrait:: |
public | function | Returns a mock object for the specified class using the available method. | |
PhpunitCompatibilityTrait:: |
public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | |
TokenTest:: |
private | property | LDAP Entry. | |
TokenTest:: |
private | property | TokenProcessor. | |
TokenTest:: |
protected | function |
Test setup. Overrides UnitTestCase:: |
|
TokenTest:: |
public | function | Test binary conversion. | |
TokenTest:: |
public | function | Test reversal. | |
TokenTest:: |
public | function | Test the replacement of tokens. | |
TokenTest:: |
public | function | Test case sensitive issues. | |
UnitTestCase:: |
protected | property | The random generator. | |
UnitTestCase:: |
protected | property | The app root. | 1 |
UnitTestCase:: |
protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase:: |
protected | function | Mocks a block with a block plugin. | 1 |
UnitTestCase:: |
protected | function | Returns a stub class resolver. | |
UnitTestCase:: |
public | function | Returns a stub config factory that behaves according to the passed array. | |
UnitTestCase:: |
public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase:: |
protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase:: |
protected | function | Gets the random generator for the utility methods. | |
UnitTestCase:: |
public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase:: |
public | function | Generates a unique random string containing letters and numbers. |