root/trunk/tests/element/Convert.php

Revision 266, 2.5 kB (checked in by sfuchs, 3 years ago)

added unittests for [265] convertElement() and Element_Set

Line 
1 <?
2     class Element_Convert extends Element_Base {
3
4         public function test_text_to_number() {
5
6             // convert an empty text element to a number element
7
8             $form = $this->createForm();
9             //$element = $form->getElement('name');
10             //$element = patForms_Element::convertElement($element, 'number');
11
12             $form->convertElement('name', 'number');
13             $element = $form->getElement('name');
14
15             $expected = 'patForms_Element_Number';
16             $result = get_class($element);
17             $this->assertTrue($result === $expected);
18
19             $expected = '<input name="name" type="text" value="0" />';
20             $result = self::stripElementId($element->serialize());
21             $this->assertSameVerbose($expected, $result);
22         }
23
24         public function test_text_to_number_with_numeric_value() {
25
26             patErrorManager::pushExpect(PATFORMS_ELEMENT_ERROR_VALUE_NOT_CONVERTABLE);
27
28             $form = $this->createForm();
29             $element = $form->getElement('name');
30             $element->setValue('1000');
31             $element = patForms_Element::convertElement($element, 'number');
32
33             $expected = '<input name="name" type="text" value="1000" />';
34             $result = self::stripElementId($element->serialize());
35             $this->assertSameVerbose($expected, $result);
36         }
37
38         public function test_text_to_number_with_string_value() {
39
40             // string value can't be converted to a number
41             // we expect an error to be thrown
42
43             patErrorManager::pushExpect(PATFORMS_ELEMENT_ERROR_VALUE_NOT_CONVERTABLE);
44
45             $form = $this->createForm();
46             $element = $form->getElement('name');
47             $element->setValue('Sven');
48             $element = patForms_Element::convertElement($element, 'number');
49
50             $expected = PATFORMS_ELEMENT_ERROR_VALUE_NOT_CONVERTABLE;
51             $result = array_pop(array_pop(patErrorManager::getExpect()));
52             patErrorManager::clearExpect();
53
54             $this->assertSameVerbose($expected, $result);
55         }
56
57         public function test_enum_to_set() {
58
59             // convert an empty text element to a number element
60
61             $form = $this->createForm(array('formname' => 'enum'));
62             $element = $form->getElement('area');
63             $element->setValue('a01');
64             $element = patForms_Element::convertElement($element, 'set');
65
66             $expected = 'patForms_Element_Set';
67             $result = get_class($element);
68             $this->assertTrue($result === $expected);
69
70             $expected = '<select name="area[]" size="1" multiple="multiple"><option value="a01" selected="selected">Very pretty area</option></select>';
71             $result = self::stripElementId($element->serialize());
72
73             $this->assertSameVerbose($expected, $result);
74         }
75     }
76
77 ?>
Note: See TracBrowser for help on using the browser.