WAP Wireless Telephony Application Test Specification


ISSUE : wta12ts_010516

Copyright © 1999-2002 Wireless Application Forum. Ltd. All Rights Reserved.


Preface

This document contains the test specification for the WAP December 2000 release of the WAP WTA technical specification - version WAP-169-WTA-20000707-a.pdf WAP WTA SIN - version WAP-169_102-WTA-20010206-D.pdf WAP WTA Specification Change Document - version WAP-169_103-WTA-20010320-D.pdf The specification is organized such that there is a section for each section of the WAE specification in which assertions can be found.

For each assertion in the specifications, a corresponding entry in this test specification contains the following elements:

ID: The name by which the test is known
Class: An assertion Class as defined in IEEE Std 1003.3. These types are:
A A mandatory, testable assertion.
B A mandatory, but untestable assertion.
C An optional, testable assertion.
D An optional, but untestable assertion.
Scope: If an assertion is type C or D, this entry describes the option that needs to be supported in order to activate the test.
Text: The text of the assertion and a reference to the source specification from which the assertion is derived.
Note: Any supplementary information associated with the assertion. For example it may suggest a strategy for the test implementation of the assertion or it may propose rationale as to why a test is classified as untestable.

This specification uses the following conventions for convenience:


Table of Contents

6 Security Requirements
6.1 WTAI Function Libraries
6.2 Access Control
6.3 User Permission
6.4 Security Model
6.5 Available Security Framework
7 State Model
7.1 Session Management
7.1.1 Start-up of a WTA Session

7.2 User-agent Context
7.2.1 WTA Context Lifecycle
7.2.2 The Newcontext Attribute
7.2.3 The Endcontext Function

7.3 Event Parameters
7.4 Service Indication
7.5 Call State Management
8 WTA-WML Content
8.1 WTA-WML Content Format
8.1.1 Document Identifiers
8.1.2 WTA-WML Element Semantics
8.1.2.1 The WTA-WML Element
8.1.2.2 The SETVAR Element
8.1.2.3 The ONEVENT Element

8.1.3 The WTA-WML DTD
8.1.4 WBXML Tokens
8.1.5 Gateway Considerations

9 Repository
9.1 Channel Loading
9.2 Channel Unloading
9.3 Repository GC
9.4 Programming the Repository
9.4.1 The Channel Content Format
9.4.1.1 Document Identifiers
9.4.1.2 The Channel Element
9.4.1.3 The Title Element
9.4.1.4 The Abstract Element
9.4.1.5 The Resource Element
9.4.1.6 DTD
9.4.1.7 DTD
9.4.1.7.1 Global Extension Tokens
9.4.1.7.2 Tag Tokens
9.4.1.7.3 Attribute Start Tokens
9.4.1.7.4 Attribute Value Tokens


9.4.2 Example Channel
9.4.3 Channel Installation
9.4.3.1 Completion of Channel Install
9.4.3.2 Examples of Channel Installation


9.5 Repository Access Policy
10 Event Handling
10.1 Description
10.2 Event Bindings
10.3 Event Parameter Reference
10.4 Stable State
10.5 Event-based Invocation and Access Control
10.6 Event Handling Process

6 Security Requirements

ID: secreq/1
Class: B
Text: A WTA user-agent will allow the execution of an authorised WTA service when one is initiated. [Wireless Telephony Application Specification section 6]
Note: This assertion is tested thoroughly in the later sections of this specification, so wont be tested here. Changed w.r.t WTA meeting

ID: secreq/2
Class: A
Text: A WTA user-agent will disallow the execution of an unauthorised WTA service when one is initiated. [Wireless Telephony Application Specification section 6]
Note: Create a channel for an incomming call event from an authorised server. Then try to create a channel for the same event from an unauthorised server. Make the event occur (incomming call). The second channel should not have been loaded, therefore the first channel should still be current and loaded. Changed w.r.t WTA meeting

6.1 WTAI Function Libraries

There are no testable assertions in this section.

6.2 Access Control

ID: secreq/accesscon/1
Class: B
Text: When a session is established by a WTA user-agent it must utilise a dedicated secure WTA port on the gateway. [Wireless Telephony Application Specification section 6.2]
Note: Untestable as it is unobservable at the application layer. Changed w.r.t WTA meeting

ID: secreq/accesscon/2
Class: B
Text: When WTA content is received by the user-agent outside the WTA session it must be discarded. [Wireless Telephony Application Specification section 6.2]
Note: Can't be tested as a conforming gateway will never send WTA content out of a WTA session. Changed w.r.t WTA meeting

ID: secreq/accesscon/3
Class: B
Text: When a Service indication addressing the WTA user-agent is delivered outside a WTA session it must be discarded. [Wireless Telephony Application Specification section 6.2]
Note: Not testable as it is the client that sets up the session. Changed w.r.t WTA meeting. Suggested could test by sending a Service Indication that addresses the WTA user agent on a session that uses a non-secure push port on the client. But not sure we could set that up.

6.3 User Permission

ID: secreq/userpermission/1
Class: A
Text: When the user does not grant permission for a function to be invoked from WMLScript the user agent must return imediately as if the function had not been called and return invalid. [Wireless Telephony Application Specification section 6.3]
Note: Create a screen that calls the make call function. When the function is called the user shall not grant permission. Make sure that the user agent returns to its previous state and no call is made and that invalid is returned. Moved to here from WTAI spec w.r.t. wta meeting.

