本文整理汇总了PHP中JFormInspector::getXML方法的典型用法代码示例。如果您正苦于以下问题:PHP JFormInspector::getXML方法的具体用法?PHP JFormInspector::getXML怎么用?PHP JFormInspector::getXML使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JFormInspector
的用法示例。
在下文中一共展示了JFormInspector::getXML方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSetup
/**
* Tests the JForm::setup method
*/
public function testSetup()
{
$form = new JFormInspector('form1');
$this->assertThat($form->load(JFormDataHelper::$loadFieldDocument), $this->isTrue(), 'Line:' . __LINE__ . ' XML string should load successfully.');
$field = new JFormFieldInspector($form);
// Error handling.
$wrong = 'wrong';
$this->assertThat($field->setup($wrong, 0), $this->isFalse(), 'Line:' . __LINE__ . ' If not a form object, setup should return false.');
// Standard usage.
$xml = $form->getXML();
$title = array_pop($xml->xpath('fields/field[@name="title"]'));
$this->assertThat($field->setup($title, 'The title'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->name, $this->equalTo('title'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->value, $this->equalTo('The title'), 'Line:' . __LINE__ . ' The value should be set from the setup method argument.');
$this->assertThat($field->id, $this->equalTo('title_id'), 'Line:' . __LINE__ . ' The property should be set from the XML (non-alpha transposed to underscore).');
$this->assertThat((string) $title['class'], $this->equalTo('inputbox required'), 'Line:' . __LINE__ . ' The property should be set from the XML.');
$this->assertThat($field->validate, $this->equalTo('none'), 'Line:' . __LINE__ . ' The property should be set from the XML.');
$this->assertThat($field->multiple, $this->isFalse(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->required, $this->isTrue(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
// Test multiple attribute and form group name.
$colours = array_pop($xml->xpath('fields/fields[@name="params"]/field[@name="colours"]'));
$this->assertThat($field->setup($colours, 'green', 'params'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->id, $this->equalTo('params_colours'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->name, $this->equalTo('params[colours][]'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->multiple, $this->isTrue(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertEquals($field->group, 'params', 'Line:' . __LINE__ . ' The property should be set to the the group name.');
// Test hidden field type.
$id = array_pop($xml->xpath('fields/field[@name="id"]'));
$this->assertThat($field->setup($id, 42), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->hidden, $this->isTrue(), 'Line:' . __LINE__ . ' The hidden property should be set from the field type.');
// Test hidden attribute.
$createdDate = array_pop($xml->xpath('fields/field[@name="created_date"]'));
$this->assertThat($field->setup($createdDate, '0000-00-00 00:00:00'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->hidden, $this->isTrue(), 'Line:' . __LINE__ . ' The hidden property should be set from the hidden attribute.');
// Test automatic generated name.
$spacer = array_pop($xml->xpath('fields/field[@type="spacer"]'));
$this->assertThat($field->setup($spacer, ''), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->name, $this->equalTo('__field1'), 'Line:' . __LINE__ . ' The spacer name should be set using an automatic generated name.');
}
示例2: testGetTitle
/**
* Tests the JFormField::getTitle method
*
* @return void
*/
public function testGetTitle()
{
$form = new JFormInspector('form1');
$this->assertThat($form->load(JFormDataHelper::$loadFieldDocument), $this->isTrue(), 'Line:' . __LINE__ . ' XML string should load successfully.');
$field = new JFormFieldInspector($form);
// Standard usage.
$xml = $form->getXML();
$title = array_pop($xml->xpath('fields/field[@name="title"]'));
$this->assertThat($field->setup($title, 'The title'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->getTitle(), $this->equalTo('Title'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
// Hidden field
$id = array_pop($xml->xpath('fields/field[@name="id"]'));
$this->assertThat($field->setup($id, 'id'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->getTitle(), $this->equalTo(''), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
}
示例3: testValidateField_missingRule
/**
* Test for JForm::validateField method for missing rule exception.
*
* return void
*
* @covers JForm::validateField
* @since 12.1
*
* @expectedException UnexpectedValueException
*
* @return void
*/
public function testValidateField_missingRule()
{
$form = new JFormInspector('form1');
$form->load(JFormDataHelper::$validateFieldDocument);
$xml = $form->getXML();
$field = array_pop($xml->xpath('fields/field[@name="missingrule"]'));
$result = $form->validateField($field, null, 'value');
}
示例4: testSetup
/**
* Tests the JFormField::setup method
*
* @covers JFormField::setup
* @covers JFormField::__get
*
* @return void
*/
public function testSetup()
{
$form = new JFormInspector('form1');
$this->assertThat($form->load(JFormDataHelper::$loadFieldDocument), $this->isTrue(), 'Line:' . __LINE__ . ' XML string should load successfully.');
$field = new JFormFieldInspector($form);
// Standard usage.
$xml = $form->getXML();
$title = array_pop($xml->xpath('fields/field[@name="title"]'));
$this->assertThat($field->setup($title, 'The title'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->name, $this->equalTo('title'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->value, $this->equalTo('The title'), 'Line:' . __LINE__ . ' The value should be set from the setup method argument.');
$this->assertThat($field->id, $this->equalTo('title_id'), 'Line:' . __LINE__ . ' The property should be set from the XML (non-alpha transposed to underscore).');
$this->assertThat((string) $title['class'], $this->equalTo('inputbox required'), 'Line:' . __LINE__ . ' The property should be set from the XML.');
$this->assertThat($field->validate, $this->equalTo('none'), 'Line:' . __LINE__ . ' The property should be set from the XML.');
$this->assertThat($field->multiple, $this->isFalse(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->required, $this->isTrue(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->input, $this->equalTo(''), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$equals = '<label id="title_id-lbl" for="title_id" class="hasTip required" title="Title::The title.">' . 'Title<span class="star"> *</span></label>';
$this->assertThat($field->label, $this->equalTo($equals), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->title, $this->equalTo('Title'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->unexisting, $this->equalTo(null), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
// Test multiple attribute and form group name.
$colours = array_pop($xml->xpath('fields/fields[@name="params"]/field[@name="colours"]'));
$this->assertThat($field->setup($colours, 'green', 'params'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->id, $this->equalTo('params_colours'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->name, $this->equalTo('params[colours][]'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->multiple, $this->isTrue(), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertEquals($field->group, 'params', 'Line:' . __LINE__ . ' The property should be set to the the group name.');
// Test hidden field type.
$id = array_pop($xml->xpath('fields/field[@name="id"]'));
$this->assertThat($field->setup($id, 42), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->hidden, $this->isTrue(), 'Line:' . __LINE__ . ' The hidden property should be set from the field type.');
// Test hidden attribute.
$createdDate = array_pop($xml->xpath('fields/field[@name="created_date"]'));
$this->assertThat($field->setup($createdDate, '0000-00-00 00:00:00'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->hidden, $this->isTrue(), 'Line:' . __LINE__ . ' The hidden property should be set from the hidden attribute.');
// Test automatic generated name.
$spacer = array_pop($xml->xpath('fields/field[@type="spacer"]'));
$this->assertThat($field->setup($spacer, ''), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->name, $this->equalTo('__field1'), 'Line:' . __LINE__ . ' The spacer name should be set using an automatic generated name.');
// Test nested groups and forced multiple.
$comment = array_pop($xml->xpath('fields/fields[@name="params"]/fields[@name="subparams"]/field[@name="comment"]'));
$field->forceMultiple = true;
$this->assertThat($field->setup($comment, 'My comment', 'params.subparams'), $this->isTrue(), 'Line:' . __LINE__ . ' The setup method should return true if successful.');
$this->assertThat($field->id, $this->equalTo('params_subparams_comment'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertThat($field->name, $this->equalTo('params[subparams][comment][]'), 'Line:' . __LINE__ . ' The property should be computed from the XML.');
$this->assertEquals($field->group, 'params.subparams', 'Line:' . __LINE__ . ' The property should be set to the the group name.');
$this->assertEquals($field->element['class'], 'required', 'Line:' . __LINE__ . ' The property should be computed from the XML.');
}
示例5: testValidateField
/**
* Test for JForm::validateField method.
*/
public function testValidateField()
{
$form = new JFormInspector('form1');
$this->assertThat($form->load(JFormDataHelper::$validateFieldDocument), $this->isTrue(), 'Line:' . __LINE__ . ' XML string should load successfully.');
$xml = $form->getXML();
// Test error handling.
$result = $form->validateField('wrong');
$this->assertThat($result instanceof Exception, $this->isTrue(), 'Line:' . __LINE__ . ' Passing a non-JXmlElement should return an exception.');
$this->assertThat($result->getCode(), $this->equalTo(-1), 'Line:' . __LINE__ . ' The correct exception should be returned.');
$field = array_pop($xml->xpath('fields/field[@name="missingrule"]'));
$result = $form->validateField($field, null, 'value');
$this->assertThat($result instanceof Exception, $this->isTrue(), 'Line:' . __LINE__ . ' Having a missing validation rule should return an exception.');
$this->assertThat($result->getCode(), $this->equalTo(-2), 'Line:' . __LINE__ . ' The correct exception should be returned.');
$field = array_pop($xml->xpath('fields/field[@name="boolean"]'));
$result = $form->validateField($field);
$this->assertThat($result instanceof Exception, $this->isTrue(), 'Line:' . __LINE__ . ' A failed validation should return an exception.');
$this->assertThat($result->getCode(), $this->equalTo(1), 'Line:' . __LINE__ . ' The correct exception should be returned.');
$field = array_pop($xml->xpath('fields/field[@name="required"]'));
$result = $form->validateField($field);
$this->assertThat($result instanceof Exception, $this->isTrue(), 'Line:' . __LINE__ . ' A required field missing a value should return an exception.');
$this->assertThat($result->getCode(), $this->equalTo(2), 'Line:' . __LINE__ . ' The correct exception should be returned.');
// Test general usage.
$field = array_pop($xml->xpath('fields/field[@name="boolean"]'));
$this->assertThat($form->validateField($field, null, 'true'), $this->isTrue(), 'Line:' . __LINE__ . ' A field with a passing validate attribute set should return true.');
$field = array_pop($xml->xpath('fields/field[@name="optional"]'));
$this->assertThat($form->validateField($field), $this->isTrue(), 'Line:' . __LINE__ . ' A field without required set should return true.');
$field = array_pop($xml->xpath('fields/field[@name="required"]'));
$this->assertThat($form->validateField($field, null, 'value'), $this->isTrue(), 'Line:' . __LINE__ . ' A required field with a value should return true.');
}