PATH:
home
/
letacommog
/
letaweb
/
admin
/
classes
/
htmlpurifier
/
tests
/
HTMLPurifier
<?php class HTMLPurifier_HTMLModuleManagerTest extends HTMLPurifier_Harness { protected function createManager() { $manager = new HTMLPurifier_HTMLModuleManager(); $this->config->set('HTML.CustomDoctype', 'Blank'); $manager->doctypes->register('Blank'); $attrdef_nmtokens = new HTMLPurifier_AttrDef_HTML_Nmtokens(); generate_mock_once('HTMLPurifier_AttrDef'); $attrdef = new HTMLPurifier_AttrDefMock(); $attrdef->setReturnValue('make', $attrdef_nmtokens); $manager->attrTypes->set('NMTOKENS', $attrdef); return $manager; } public function test_addModule() { $manager = $this->createManager(); // ...but we add user modules $common_module = new HTMLPurifier_HTMLModule(); $common_module->name = 'Common'; $common_module->attr_collections['Common'] = array('class' => 'NMTOKENS'); $common_module->content_sets['Flow'] = 'Block | Inline'; $manager->addModule($common_module); $structural_module = new HTMLPurifier_HTMLModule(); $structural_module->name = 'Structural'; $structural_module->addElement('p', 'Block', 'Inline', 'Common'); $manager->addModule($structural_module); $formatting_module = new HTMLPurifier_HTMLModule(); $formatting_module->name = 'Formatting'; $formatting_module->addElement('em', 'Inline', 'Inline', 'Common'); $manager->addModule($formatting_module); $unsafe_module = new HTMLPurifier_HTMLModule(); $unsafe_module->name = 'Unsafe'; $unsafe_module->safe = false; $unsafe_module->addElement('div', 'Block', 'Flow'); $manager->addModule($unsafe_module); $config = HTMLPurifier_Config::createDefault(); $config->set('HTML.Trusted', false); $config->set('HTML.CustomDoctype', 'Blank'); $manager->setup($config); $attrdef_nmtokens = new HTMLPurifier_AttrDef_HTML_Nmtokens(); $p = new HTMLPurifier_ElementDef(); $p->attr['class'] = $attrdef_nmtokens; $p->child = new HTMLPurifier_ChildDef_Optional(array('em', '#PCDATA')); $p->content_model = 'em | #PCDATA'; $p->content_model_type = 'optional'; $p->descendants_are_inline = true; $em = new HTMLPurifier_ElementDef(); $em->attr['class'] = $attrdef_nmtokens; $em->child = new HTMLPurifier_ChildDef_Optional(array('em', '#PCDATA')); $em->content_model = 'em | #PCDATA'; $em->content_model_type = 'optional'; $em->descendants_are_inline = true; $this->assertEqual( array('p' => $p, 'em' => $em), $manager->getElements() ); // test trusted parameter override $div = new HTMLPurifier_ElementDef(); $div->child = new HTMLPurifier_ChildDef_Optional(array('p', 'div', 'em', '#PCDATA')); $div->content_model = 'p | div | em | #PCDATA'; $div->content_model_type = 'optional'; $div->descendants_are_inline = false; $this->assertEqual($div, $manager->getElement('div', true)); } public function testAllowedModules() { $manager = new HTMLPurifier_HTMLModuleManager(); $manager->doctypes->register( 'Fantasy Inventory 1.0', true, array('Weapons', 'Magic') ); // register these modules so it doesn't blow up $weapons_module = new HTMLPurifier_HTMLModule(); $weapons_module->name = 'Weapons'; $manager->registerModule($weapons_module); $magic_module = new HTMLPurifier_HTMLModule(); $magic_module->name = 'Magic'; $manager->registerModule($magic_module); $config = HTMLPurifier_Config::create(array( 'HTML.CustomDoctype' => 'Fantasy Inventory 1.0', 'HTML.AllowedModules' => 'Weapons', )); $manager->setup($config); $this->assertTrue(isset($manager->modules['Weapons'])); $this->assertFalse(isset($manager->modules['Magic'])); } } // vim: et sw=4 sts=4
[+]
..
[+]
AttrTransform
[-] HTMLModuleTest.php
[edit]
[-] HTMLModuleManagerTest.php
[edit]
[-] VarParserHarness.php
[edit]
[-] EntityParserTest.php
[edit]
[-] HTMLT.php
[edit]
[-] IDAccumulatorTest.php
[edit]
[-] LengthTest.php
[edit]
[-] ChildDefHarness.php
[edit]
[+]
SimpleTest
[-] ConfigSchemaTest.php
[edit]
[-] Harness.php
[edit]
[-] EntityLookupTest.php
[edit]
[-] URISchemeRegistryTest.php
[edit]
[+]
ConfigSchema
[-] URIDefinitionTest.php
[edit]
[-] ErrorCollectorEMock.php
[edit]
[+]
Filter
[-] ErrorsHarness.php
[edit]
[-] HTMLModuleHarness.php
[edit]
[-] InjectorHarness.php
[edit]
[-] AttrTransformHarness.php
[edit]
[-] URIFilterHarness.php
[edit]
[-] LanguageFactoryTest.php
[edit]
[+]
PHPT
[+]
Injector
[-] UnitConverterTest.php
[edit]
[-] TokenTest.php
[edit]
[-] LexerTest.php
[edit]
[-] GeneratorTest.php
[edit]
[-] DefinitionTestable.php
[edit]
[-] AttrDefTest.php
[edit]
[-] StringHashParserTest.php
[edit]
[+]
AttrDef
[-] HTMLDefinitionTest.php
[edit]
[-] DefinitionCacheTest.php
[edit]
[+]
HTMLT
[-] ConfigTest-loadIni.ini
[edit]
[+]
VarParser
[-] URISchemeTest.php
[edit]
[-] StrategyHarness.php
[edit]
[+]
ChildDef
[-] AttrDefHarness.php
[edit]
[-] AttrTransformTest.php
[edit]
[-] URIParserTest.php
[edit]
[+]
DefinitionCache
[-] DefinitionTest.php
[edit]
[-] TokenFactoryTest.php
[edit]
[-] ElementDefTest.php
[edit]
[-] DefinitionCacheFactoryTest.php
[edit]
[-] StringHashTest.php
[edit]
[-] ContextTest.php
[edit]
[-] URITest.php
[edit]
[-] ConfigTest.php
[edit]
[-] AttrValidator_ErrorsTest.php
[edit]
[-] URIHarness.php
[edit]
[+]
StringHashParser
[+]
HTMLModule
[-] LanguageTest.php
[edit]
[+]
Strategy
[-] DoctypeRegistryTest.php
[edit]
[-] AttrTypesTest.php
[edit]
[-] PercentEncoderTest.php
[edit]
[-] TagTransformTest.php
[edit]
[-] EncoderTest.php
[edit]
[+]
URIFilter
[-] PropertyListTest.php
[edit]
[-] ConfigTest-create.ini
[edit]
[-] ErrorCollectorTest.php
[edit]
[-] ConfigTest-finalize.ini
[edit]
[+]
Lexer
[-] ComplexHarness.php
[edit]
[-] DefinitionCacheHarness.php
[edit]
[-] AttrCollectionsTest.php
[edit]