ID: secreq/userpermission/2
Class: A
Text: When the user does not grant permission for a function to be invoked through a uri the function must return an invocation error of "-200". [Wireless Telephony Application Specification section 6.3]
Note: Create a screen that calls the make call function from a uri. Make sure that the function returns "-200" after permission denied. Moved to here w.r.t. wta meeting

ID: secreq/userpermission/3
Class: A
Text: When the user gives single action permission to a wta function the user must be asked for permission each time that function is called. [Wireless Telephony Application Specification section 6.3]
Note: Create a deck that uses the SETUP function to call a known number. When the user 'clicks' the link to make the call they must be asked for permission to make the call. Grant single access permission and make sure the number is rung then end the call. Repeat this again and make sure that permission was asked again. Added w.r.t WTA meeting

ID: secreq/userpermission/4
Class: A
Text: When the user gives context permission to a wta function the user must only be asked for permission each time that function is called in a new context. [Wireless Telephony Application Specification section 6.3]
Note: Create a deck that uses the SETUP function to call a known number. When the user 'clicks' the link to make the call they must be asked for permission to make the call. Grant context permission and make sure the number is rung then end the call. Repeat this again and make sure that permission was not asked again. Then in a new context repeat the test. Permission must only be asked for the first time the link is 'clicked'. Added w.r.t WTA meeting

ID: secreq/userpermission/5
Class: A
Text: When the user gives blanket permission to a wta function the user must never again be asked for permission to that function unless permission is revoked. [Wireless Telephony Application Specification section 6.3]
Note: Depending on the device, set blanket permission for the WTAI SETUP function. Then Create a deck that uses the SETUP function to call a known number. When the user 'clicks' the link to make the call they must not be asked for permission to make the call. Make sure the number is rung then end the call. Then in a new context repeat the test making sure permission was not asked for again. Added w.r.t WTA meeting

ID: secreq/userpermission/6
Class: A
Text: When the user gives blanket permission to a wta function and then revokes that permission, they must be asked for permission each time that function is called. [Wireless Telephony Application Specification section 6.3]
Note: Depending on the device, set blanket permission for the WTAI SETUP function. Then Create a deck that uses the SETUP function to call a known number. When the user 'clicks' the link to make the call they must not be asked for permission to make the call. Then revoke the blanket permission and try the link again. User permission must be asked for. Then repeat again and make sure that permission was once again asked. Added w.r.t WTA meeting

ID: secreq/userpermission/7
Class: A
Text: When the user gives context permission to a wta function and then revokes that permission, they must be asked for permission each time that function is called. [Wireless Telephony Application Specification section 6.3]
Note: Create a deck that uses the SETUP function to call a known number. When the user 'clicks' the link to make the call they must be asked for permission to make the call. Accept with context permission. Then click the link again. The user should not be asked for permission. Then revoke the context permission and try the link again. User permission must be asked for. Then repeat again and make sure that permission was once again asked. Added w.r.t WTA meeting

6.4 Security Model

There are no testable assertions in this section.

6.5 Available Security Framework

ID: secreq/secframework/1
Class: B
Text: The client must use WTLS class 2 with server certificate authentication. [Wireless Telephony Application Specification section 7.5]
Note: Revision ref WAP-169 Unobservable.

ID: secreq/secframework/2
Class: B
Text: The use of a WTLS session is mandatory for WTA services. [Wireless Telephony Application Specification section 7.5]
Note: Revision ref WAP-169 Unobservable.

7 State Model

There are no testable assertions in this section.

7.1 Session Management

There are no testable assertions in this section.

7.1.1 Start-up of a WTA Session

There are no testable assertions in this section.

7.2 User-agent Context

There are no testable assertions in this section.

7.2.1 WTA Context Lifecycle

Tests relating to ENDCONTEXT are included in 7.2.3

ID: statemodel/uacontext/lifecycle/1
Class: B
Text: When the content author indicates the WTA context should be reinitialised, the user-agent reinitialises it. [Wireless Telephony Application Specification section 7.2.1]
Note: This is too general to test for. Other specific assertions cover this later. Changed w.r.t WTA meeting

ID: statemodel/uacontext/lifecycle/2
Class: A
Text: When an event occurs and there is a global binding and no temporary binding for that event and the current WTA context is not protected the user-agent must reinitialise the context. [Wireless Telephony Application Specification section 7.2.1]
Note: Firstly create a channel for the call alerting event (wtaev-cc/cc) that shows a deck with a variable in it. Then from a different deck with the context not protected set a variable with the same name as in the channel, and call the SETUP function to create a call to another known phone number. When the call is ringing, the global event will display the deck with the variable in it. It should now NOT be set. Changed w.r.t WTA meeting

ID: statemodel/uacontext/lifecycle/3
Class: A
Text: When a content error is encountered the user agent must not handle any new events until the user has acknowledged the error [Wireless Telephony Application Specification section 7.2.1]
Note: Set up a global event binding to the incomming call event to show a card or set a variable. Call a nonexistent function within the WTA context so that an error occurs. Then before the user acknowledges the error phone the test device. Make sure that the global event is not started by seeing if the card is shown or variable set. Added w.r.t WTA meeting

