コード例 #1
0
 /**
  * Adds element's client-side validation rules to a builder object
  *
  * @param HTML_QuickForm2_JavascriptBuilder $builder
  */
 protected function renderClientRules(HTML_QuickForm2_JavascriptBuilder $builder)
 {
     if ($this->toggleFrozen()) {
         return;
     }
     $onblur = HTML_QuickForm2_Rule::ONBLUR_CLIENT ^ HTML_QuickForm2_Rule::CLIENT;
     foreach ($this->rules as $rule) {
         if ($rule[1] & HTML_QuickForm2_Rule::CLIENT) {
             $builder->addRule($rule[0], $rule[1] & $onblur);
         }
     }
 }
コード例 #2
0
 public function testFormJavascript()
 {
     $builder = new HTML_QuickForm2_JavascriptBuilder();
     $element = new HTML_QuickForm2_Element_InputText();
     $mockRuleOne = $this->getMock('HTML_QuickForm2_Rule', array('validateOwner', 'getJavascriptCallback'), array($element));
     $mockRuleOne->expects($this->once())->method('getJavascriptCallback')->will($this->returnValue('jsRuleOne'));
     $mockRuleTwo = $this->getMock('HTML_QuickForm2_Rule', array('validateOwner', 'getJavascriptCallback'), array($element));
     $mockRuleTwo->expects($this->once())->method('getJavascriptCallback')->will($this->returnValue('jsRuleTwo'));
     $this->assertEquals('', $builder->getFormJavascript());
     $builder->setFormId('formOne');
     $builder->addRule($mockRuleOne);
     $builder->addElementJavascript('setupCodeOne');
     $builder->setFormId('formTwo');
     $builder->addRule($mockRuleTwo);
     $builder->addElementJavascript('setupCodeTwo');
     $scriptOne = $builder->getFormJavascript('formOne', false);
     $this->assertContains('jsRuleOne', $scriptOne);
     $this->assertContains('setupCodeOne', $scriptOne);
     $this->assertNotContains('jsRuleTwo', $scriptOne);
     $this->assertNotContains('setupCodeTwo', $scriptOne);
     $this->assertNotContains('<script', $scriptOne);
     $scriptTwo = $builder->getFormJavascript('formTwo', true);
     $this->assertNotContains('jsRuleOne', $scriptTwo);
     $this->assertNotContains('setupCodeOne', $scriptTwo);
     $this->assertContains('jsRuleTwo', $scriptTwo);
     $this->assertContains('setupCodeTwo', $scriptTwo);
     $this->assertContains('<script', $scriptTwo);
     $scriptBoth = $builder->getFormJavascript();
     $this->assertContains('jsRuleOne', $scriptBoth);
     $this->assertContains('setupCodeTwo', $scriptBoth);
 }