Commit fdb71f96 authored by YannGarcia's avatar YannGarcia
Browse files

Add new test cases for group 9.3

parent 72ed8875
Loading
Loading
Loading
Loading
Original line number Original line Diff line number Diff line
Subproject commit a49d8daee3e5df27198a1902a7c630a84351e427
Subproject commit a24f37489fd2fb50bfcd3a35b3e8e094a9c2bf6a
+0 −1
Original line number Original line Diff line number Diff line
@@ -67,7 +67,6 @@ PICS used for test case selection
     *  @see    ETSI TS 103 833-1 A.3/2.2
     *  @see    ETSI TS 103 833-1 A.3/2.2
    */
    */
    modulepar boolean PICS_SCCAS_REJECTION_OF_MALICIOUS_REFER := false;
    modulepar boolean PICS_SCCAS_REJECTION_OF_MALICIOUS_REFER := false;
    //TODO add check of PICS_SCCAS_REJECTION_OF_MALICIOUS_REFER in TP_ISC_SCCAS_GEN_REF_01
    
    
    //A3/2.3  handling of SDP media description conflicts?    5.3, 6A.5   m   
    //A3/2.3  handling of SDP media description conflicts?    5.3, 6A.5   m   
    //A3/2.4  SCC AS server procedure for indicating traffic leg? 5.3, 6A.6.1 o   
    //A3/2.4  SCC AS server procedure for indicating traffic leg? 5.3, 6A.6.1 o   
+173 −3
Original line number Original line Diff line number Diff line
@@ -1761,7 +1761,7 @@ module AtsSccas_TCFunctions {
//					template(value) SipUrl p_requestUri,
//					template(value) SipUrl p_requestUri,
//					template(value) SipUrl p_referredBy,
//					template(value) SipUrl p_referredBy,
//					template(value) MessageBody p_messageBody	
//					template(value) MessageBody p_messageBody	
			// Ecpecation: REFER message
			// Expectation: REFER message
			tc_ack.start;
			tc_ack.start;
				alt {
				alt {
					[] SIPP.receive(mw_REFER_Request_stl(
					[] SIPP.receive(mw_REFER_Request_stl(
@@ -1783,6 +1783,124 @@ module AtsSccas_TCFunctions {
			
			
		} // End of f_TC_ISC_SCCAS_PCT_REF_02
		} // End of f_TC_ISC_SCCAS_PCT_REF_02
		
		
		function f_TC_ISC_SCCAS_PCT_RES_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// Preambule
			f_init_userprofile(c_userProfile_UE1atSUThome);
			f_initSipUrl(c_serviceProfile_EMERGENCY);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
					
			// initial condition: the UE entity isRegisteredTo the IMS  
			f_registrationAS(p_cSeq_s);
	
			// STEp: send invite
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
			f_SendINVITE(
						 m_sccas_invite(
										vc_requestUri,
										vc_callId,
										vc_cSeq,
										vc_from,
										vc_to,
										vc_via_REG,
										vc_contact,
										omit, 
										vc_route,
										m_supported_replaces, 
										m_messageBody_SDP_mediaOnly
									));
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
						
			f_awaitingPRACK(mw_PRACK_Request_sdp(vc_callId, ?));
			f_awaitingUPDATE(mw_UPDATE_Request_ContactChange(vc_callId, vc_contact, mw_contentType_appclication_sdp, ?));
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				
			f_deregistrationAS(p_cSeq_s);
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
			
		} // End of f_TC_ISC_SCCAS_PCT_RES_01

		function f_TC_ISC_SCCAS_MED_BYE_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// Preambule
			f_init_userprofile(c_userProfile_UE1atSUThome);
			f_initSipUrl(c_serviceProfile_EMERGENCY);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
					
			// initial condition: the UE entity isRegisteredTo the IMS  
			f_registrationAS(p_cSeq_s);
	
			action("trigger for event unclear, transfer of a session is successfully completed"); // TODO: trigger for event unclear, transfer of a session is successfully completed
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

			
			f_awaitingBYE(mw_BYE_Request_via_PChargingVector_UE(vc_callId, ?, ?));
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				
			f_deregistrationAS(p_cSeq_s);
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
			
		} // End of f_TC_ISC_SCCAS_MED_BYE_01

		function f_ISC_SCCAS_MED_RES_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// Preambule
			f_init_userprofile(c_userProfile_UE1atSUThome);
			f_initSipUrl(c_serviceProfile_EMERGENCY);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
					
			// initial condition: the UE entity isRegisteredTo the IMS  
			f_registrationAS(p_cSeq_s);
	
			action("trigger for event unclear, transfer of a session is successfully completed"); // TODO: trigger for event unclear, transfer of a session is successfully completed
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

			
			tc_ack.start;
			alt {
				[] SIPP.receive(mw_Response_Base(c_statusLine480, vc_callId, p_cSeq_s)) {
					tc_ack.stop;
					log("*** " & __SCOPE__ & ": PASS: 480 OK message was received ***");
					f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
				}
				[] tc_ack.timeout {
					f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
				}
			}

				
			f_deregistrationAS(p_cSeq_s);
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
			
		} // End of f_ISC_SCCAS_MED_RES_01

		function f_TC_ISC_SCCAS_MED_RIN_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// Preambule
			f_init_userprofile(c_userProfile_UE1atSUThome);
			f_initSipUrl(c_serviceProfile_EMERGENCY);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
					
			// initial condition: the UE entity isRegisteredTo the IMS  
			f_registrationAS(p_cSeq_s);
	
			// STEp: send ACK
			f_setHeadersACK();
			f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); // TODO: trigger for event unclear, transfer of a session is successfully completed
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
						
			f_awaitingINVITE(mw_INVITE_Request_AS(?));
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				
			f_deregistrationAS(p_cSeq_s);
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
			
		} // End of f_TC_ISC_SCCAS_MED_RIN_01

		function f_TC_ISC_SCCAS_PCT_INV_05(in CSeq p_cSeq_s)
		function f_TC_ISC_SCCAS_PCT_INV_05(in CSeq p_cSeq_s)
		runs on ImsComponent {
		runs on ImsComponent {
			
			
@@ -1822,10 +1940,10 @@ module AtsSccas_TCFunctions {
					m_messageBody_SDP_mediaOnly
					m_messageBody_SDP_mediaOnly
				));
				));
			
			
			// TDOD  PEarlyMedia indicating value "the last received P-Early-Media header field",
			// TODO  PEarlyMedia indicating value "the last received P-Early-Media header field",
			
			
			// TODO: Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog",
			// TODO: Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog",
			// TDOD: SDP containing Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any precondition mechanism specific SDP attributes)";                       		
			// TODO: SDP containing Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any precondition mechanism specific SDP attributes)";                       		
			f_awaitingUPDATE(mw_UPDATE_Request_ContactChange(vc_callId, vc_contact, mw_contentType_appclication_sdp, ?));
			f_awaitingUPDATE(mw_UPDATE_Request_ContactChange(vc_callId, vc_contact, mw_contentType_appclication_sdp, ?));
			
			
			f_deregistrationAS(p_cSeq_s);
			f_deregistrationAS(p_cSeq_s);