ID: statemodel/uacontext/lifecycle/4
Class: A
Text: When a content error is encountered the user agent terminates the current WTA context and indicates a content error. [Wireless Telephony Application Specification section 7.2.1]
Note: Set up a global event binding to the incomming call event to show a set a variable. Call a nonexistent function within the WTA context so that an error occurs. Accept the error. Then call the device again and check that the originally set variable is no longer set. Changed w.r.t WTA meeting

7.2.2 The Newcontext Attribute

WML test assertions relating to the NEWCONTEXT attribute can be found in the WML Test Specification.

ID: statemodel/uacontext/newconattrib/1
Class: A
Text: When the user agent processes a NEWCONTEXT attribute it must terminate an ongoing call if the call mode is set to FALSE (DROP). [Wireless Telephony Application Specification section 7.2.2]
Note: Create a call from a deck using SETUP and the mode as FALSE to a known phone number. Make sure the call is setup (call connected event). Then go to another card with the NEWCONTEXT attribute. Make sure that the call has been terminated (call cleared event). Check that the call handle when the call is connected, and cleared is the same to check the correct call has been terminated. Changed w.r.t WTA meeting

ID: statemodel/uacontext/newconattrib/2
Class: A
Text: When the user agent processes a NEWCONTEXT attribute it must process an ongoing call if the call mode is set to TRUE (KEEP). [Wireless Telephony Application Specification section 7.2.2]
Note: Create a call from a deck using SETUP and the mode as TRUE to a known phone number. Make sure the call is setup (call connected event). Then go to another card with the NEWCONTEXT attribute. Make sure that the call has NOT been terminated (call cleared event not occured or use CALL STATUS to get the status of the call with the original call handle after waiting a couple of seconds). Changed w.r.t WTA meeting

ID: statemodel/uacontext/newconattrib/3
Class: A
Text: When the user agent processes a NEWCONTEXT attribute it must preserve the event parameters. [Wireless Telephony Application Specification section 7.2.2]
Note: Create a deck with an onevent for the callconnected (wtaev-cc/co) event to go to a new card with the newcontext attrubute set to true. In that card check to see if the event parameters ($1, $2) are still set to the call handle and the number of the current call. Changed w.r.t WTA meeting

ID: statemodel/uacontext/newconattrib/4
Class: B
Text: When the user agent processes a NEWCONTEXT attribute it must preserve the contents of the repository. [Wireless Telephony Application Specification section 7.2.2]
Note: Can't be fully tested, but it is partially tested in other assertions

7.2.3 The Endcontext Function

ID: statemodel/uacontext/endconfunct/1
Class: B
Text: When the user agent processes an ENDCONTEXT function it must remove all variables defined in the current WTA user-agent context. [Wireless Telephony Application Specification section 7.2.3]
Note: Can't make sure that the variables are reset due to ENDCONTEXT as apposed to the NEWCONTEXT when the next WTA context is set up, because ENDCONTEXT completely ends the current WTA context. Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/2
Class: B
Text: When the user agent processes an ENDCONTEXT function it must clear the navigational history state. [Wireless Telephony Application Specification section 7.2.3]
Note: Can't make sure that the history state is reset due to ENDCONTEXT as apposed to the NEWCONTEXT when the next WTA context is set up, because ENDCONTEXT completely ends the current WTA context. Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/3
Class: B
Text: When the user agent processes an ENDCONTEXT function it must remove all content associated with the current WTA context from the active memory. [Wireless Telephony Application Specification section 7.2.3]
Note: Can't make sure that the active memory is reset due to ENDCONTEXT as apposed to the NEWCONTEXT when the next WTA context is set up because ENDCONTEXT completely ends the current WTA context. Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/4
Class: A
Text: When the user agent processes an ENDCONTEXT function and a call is ongoing it terminates the call when the call mode is set to FALSE (DROP). [Wireless Telephony Application Specification section 7.2.3]
Note: Create a call from a deck using SETUP and the mode as FALSE to a known phone number. Make sure the call is setup (call connected event). Then call the ENDCONTEXT function. Make sure that the call has been terminated (call cleared event). Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/5
Class: A
Text: When the user agent processes an ENDCONTEXT function it maintains an existing call when the call mode is set to TRUE (KEEP). [Wireless Telephony Application Specification section 7.2.3]
Note: Create a call from a deck using SETUP and the mode as TRUE to a known phone number. Make sure the call is setup (call connected event). Then call the ENDCONTEXT function. Make sure that the call has NOT been terminated. This would have to be a manual test using the standard MMI as once the context has been ended the WTA session no longer exists to query. Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/6
Class: B
Text: When the user agent processes an ENDCONTEXT function it clears the event parameters. [Wireless Telephony Application Specification section 7.2.3]
Note: Can't make sure that the event parameters are reset due to ENDCONTEXT as apposed to the NEWCONTEXT when the next WTA context is set up, because ENDCONTEXT completely ends the current WTA context. Changed w.r.t WTA meeting

