0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-09-20 03:05:18 +00:00
htmlpurifier/tests/HTMLPurifier/ContextTest.php

62 lines
1.8 KiB
PHP
Raw Normal View History

<?php
require_once 'HTMLPurifier/Context.php';
// mocks
require_once 'HTMLPurifier/IDAccumulator.php';
class HTMLPurifier_ContextTest extends UnitTestCase
{
var $context;
function setUp() {
$this->context = new HTMLPurifier_Context();
}
function testStandardUsage() {
generate_mock_once('HTMLPurifier_IDAccumulator');
$this->assertFalse($this->context->exists('IDAccumulator'));
$accumulator =& new HTMLPurifier_IDAccumulatorMock($this);
$this->context->register('IDAccumulator', $accumulator);
$this->assertTrue($this->context->exists('IDAccumulator'));
$accumulator_2 =& $this->context->get('IDAccumulator');
$this->assertReference($accumulator, $accumulator_2);
$this->context->destroy('IDAccumulator');
$this->assertFalse($this->context->exists('IDAccumulator'));
$accumulator_3 =& $this->context->get('IDAccumulator');
$this->assertError('Attempted to retrieve non-existent variable');
$this->assertNull($accumulator_3);
$this->swallowErrors();
$this->context->destroy('IDAccumulator');
$this->assertError('Attempted to destroy non-existent variable');
$this->swallowErrors();
}
function testReRegister() {
$var = true;
$this->context->register('OnceOnly', $var);
$this->assertNoErrors();
$this->context->register('OnceOnly', $var);
$this->assertError('Name collision, cannot re-register');
$this->swallowErrors();
// destroy it, now registration is okay
$this->context->destroy('OnceOnly');
$this->context->register('OnceOnly', $var);
$this->assertNoErrors();
}
}
?>