context = new HTMLPurifier_Context ();
}
public function testStandardUsage() {
generate_mock_once ( 'HTMLPurifier_IDAccumulator' );
$this->assertFalse ( $this->context->exists ( 'IDAccumulator' ) );
$accumulator = new HTMLPurifier_IDAccumulatorMock ();
$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' ) );
$this->expectError ( 'Attempted to retrieve non-existent variable IDAccumulator' );
$accumulator_3 = & $this->context->get ( 'IDAccumulator' );
$this->assertNull ( $accumulator_3 );
$this->expectError ( 'Attempted to destroy non-existent variable IDAccumulator' );
$this->context->destroy ( 'IDAccumulator' );
}
public function testReRegister() {
$var = true;
$this->context->register ( 'OnceOnly', $var );
$this->expectError ( 'Name OnceOnly produces collision, cannot re-register' );
$this->context->register ( 'OnceOnly', $var );
// destroy it, now registration is okay
$this->context->destroy ( 'OnceOnly' );
$this->context->register ( 'OnceOnly', $var );
}
public function test_loadArray() {
// references can be *really* wonky!
$context_manual = new HTMLPurifier_Context ();
$context_load = new HTMLPurifier_Context ();
$var1 = 1;
$var2 = 2;
$context_manual->register ( 'var1', $var1 );
$context_manual->register ( 'var2', $var2 );
// you MUST set up the references when constructing the array,
// otherwise the registered version will be a copy
$array = array (
'var1' => &$var1,
'var2' => &$var2
);
$context_load->loadArray ( $array );
$this->assertIdentical ( $context_manual, $context_load );
$var1 = 10;
$var2 = 20;
$this->assertIdentical ( $context_manual, $context_load );
}
public function testNull() {
$context = new HTMLPurifier_Context ();
$var = NULL;
$context->register ( 'var', $var );
$this->assertNull ( $context->get ( 'var' ) );
$context->destroy ( 'var' );
}
}
// vim: et sw=4 sts=4