ID: statemodel/uacontext/endconfunct/7
Class: B
Text: When the user agent processes an ENDCONTEXT function it preserves the contents of the repository. [Wireless Telephony Application Specification section 7.2.3]
Note: Can't check the complete repositry to check it is preserved. The assertion is however partially tested by other assertions. Changed w.r.t WTA meeting

7.3 Event Parameters

ID: statemodel/eventparam/1
Class: A
Text: When a WTA event is received that has a task temporarily bound in the current WTA context, the user-agent must clear all event parameters and then assign them new values based on the WTA event. [Wireless Telephony Application Specification section 7.3]
Note: Create a deck with an onevent set up to trap when an outgoing call is being set up (wtaev-cc/oc) in a deck. The deck also has 2 links to setup calls to different numbers. Click the first link to call the first number. When the event happens, link to another card which displays the called number (dollar2). Make sure that the called number is shown and correct. Then repeat the event with the second link to a different number. Make sure that the new number is now displayed. Can create the calls using the SETUP function to numbers input in the setup of the session. Changed w.r.t WTA meeting

ID: statemodel/eventparam/2
Class: A
Text: When a WTA event is received that has a globally bound task, the user-agent must clear all event parameter variables and assign them new values based on the WTA event before initiating a new WTA context. [Wireless Telephony Application Specification section 7.3]
Note: Firstly create a channel for the outgoing call event (wtaev-cc/oc) to show the called number when it is involked. Create a deck that has 2 links to setup calls to different numbers. Click the first link to call the first number. When the event happens, link to another card which displays the called number (dollar2). Make sure that the called number is shown and correct. Then repeat the event with the second link to a different number. Make sure that the new number is now displayed. Can create the calls using the SETUP function to numbers input in the setup of the session. Changed w.r.t WTA meeting

ID: statemodel/eventparam/3
Class: B
Text: A user-agent must have enough space to hold at least 10 event parameters and 250 symbols. [Wireless Telephony Application Specification section 7.3]
Note: This can't be tested due to there not being any functions or events with 10 parameters to test with. Also, there are no functions or events that could use 250 symbols. Changed w.r.t WTA meeting

7.4 Service Indication

For service indication assertions see the service indication specification.

7.5 Call State Management

There are no testable assertions in this section.

8 WTA-WML Content

There are no testable assertions in this section.

8.1 WTA-WML Content Format

There are no testable assertions in this section.

8.1.1 Document Identifiers

There are no testable assertions in this section.

8.1.2 WTA-WML Element Semantics

There are no testable assertions in this section.

8.1.2.1 The WTA-WML Element

There are no testable assertions in this section.

8.1.2.2 The SETVAR Element

There are no testable assertions in this section.

8.1.2.3 The ONEVENT Element

The WTA event types are covered in the WTAI specification. Assertions for these types can be found there.

8.1.3 The WTA-WML DTD

There are no testable assertions in this section.

8.1.4 WBXML Tokens

There are no testable assertions in this section.

8.1.5 Gateway Considerations

The extra gateway considerations with wta-wml are covered in the WTAI specification for each event and event parameter.

9 Repository

There are no testable assertions in this section.

9.1 Channel Loading

ID: repository/channelloading/1
Class: A
Text: The user-agent must load a resource indicated by a channel if it does not exist in the repository. [Wireless Telephony Application Specification section 9.1]
Note: Load a channel bound to the wtaev-cc/ic event id (incoming call). This channel should include a resource element that was not in the repository prior to channel loading. The resource can be a WML deck which displays a message to the user. Call the unit, and verify the WML deck is displayed when the incoming call event is executed. Changed w.r.t WTA meeting

ID: repository/channelloading/2
Class: A
Text: The user-agent must load a resource indicated by a channel if it is fresher than any existing in the repository. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel with a resource (script) in the repositry. Load the channel again with the resource having different content and fresher. Make sure that the new resource is loaded by making the event happen (incomming call). Changed w.r.t WTA meeting

ID: repository/channelloading/3
Class: A
Text: The user-agent must not load a resource indicated by a channel if the resource already exists in the repository and both the indicated and the stored resource are equally fresh. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel with a resource (script) in the repositry. Load the channel again with the resource having different content but the same date/time stamp. Make sure that the new resource is not loaded by making the event happen (incomming call). Changed w.r.t WTA meeting

ID: repository/channelloading/4
Class: A
Text: When the user-agent loads a resource successfully and a success URL is specified for the channel, a message is sent to the server using the success URL. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel that is correct. The sucess url could be a script that returns 'passed' when it is accessed. If it is accessed then the test passes. Changed w.r.t WTA meeting

ID: repository/channelloading/5
Class: A
Text: When the server does not respond to a request for the success url, the new channel is not loaded and the previous binding is left unchanged. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel on the user agent for the outgoing call event. Then create another channel for the same event with a success url that does not exist. Make the outgoing call event occur (call number using SETUP function). Make sure that the first loaded channel is the one that is loaded. Changed w.r.t WTA meeting

ID: repository/channelloading/6
Class: A
Text: When the loading of all resources for a channel not specifying a success URL, is complete, the channel is activated on the user-agent and stored in the repository. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel on the user agent for the outgoing call event (wtaev-cc/oc) with no success url specified. Then create a deck that uses the SETUP function to create a call to a known phone number. When the call is made, the deck referenced in the channel should be shown. Changed w.r.t WTA meeting

