<?php
namespace Drupal\system\Tests\Common;
use Drupal\simpletest\UnitTestBase;
class HtmlIdentifierUnitTest extends UnitTestBase {
public static function getInfo() {
return array(
'name' => 'HTML identifiers',
'description' => 'Test the functions drupal_html_class(), drupal_html_id() and drupal_clean_css_identifier() for expected behavior',
'group' => 'Common',
);
}
function testDrupalCleanCSSIdentifier() {
$identifier = 'abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789';
$this
->assertIdentical(drupal_clean_css_identifier($identifier, array()), $identifier, 'Verify valid ASCII characters pass through.');
$identifier = '¡¢£¤¥';
$this
->assertIdentical(drupal_clean_css_identifier($identifier, array()), $identifier, 'Verify valid UTF-8 characters pass through.');
$this
->assertIdentical(drupal_clean_css_identifier('invalid !"#$%&\'()*+,./:;<=>?@[\\]^`{|}~ identifier', array()), 'invalididentifier', 'Strip invalid characters.');
$identifier = 'css__identifier__with__double__underscores';
$this
->assertIdentical(drupal_clean_css_identifier($identifier), $identifier, 'Verify double underscores pass through.');
}
function testDrupalHTMLClass() {
$this
->assertIdentical(drupal_html_class('CLASS NAME_[Ü]'), 'class-name--ü', 'Enforce Drupal coding standards.');
}
function testDrupalHTMLId() {
$id = 'abcdefghijklmnopqrstuvwxyz-0123456789';
$this
->assertIdentical(drupal_html_id($id), $id, 'Verify valid characters pass through.');
$this
->assertIdentical(drupal_html_id('invalid,./:@\\^`{Üidentifier'), 'invalididentifier', 'Strip invalid characters.');
$this
->assertIdentical(drupal_html_id('ID NAME_[1]'), 'id-name-1', 'Enforce Drupal coding standards.');
drupal_static_reset('drupal_html_id');
$this
->assertIdentical(drupal_html_id('test-unique-id'), 'test-unique-id', 'Test the uniqueness of IDs #1.');
$this
->assertIdentical(drupal_html_id('test-unique-id'), 'test-unique-id--2', 'Test the uniqueness of IDs #2.');
$this
->assertIdentical(drupal_html_id('test-unique-id'), 'test-unique-id--3', 'Test the uniqueness of IDs #3.');
}
}