OVERVIEW INDEX DEPRECATED HELP CORRESPONDENCES | provided by TTworkbench

Modulepars Data Types Component Types Port Types Constants Templates Signatures Functions Altsteps Test cases

# Group TC_00x

Declared in module SUPL_V2_SLP_INITIATED_Tests
Subgroups: TC_000, TC_004, TC_009

Test cases Summary
TC_000_1 |
TC_000_2 |
TC_000_3 |
TC_000_4 | To test SET correctly supports SUPL INIT delivery using OMA Push and, if supported, MT SMS and, or SIP Push Test 4: ics_UDP
TC_001 |
TC_002 |
TC_003 |
TC_004_1 |
TC_004_2 |
TC_004_3 |
TC_005 |
TC_006 |
TC_009_1 | To test SET correctly supports Basic SUPL INIT protection Case 1: Correct support
TC_009_2 | To test SET correctly supports Basic SUPL INIT protection Case 2: Correct discard procedure � incorrect Protection Level
TC_009_3 | To test SET correctly supports Basic SUPL INIT protection Case 3: Correct discard procedure � incorrect Key Identity
TC_009_4 | To test SET correctly supports Basic SUPL INIT protection Case 4: Correct discard procedure � incorrect Basic Replay Counter

## Details

TC_000_1

    testcase TC_000_1() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_000
Runs On: SUPLComponent
System: SystemInterfaces

TC_000_2

    testcase TC_000_2() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_000
Runs On: SUPLComponent
System: SystemInterfaces

TC_000_3

    testcase TC_000_3() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_000
Runs On: SUPLComponent
System: SystemInterfaces

TC_000_4

    testcase TC_000_4() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_000
To test SET correctly supports SUPL INIT delivery using OMA Push and, if supported, MT SMS and, or SIP Push Test 4: ics_UDP
Runs On: SUPLComponent
System: SystemInterfaces

TC_001

    testcase TC_001() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x
Runs On: SUPLComponent
System: SystemInterfaces

TC_002

    testcase TC_002() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x
Runs On: SUPLComponent
System: SystemInterfaces

TC_003

    testcase TC_003() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x
Runs On: SUPLComponent
System: SystemInterfaces

TC_004_1

    testcase TC_004_1() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_004
Runs On: SUPLComponent
System: SystemInterfaces

TC_004_2

    testcase TC_004_2() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_004
Runs On: SUPLComponent
System: SystemInterfaces

TC_004_3

    testcase TC_004_3() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_004
Runs On: SUPLComponent
System: SystemInterfaces

TC_005

    testcase TC_005() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x
Runs On: SUPLComponent
System: SystemInterfaces