ID: repository/channelloading/7
Class: A
Text: When the loading of a resource fails the channel is discarded and any previous channel with the same identity must be left unchanged. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel for the outgoing call event (wtaev-cc/oc). Create a deck that uses the SETUP function to create a call to a known phone number. Make sure that the deck in the channel for the wtaev-cc/oc event is shown. Then load another channel for the same event with the same identity, but with one of the resources missing. Call the SETUP function again from a deck and make sure that the original deck in the channel is still loaded. Changed w.r.t WTA meeting

ID: repository/channelloading/8
Class: A
Text: When the loading of a resource fails for a channel with the failure URL the user-agent must request the failure URL. [Wireless Telephony Application Specification section 9.1]
Note: Try and create a channel for the outgoing call event (wtaev-cc/oc) with the failure url set and one of the resources unavailable. Make sure that the failure uri is shown when trying to create. Changed w.r.t WTA meeting

ID: repository/channelloading/9
Class: A
Text: When the loading of a resource fails and the failure URL is not delivered the user-agent must present an error message. [Wireless Telephony Application Specification section 9.1]
Note: Try and create a channel for the outgoing call event (wtaev-cc/oc) with the failure url not set and one of the resources unavailable. Make sure that the user agent displays an error message. Changed w.r.t WTA meeting

ID: repository/channelloading/10
Class: A
Text: When the CHANNELID of a new channel has a value identical to that of a previously loaded channel, the new channel information overwrites the previous information. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with a known CHANNELID. Create a deck that uses the SETUP function to create a call to a known phone number. Make sure that the deck in the channel for the wtaev-cc/oc event is shown. Then load another channel for the same event with different resources but the same CHANNELID. Call the SETUP function again from a deck and make sure that the new deck in the channel is now loaded. Changed w.r.t WTA meeting

ID: repository/channelloading/11
Class: A
Text: When the EVENTID attribute of a new channel has a value identical to that of a previously loaded channel, the new channel information overwrites the previous information. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with a known EVENTID. Create a deck that uses the SETUP function to create a call to a known phone number. Make sure that the deck in the channel for the wtaev-cc/oc event is shown. Then load another channel for the same event with different resources but the same EVENTID. Call the SETUP function again from a deck and make sure that the new deck in the channel is now loaded. Changed w.r.t WTA meeting

ID: repository/channelloading/12
Class: A
Text: When the CHANNELID of a new channel has a value identical to that of a previously loaded channel, but binding a different event, the new channel information overwrites the previous information. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with a known CHANNELID. Create a deck that uses the SETUP function to create a call to a known phone number. Make sure that the deck in the channel for the wtaev-cc/oc event is shown. Then load another channel for a different event (wtaev-cc/oc) with different resources but the same CHANNELID. Call the SETUP function again from a deck and make sure that the deck is now not shown. Then setup an incomming call to the device. Make sure that the deck is now shown. Added w.r.t WTA meeting

ID: repository/channelloading/13
Class: A
Text: A client must be able to install a channel at any time it can establish a network service. [Wireless Telephony Application Specification section 9.1]
Note: Try and load a channel when a previous channel bound to the previous event is being executed. Execution should complete normally and the new channel should become active when execution is complete. Changed w.r.t WTA meeting

ID: repository/channelloading/14
Class: B
Text: A client supporting the channel content format must process the channel as soon as the client is idle or process it in the background. [Wireless Telephony Application Specification section 9.1]
Note: Untestable, no way to determine conformance.

ID: repository/channelloading/15
Class: A
Text: When errors occur during the channel install process and the failure URL is not present in the channel the client must produce an error message. [Wireless Telephony Application Specification section 9.1]
Note: Try and create a channel with one of the resources pointing to a missing url and no failure url. Make sure that the client produces an error message. Changed w.r.t WTA meeting

ID: repository/channelloading/16
Class: A
Text: The implementation must check the repositry for a specific resource prior to requesting it from the network. [Wireless Telephony Application Specification section 9.1]
Note: Create a channel with a resource showing a card/setting a variable. Then create another channel using the same resource, but with different content. When the second channel is activated the original resource should be shown. Added w.r.t WTA meeting

9.2 Channel Unloading

ID: repository/channelunloading/1
Class: A
Text: When an empty channel is loaded with the same identity as a channel in the repository the channel is unloaded. [Wireless Telephony Application Specification section 9.2]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with a known CHANNELID. Create a deck that uses the SETUP function to create a call to a known phone number. Make sure that the deck in the channel for the wtaev-cc/oc event is shown. Then load another empty channel for the same event with the same CHANNELID. Call the SETUP function again from a deck and make sure that the original channel deck is now not shown. Changed w.r.t WTA meeting

9.3 Repository GC

There are no testable assertions in this section.

9.4 Programming the Repository

There are no testable assertions in this section.

9.4.1 The Channel Content Format

There are no testable assertions in this section.

9.4.1.1 Document Identifiers

There are no testable assertions in this section.

9.4.1.2 The Channel Element