@@ -1834,6 +1952,58 @@ module AtsSccas_TCFunctions {
			
			
		} // End of f_TC_ISC_SCCAS_PCT_INV_05
		} // End of f_TC_ISC_SCCAS_PCT_INV_05
		
		
		function f_TC_ISC_SCCAS_PCT_REF_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// Preambule
			f_init_userprofile(c_userProfile_UE1atSUThome);
			f_initSipUrl(c_serviceProfile_EMERGENCY);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);

			// initial condition: the UE entity isRegisteredTo the IMS  
			f_registrationAS(p_cSeq_s);
			
			// Send REFER
			LibIms_Steps.f_setHeadersREFER(p_cSeq_s, vc_to.addressField.addrSpecUnion);
			f_SendREFER(
				        m_sccas_refer(
									  vc_requestUri,
									  vc_callId,
									  vc_cSeq,
									  vc_contact,
									  vc_from,
									  vc_to,
									  vc_via_REG,
									  m_ReferTo_SipUrl(vc_to.addressField.addrSpecUnion, { tokenOrHost := "" }),
									  omit, 
									  omit, 
									  vc_route,
									  omit,
									  m_supported_replaces, 
									  omit,
									  m_messageBody_SDP_mediaOnly,
									  m_ReferSub(false)
						));

			tc_ack.start;
				alt {
					[] SIPP.receive(mw_Response_403Forbidden(
							vc_callId, 
							vc_cSeq
							)) {
						tc_ack.stop;
						log("*** " & __SCOPE__ & ": PASS: REFER message was received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
						f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
					}
				}
			
			f_deregistrationAS(p_cSeq_s);
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
			
		} // End of f_TC_ISC_SCCAS_PCT_REF_01
		
		
		function f_TC_ISC_SCCAS_PCT_RES_02(in CSeq p_cSeq_s)
		function f_TC_ISC_SCCAS_PCT_RES_02(in CSeq p_cSeq_s)
		runs on ImsComponent {
		runs on ImsComponent {
+37 −2
Original line number Original line Diff line number Diff line
@@ -111,14 +111,14 @@ module AtsSccas_Templates
        
        
                    
                    
                    
                    
                template (omit) TargetDialog m_targetDialog (in template CallidString p_callidString) := 
                template (value) TargetDialog m_targetDialog (in template (value) CallidString p_callidString) := 
                    {
                    {
                      fieldName := TARGET_DIALOG_E,
                      fieldName := TARGET_DIALOG_E,
                      callid    := p_callidString,
                      callid    := p_callidString,
                      tdParam   := omit
                      tdParam   := omit
                    }
                    }
                    
                    
                template (omit) Require m_require (in template OptionTag_List p_optionTag_List) := 
                template (omit) Require m_require (in template (omit) OptionTag_List p_optionTag_List := omit) := 
                    {
                    {
                      fieldName := REQUIRE_E,
                      fieldName := REQUIRE_E,
                      optionsTags    := p_optionTag_List
                      optionsTags    := p_optionTag_List
@@ -495,6 +495,30 @@ module AtsSccas_Templates
                }
                }
                
                
                group request_sent_Yann {
                group request_sent_Yann {

                    template(value) REFER_Request m_sccas_refer(
                                                                in template(value) SipUrl p_requestUri,
                                                                in template(value) CallId p_callId,
                                                                in template(value) CSeq p_cSeq,
                                                                in template(omit) LibSip_SIPTypesAndValues.Contact p_contact := omit,
                                                                in template(value) From p_from,
                                                                in template(value) To p_to,
                                                                in template(value) Via p_via,
                                                                in template(value) ReferTo p_referTo,
                                                                in template(omit) ReferredBy p_referredBy := omit,
                                                                in template(omit) Require p_require := omit,
                                                                in template(omit) Route p_route := omit,
                                                                in template(omit) RecordRoute p_recordRoute := omit,
                                                                in template(omit) Supported p_supported := omit,
                                                                in template(omit) PChargingVector p_pChargingVector := omit,
                                                                in template(value) MessageBody p_mb,
                                                                in template(value) ReferSub p_referSub
                    ) modifies m_REFER_Request_IMS := {
                        msgHeader := {
                            referSub := p_referSub
                        }
                    }

                }
                }
               
               
                template (omit) INVITE_Request m_sccas_invite(
                template (omit) INVITE_Request m_sccas_invite(
@@ -872,6 +896,17 @@ module AtsSccas_Templates
                        mParams := omit
                        mParams := omit
                    }
                    }


                    // NOTE STF471: removed statusline parameter as it is a fixed 401 status code
                    template(present) Response mw_Response_403Forbidden(
                        template CallId p_callId,
                        template CSeq p_cSeq
                    ) modifies mw_Response_4xx_Base := {
                        statusLine := {
                            sipVersion := c_sipNameVersion,
                            statusCode := 403,
                            reasonPhrase := ?
                        }
                    }
                }
                }


                template (present) Response mw_sccas_Response_2xxonINVITE(
                template (present) Response mw_sccas_Response_2xxonINVITE(
+85 −8
Original line number Original line Diff line number Diff line
@@ -751,10 +751,23 @@ module AtsSccas_Testcases
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_IUT or not PICS_SCCAS_REJECTION_OF_MALICIOUS_REFER) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' and 'PICS_SCCAS_REJECTION_OF_MALICIOUS_REFER' shall be set to true for executing the TC. ***");
				stop;
			}
			
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
					
					
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_REF_01(p_cSeq_s));
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});


			f_cf_1IscDown(v_imsComponent_ueims);


		} // End of TC_ISC_SCCAS_PCT_REF_01
		} // End of TC_ISC_SCCAS_PCT_REF_01
		
		
@@ -798,7 +811,23 @@ module AtsSccas_Testcases
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_IUT) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_RES_01(p_cSeq_s));
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
			
		} // End of TC_ISC_SCCAS_PCT_RES_01
		} // End of TC_ISC_SCCAS_PCT_RES_01
		
		
@@ -807,7 +836,23 @@ module AtsSccas_Testcases
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_IUT) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MED_BYE_01(p_cSeq_s));
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
			
		} // End of TC_ISC_SCCAS_MED_BYE_01
		} // End of TC_ISC_SCCAS_MED_BYE_01
		
		
@@ -815,7 +860,23 @@ module AtsSccas_Testcases
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_IUT) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_ISC_SCCAS_MED_RES_01(p_cSeq_s));
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
			
		} // End of TC_ISC_SCCAS_MED_RES_01
		} // End of TC_ISC_SCCAS_MED_RES_01
		
		
@@ -823,7 +884,23 @@ module AtsSccas_Testcases
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_IUT) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_IUT' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MED_RIN_01(p_cSeq_s));
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
			
		} // End of TC_ISC_SCCAS_MED_RIN_01
		} // End of TC_ISC_SCCAS_MED_RIN_01