TC_006

    testcase TC_006() runs on SUPLComponent system SystemInterfaces {
    			timer WaitForConnectionRelease := 15.0;
    			timer WaitForConnectionRelease1 := 15.0;
    			timer WaitForConnectionRelease2 := 15.0;
    			var ULP_PDU msgRcv;
    			var boolean optionalSuplEnd := true;

                var RRLP_CommonTypes.RRLP_PDU rrlp;
    			var SessionID sessionId := generateCompletedSessionId(t_s_emptySessionId, ixit_H_SLP_IP_TYPE);
    			var octetstring ver;

    			log("SUPL INIT from the Conformance Test Tool to the SET without SLP Session ID in the Session ID field");

                f_init(staticdefaultGPS);
                f_start_SCC();

    			// sends SUPL INIT via SMS
    			ver := f_sendSms(s_ulpPdu(t_s_emptySessionId, s_suplInit(eCID, proxy, omit)));
    			alt {
    				[] ulpPort.receive(t_r_ulpSuplEnd({*,omit} ifpresent, invalidSessionId, ?)) -> value msgRcv {
    					log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    					setverdict(pass);
    					WaitForConnectionRelease.start;
    					alt {
    						[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    							optionalSuplEnd := false;
    							repeat;
    						}
    						[] ipiPort.receive(tcpInfoReleaseConnection) {
    							log("Verdict Info: Secure IP connection released by SET");
    							setverdict(pass);
    						}
    						[] ulpPort.receive(r_ulpMessage) {
    							log("Verdict Info: Unexpected message over secure IP connection received from SET");
    							setverdict(fail);
    						}
    						[] WaitForConnectionRelease.timeout{
    							// The server terminates the Secure IP connection
    							ipcPort.send(stopAllConnections);
    						}
    					}
    				}
    				[] ulpPort.receive(t_r_ulpSuplEnd(*,*,*)) {
    					log("Verdict Info: SUPL END with unexpected parameters received from SET");
    					setverdict(fail);
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplPosInit)) -> value msgRcv { // Proxy Mode
    					log("Verdict Info: Unexpected SUPL POS INIT received from SET");
    					setverdict(fail);
    					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
    				}
    				[] ipiPort.receive(tcpInfoReleaseConnection) {
    					timer WaitForSuplEnd := 5.0;
    					WaitForSuplEnd.start;
    					alt{
    						[] ulpPort.receive(t_r_ulpSuplEnd({*,omit} ifpresent, invalidSessionId, ?)) -> value msgRcv {
    							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    							setverdict(pass);
    							WaitForConnectionRelease.start;
    							alt {
    								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    									log("Verdict Info: Another SUPL End received.");
    									setverdict(pass);
    									optionalSuplEnd := false;
    									repeat;
    								}
    								[] ipiPort.receive(tcpInfoReleaseConnection) {
    									log("Verdict Info: Secure IP connection released by SET");
    									setverdict(pass);
    								}
    								[] ulpPort.receive(r_ulpMessage) {
    									log("Verdict Info: Unexpected message over secure IP connection received from SET");
    									setverdict(fail);
    								}
    								[] WaitForConnectionRelease.timeout{
    									// The server terminates the Secure IP connection
    									ipcPort.send(stopAllConnections);
    								}
    							}
    						}
    						[] WaitForSuplEnd.timeout{
    							log("Verdict Info: Unexpected release of secure IP connection from SET");
    							setverdict(fail);
    						}
    					}
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
    					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
    					setverdict(inconc);
    					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
    				}
    			} //end alt

    			doPause();

    			log("SUPL POS from the Conformance Test Tool to the SET with an invalid value of Session ID in the SLP Session ID field");
    			optionalSuplEnd := true;

                select (ixit_RRLP_Version) {
                    case (e_RRLP_V5) {
                        rrlp.rrlp_pdu_V5 := tokyoReferenceTimeOnlyV5(currentGPS_TOW23b(0));
                    }
                    case (e_RRLP_V10) {
                        rrlp.rrlp_pdu_V10 := tokyoReferenceTimeOnlyV10(currentGPS_TOW23b(0));
                    }
                }

    			// sends SUPL INIT via SMS
    			ver := f_sendSms(s_ulpPdu(sessionId, s_suplInit(agpsSETassisted,proxy, omit)));
    			alt {
    				[] ulpPort.receive(t_r_ulpSuplPosInit(t_r_sessionId(*, sessionId.slpSessionID), ?, oct2bit(ver), *)) -> value msgRcv { // Proxy Mode
    					// sends SUPL POS with an invalid value of Session ID
    					var SessionID incorrectSid := generateIncorrectSessionId(msgRcv.sessionID, incorrectSLPSessionId);
                        select(ixit_PositioningProtocol) {
                            case(RRLP) {
                                ulpPort.send(s_ulpPdu(incorrectSid,s_suplPosRrlp(o_rrlp2oct(rrlp))));
                            }
                            case(LPP) {
                                ulpPort.send(m_ulpPdu(m_Version, incorrectSid, m_suplPosLPP(f_encodeLppPayload(f_ConstructLPPMessageForIncorretSessionID()))));
                            }
                            case else {
                                log("Verdict Info: Unsupported Position Protocol");
                                setverdict(inconc);
                                stop;
                            }
                        }
    					alt {
    						[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSid, invalidSessionId, *)) {
    							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    							setverdict(pass);
    							WaitForConnectionRelease1.start;
    							alt {
    								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    									optionalSuplEnd := false;
    									repeat;
    								}
    								[] ipiPort.receive(tcpInfoReleaseConnection) {
    									log("Verdict Info: Secure IP connection released by SET");
    									setverdict(pass);
    								}
    								[] ulpPort.receive(r_ulpMessage) {
    									log("Verdict Info: Unexpected message over secure IP connection received from SET");
    									setverdict(fail);
    								}
    								[] WaitForConnectionRelease1.timeout{
    									// The server terminates the Secure IP connection
    									ipcPort.send(stopAllConnections);
    								}
    							}
    						}
    						[] ulpPort.receive(t_r_ulpSuplEnd(*, *, *)) {
    							log("Verdict Info: SUPL END with unexpected parameters received from SET");
    							setverdict(fail);
    						}

    						[] ipiPort.receive(tcpInfoReleaseConnection) {
    							timer WaitForSuplEnd := 5.0;
    							WaitForSuplEnd.start;
    							alt{
    								[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSid, invalidSessionId, *)) {
    									log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    									setverdict(pass);
    									WaitForConnectionRelease1.start;
    									alt {
    										[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    											optionalSuplEnd := false;
    											repeat;
    										}
    										[] ipiPort.receive(tcpInfoReleaseConnection) {
    											log("Verdict Info: Secure IP connection released by SET");
    											setverdict(pass);
    										}
    										[] ulpPort.receive(r_ulpMessage) {
    											log("Verdict Info: Unexpected message over secure IP connection received from SET");
    											setverdict(fail);
    										}
    										[] WaitForConnectionRelease1.timeout{
    											// The server terminates the Secure IP connection
    											ipcPort.send(stopAllConnections);
    										}
    									}
    								}
    								[] WaitForSuplEnd.timeout{
    									log("Verdict Info: Unexpected release of secure IP connection from SET");
    									setverdict(fail);
    								}
    							}
    						}
    					}//end inner inner alt
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplEnd)) {
    					log("Verdict Info: Unexpected SUPL END received from SET");
    					setverdict(fail);
    				}
    				[] ipiPort.receive(tcpInfoReleaseConnection) {
    					log("Verdict Info: Unexpected release of secure IP connection from SET");
    					setverdict(fail);
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
    					setverdict(inconc);
    					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
    					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
    				}
    			} //end alt

    			doPause();

    			log("SUPL POS from the Conformance Test Tool to the SET with an invalid value of SLP ID in the SLP Session ID field");
    			optionalSuplEnd := true;
    			// sends SUPL INIT via SMS
    			ver := f_sendSms(s_ulpPdu(sessionId, s_suplInit(agpsSETassisted,proxy, omit)));
    			alt {
    				[] ulpPort.receive(t_r_ulpSuplPosInit(t_r_sessionId(*, sessionId.slpSessionID), ?, oct2bit(ver), *)) -> value msgRcv { // Proxy Mode
    					// sends SUPL POS with an invalid value of Session ID
    					var SessionID incorrectSLPid := generateIncorrectSessionId(msgRcv.sessionID, incorrectSLPSLPId);
                        select(ixit_PositioningProtocol) {
                            case(RRLP) {
                                ulpPort.send(s_ulpPdu(incorrectSLPid,s_suplPosRrlp(o_rrlp2oct(rrlp))));
                            }
                            case(LPP) {
                                ulpPort.send(m_ulpPdu(m_Version, incorrectSLPid, m_suplPosLPP(f_encodeLppPayload(f_ConstructLPPMessageForIncorretSessionID()))));
                            }
                            case else {
                                log("Verdict Info: Unsupported Position Protocol");
                                setverdict(inconc);
                                stop;
                            }
                        }
    					alt {
    						[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSLPid, invalidSessionId, *)) {
    							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    							setverdict(pass);
    							WaitForConnectionRelease2.start;
    							alt {
    								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    									optionalSuplEnd := false;
    									repeat;
    								}
    								[] ipiPort.receive(tcpInfoReleaseConnection) {
    									log("Verdict Info: Secure IP connection released by SET");
    									setverdict(pass);
    								}
    								[] ulpPort.receive(r_ulpMessage) {
    									log("Verdict Info: Unexpected message over secure IP connection received from SET");
    									setverdict(fail);
    								}
    								[] WaitForConnectionRelease2.timeout{
    									// The server terminates the Secure IP connection
    									ipcPort.send(stopAllConnections);
    								}
    							}
    						}
    						[] ulpPort.receive(t_r_ulpSuplEnd(*, *, *)) {
    							log("Verdict Info: SUPL END with unexpected parameters received from SET");
    							setverdict(fail);
    						}
    						[] ipiPort.receive(tcpInfoReleaseConnection) {
    							timer WaitForSuplEnd := 5.0;
    							WaitForSuplEnd.start;
    							alt{
    								[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSLPid, invalidSessionId, *)) {
    									log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
    									setverdict(pass);
    									WaitForConnectionRelease2.start;
    									alt {
    										[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
    											optionalSuplEnd := false;
    											repeat;
    										}
    										[] ipiPort.receive(tcpInfoReleaseConnection) {
    											log("Verdict Info: Secure IP connection released by SET");
    											setverdict(pass);
    										}
    										[] ulpPort.receive(r_ulpMessage) {
    											log("Verdict Info: Unexpected message over secure IP connection received from SET");
    											setverdict(fail);
    										}
    										[] WaitForConnectionRelease2.timeout{
    											// The server terminates the Secure IP connection
    											ipcPort.send(stopAllConnections);
    										}
    									}
    								}
    								[] WaitForSuplEnd.timeout{
    									log("Verdict Info: Unexpected release of secure IP connection from SET");
    									setverdict(fail);
    								}
    							}
    						}
    					}//end inner inner alt
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplEnd)) {
    					log("Verdict Info: Unexpected SUPL END received from SET");
    					setverdict(fail);
    				}
    				[] ipiPort.receive(tcpInfoReleaseConnection) {
    					log("Verdict Info: Unexpected release of secure IP connection from SET");
    					setverdict(fail);
    				}
    				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
    					setverdict(inconc);
    					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
    					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
    				}
    			} //end alt

                f_Postamble();

    		} // end testcase 006
    		with {extension "Description: SUPL-2.0-con-006 - Missing or invalid SLP Session ID"}

Declared in group TC_00x
Runs On: SUPLComponent
System: SystemInterfaces

TC_009_1

    testcase TC_009_1() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_009
To test SET correctly supports Basic SUPL INIT protection Case 1: Correct support
Runs On: SUPLComponent
System: SystemInterfaces

TC_009_2

    testcase TC_009_2() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_009
To test SET correctly supports Basic SUPL INIT protection Case 2: Correct discard procedure � incorrect Protection Level
Runs On: SUPLComponent
System: SystemInterfaces

TC_009_3

    testcase TC_009_3() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_009
To test SET correctly supports Basic SUPL INIT protection Case 3: Correct discard procedure � incorrect Key Identity
Runs On: SUPLComponent
System: SystemInterfaces

TC_009_4

    testcase TC_009_4() runs on SUPLComponent system SystemInterfaces

Declared in group TC_00x.TC_009
To test SET correctly supports Basic SUPL INIT protection Case 4: Correct discard procedure � incorrect Basic Replay Counter
Runs On: SUPLComponent
System: SystemInterfaces

© Copyright Testing Technologies IST GmbH 2012