ID: repository/programming/channelformat/channelelement/1
Class: A
Text: The server must not allow the sum of all the bytes in all the resources of a channel to exceed the MAXSPACE value. [Wireless Telephony Application Specification section 9.4.1.2]
Note: Try and create a channel for the outgoing call event with the MAXSPACE element set to zero. The channel would set a variable or show a card if run. Then create a call with the SETUP function and make sure that the card/variable has not been shown/set. Changed w.r.t WTA meeting

9.4.1.3 The Title Element

There are no testable assertions in this section.

9.4.1.4 The Abstract Element

There are no testable assertions in this section.

9.4.1.5 The Resource Element

ID: repository/programming/channelformat/resourceelement/1
Class: A
Text: When a channel does not have a base attribute the HREF value is treated as an absolute URL. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with the BASE attribute not set. Then define a resource with an absolute uri for that channel. Create a deck that uses the SETUP function to call a known phone number. When the number is called the deck specified in the channel must be loaded. Changed w.r.t WTA meeting

ID: repository/programming/channelformat/resourceelement/2
Class: A
Text: When a channel has a base attribute the HREF value is treated as relative to it. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Create a channel for the outgoing call event (wtaev-cc/oc) with the BASE attribute set. Then define a resource with a uri for that channel relative to the BASE uri. Create a deck that uses the SETUP function to call a known phone number. When the number is called the deck specified in the channel must be loaded. Added w.r.t Doc Review.

ID: repository/programming/channelformat/resourceelement/3
Class: D
Scope: "The User Agent supports the lastmod attribute"
Text: When the user-agent supports but does not maintain the resource's Last-Modified time the user-agent must revalidate the resource with the origin server during channel installation if it has expired. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Wap Forum to review wording of specification.

ID: repository/programming/channelformat/resourceelement/4
Class: D
Scope: "The User Agent does NOT support the lastmod attribute"
Text: When the user-agent does not support the Last-Modified time attribute the user-agent must revalidate the resource with the origin server during channel installation if it has expired. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Wap Forum to review wording of specification.

ID: repository/programming/channelformat/resourceelement/5
Class: A
Text: When the LASTMOD attribute is not specified, "If-Modified-Since" requests must be sent directly to the origin server. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Wap Forum to review wording of specification.

ID: repository/programming/channelformat/resourceelement/6
Class: A
Text: When the ETAG attribute is not specified "If-Match" requests must be sent directly to the origin server. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Wap Forum to review wording of specification.

ID: repository/programming/channelformat/resourceelement/7
Class: A
Text: When the ETAG attribute is not specified "If-None-Match" requests must be sent directly to the origin server. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Wap Forum to review wording of specification.

ID: repository/programming/channelformat/resourceelement/8
Class: B
Text: When the MD5 attribute is not specified the user-agent must use HTTP/1.1 style cache validation algorithms to determine if the content is still fresh. [Wireless Telephony Application Specification section 9.4.1.5]
Note: Unable to check method of cache validation.

9.4.1.6 DTD

There are no testable assertions in this section.

9.4.1.7 DTD

There are no testable assertions in this section.

9.4.1.7.1 Global Extension Tokens

There are no testable assertions in this section.

9.4.1.7.2 Tag Tokens

There are no testable assertions in this section.

9.4.1.7.3 Attribute Start Tokens

There are no testable assertions in this section.

9.4.1.7.4 Attribute Value Tokens

There are no testable assertions in this section.

9.4.2 Example Channel

There are no testable assertions in this section.

9.4.3 Channel Installation

Assertions for this section are covered in the channel loading section.

9.4.3.1 Completion of Channel Install

Assertions for this section are covered in the channel loading section.

9.4.3.2 Examples of Channel Installation

There are no testable assertions in this section.

9.5 Repository Access Policy

Assertions for this section are covered in the channel loading section.

10 Event Handling

There are no testable assertions in this section.

10.1 Description

There are no testable assertions in this section.

10.2 Event Bindings

ID: eventhandling/bindings/1
Class: A
Text: When an active card has a local binding associated with an event, when that event occurs the task associated with it must be carried out. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel for the incoming call event that shows a card when it occurs. This channel should contain a local event binding to the call connected event that shows a card on successful connection. Call dev1 using a second WTA compliant device. When the incoming call event occurs on dev1 the associated card should be shown. Accept the call. The call connected event should now occur, and the card associated with the local binding should be displayed.

ID: eventhandling/bindings/2
Class: A
Text: When control of an event is required within a working context, the event must be locally bound using the 'onevent' element. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel for the incoming call event that shows a card when it occurs. This channel should contain an 'onevent' local event binding to the call connected event that shows a card on successful connection. Call dev1 using a second WTA compliant device. When the incoming call event occurs on dev1 the associated card should be shown. Accept the call. The call connected event should now occur, and the card associated with the local binding should be displayed.

ID: eventhandling/bindings/3
Class: C
Scope: "null"
Text: When a local binding is set up, it can be defined within a card element. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel for the incoming call event that shows a card when it occurs. This channel should contain an 'onevent' local event binding(within the boundaries of the 'card' element) to the call connected event that shows a card on successful connection. Call dev1 using a second WTA compliant device. When the incoming call event occurs on dev1 the associated card should be shown. Accept the call. The call connected event should now occur, and the card associated with the local binding should be displayed.

