@@ -37,9 +37,9 @@ public function testFromXmlReader(): void
3737 'UseHtml ' => false ,
3838 );
3939 foreach ($ config as $ prop => $ value ) {
40- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
40+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
4141 }
42- $ this ->assertEquals ($ config , $ editWidget ->config ->getData ());
42+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
4343
4444 // Simple default old
4545 $ xmlStr = '
@@ -64,8 +64,9 @@ public function testFromXmlReader(): void
6464 'UseHtml ' => false ,
6565 );
6666 foreach ($ config as $ prop => $ value ) {
67- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
67+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
6868 }
69+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
6970
7071 // Default config
7172 $ xmlStr = '
@@ -87,8 +88,9 @@ public function testFromXmlReader(): void
8788 'UseHtml ' => false ,
8889 );
8990 foreach ($ config as $ prop => $ value ) {
90- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
91+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
9192 }
93+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
9294 }
9395
9496 public function testCheckBoxFromXmlReader (): void
@@ -116,10 +118,12 @@ public function testCheckBoxFromXmlReader(): void
116118 'CheckedState ' => '1 ' ,
117119 'UncheckedState ' => '0 ' ,
118120 'TextDisplayMethod ' => 1 ,
121+ 'AllowNullState ' => false ,
119122 );
120123 foreach ($ config as $ prop => $ value ) {
121- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
124+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
122125 }
126+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
123127
124128 $ xmlStr = '
125129 <editWidget type="CheckBox">
@@ -142,10 +146,12 @@ public function testCheckBoxFromXmlReader(): void
142146 'CheckedState ' => '1 ' ,
143147 'UncheckedState ' => '0 ' ,
144148 'TextDisplayMethod ' => 0 ,
149+ 'AllowNullState ' => false ,
145150 );
146151 foreach ($ config as $ prop => $ value ) {
147- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
152+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
148153 }
154+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
149155
150156 // Default config
151157 $ xmlStr = '
@@ -166,10 +172,44 @@ public function testCheckBoxFromXmlReader(): void
166172 'CheckedState ' => '' ,
167173 'UncheckedState ' => '' ,
168174 'TextDisplayMethod ' => 0 ,
175+ 'AllowNullState ' => false ,
176+ );
177+ foreach ($ config as $ prop => $ value ) {
178+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
179+ }
180+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
181+
182+ // invalid CheckedState and UncheckedState
183+ // allow NULL
184+ $ xmlStr = '
185+ <editWidget type="CheckBox">
186+ <config>
187+ <Option type="Map">
188+ <Option name="AllowNullState" type="bool" value="true"/>
189+ <Option name="CheckedState" type="invalid"/>
190+ <Option name="TextDisplayMethod" type="int" value="0"/>
191+ <Option name="UncheckedState" type="invalid"/>
192+ </Option>
193+ </config>
194+ </editWidget>
195+ ' ;
196+ $ oXml = App \XmlTools::xmlReaderFromString ($ xmlStr );
197+ $ editWidget = VectorLayerEditWidget::fromXmlReader ($ oXml );
198+
199+ $ this ->assertEquals ('CheckBox ' , $ editWidget ->type );
200+ $ this ->assertNotNull ($ editWidget ->config );
201+ $ this ->assertInstanceOf (EditWidget \CheckBoxConfig::class, $ editWidget ->config );
202+
203+ $ config = array (
204+ 'CheckedState ' => '' ,
205+ 'UncheckedState ' => '' ,
206+ 'TextDisplayMethod ' => 0 ,
207+ 'AllowNullState ' => true ,
169208 );
170209 foreach ($ config as $ prop => $ value ) {
171- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
210+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
172211 }
212+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
173213 }
174214
175215 public function testDateTimeFromXmlReader (): void
@@ -203,8 +243,9 @@ public function testDateTimeFromXmlReader(): void
203243 'field_iso_format ' => false ,
204244 );
205245 foreach ($ config as $ prop => $ value ) {
206- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
246+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
207247 }
248+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
208249
209250 // Default config
210251 $ xmlStr = '
@@ -229,8 +270,9 @@ public function testDateTimeFromXmlReader(): void
229270 'field_iso_format ' => false ,
230271 );
231272 foreach ($ config as $ prop => $ value ) {
232- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
273+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
233274 }
275+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
234276 }
235277
236278 public function testRangeFromXmlReader (): void
@@ -262,12 +304,13 @@ public function testRangeFromXmlReader(): void
262304 'Max ' => 2147483647 ,
263305 'Min ' => -2147483648 ,
264306 'Precision ' => 0 ,
265- 'Step ' => 1 ,
307+ 'Step ' => 1.0 ,
266308 'Style ' => 'SpinBox ' ,
267309 );
268310 foreach ($ config as $ prop => $ value ) {
269- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
311+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
270312 }
313+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
271314
272315 // Default config
273316 $ xmlStr = '
@@ -289,8 +332,9 @@ public function testRangeFromXmlReader(): void
289332 'Style ' => 'SpinBox ' ,
290333 );
291334 foreach ($ config as $ prop => $ value ) {
292- $ this ->assertEquals ($ value , $ editWidget ->config ->{$ prop }, $ prop );
335+ $ this ->assertSame ($ value , $ editWidget ->config ->{$ prop }, $ prop );
293336 }
337+ $ this ->assertSame ($ config , $ editWidget ->config ->getData ());
294338 $ notSet = array (
295339 'Max ' ,
296340 'Min ' ,
0 commit comments