public function testWithBehavior()
{
$form = new LoginForm();
$formAttributes = $form->attributeNames();
$formRules = $form->rules();
$formLabels = $form->attributeLabels();
$form->attachBehavior('captcha', array('class' => 'CaptchaFormBehavior'));
$behaviorAttributes = $form->asa('captcha')->attributeNames();
$behaviorRules = $form->asa('captcha')->filterRules();
$behaviorLabels = $form->asa('captcha')->attributeLabels();
$this->assertEquals(array_merge($formAttributes, $behaviorAttributes), $form->attributeNames());
$this->assertEquals(array_merge($formRules, $behaviorRules), $form->rules());
$this->assertEquals(array_merge($formLabels, $behaviorLabels), $form->attributeLabels());
$form->detachBehavior('captcha');
$this->assertEquals($formAttributes, $form->attributeNames());
$this->assertEquals($formAttributes, $form->attributeNames());
}