ID: eventhandling/bindings/4
Class: C
Scope: "null"
Text: When a local binding is set up, it can be defined within a template element. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel for the incoming call event that shows a card when it occurs. This channel should contain an 'onevent' local event binding(within the boundaries of the 'template' element) to the call connected event that shows a card on successful connection. Call dev1 using a second WTA compliant device. When the incoming call event occurs on dev1 the associated card should be shown. Accept the call. The call connected event should now occur, and the card associated with the local binding should be displayed.

ID: eventhandling/bindings/5
Class: C
Scope: "null"
Text: When a local binding is set up, a card level binding can shadow a template level binding. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel for the incoming call event that shows a card when it occurs. This channel should contain an 'onevent' local event binding(within the boundaries of the 'template' element) to the call connected event that shows a card on successful connection, and an 'onevent' local event binding(within the boundaries of the 'card' element) to the call connected event that shows a card on successful connection. Call dev1 using a second WTA compliant device. When the incoming call event occurs on dev1 the associated card should be shown. Accept the call. The call connected event should now occur, and the card associated with the card level local binding should be displayed.

ID: eventhandling/bindings/6
Class: C
Scope: "null"
Text: When a WTA event occurs and a global binding is set, the global binding must associate the event with a URL to be fetched and processed. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel with it's first resource element containing the URL of a card to be displayed, that is bound to the incoming call event. Call dev1 using a second WTA compliant device. This should display a card in dev1.

ID: eventhandling/bindings/7
Class: C
Scope: "null"
Text: When a global binding is specified using a WTA channel element, the URL must be specified in the href attribute of the first resource element. [Wireless Telephony Application Specification Change Document section 10.2]
Note: Using the device under test(dev1), create a channel with it's first resource element containing the URL of a card to be displayed, that is bound to the incoming call event. Call dev1 using a second WTA compliant device. This should display a card in dev1.

10.3 Event Parameter Reference

ID: eventhandling/parameterref/1
Class: A
Text: When a WTA context is updated with WTA event parameters, the first parameter must be referenced using $<number> notation, starting with '$0'. [Wireless Telephony Application Specification Change Document section 10.3]
Note: Using the device under test(dev1), create a channel with it's first resource element containing the URL of a card to be displayed, that is bound to the incoming call event. The card should display $0 and $1, which should show the call handle and caller id respectively. Call dev1 using a second WTA compliant device. This should display the card on dev1.

ID: eventhandling/parameterref/2
Class: A
Text: When an attempt is made to reference a non-existent event parameter, it must be resolved by containing an empty string. [Wireless Telephony Application Specification Change Document section 10.3]
Note: Using the device under test(dev1), create a channel with it's first resource element containing the URL of a card to be displayed, that is bound to the incoming call event. The card should display $0, $1, and $2, which should show the call handle, caller id, and an empty string respectively. Call dev1 using a second WTA compliant device. This should display the card on dev1.

ID: eventhandling/parameterref/3
Class: B
Text: When an event parameter is used, it must not be the target variable for an element that attempts to change it's value. [Wireless Telephony Application Specification Change Document section 10.3]
Note: Not testable as it is not stated what will happen if an attempt is made to assign a value to an event parameter.

10.4 Stable State

There are no testable assertions in this section.

10.5 Event-based Invocation and Access Control

ID: eventhandling/accesscontrol/1
Class: A
Text: When a WTA user agent navigates to a resource that was the result of a local binding, the user agent must enforce the 'access' element of the target deck using the URI of the referring card. [Wireless Telephony Application Specification Change Document section 10.5]
Note: Create a deck that contains a temporary binding to the outgoing call event. Next using the device under test(dev1), create a channel bound to the outgoing call event that holds a resource(deck) containing an access element for a path that doesn't exist. Make a call to a second device. The outgoing call event should now occur, and an attempt will be made to access the associated card. As the calling card doesn't have access to the card it is trying to call, an 'access control error' must now occur. Repeat the test with the access element allowing access from the calling card location and make sure the card is displayed this time.

ID: eventhandling/accesscontrol/2
Class: A
Text: When a WTA user agent navigates to a resource that was the result of a global binding, the user agent must establish a new context. [Wireless Telephony Application Specification Change Document section 10.5]
Note: Create a deck that contains a temporary binding to the incoming call event that displays a variable when it occurs. Next using the device under test(dev1), create a channel bound to the call connected event that holds a resource(deck) containing an access element for a path that doesn't exist. Make a call to a second device. The incoming call event should now occur and a variable should be displayed. Next connect the call. The call connected event should now occur, which should call a deck that checks to see if the variable is now non-existent, thus proving that a new context was started.

ID: eventhandling/accesscontrol/3
Class: A
Text: When a WTA user agent navigates to a resource that was the result of a global binding, the user agent must enforce the 'access' element of the target deck using the URI of the channel specifying that global binding. [Wireless Telephony Application Specification Change Document section 10.5]
Note: Using the device under test(dev1), create a channel bound to the incoming call event that holds a resource(deck) containing an access element for a path that doesn't exist. Make a call to a second device. The incoming call event should now occur, and an attempt will be made to access the associated card. As the calling card doesn't have access to the card it is trying to call, an 'access control error' must now occur. Repeat the test with the access element allowing access from the calling card location and make sure the card is displayed this time.

