@@ -150,6 +150,39 @@ public function test_enquiry_form_serialization() {
150150 );
151151 }
152152
153+ function test_enquiry_submission_serialization () {
154+ $ form = self ::get_form ( 'Enquiry ' );
155+ $ form_data = $ this ->serialize_form ( $ form );
156+
157+ $ store = self ::store ();
158+ foreach ( $ store as $ name => $ object ) {
159+ if ( 'enquiry-submission ' === $ name ) {
160+ $ submission = $ object ;
161+ break ;
162+ }
163+ }
164+
165+ if ( ! isset ( $ submission ) ) {
166+ throw new Exception ( 'Enquiry submission not found ' );
167+ }
168+
169+ $ l = count ( $ form_data ['fields ' ] );
170+ for ( $ i = 0 ; $ i < $ l ; ++$ i ) {
171+ $ form_data ['fields ' ][ $ i ]['id ' ] = array_keys ( $ submission ['fields ' ] )[ $ i ];
172+ }
173+
174+ $ payload = $ this ->serialize_submission ( $ submission , $ form_data );
175+
176+ $ this ->assertSame ( 'John ' , $ payload ['firstname_1523908368154 ' ] );
177+ $ this ->assertSame ( 'Doe ' , $ payload ['lastname_1523908369534 ' ] );
178+ $ this ->assertSame ( '600000000 ' , $ payload ['phone_1523908588264 ' ] );
179+ $ this ->assertSame ( 'choice1 ' , $ payload ['occupation_1523908435932 ' ] );
180+ $ this ->assertSame ( 'choice2 ' , $ payload ['enquiry_type_1523908495090 ' ] );
181+ $ this ->assertSame ( 'Lorem ipsum dolor sit amer ' , $ payload ['details_1523908537286 ' ] );
182+ $ this ->assertSame ( 1 , $ payload ['may_we_contact_you_1523908579864 ' ] );
183+ $ this ->assertSame ( 'afternoon ' , $ payload ['best_time_to_call_1523908689926 ' ] );
184+ }
185+
153186 public function test_quote_request_form_serialization () {
154187 $ form = self ::get_form ( 'Quote Request Form ' );
155188 $ form_data = $ this ->serialize_form ( $ form );
@@ -208,6 +241,55 @@ public function test_quote_request_form_serialization() {
208241 );
209242 }
210243
244+ public function test_quote_request_submission_serialization () {
245+ $ form = self ::get_form ( 'Quote Request Form ' );
246+ $ form_data = $ this ->serialize_form ( $ form );
247+
248+ $ store = self ::store ();
249+ foreach ( $ store as $ name => $ object ) {
250+ if ( 'quote-request-submission ' === $ name ) {
251+ $ submission = $ object ;
252+ break ;
253+ }
254+ }
255+
256+ if ( ! isset ( $ submission ) ) {
257+ throw new Exception ( 'Quote request submission not found ' );
258+ }
259+
260+ $ i = 0 ;
261+ $ j = 0 ;
262+ $ l = count ( $ form_data ['fields ' ] );
263+ $ k = count ( $ submission ['fields ' ] );
264+ while ( $ i < $ l && $ j < $ k ) {
265+ $ field_id = array_keys ( $ submission ['fields ' ] )[ $ j ];
266+ $ submission_field = $ submission ['fields ' ][ $ field_id ];
267+
268+ if (
269+ in_array (
270+ $ submission_field ['type ' ],
271+ array ( 'html ' , 'confirm ' , 'hr ' , 'recaptcha ' , 'spam ' , 'submit ' ),
272+ true ,
273+ )
274+ ) {
275+ ++$ j ;
276+ continue ;
277+ }
278+
279+ $ form_data ['fields ' ][ $ i ]['id ' ] = $ field_id ;
280+ ++$ i ;
281+ ++$ j ;
282+ }
283+
284+ $ payload = $ this ->serialize_submission ( $ submission , $ form_data );
285+
286+ $ this ->assertSame ( '13/11/2025 ' , $ payload ['due_date ' ] );
287+ $ this ->assertSame ( 'Carrer de les Camèlies ' , $ payload ['address ' ] );
288+ $ this ->assertSame ( 'Barcelona ' , $ payload ['city ' ] );
289+ $ this ->assertSame ( 'CA ' , $ payload ['liststate ' ] );
290+ $ this ->assertSame ( '08001 ' , $ payload ['zip ' ] );
291+ }
292+
211293 public function test_questionnaire_form_serialization () {
212294 $ form = self ::get_form ( 'Questionnaire ' );
213295 $ form_data = $ this ->serialize_form ( $ form );
@@ -252,4 +334,58 @@ public function test_questionnaire_form_serialization() {
252334 ),
253335 );
254336 }
337+
338+ public function test_questionnaire_submission_serialization () {
339+ $ form = self ::get_form ( 'Questionnaire ' );
340+ $ form_data = $ this ->serialize_form ( $ form );
341+
342+ $ store = self ::store ();
343+ foreach ( $ store as $ name => $ object ) {
344+ if ( 'questionnaire-submission ' === $ name ) {
345+ $ submission = $ object ;
346+ break ;
347+ }
348+ }
349+
350+ if ( ! isset ( $ submission ) ) {
351+ throw new Exception ( 'Questionnaire submission not found ' );
352+ }
353+
354+ $ i = 0 ;
355+ $ j = 0 ;
356+ $ l = count ( $ form_data ['fields ' ] );
357+ $ k = count ( $ submission ['fields ' ] );
358+ while ( $ i < $ l && $ j < $ k ) {
359+ $ field_id = array_keys ( $ submission ['fields ' ] )[ $ j ];
360+ $ submission_field = $ submission ['fields ' ][ $ field_id ];
361+
362+ if (
363+ in_array (
364+ $ submission_field ['type ' ],
365+ array ( 'html ' , 'confirm ' , 'hr ' , 'recaptcha ' , 'spam ' , 'submit ' ),
366+ true ,
367+ )
368+ ) {
369+ ++$ j ;
370+ continue ;
371+ }
372+
373+ $ form_data ['fields ' ][ $ i ]['id ' ] = $ field_id ;
374+ ++$ i ;
375+ ++$ j ;
376+ }
377+
378+ $ payload = $ this ->serialize_submission ( $ submission , $ form_data );
379+
380+ $ this ->assertSame ( '18-30 ' , $ payload ['age_1523910843594 ' ] );
381+ $ this ->assertEqualSets (
382+ array ( 'one ' , 'two ' ),
383+ $ payload ['question_2_1762818391757 ' ]
384+ );
385+ $ this ->assertEqualSets (
386+ array ( 'one ' , 'three ' ),
387+ $ payload ['question_3_1762818351190 ' ],
388+ );
389+ $ this ->assertEquals ( 3 , $ payload ['starrating_1762818417160 ' ] );
390+ }
255391}
0 commit comments