ID: eventhandling/accesscontrol/4
Class: A
Text: When a WTA user agent navigates to a resource that was the result of a global binding, but the channel does not have an associated URI, the user agent must fail the access request. [Wireless Telephony Application Specification Change Document section 10.5]
Note: Using the device under test(dev1), create a channel(with no 'base' attribute) bound to the incoming call event that holds a resource(deck) containing an access element for with the path set as default('/'). Make a call to a second device. The incoming call event should now occur, and an attempt will be made to access the associated card. As the calling card doesn't contain an associated URI, access to the card it is trying to call will be denied, and an 'access control error' will occur.

10.6 Event Handling Process

ID: eventhandling/process/1
Class: B
Text: When a single WTA user agent instance exists, it must not allow more than one WTA context at a time. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as we can't set up the conditions in the assertion.

ID: eventhandling/process/2
Class: B
Text: When a WTA user agent is not in a stable state, it must not begin processing of a WTA event. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as it is not possible to maintain an unstable state.

ID: eventhandling/process/3
Class: B
Text: When a network event which has a corresponding WTA event, occurs while the WTA user agent is in a unstable state, the implementation must delay processing of the WTA event until the WTA user agent is in a stable state. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as it is not possible to maintain an unstable state.

ID: eventhandling/process/4
Class: B
Text: When delays of WTA events occur due to the WTA user agent being in an unstable state, when the WTA user agent returns to a stable state, the processing of the delayed events must occur in the order in which they were received. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as it is not possible to maintain an unstable state.

ID: eventhandling/process/5
Class: B
Text: When a user agent cannot start the processing of a WTA event due to , e.g. resource limitations, the WTA user agent may terminate the current context. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as we cannot set up the conditions in the assertion.

ID: eventhandling/process/6
Class: A
Text: When there is a current context and a local binding exists for a given WTA event, the WTA user agent must remove all WTA event parameters from the current context and update it with the event parameters for that event. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Create a deck that holds a temporary binding to the outgoing call and the call alerting event that will display a card showing the event parameters $0 and $1, when they occurs. In the same deck call the make call function. This should trigger the outgoing call event and display $0(which contains the call handle) and $1(which contains the number called). Next the call alerting event should occur, which should clear the event parameters and display $0(which will contain the call handle) and $1(which should be an empty string), showing that the first set of event parameters have been overwritten.

ID: eventhandling/process/7
Class: A
Text: When there is a current context and a local binding exists for a given WTA event, the WTA user agent must invoke the task associated with the local binding using the current WTA context. [Wireless Telephony Application Specification Change Document section 10.6]
Note: On the device under test create a deck that holds a temporary binding to the outgoing call event that will display a card when it occurs. This deck should first call the make call function. Call the deck and initiate the call. This should trigger the outgoing call event and display the associated card to the user.

ID: eventhandling/process/8
Class: B
Text: When there is a current context and a local binding exists for a given WTA event, and the invocation of the event fails, the WTA user agent must terminate the current WTA context. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as we cannot set up the conditions in the assertion.

ID: eventhandling/process/9
Class: A
Text: When there is a current context and no local binding exists for the given WTA event, and the current WTA context is protected, it must remain unaffected. [Wireless Telephony Application Specification Change Document section 10.6]
Note: On the device under test, create a deck that first calls the SETPROTECTION function, then calls the make call function. Call the deck which calls another device. This should trigger the outgoing call event, but as the context is protected, the device should remain unaffected.

ID: eventhandling/process/10
Class: A
Text: When there is a current context and no local binding, but a global binding exists for the given WTA event, the WTA user agent must terminate the current context, create a new context for that event, and update it with its associated event parameters. [Wireless Telephony Application Specification Change Document section 10.6]
Note: On the device under test(dev1), create a channel that is globally bound to the incoming call event, that displays a card showing its event parameters when it occurs. Next using dev1 call a card that makes a call to another device(dev2), and has a local binding to the outgoing call event, that displays its event parameters. While the call from dev1 is in progress, use a third device to make a call to dev1. Dev1's current context should now end and a new context should begin, which will handle the globally bound incoming call event and display it's event parameters.

ID: eventhandling/process/11
Class: A
Text: When there is a current context and no local binding, but a global binding exists for the given WTA event, the WTA user agent must terminate the current context, create a new context for that event, and process the content indicated by the URI specified in the href attribute of the first resource element in the channel associated with the event. [Wireless Telephony Application Specification Change Document section 10.6]
Note: On the device under test(dev1), create a channel(with more than one resource element) that is globally bound to the incoming call event, that displays a card when it occurs. The first resource element should display the event parameters. Next using dev1 call a card that makes a call to another device(dev2), and has a local binding to the outgoing call event, that displays its event parameters. While the call from dev1 is in progress, use a third device to make a call to dev1. Dev1's current context should now end, and a new context should begin, which will handle the globally bound incoming call event and display it's event parameters.

ID: eventhandling/process/12
Class: B
Text: When there is a current context, and no local binding, but a global binding exists for the given WTA event, and the invocation of that global binding fails, the WTA user agent must terminate the current context. [Wireless Telephony Application Specification Change Document section 10.6]
Note: Can't test as we cannot set up the conditions in the assertion.


Valid HTML 4.0!