Wireless Markup Language version 2.0 Test Specification


ISSUE : wml2ts_010924

Copyright © 1999, 2000, 2001 Wireless Application Forum. Ltd. All Rights Reserved.


Preface

This document contains the test specification for the WAP June 2001 release of the WAP WML2.0 technical specification - version WAP-238-WML-20010626-p.pdf The specification is organized such that there is a section for each section of the WML 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

5 User Agent Behaviour
5.1 User Agent Behaviour and Features in WAE
5.2 User Agent Context
5.2.1 Variables
5.2.2 Navigation History
5.3 Navigation Reference Processing Model
5.3.1 The go Task
5.3.2 The prev Task
5.3.3 The noop Task
5.3.4 The refresh Task
5.3.5 Task Execution Failure
5.4 Form Procesing Reference Model
5.4.1 Overview Form Processing Model
5.4.2 Form Initialisation
5.4.2.1 Form Control Initialisation
5.4.2.2 Text Input Control Initialisation
5.4.2.3 Menu Control Initialisation
5.4.2.4 Checkbox Control Initialisation
5.4.2.5 Radio Button Control Initialisation
5.4.2.6 Submit Button Control Initialisation
5.4.2.7 Reset Button Control Initialisation
5.4.2.8 Hidden Control Initialisation
5.4.3 Form Interaction
5.4.3.1 Form Control Interaction
5.4.3.2 Text Input Control Interaction
5.4.3.3 Menu Control Interaction
5.4.3.4 Checkbox Control Interaction
5.4.3.5 Radio Button Control Interaction
5.4.3.6 Submit Button Control Interaction
5.4.3.7 Reset Button Control Interaction
5.4.3.8 Hidden Control Interaction
5.4.4 Committing Form Data
5.4.5 Form Submission
5.5 Attribute Expression Syntax
5.5.1 Attribute Expression Syntax Processing
5.5.1.1 Variable References
5.5.1.2 Parsing the Variable Reference Syntax
5.5.1.3 The Dollar-sign Character
5.5.1.4 Variable Scoping
5.5.1.4.1 Scoped Variable Declarations
5.5.1.4.2 Scoped Variable References
5.5.1.5 Validation
5.5.1.6 Event Parameters
5.5.1.7 Regeneration of Presentation Document
5.6 WML2 Event Model
5.6.1 WML Intrinsic Events
5.6.2 WML Extrinsic Events
5.6.3 Event Bindings
5.6.3.1 Bindings for Typed Events
5.6.3.2 Bindings for Untyped Events
5.6.3.3 Event Binding Scope
5.7 Identification of Document Types
5.8 Common User Agent Behaviour depending on type of Elements
5.8.1 Activation of Elements using Access Keys
5.9 The Back Key
5.10 Navigation User Interface Using the wml:do Element
5.10.1 Processing the role attribute
5.10.2 Overriding the BACK key using the wml:do element
5.10.3 The Widget Selection Alogrithm
5.10.4 Widget Types
5.10.5 Widget Label
5.10.6 Default Presentation of the wml:do Element
5.10.7 Access Keys in Widget Selection
5.11 Timer Processing
5.12 Acceptance of XHTML Basic
5.13 User Agent Conformance Rules

6 WML2 Markup Elements and Attributes
6.1 XHTML Basic and Extensions
6.2 The Structure Module
6.2.1 The body Element
6.2.2 The html Element
6.2.3 The wml:card Element
6.3 Text Module
6.3.1 The p Element
6.4 Hypertext Module
6.5 Forms Module
6.5.1 The Select Element
6.5.2 The Input Element Format Attributes
6.5.2.1 The wml:format Attribute
6.5.2.2 The wml:emptyok Attribute
6.5.3 The wml:name Attribute
6.5.4 The accesskey Attribute
6.5.5 The wml:onpick Attribute
6.6 Tables Module
6.6.1 The Table Element
6.7 Lists Module
6.8 Image Module
6.8.1 The img Element
6.9 Metainformation Module
6.9.1 The meta Element
6.10 Link Module
6.11 Base Module
6.12 Object Module
6.13 Stylesheets Module
6.14 Presentation Module
6.15 Events Module
6.15.1 The wml:onevent Element
6.16 Context and Navigation Module
6.16.1 The wml:anchor Element
6.16.2 The wml:access Element
6.16.3 The wml:do Element
6.16.4 The wml:widget Element
6.16.5 The wml:go Element
6.16.6 The wml:noop Element
6.16.7 The wml:prev Element
6.16.8 The wml:refresh Element
6.16.9 The wml:postfield Element
6.16.10 The wml:setvar Element
6.16.11 The wml:getvar Element
6.16.12 The wml:timer Element
6.17 Document Conformance

7 Use of Style Sheets with WML2
7.1 Adding Style to WML2 Documents.
7.2 The Default Style Sheet for WML2

5 User Agent Behaviour

There are no testable assertions in this section.

5.1 User Agent Behaviour and Features in WAE

There are no testable assertions in this section.

5.2 User Agent Context

There are no testable assertions in this section.

5.2.1 Variables

There are no testable assertions in this section.

5.2.2 Navigation History

ID: wml2/uabehaviour/uacontext/navhistory/1
Class: A
Text: When navigation history is stored within the history stack, the newest entry must be stored at the top and the oldest entry must be stored at the bottom. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Create a card that navigates to a second card, which in turn navigates to a third. Navigate to the third card, then press the back button, the second card must be shown. Press the back button again, and the first card should be shown.

ID: wml2/uabehaviour/uacontext/navhistory/2
Class: A
Text: When forward navigation occurs, a new entry must be pushed onto the history stack as a result of this. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Using the card in question, Navigate to a second card, and then use the back button to return to the first card.

ID: wml2/uabehaviour/uacontext/navhistory/3
Class: A
Text: When backward navigation occurs, a new entry must be popped from the history stack as a result of this. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Using the card in question, Navigate to a second card, and then use the back button to return to the first card.

ID: wml2/uabehaviour/uacontext/navhistory/4
Class: A
Text: When an explicitly specified card is loaded into the history stack, a minimum of the absolute url, method, value of any postfields, and any request headers must be stored. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Create a card(c1) that holds a postfield element via the post method, and shows a card(c2) with the postfield data. Card-c2 could hold a link to a third card(c3), that displays a message to navigate backwards. Navigate back to card-c2 and make sure that the postfield data, and request headers are once again shown, and have not changed.(HTTP caching directives could be set to force the browser to hit the server, and not load from cache)

ID: wml2/uabehaviour/uacontext/navhistory/5
Class: B
Text: When an entry is loaded into the history stack as a result of forward navigation, document content must not be stored. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Untestable as it is not possible to check data from the history stack.

ID: wml2/uabehaviour/uacontext/navhistory/6
Class: A
Text: When an entry is loaded into the history stack , variable references in the resource request information must be replaced with the current value of the variable before loading takes place. [Wireless Markup Language version 2 Specification section 5.2.2]
Note: Create a card(c1) that sets say three variables on entry and displays them to the user. These variables should be set to a value that will be used in a parameterized URL. The card(c1) could hold a link ((e.g. http://www.example.com/$x/$y.$ext) to a card in a second document(c2) that will set the variables to a new value on entry, and could also contain a WML:DO element of type 'back', that contains a WML:PREV task to take the user back to the first card. Load the initial card, navigate through to the second document(c2), then press the back button. Make sure you are taken to the previous card(c1).

5.3 Navigation Reference Processing Model

There are no testable assertions in this section.

5.3.1 The go Task

ID: wml2/uabehaviour/navigationreference/gotask/1
Class: A
Text: When the WML:GO task is executed, and it contains WML:SETVAR elements, the variable name and value in each WML:SETVAR element must be converted into a simple string by substituting all referenced variables. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that sets two variables, using the WML:SETVAR element, within an ONENTERFORWARD event. The event could also contain a WML:GO element to navigate to a second document that displays a variable (not shown when the card is first entered as the variable is not set), and contains a WML:DO element, that contains a WML:REFRESH task, that in turn contains a WML:SETVAR element that sets its name and value attributes to the value of the variables in the first card. Call the first card which will take you to the second document. Make sure that when it is first entered the variable is not displayed, then press on pressing the refresh button, the variable is displayed.

ID: wml2/uabehaviour/navigationreference/gotask/2
Class: A
Text: When the WML:GO task is executed, the target URI must be identified and fetched by the user agent. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card with a WML:GO task pointing to an other card. Make sure that the other card can be reached.

ID: wml2/uabehaviour/navigationreference/gotask/3
Class: A
Text: When the WML:GO task is executed, the fragment identifier of the target URI must be the card fetched. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card with a link(without a fragment identifier) to a document that holds several cards. Click the link and make sure you are taken to the first card in the new document.

ID: wml2/uabehaviour/navigationreference/gotask/4
Class: A
Text: When the WML:GO task is executed, and a fragment identifier is not specified as part of the URI, the first card in the document must be the destination. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card with a link(without a fragment identifier) to a document that holds several cards. Click the link and make sure you are taken to the first card in the new document.

ID: wml2/uabehaviour/navigationreference/gotask/5
Class: A
Text: When the WML:GO task is executed, and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains a matching element ID attribute, the fragment identifier of the target URI must be the card that holds that element with the matching ID. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with a link to another card in the current document. The link 'id' must match that of an element 'id' in the card you wish to display. Click the anchor an make sure you are taken to the new card.

ID: wml2/uabehaviour/navigationreference/gotask/6
Class: A
Text: When the WML:GO task is executed(to navigate to a card in the same document), and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains a matching element ID attribute, the fragment identifier of the target URI must be the card that holds that element with the matching ID and that element must be visible to the user. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with a link to another card in the current document. The link 'id' must match that of an element 'id' in the card you wish to display. Click the anchor an make sure you are taken to the new card and that the element with the matching 'id' is shown.

ID: wml2/uabehaviour/navigationreference/gotask/7
Class: A
Text: When the WML:GO task is executed(to navigate to a card in the same document), and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains no matching element ID attribute, the fragment identifier of the target URI must be the first card in that document. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with a link to another card in the current document. The link 'id' must not match that of any element 'id' in the document. Click the anchor an make sure you are taken to the first card in the document.

ID: wml2/uabehaviour/navigationreference/gotask/8
Class: A
Text: When the WML:GO task is executed, and the WML:USE-XML-FRAGMENTS attribute in the destination document is set to 'false', and the document contains a matching card ID attribute, the fragment identifier of the target URI must be the card with the matching card ID attribute. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with a link to another card in the current document. The link 'id' must match that of the card ID in the document that you wish to display. Click the anchor an make sure you are taken to the desired card.

ID: wml2/uabehaviour/navigationreference/gotask/9
Class: A
Text: When the WML:GO task is executed, and the WML:USE-XML-FRAGMENTS attribute is 'false', and the document contains no matching card ID attribute, the fragment identifier of the target URI must be the first card in that document. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with the WML:USE-XML-FRAGMENTS attribute set to 'false', and a link with an ID set to a non-existent card in the current page. Click the anchor an make sure you are taken to the first card in the document.

ID: wml2/uabehaviour/navigationreference/gotask/10
Class: A
Text: When the WML:GO task is executed, and the WML:USE-XML-FRAGMENTS attribute is 'false', and the document contains non-card element ID "x", the fragment identifier of the target URI must be the first card in that document. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a document with the WML:USE-XML-FRAGMENTS attribute set to 'false', and call the card using a URL with a fragment identifier set to a non-card elements ID in the document called. Call the document an make sure you are taken to the first card in that document.

ID: wml2/uabehaviour/navigationreference/gotask/11
Class: A
Text: When the WML:GO task is executed, and it contains WML:SETVAR elements, the variable assignments resulting from the processing must be assigned to the current user agent context. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that contains a link with at least one WML:SETVAR element within a WML:GO element. Click the link that will navigate to another card and display the variables set.

ID: wml2/uabehaviour/navigationreference/gotask/12
Class: A
Text: When the WML:GO task is executed, and the destination document contains a WML:NEWCONTEXT attribute, a new user agent context must be created. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that will navigate to a new document which contains a WML:NEWCONTEXT attribute. Set variables within the first document, and make sure they exist, then navigate to the second document and make sure that the variables no longer exist.

ID: wml2/uabehaviour/navigationreference/gotask/13
Class: A
Text: When the WML:GO task is executed to take the user to another card, an entry referring to the destination must be pushed onto the history stack. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that contains a link which will navigate to a new card. Navigate to a second document which will now be pushed onto the history stack. Click a link on the second card to take you to a third card. Next use the back button to go back to the second card. The second card will be shown, proving that it had been added to the history stack.

ID: wml2/uabehaviour/navigationreference/gotask/14
Class: A
Text: When the WML:GO task is executed, and the destination document contains a ENTERFORWARD intrinsic event binding, the task associated with the event binding must be executed and processing must then stop. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card containing a ENTERFORWARD intrinsic event binding, that will navigate to another card, via the WML:GO task. Make sure you are automatically taken to the final card.

ID: wml2/uabehaviour/navigationreference/gotask/15
Class: A
Text: When the WML:GO task is executed, and the destination document contains a WML:TIMER element, the timer must be started. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that navigates, via ENTERFORWARD event and WML:GO task, to a second document that contains a WML:TIMER element with the timer set to 5 seconds. When the timer expires, the user could be taken to a new card/document.

ID: wml2/uabehaviour/navigationreference/gotask/16
Class: A
Text: When the WML:GO task is executed, the destination card must be displayed using the current variable state. [Wireless Markup Language version 2 Specification section 5.3.1]
Note: Create a card that contains a WML:SETVAR element within a WML:GO element to set a variable, and then navigates to a second card, which will display the variables.

5.3.2 The prev Task

ID: wml2/uabehaviour/navigationreference/prevtask/1
Class: A
Text: When the WML:PREV task is executed, and it contains WML:SETVAR elements, the variable name and value in each WML:SETVAR element must be converted into a simple string by substituting all referenced variables. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card(c1) that sets two variables on entry, using the WML:SETVAR element within a WML:GO element going to a second card. The second card(c2) could contain an ONENTERFORWARD event that contains a WML:PREV task that sets a variable with the WML:SETVAR element and then returns to the first card(c1). The parameter values for the variable will be the variables that were previously set. Make sure you are automaticall taken back to the current card, and that the variable is displayed .

ID: wml2/uabehaviour/navigationreference/prevtask/2
Class: A
Text: When the WML:PREV task is executed, the history stack must be popped. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card that links to a second document. The second document must contain a WML:PREV task set within a WML:DO element, that will navigate back to the first document. Navigate to the second document and then press the back button. This will take you back to the first document.

ID: wml2/uabehaviour/navigationreference/prevtask/3
Class: A
Text: When the WML:PREV task is executed and the target URI is a card in the same document, the fragment identifier of the target URI must be the card fetched. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card that links to a second card. The second card must contain a WML:PREV task set within a WML:ANCHOR element, that will navigate back to the first card. Call the first card(using a fragment identifier), Navigate to the second card and then press the back button. This will take you back to the first card, at the section that matches the fragment identifier.

ID: wml2/uabehaviour/navigationreference/prevtask/4
Class: A
Text: When the WML:PREV task is executed and the target URI is a separate document, the fragment identifier of the target URI must be the part of the document fetched. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card that links to a card in a second document. The card in the second document should contain a WML:PREV task set within a WML:DO element, that will navigate back to the part of the first document that was first linked to. Call the first document(using a fragment identifier), navigate to the second document and then press the back button. This will take you back to the first document, at the section that matches the fragment identifier.

ID: wml2/uabehaviour/navigationreference/prevtask/5
Class: A
Text: When the WML:PREV task is executed, and a fragment identifier is not specified as part of the URI, the first card in the document must be the destination. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains at least two cards(card1 & card2). Card1 could hold a link to card2. First call card1 using a non-fragment identified url, then click the link to go to card2(card2 will contain the WML:PREV task). Next click the back button and make sure you are taken back to card1.

ID: wml2/uabehaviour/navigationreference/prevtask/6
Class: A
Text: When the WML:PREV task is executed, and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains a matching element ID attribute, the fragment identifier of the target URI must be the card that holds that element with the matching ID. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains a link to a second document. Set the WML:USE-XML-FRAGMENTS attribute to 'true'. The second document must hold a WML:PREV task so that the user can navigate back to the first document. Call the first document with a URL containing a fragment identifier that matches the ID of an element contained within that document. Navigate to the second document, then press the back button and make sure you are taken to the card that contains the element with the ID matching that of the fragment identifier.

ID: wml2/uabehaviour/navigationreference/prevtask/7
Class: A
Text: When the WML:PREV task is executed(to navigate to a card in the same document), and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains a matching element ID attribute, the fragment identifier of the target URI must be the card that holds that element with the matching ID, and that element must be visible to the user. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains at least two cards (card1 & card2), and sets the WML:USE-XML-FRAGMENTS to 'true'. Card2 could hold a link to card3. First call card2 using a fragment identifier that matches a element ID, then click the link to go to card3(card3 will contain the WML:PREV task). Next click the back button and make sure you are taken back to card2 and that the element with the ID that matches the URL fragment is visable.

ID: wml2/uabehaviour/navigationreference/prevtask/8
Class: A
Text: When the WML:PREV task is executed(to navigate to a card in the same document), and the WML:USE-XML-FRAGMENTS attribute is 'true', and the document contains no matching element ID attribute, the fragment identifier of the target URI must be the first card in that document. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains at least two cards(card1 & card2), and sets the WML:USE-XML-FRAGMENTS to 'true'. Card2 could hold a link to card1. First call the document using a fragment identifier that does not match a element ID, then click the link to go to card2(card2 will contain the WML:PREV task). Next click the back button and make sure you are taken back to the first card in the document.

ID: wml2/uabehaviour/navigationreference/prevtask/9
Class: A
Text: When the WML:PREV task is executed, and the WML:USE-XML-FRAGMENTS attribute in the destination document is set to 'false', and the document contains a matching card ID attribute, the fragment identifier of the target URI must be the card with the matching card ID attribute. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains at least two cards (card1 & card2), and sets the WML:USE-XML-FRAGMENTS to 'false'. Card2 could hold a link to card3. First call card2 using a fragment identifier that matches the ID attribute of the card, then click the link to go to card3(card3 will contain the WML:PREV task). Next click the back button and make sure you are taken back to card2.

ID: wml2/uabehaviour/navigationreference/prevtask/10
Class: A
Text: When the WML:PREV task is executed, and the WML:USE-XML-FRAGMENTS attribute is 'false', and the document contains no matching card ID attribute, the fragment identifier of the target URI must be the first card in that document. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a document that contains at least two cards(card1 & card2), and sets the WML:USE-XML-FRAGMENTS to 'false'. Card1 could hold a link to card2. First call card2 using a fragment identifier that does not matche the ID attribute of either card. You should be taken to card1. Next click the link to go to card2(card2 will contain the WML:PREV task). Next click the back button and make sure you are taken back to card1.

ID: wml2/uabehaviour/navigationreference/prevtask/11
Class: A
Text: When the WML:PREV task is executed, and it contains WML:SETVAR elements, the variable assignments resulting from the processing must be assigned to the current user agent context. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card that displays variables(not set on first display), and a link to a second document. The second document must contain a WML:DO element of type 'prev', containing WML:PREV task, that will set the variables for display(using the WML:SETVAR element) on the first document. Navigate to the second document, and then press the back button. This will take you back to the first document, and the variables will be displayed.

ID: wml2/uabehaviour/navigationreference/prevtask/12
Class: A
Text: When the WML:PREV task is executed, and the destination document contains a ENTERBACKWARD intrinsic event binding, the task associated with the event binding must be executed and processing must then stop. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card(card1) that contains an ENTERBACKWARD event binding. Go automically to a second card, that return to the card1, calling the WML:PREV task and make sure that the task associated to the ENTERBACKWARD is executed.

ID: wml2/uabehaviour/navigationreference/prevtask/13
Class: A
Text: When the WML:PREV task is executed, and the destination document contains a WML:TIMER element, the timer must be started. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card with an Onevent, that will send the result of the test depending on a timer and set the timer to a big value (15000). In this card, go directly to a second card, that will return to card1 by setting the timer to a minimal value (5). Make sure that the result is sent after a short period of time.

ID: wml2/uabehaviour/navigationreference/prevtask/14
Class: A
Text: When the WML:PREV task is executed, the destination card must be displayed using the current variable state. [Wireless Markup Language version 2 Specification section 5.3.2]
Note: Create a card that displays a variable(not set on first display), and a link to a second card. The second card must contain a WML:PREV task, that will set a variable when executed. Navigate to the second card, and then press the back button. This will take you back to the first card, and the variable will be displayed with the new value.

5.3.3 The noop Task

There are no testable assertions in this section.

5.3.4 The refresh Task

ID: wml2/uabehaviour/navigationreference/refreshtask/1
Class: A
Text: When the WML:REFRESH task is executed, and it contains WML:SETVAR elements, the variable name and value in each WML:SETVAR element must be converted into a simple string by substituting all referenced variables. [Wireless Markup Language version 2 Specification section 5.3.4]
Note: Create a card that sets two variables, using the WML:SETVAR element, within an ONENTERFORWARD event. The event could also contain a WML:GO element to navigate to a second document that displays a variable(not shown when the card is first entered as the variable is not set), and contains a WML:DO element, that contains a WML:REFRESH task, that in turn contains a WML:SETVAR element that sets its name and value attributes to the value of the variables in the first card. Call the first card which will take you to the second document. Make sure that when it is first enterd the variable is not displayed, then press on pressing the refresh button, the variable is displayed.

ID: wml2/uabehaviour/navigationreference/refreshtask/2
Class: A
Text: When the WML:REFRESH task is executed, and it contains WML:SETVAR elements, the variable assignments resulting from the processing must be assigned to the current user agent context. [Wireless Markup Language version 2 Specification section 5.3.4]
Note: Create a card that displays a variable(not set in the first instance) and also has a WML:SETVAR element within a WML:REFRESH element within a WML:DO element. Press the refresh button and the new variable value will be displayed.

ID: wml2/uabehaviour/navigationreference/refreshtask/3
Class: A
Text: When the WML:REFRESH task is executed, and the document contains a WML:TIMER element, the timer must be started. [Wireless Markup Language version 2 Specification section 5.3.4]
Note: Create a card that contains a WML:REFRESH task, a WML:TIMER element, set to 1500 seconds and an ONEVENT timer, that sends the result of the test. The WML:REFRESH will reset the timer to a minimal value, so the event timer can be executed almost immediatly.

ID: wml2/uabehaviour/navigationreference/refreshtask/4
Class: A
Text: When the WML:REFRESH task is executed, the current card is re-displayed using the current variable state and processing stops. [Wireless Markup Language version 2 Specification section 5.3.4]
Note: Create a card that holds a SELECT element with three OPTION elements. The select element should be set to an initial value when first displaying the card. The card should contain a WML:REFRESH task that when executed, re-displays the card showing the current value of the variable to the user. Display the card, select a different value from the menu, then refresh the card. Make sure the variable value has changed.

5.3.5 Task Execution Failure

ID: wml2/uabehaviour/navigationreference/taskexfailure/1
Class: A
Text: When a task fails to fetch it's target resource, the invoking card must remain the current card. [Wireless Markup Language version 2 Specification section 5.3.5]
Note: Create a card that has a link to a card that doesn't exist. When the link is pressed, a message will be shown and the invoking card will remain as the current card.

ID: wml2/uabehaviour/navigationreference/taskexfailure/2
Class: A
Text: When a task fails to fetch it's target resource, there must be no changes to the browser context. [Wireless Markup Language version 2 Specification section 5.3.5]
Note: Create a card setting a variable with an automatic WML:REFRESH and that has a link, containing a WML:SETVAR element, to a card that doesn't exist. After trying to reach the unknown card, make sure that the variable setting with the WML:REFRESH has still the same value and that the other variable is an empty string.

ID: wml2/uabehaviour/navigationreference/taskexfailure/3
Class: A
Text: When a task fails to fetch it's target resource, there must be no intrinsic event bindings executed. [Wireless Markup Language version 2 Specification section 5.3.5]
Note: create a card with an ONENTERFORWARD event that is set to navigate to a second card that doesn't exist. Call the card and make sure that that card remains the current card.

5.4 Form Procesing Reference Model

There are no testable assertions in this section.

5.4.1 Overview Form Processing Model

There are no testable assertions in this section.

5.4.2 Form Initialisation

ID: wml2/uabehaviour/formprocessing/forminitialisation/1
Class: A
Text: When a forms initial values have been determined, they must be committed to form control variables. [Wireless Markup Language version 2 Specification section 5.4.2]
Note: Create a card that holds a text input control with it's WML:NAME set to 'lang' and it's VALUE set to 'English'. The card could also display the variable to the user. Display the card, make sure the initial value of the control is set, and the form control variables value is shown.

ID: wml2/uabehaviour/formprocessing/forminitialisation/2
Class: A
Text: When displaying a card with form controls, the user agent must process the controls in the order in which they appear in the card. [Wireless Markup Language version 2 Specification section 5.4.2]
Note: Create a card that contains the following markup:-
  <form action="...">
  <input name="x" value="1" />
  <input name="x" value="2" />
  </form>
Make sure that the user agent displays the value of "2" for the variable "x" named by the WML:GETVAR element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/3
Class: A
Text: When setting up a form control, the user agent must store the initial value of each control for use during form reset. [Wireless Markup Language version 2 Specification section 5.4.2]
Note: Create a card that holds a text input control with an initial value, and a reset control. Change the value in the text box, then press the 'reset' button. The initial value must be re-displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/4
Class: A
Text: When a card is reached through either forward or backward navigation, the user agent must perform form initialisation. [Wireless Markup Language version 2 Specification section 5.4.2]
Note: Create a card that holds a text input control with an initial value. Navigate to a second card and then press the back button. When the initial card is re-displayed, it must show the text input control with the initial value shown.

ID: wml2/uabehaviour/formprocessing/forminitialisation/5
Class: B
Text: When displaying a card with form controls, the user agent must perform form initialisation at the appropriate step in the reference processing model. [Wireless Markup Language version 2 Specification section 5.4.2]
Note: Untestable as there are no way to test the internal processing of the user agent. More specific tests are covered in futher assertions.

5.4.2.1 Form Control Initialisation

Assertions on this subject can be found in further subsections.

There are no testable assertions in this section.

5.4.2.2 Text Input Control Initialisation

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/1
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the WML:NAME attribute is assigned, the WML:NAME attribute must name the form control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card(c1) that holds a text input control, where the TYPE attribute is set to "text" and the WML:NAME attribute names the form control variable. The card(c1) could also hold a link to a second card(c2). Call the card(c1), enter a value, then click the link. This will take you to the second card(c2) that will display the variables value.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/2
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the WML:NAME attribute is assigned, and the form control variable conforms to the input mask, the initial value of the control must be the value of the control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text", an input mask and a initial value of the WML:NAME attribute that conforms to that mask set in a previous card. Make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/3
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the WML:NAME attribute is assigned, and the value of a form control variable does not conform to the input mask, it must be ignored and the initial value of the control must be determined by the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform to the input mask. Also set the VALUE attribute to a value that does conform to the input mask. When the card is loaded, make sure that the VALUE attribute is the initial value of the text box.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/4
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the WML:NAME attribute is assigned, and the value of the form control variable and the VALUE attribute do not conform to the input mask, they must be ignored and the initial value of the control must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform the input mask. Also set the VALUE attribute to a value that does not conform to the input mask. When the card is loaded, make sure that the initial value of the text box is set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/5
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the WML:NAME attribute is assigned, the value of a form control variable does not conform to the input mask, and the VALUE attribute is not set, the initial value of the text input control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform to the input mask, and do not set the VALUE attribute. When the card is loaded, make sure that the initial value of the text box is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/6
Class: A
Text: When using a text input control, the control is an INPUT element and the TYPE attribute is set to "text", the initial value must be pre-loaded into the control, when the WML:NAME control variable is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the TYPE attribute set to "text" and the WML:NAME variable set. Display the card and make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/7
Class: A
Text: When using a text input control, and the control is a TEXTAREA element, the WML:NAME attribute must name the form control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a textarea control, where the WML:NAME attribute names the form control variable. The card could also hold a link to a second card. Call the card, enter a value, then click the link. This will take you to the second card that will display the variables value.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/8
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the WML:NAME attribute is assigned, and the form control variable conforms to the input mask, the initial value of the control must be the value of the control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text area control with an input mask, and the WML:NAME attribute set to a value that conforms to the input mask of the next card. The next card will hold a text area control with an input mask and a text that matches the input mask. Make sure that the inital value of the TEXTAREA element is the initial value of the WML:NAME variable.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/9
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the WML:NAME attribute is assigned, the form control variable does not conform to the input mask and the content of the TEXTAREA element conforms to the input mask, the initial value of the control must be the content of the element. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text area control with an input mask, and the WML:NAME attribute set to a value that does not conform to the input mask of the next card. The next card will hold a text area control with an input mask and a text that matches the input mask. Make sure that the inital value of the TEXTAREA element is not the initial value of the WML:NAME variable but the content of the TEXTAREA element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/10
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the WML:NAME attribute is assigned and both the form control variable and the content of the TEXTAREA element do not conform to the input mask, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text area control with an input mask, and the WML:NAME attribute set to a value that does not conform to the input mask of the next card. The next card will hold a text area control with an input mask and a text that does not conform to the input mask. Make sure that the inital value of the TEXTAREA element is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/11
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the WML:NAME attribute is assigned, the form control variable does not conform to the input mask and the TEXTAREA element is an empty element, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text area control with an input mask, and the WML:NAME attribute set to a value that does not conform to the input mask of the next card. The next card will hold a text area control with an input mask and no initial content text set. Make sure that the inital value of the TEXTAREA element is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/12
Class: A
Text: When using a text input control, and the control is a TEXTAREA element, the initial value must be pre-loaded into the control, when the WML:NAME control variable is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the WML:NAME attribute set to the name of a variable holding a non-empty value. Display the card and make sure that the initial value of the control is the value for that variable.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/13
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the NAME attribute is assigned, and no input mask is specified, the initial value of the control must be the value of the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text", no input mask, the NAME and VALUE attributes set. Make sure that the value of the VALUE attribute is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/14
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the NAME attribute is assigned, and the VALUE attribute is not specified, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text", no input mask, the NAME attribute assigned and the VALUE attribute not specified. Make sure that the initial value is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/15
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the NAME attribute is assigned, and the value of the VALUE attribute conforms to the input mask, the initial value of the control must be the value of the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text", an input mask, the NAME assigned and the value of the VALUE attribute that conforms to that mask. Make sure that the value of the VALUE attribute is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/16
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", the NAME attribute is assigned, and the value of the VALUE attribute does not conform to the input mask, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text", an input mask, the NAME assigned and the value of the VALUE attribute that does not conform to that mask. Make sure that the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/17
Class: A
Text: When using a text input control, the control is an INPUT element and the TYPE attribute is set to "text", the initial value must be pre-loaded into the control, when the NAME control variable is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the TYPE attribute set to "text" and, the NAME and VALUE attribute set. Display the card and make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/18
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the NAME attribute is assigned, and no input mask is specified, the initial value of the control must be the content of the element. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a textarea control, where the NAME attribute names the form control variable, no input mask and the content of the TEXTAREA element set. Make sure that the initial value of the control is the content of the element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/19
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the NAME attribute is assigned, no input mask is specified, and the TEXTAREA element is an empty element, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a textarea control, where the NAME attribute names the form control variable, no input mask and no content for the TEXTAREA element. Make sure that the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/20
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the NAME attribute is assigned and the content of the TEXTAREA element conforms to the input mask, the initial value of the control must be the content of the element. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a textarea control, where the NAME attribute names the form control variable and the content of the TEXTAREA element conforms to the input mask. Make sure that the initial value of the control is the content of the element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/21
Class: A
Text: When using a text input control, the control is a TEXTAREA element, the NAME attribute is assigned and the content of the TEXTAREA element does not conform to the input mask, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a textarea control, where the NAME attribute names the form control variable and the content of the TEXTAREA element does not conform to the input mask. Make sure that the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/22
Class: A
Text: When using a text input control, and the control is a TEXTAREA element, the initial value must be pre-loaded into the control, when the NAME control attribute is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the NAME attribute set and the value of the VALUE attribute set to a non-empty value. Display the card and make sure that the initial value of the control is the value of the VALUE attribute.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/23
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and both the WML:NAME and NAME attributes are assigned, the WML:NAME attribute takes precedence, and the NAME attribute must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text". Assign the WML:NAME and NAME attributes. Display the card and make sure that the initial value displayed is the value of the variable named by the WML:NAME attribute.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/24
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and both the WML:NAME and NAME attributes are assigned, the WML:NAME attribute takes precedence, and the NAME attribute must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text area control. Assign the WML:NAME and NAME attributes. Display the card and make sure that the initial value displayed is the value of the variable named by the WML:NAME attribute.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/25
Class: B
Text: When using a text input control, the control is an INPUT element, and neither the WML:NAME or NAME attribute is specified, the control cannot be successful. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Untestable as it's not defined how handling an unsuccessfull text input control with neither WML:NAME or NAME attribute specified.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/26
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", neither the WML:NAME or NAME attribute is assigned, and the VALUE attribute is, the value of the VALUE attribute must be pre-loaded into the form control. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a text input control without the WML:NAME or NAME attributes set but with the VALUE attribute set. Call the card and make sure that when it is displayed, the value of the VALUE attribute specified is pre-loaded into the control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/27
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", neither the WML:NAME or NAME attribute is assigned, and the VALUE attribute is not set, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a text input control without the WML:NAME, NAME and VALUE attributes set. Call the card and make sure that when it is displayed, the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/28
Class: A
Text: When using a text input control, the control is a TEXTAREA element, neither the WML:NAME or NAME attribute is assigned, and the form control has a content, the initial value must be the content of the element. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a textarea control without the WML:NAME or NAME attributes set but with a content. Call the card and make sure that when it is displayed, the content of the TEXTAREA element is pre-loaded into the control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/29
Class: A
Text: When using a text input control, the control is a TEXTAREA element, neither the WML:NAME or NAME attribute is assigned, and the form control has no content, the initial value must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a textarea control without the WML:NAME or NAME attributes set and with no content. Call the card and make sure that when it is displayed, the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/30
Class: A
Text: When using a text input control, the control is an INPUT element, and the TYPE attribute is set to "password", the WML:NAME attribute must name the form control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card(c1) that holds a text input control, where the TYPE attribute is set to "password" and the WML:NAME attribute names the form control variable. The card(c1) could also hold a link to a second card(c2). Call the card(c1), enter a value, then click the link. This will take you to the second card(c2) that will display the variables value.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/31
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the WML:NAME attribute is assigned, and the form control variable conforms to the input mask, the initial value of the control must be the value of the control variable. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password", an input mask and a initial value of the WML:NAME attribute that conforms to that mask set in a previous card. Make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/32
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the WML:NAME attribute is assigned, and the value of a form control variable does not conform to the input mask, it must be ignored and the initial value of the control must be determined by the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform to the input mask. Also set the VALUE attribute to a value that does conform to the input mask. When the card is loaded, make sure that the VALUE attribute is the initial value of the text box.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/33
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the WML:NAME attribute is assigned, and the value of the form control variable and the VALUE attribute do not conform to the input mask, they must be ignored and the initial value of the control must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform the input mask. Also set the VALUE attribute to a value that does not conform to the input mask. When the card is loaded, make sure that the initial value of the text box is set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/34
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the WML:NAME attribute is assigned, the value of a form control variable does not conform to the input mask, and the VALUE attribute is not set, the initial value of the text input control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and an input mask. Pre-set the WML:NAME attribute to the name of a variable whose value doesn't conform to the input mask, and do not set the VALUE attribute. When the card is loaded, make sure that the initial value of the text box is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/35
Class: A
Text: When using a text input control, the control is an INPUT element and the TYPE attribute is set to "password", the initial value must be pre-loaded into the control, when the WML:NAME control variable is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the TYPE attribute set to "password" and the WML:NAME variable set. Display the card and make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/36
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the NAME attribute is assigned, and no input mask is specified, the initial value of the control must be the value of the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password", no input mask, the NAME and VALUE attributes set. Make sure that the value of the VALUE attribute is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/37
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the NAME attribute is assigned, and the VALUE attribute is not specified, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password", no input mask, the NAME attribute assigned and the VALUE attribute not specified. Make sure that the initial value is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/38
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the NAME attribute is assigned, and the value of the VALUE attribute conforms to the input mask, the initial value of the control must be the value of the VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password", an input mask, the NAME assigned and the value of the VALUE attribute that conforms to that mask. Make sure that the value of the VALUE attribute is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/39
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", the NAME attribute is assigned, and the value of the VALUE attribute does not conform to the input mask, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password", an input mask, the NAME assigned and the value of the VALUE attribute that does not conform to that mask. Make sure that the initial value of the control is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/40
Class: A
Text: When using a text input control, the control is an INPUT element and the TYPE attribute is set to "password", the initial value must be pre-loaded into the control, when the NAME control variable is set. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control, with the TYPE attribute set to "password" and, the NAME and VALUE attribute set. Display the card and make sure that the initial value is displayed.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/41
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and both the WML:NAME and NAME attributes are assigned, the WML:NAME attribute takes precedence, and the NAME attribute must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password". Assign the WML:NAME and NAME attributes. Display the card and make sure that the initial value displayed is the value of the variable named by the WML:NAME attribute.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/42
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", neither the WML:NAME or NAME attribute is assigned, and the VALUE attribute is, the value of the VALUE attribute must be pre-loaded into the form control. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a password input control without the WML:NAME or NAME attributes set but with the VALUE attribute set. Call the card and make sure that when it is displayed, the value of the VALUE attribute specified is pre-loaded into the control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/textinputcontrol/43
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", neither the WML:NAME or NAME attribute is assigned, and the VALUE attribute is not set, the initial value of the control must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.2]
Note: Create a card that contains a password input control without the WML:NAME, NAME and VALUE attributes set. Call the card and make sure that when it is displayed, the initial value of the control is an empty string.

5.4.2.3 Menu Control Initialisation

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/1
Class: A
Text: When the control only permits a single selection, the WML:INAME attribute of the SELECT element is specified, it must name the variable to use to determine the default option index. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:INAME attribute of the SELECT element to the name of a variable whose value is '2', and when the options are displayed, the 2nd element must be the default option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/2
Class: A
Text: When the control only permits a single selection, the default option index has not yet been determined and the WML:IVALUE attribute of the SELECT element is specified, the default option index must be the value of the WML:IVALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:IVALUE attribute of the SELECT element to '2', and when the options are displayed, the 2nd element must be the default option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/3
Class: A
Text: When the control only permits a single selection, the default option index has not yet been determined and the WML:NAME attribute of the SELECT element is specified, it must name the variable to use to determine the default option index. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:NAME attribute of the SELECT element to the name of a variable whose value is equal one of the values of the OPTION elements VALUE attributes. When the options are displayed, the value that matches must be the default option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/4
Class: A
Text: When the control only permits a single selection, the default option index has not yet been determined and the WML:VALUE attribute of the SELECT element is specified, the default option index must be the index of the option whose VALUE attribute equals the value of the WML:VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to equal one of the values of the OPTION elements VALUE attributes, and when the options are displayed, the value that matches must be the default option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/5
Class: A
Text: When the control only permits a single selection, no option has been pre-selected within the SELECT element, the default option index is one. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Add the WML:INAME attribute of the SELECT element to the name of a variable that is not set. When the card is entered the default option index must be set to one '1'.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/6
Class: A
Text: When the control only permits a single selection and the WML:INAME attribute of the SELECT element is specified, the variable named by the WML:INAME attribute must be set with the default option index. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Add the WML:INAME attribute to the SELECT element and set it to the name of a variable that is not set. When the card is entered the default option index must be set to one '1'. Therefore when the page is displayed it could show the value of the variable named by the WML:INAME attribute is '1'.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/7
Class: A
Text: When the control only permits a single selection and the WML:NAME attribute of the SELECT element is specified, the variable named by the WML:NAME attribute must be set with the value of the VALUE attribute on the OPTION element as the default option index. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Add the WML:NAME attribute to the SELECT element and set it to the name of a variable that is not set. When the card is entered the default option index must be set to the first option value. Therefore when the page is displayed it could show the value of the variable named by the WML:NAME attribute set to the first option value.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/8
Class: A
Text: When the control only permits a single selection, the WML:NAME attribute of the SELECT element is specified, and the VALUE attribute of the OPTION element is not, the variable named by the WML:NAME attribute must be set to a empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Add the WML:NAME attribute to the SELECT element and set it to the name of a variable that is not set. Also do not set any of the OPTION elements VALUE attributes. When the card is entered the default option index must be set to an empty string. Therefore when the page is displayed it could show the value of the variable named by the WML:NAME attribute set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/9
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified and multiple selections are permitted, the WML:INAME attribute must name the variable to use to determine the default option index and the value of the named variable must be a semicolon-delimited list of the indices of the pre-selected OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:INAME attribute of the SELECT element to the name of a variable whose value is '2;3', and the MULTIPLE attribute to 'multiple'. When the options are displayed, the 2nd and 3rd OPTION elements must be the default options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/10
Class: A
Text: When multiple selections are permitted, the default option index has not yet been determined, the WML:IVALUE attribute of the SELECT element is specified, the value of the WML:IVALUE attribute must be used to determine the default option index and this value must be a semicolon-delimited list of the indices of the pre-selected OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:IVALUE attribute of the SELECT element to '2;3' and the MULTIPLE attribute to 'multiple'. When the options are displayed, the 2nd and 3rd OPTION elements must be the default options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/11
Class: A
Text: When multiple selections are permitted, the default option index has not yet been determined, the WML:NAME attribute of the SELECT element is specified, the value of the WML:NAME variable must be used to determine the default option index and this value must be a semicolon-delimited list of the values of the pre-selected OPTION elements VALUE attributes. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:NAME attribute of the SELECT element to the name of a variable whose value is a semicolon-delimited list of two of the OPTION elements VALUE attributes & the MULTIPLE attribute to 'multiple'. When the options are displayed, the two OPTION elements that the WML:NAME variable holds must be the default options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/12
Class: A
Text: When multiple selections are permitted, the default option index has not yet been determined, the WML:VALUE attribute of the SELECT element is specified, the WML:VALUE'S value is used to determine the default option indices and must be a semicolon-delimited list of the values of the pre-selected OPTION elements VALUE attributes. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes & the MULTIPLE attribute to 'multiple'. When the options are displayed, the two OPTION elements that the WML:VALUE was set to must be the default options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/13
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified and multiple selections are permitted, the variable named by the WML:INAME attribute must be set with the default option index. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:INAME attribute of the SELECT element to the name of a variable that is not set, and the WML:IVALUE to '2;3'. Display the card and make sure that the variable named by the WML:INAME attribute is set to '2;3'.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/14
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified, multiple selections are permitted, and there are no default options, the variable named by the WML:INAME attribute must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:INAME attribute of the SELECT element to the name of a variable that is not set, and the WML:IVALUE unset. Display the card and make sure that the variable named by the WML:INAME attribute is set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/15
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified and multiple selections are permitted, for each index in the default indices which is greater than zero, the variable named by the WML:NAME attribute must be set to a semicolon delimited string of the VALUE attribute on the OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the variable named by the WML:NAME attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes, and the MULTIPLE attribute to 'multiple'. Display the card and make sure that the variable named by the WML:NAME attribute is set to an the value of the WML:VALUE attribute as a set of a semicolon-delimited list of two options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/16
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, multiple selections are permitted, and there are no default options, the variable named by the WML:NAME attribute must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Unset the variable named by the WML:NAME attribute of the SELECT element and set the MULTIPLE attribute to 'multiple'. Display the card and make sure that the variable named by the WML:NAME attribute is set an enmty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/17
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, multiple selections are permitted, and all selected OPTION elements contain an empty VALUE attribute, the variable named by the WML:NAME attribute must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:NAME attribute of the SELECT element to the name of a variable that is not set, and set all of the OPTION elements VALUE attributes to an empty string. Display the card and make sure that the variable named by the WML:NAME attribute is set an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/18
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection and the NAME attribute is assigned, it must name the control variable. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of one of the options to 'selected'. Display the card and make sure that the option with the SELECTED attribute set is the initial value of the menu control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/19
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection the NAME attribute is assigned, and exactly one OPTION has the SELECTED attribute assigned, that option is the pre-selected option. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of one of the options to 'selected'. Display the card and make sure that the option with the SELECTED attribute set is the initial value of the menu control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/20
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection the NAME attribute is assigned, and more than one OPTION has the SELECTED attribute assigned, the first such option is the pre-selected option. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of two of the options to 'selected'. Display the card and make sure that the first option with the SELECTED attribute set is the initial value of the menu control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/21
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection and the NAME attribute is assigned, the initial value of the control variable must be the value of the pre-selected OPTION element's value attribute. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of one of the options to 'selected'. Make sure that the initial value of the control variable is the value of the pre-selected OPTION element's value attribute.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/22
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection, the NAME attribute is assigned, and the VALUE attribute of the pre-selected OPTION element is not specified, the initial value of the control variable must be the content of the pre-selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of one of the options to 'selected' but with no VALUE attribute specified for the selected option. Make sure that the initial value of the control variable is the content of the pre-selected OPTION element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/23
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, the control only permits a single selection, the NAME attribute is assigned, and both the VALUE attribute and the content of the pre-selected OPTION element are not specified, the initial value of the control variable must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of one of the options to 'selected' but with no VALUE attribute and content specified for the selected option. Make sure that the initial value of the control variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/24
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, and the NAME attribute is assigned, the pre-selected options are those option elements with their SELECTED attribute assigned. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of two of the options to 'selected'. Display the card and make sure that the options with the SELECTED attribute set are the initial value of the menu control.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/25
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, the NAME attribute is assigned, and no OPTION has the SELECTED attribute assigned, there must be no pre-selected options. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and keep unset the SELECTED attribute of all the options. Display the card and make sure that there are no pre-selected options.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/26
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, and the NAME attribute is assigned, the initial value of the form control must be a string consisting of a semicolon-delimited list of the values of the pre-selected OPTION element's VALUE attributes. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of two of the options to 'selected'. Display the card and make sure that the NAME attribute is set to a string consisting of a semicolon-delimited list of the values of the pre-selected OPTION element's VALUE attributes.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/27
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, the NAME attribute is assigned, and the VALUE attribute of the pre-selected OPTION element are not specified, the initial value of the control variable must be a string consisting of a semicolon-delimited list of the content of the pre-selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of two of the options to 'selected' but with no VALUE attribute specified for the selected options. Display the card and make sure that the NAME attribute is set to a string consisting of a semicolon-delimited list of the content of the pre-selected OPTION element.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/28
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, the NAME attribute is assigned, and both the VALUE attribute and the content of the pre-selected OPTION element are not specified, the initial value of the control variable must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and the SELECTED attribute of two of the options to 'selected' but with no VALUE attribute and no content specified for the selected options. Display the card and make sure that the NAME attribute is set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/29
Class: A
Text: When neither the WML:NAME, the WML:INAME, the WML:VALUE nor the WML:INAME is assigned, multiple selections are permitted, the NAME attribute is assigned, and there are no pre-selected options, the initial value of the control variable must be an empty string. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the NAME attribute of the SELECT element and keep unset the SELECTED attribute of all the options. Display the card and make sure that the NAME attribute is set to an empty string.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/30
Class: A
Text: When the WML:INAME, attribute of the SELECT element is assigned, the SELECTED attribute of the OPTION element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:INAME attribute of the SELECT element to the name of a variable whose value is '2' and the MULTIPLE attribute to 'multiple'. Set also the SELECTED attribute of one of the other option to 'selected'. Make sure that the only one pre-selected option is the option referenced by the WML:INAME variable, e.g. the second option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/31
Class: A
Text: When the WML:NAME, attribute of the SELECT element is assigned, the SELECTED attribute of the OPTION element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:NAME attribute of the SELECT element to the value of the VALUE attribute of the second OPTION element and the MULTIPLE attribute to 'multiple'. Set also the SELECTED attribute of one of the other option to 'selected'. Make sure that the only one pre-selected option is the option referenced by the WML:NAME variable, e.g. the second option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/32
Class: A
Text: When the WML:IVALUE, attribute of the SELECT element is assigned, the SELECTED attribute of the OPTION element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:IVALUE attribute of the SELECT element to '2', and the MULTIPLE attribute to 'multiple'. Set also the SELECTED attribute of one of the other option to 'selected'. Make sure that the only one pre-selected option is the option referenced by the WML:IVALUE variable, e.g. the second option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/33
Class: A
Text: When the WML:VALUE, attribute of the SELECT element is assigned, the SELECTED attribute of the OPTION element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the value of the WML:VALUE attribute of the SELECT element to the value of the VALUE attribute of the second OPTION element and the MULTIPLE attribute to 'multiple'. Set also the SELECTED attribute of one of the other option to 'selected'. Make sure that the only one pre-selected option is the option referenced by the WML:VALUE variable, e.g. the second option.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/34
Class: A
Text: When the WML:INAME, attribute of the SELECT element is assigned, the NAME attribute of the SELECT element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set both the WML:INAME and NAME attribute of the SELECT element Select one of the option and submit the form. Make sure that the variable named by the NAME attribute is ignored when submitting.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/35
Class: A
Text: When the WML:NAME, attribute of the SELECT element is assigned, the NAME attribute of the SELECT element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set both the WML:NAME and NAME attribute of the SELECT element Select one of the option and submit the form. Make sure that the variable named by the NAME attribute is ignored when submitting.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/36
Class: A
Text: When the WML:IVALUE, attribute of the SELECT element is assigned, the NAME attribute of the SELECT element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set both the WML:IVALUE and NAME attribute of the SELECT element Select one of the option and submit the form. Make sure that the variable named by the NAME attribute is ignored when submitting.

ID: wml2/uabehaviour/formprocessing/forminitialisation/menucontrol/37
Class: A
Text: When the WML:VALUE, attribute of the SELECT element is assigned, the NAME attribute of the SELECT element must be ignored. [Wireless Markup Language version 2 Specification section 5.4.2.3]
Note: Create a card with three OPTION elements within a SELECT element. Set both the WML:VALUE and NAME attribute of the SELECT element Select one of the option and submit the form. Make sure that the variable named by the NAME attribute is ignored when submitting.

5.4.2.4 Checkbox Control Initialisation

ID: wml2/uabehaviour/formprocessing/forminitialisation/checkboxcontrol/1
Class: A
Text: When the WML:NAME attribute of the INPUT element is specified, and the TYPE attribute is set to 'checkbox', the variable named by the WML:NAME attribute must hold a semicolon-delimited list of the values of the INPUT elements VALUE attribute, for all checkboxes that have been pre-selected. [Wireless Markup Language version 2 Specification section 5.4.2.4]
Note: Create a card with 3 checkboxes. Select 2 of the three checkboxes and make sure that the variable associated to the checkboxes contains all the selected boxes.

ID: wml2/uabehaviour/formprocessing/forminitialisation/checkboxcontrol/2
Class: A
Text: When the WML:NAME attribute of the INPUT element is specified, the TYPE attribute is set to 'checkbox', and the variable named by the WML:NAME attribute has not been pre-set, there must be no pre-selected checkboxes. [Wireless Markup Language version 2 Specification section 5.4.2.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and give each VALUE attribute a seperate value. Display the card, make sure all checkboxes are displayed, and that none of them are pre-checked.

5.4.2.5 Radio Button Control Initialisation

ID: wml2/uabehaviour/formprocessing/forminitialisation/radiobuttoncontrol/1
Class: A
Text: When the WML:NAME attribute of the INPUT element is specified, and the TYPE attribute is set to 'radio', the variable named by the WML:NAME attribute must hold the value of the INPUT elements VALUE attribute, for the radio button that has been pre-selected. [Wireless Markup Language version 2 Specification section 5.4.2.5]
Note: Create a card(c1) that sets a variable (e.g. name="choice" value="car")and then navigates to a second card(c2) with three INPUT elements with the TYPE attribute set to 'radio'. Set all WML:NAME attributes to the same name(e.g. wml:name="choice"), and give each VALUE attribute a seperate value. The card(c2) could also display the variable to the user. Load the card, and make sure you are taken to the second card that will show the pre-selected control and the variables value.

ID: wml2/uabehaviour/formprocessing/forminitialisation/radiobuttoncontrol/2
Class: A
Text: When the WML:NAME attribute of the INPUT element is specified, the TYPE attribute is set to 'radio', and the variable named by the WML:NAME attribute has not been pre-set, there must be no pre-selected radio buttons. [Wireless Markup Language version 2 Specification section 5.4.2.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all WML:NAME attributes to the same name, and give each VALUE attribute a seperate value. Display the card, make sure all radio buttons are displayed, and that none of them are pre-checked.

5.4.2.6 Submit Button Control Initialisation

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.2.7 Reset Button Control Initialisation

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.2.8 Hidden Control Initialisation

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.3 Form Interaction

ID: wml2/uabehaviour/formprocessing/forminteraction/1
Class: B
Text: When a form has been displayed, the user agent must continue processing user interaction until the execution of the next task. [Wireless Markup Language version 2 Specification section 5.4.3]
Note: How is it possible to test that the user agent continues to process user interaction until the execution of the next task.

5.4.3.1 Form Control Interaction

There are no testable assertions in this section.

5.4.3.2 Text Input Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/1
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the user attempts to commit input, the user agent must validate that input against the input mask, as defined by the WML:FORMAT and WML:EMPTYOK attributes or their CSS equivalents. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute is set to "text" and with a format mask. Enter a value that does not conform to the input mask and attempt to commit it. Make sure that the user agent does not accept the values for example, by refusing the characters entered by the user, displaying an error message when submitting or when losing the focus.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/2
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the user enters data into that text control, for which there is no input mask set, the user agent must set the control variable to the control's current value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and no format mask. Display the card and enter a value and commit it. This could take you to another card, which will display the control variables value, which should be the value of the text that was input into the control.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/3
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the user attempts to commit input which conforms to the input mask set, the user agent must set the control variable to that value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute is set to "text" and a format mask. Enter a value that does conforms to the input mask and commit it. Set the card to navigate to a second card that will display the control variables value.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/4
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the value input by the user into the control does not conform to the input mask, the user agent must not commit that input and must notify the user that the input was rejected, and allow the user to re-submit new input. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card, allowing the user to re-enter the data.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/5
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "text", and the value input by the user into the control does not conform to the input mask, the control variable must not be modified. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "text" and a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card. The card should also hold a link to another card, so that you can navigate to a second card that will display the control variable, which will show that it has not been modified.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/6
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and the user attempts to commit input, the user agent must validate that input against the input mask, as defined by the WML:FORMAT and WML:EMPTYOK attributes or their CSS equivalents. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and with a format mask. Enter a value that does not conform to the input mask and attempt to commit it. Make sure that the user agent does not accept the values for example, by refusing the characters entered by the user, displaying an error message when submitting or when losing the focus.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/7
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and the user enters data into that text control, for which there is no input mask set, the user agent must set the control variable to the control's current value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and no format mask. Display the card and enter a value and commit it. This could take you to another card, which will display the control variables value, which should be the value of the text that was input into the control.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/8
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and the user attempts to commit input which conforms to the input mask set, the user agent must set the control variable to that value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and a format mask. Enter a value that does conforms to the input mask and commit it. Set the card to navigate to a second card that will display the control variables value.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/9
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and the value input by the user into the control does not conform to the input mask, the user agent must not commit that input and must notify the user that the input was rejected, and allow the user to re-submit new input. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card, allowing the user to re-enter the data.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/10
Class: A
Text: When using a text input control, the control is an INPUT element, the TYPE attribute is set to "password", and the value input by the user into the control does not conform to the input mask, the control variable must not be modified. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a text input control with the TYPE attribute set to "password" and a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card. The card should also hold a link to another card, so that you can navigate to a second card that will display the control variable, which will show that it has not been modified.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/11
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and the user attempts to commit input, the user agent must validate that input against the input mask, as defined by the WML:FORMAT and WML:EMPTYOK attributes or their CSS equivalents. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a textarea control with a format mask. Enter a value that does not conform to the input mask and attempt to commit it. Make sure that the user agent does not accept the values for example, by refusing the characters entered by the user, displaying an error message when submitting or when losing the focus.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/12
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and the user enters data into that text control, for which there is no input mask set, the user agent must set the control variable to the control's current value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a textarea control with no format mask. Display the card and enter a value and commit it. This could take you to another card, which will display the control variables value, which should be the value of the text that was input into the control.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/13
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and the user attempts to commit input which conforms to the input mask set, the user agent must set the control variable to that value. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a textarea control with a format mask. Enter a value that does conforms to the input mask and commit it. Set the card to navigate to a second card that will display the control variables value.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/14
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and the value input by the user into the control does not conform to the input mask, the user agent must not commit that input and must notify the user that the input was rejected, and allow the user to re-submit new input. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a textarea control with a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card, allowing the user to re-enter the data.

ID: wml2/uabehaviour/formprocessing/forminteraction/textinputcontrol/15
Class: A
Text: When using a text input control, the control is a TEXTAREA element, and the value input by the user into the control does not conform to the input mask, the control variable must not be modified. [Wireless Markup Language version 2 Specification section 5.4.3.2]
Note: Create a card that holds a textarea control with a format mask. Enter a value that does not conform to the input mask and attempt to commit it. The user agent must display a message that the input doesn't conform, and then re-display the card. The card should also hold a link to another card, so that you can navigate to a second card that will display the control variable, which will show that it has not been modified.

5.4.3.3 Menu Control Interaction

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/1
Class: A
Text: When the control only permits a single selection, the WML:NAME attribute of the SELECT element is specified, the named variable must be set to the value of the VALUE attribute of the selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that it matches the value of the VALUE attribute of the OPTION element chosen.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/2
Class: A
Text: When the control only permits a single selection, the WML:NAME attribute of the SELECT element is specified, the value of the VALUE attribute of the selected OPTION element is not specified, the named variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Unspecify the value of the VALUE attribute of the OPTION elements. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that this value is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/3
Class: A
Text: When the control only permits a single selection, the WML:INAME attribute of the SELECT element is specified, the named variable must be set to the index of the selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that it matches the index of the option chosen.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/4
Class: A
Text: When the control only permits a single selection, the WML:INAME attribute of the SELECT element is specified, the index numbering must begin at one and increase monotonically. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select the first of the options. This could take you to another card which will display the control variables value. Make sure that the value of the variable is '1'. Then go back to the first card and select the second option. Submit and make sure that the value of the varibale is '2'. Finally go back, select the last option and make sure that that the value of the variable is '3'.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/5
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select two of the options. This could take you to another card which will display the control variables value. Make sure that it is a semicolon-delimited string of the value of the VALUE attributes on the OPTION elements chosen.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/6
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected OPTION elements that contain a VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Set only the last OPTION element to contain a VALUE attribute. Display the card and select the first and last options. This could take you to another card which will display the control variables value. Make sure that it only contains the value set for the last OPTION element.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/7
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected OPTION elements that do not contain an empty VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Set only the last OPTION element to contain a set VALUE attribute, and the rest to contain empty string VALUE attributes. Display the card and select the first and last options. This could take you to another card which will display the control variables value. Make sure that it only contains the value set for the last OPTION element.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/8
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, but the user commits without selecting any options, the control variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card, do not select an option, and submit the form data. This could take you to another card that will display the control variable. Make sure that it is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/9
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, but all OPTION element VALUE attributes are set to an empty string, the SELECT elements control variable must also be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card, select two of the options, and submit the form data. This could take you to another card that will display the control variable. Make sure that the variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/10
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified, and multiple selections are permitted, the named variable must be set to a semicolon-delimited string of the indices of the selected OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select two of the options. This could take you to another card which will display the control variables value. Make sure that it is a semicolon-delimited string of the indices of the selected OPTION elements.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/11
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified, and multiple selections are permitted, but the user commits without selecting any options, the control variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card, do not select any options, and submit the form data. This could take you to another card that will display the control variable. Make sure that the variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/12
Class: A
Text: When the control only permits a single selection, the NAME attribute of the SELECT element is used to name the control variable, the named variable must be set to the value of the VALUE attribute of the selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that it matches the value of the VALUE attribute of the OPTION element chosen.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/13
Class: A
Text: When the control only permits a single selection, the NAME attribute of the SELECT element is used to name the control variable, the value of the VALUE attribute of the selected OPTION element is not specified but the content is set, the named variable must be set to the content of the selected OPTION element. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Unspecify the value of the VALUE attribute of the OPTION elements but set the content of these options. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that this value is the content of the selected OPTION element.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/14
Class: A
Text: When the control only permits a single selection, the NAME attribute of the SELECT element is used to name the control variable, the value of the VALUE attribute of the selected OPTION element is not specified and the content of the OPTION element is unset, the named variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Unspecify the value of the VALUE attribute of the OPTION elements and keep unset the content of these options. Display the card and select one of the options. This could take you to another card which will display the control variables value. Make sure that this value is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/15
Class: A
Text: When multiple selections are permitted, the NAME attribute of the SELECT element is used to name the control variable, the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected OPTION elements. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and select two of the options. This could take you to another card which will display the control variables value. Make sure that it is a semicolon-delimited string of the value of the VALUE attributes of the selected OPTION elements.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/16
Class: A
Text: When multiple selections are permitted, the NAME attribute of the SELECT element is used to name the control variable, the VALUE attribute of some selected OPTION elements is not specified but the content of these selected OPTION elements is specified, the content of these selected OPTION elements must be substitued to their VALUE attribute in the semicolon-delimited string, result, of the control variable. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Set only the last OPTION element to contain a VALUE attribute and set the content of all the options. Display the card and select the first and last options. This could take you to another card which will display the control variables value. Make sure that the variable is set to a semicolon-delimited string of the content of the first OPTION element and of the value of the VALUE attribute of the last OPTION element.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/17
Class: A
Text: When multiple selections are permitted, the NAME attribute of the SELECT element is used to name the control variable, the VALUE attributes of a selected OPTION elements is not specified and the content of this selected elements is not specified, this option must be ignored in the semicolon-delimited string, result, of the control variable. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Unspecify the VALUE attribute and the content of the first OPTION element. Unspecify the VALUE attribute of the second OPTION element but set its content. Finally set the VALUE attribute and content of the last OPTION element. Display the card and select the three options. This could take you to another card which will display the control variables value. Make sure that the variable is set to a semicolon-delimited string of the content of the second OPTION element and of the value of the VALUE attribute of the last OPTION element.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/18
Class: A
Text: When multiple selections are permitted, the NAME attribute of the SELECT element is used to name the control variable, but the user commits without selecting any options, the control variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card, do not select an option, and submit the form data. This could take you to another card that will display the control variable. Make sure that it is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/19
Class: A
Text: When the WML:INAME attribute of the SELECT element is specified, and multiple selections are permitted, the user agent must ensure that the WML:INAME variable value contains no duplicate index values. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Set the WML:IVALUE to contain '1;2;2'. Submit the form and make sure that the control variable is equal to '1;2'.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/20
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, the user agent must contain duplicate values in the situation where multiple selected option elements have the same value. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element that contain equal VALUE attribute values. Set the WML:VALUE to contain 'alpha;alpha;alpha'. Make sure that the variable named by the WML:NAME attribute is a string consisting of three equal values.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/21
Class: A
Text: When the WML:NAME attribute of the SELECT element is specified, and multiple selections are permitted, the user agent must not allow the WML:NAME control variable to contain empty values (e.g. 'cat;"";dog'). [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements (with their VALUE attributes set to 'cat', '', 'dog', respectively) within a SELECT element. Set the WML:VALUE to contain 'cat;"";dog'. Submit the form and make sure that the control variable is equal to 'cat;dog'.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/22
Class: A
Text: When the WML:NAME variable of the SELECT element is changed, due to a user selecting a option, the user agent must not exhibit display side effects, except when there is an explicit refresh task. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and choose an element different from the default. Make sure there are no display side effects.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/23
Class: A
Text: When the WML:INAME variable of the SELECT element is changed, due to a user selecting an option, the user agent must not exhibit display side effects, except when there is an explicit refresh task. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three OPTION elements within a SELECT element. Display the card and choose a element different from the default. Make sure there are no display side effects.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/24
Class: A
Text: When the variable named by the WML:NAME of the SELECT element is changed, the user agent must update it each time, before each and every task invocation. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three SELECT elements. Also use a WML:GETVAR element to display the value of the variable. The card could contain a submit button which could take the user to a second card which will display the variables value. Call the card, choose an option that is different from the default, and navigate to the second card. The value of the variable should be different from the first one displayed.

ID: wml2/uabehaviour/formprocessing/forminteraction/menucontrol/25
Class: A
Text: When the variable named by the WML:INAME of the SELECT element is changed, the user agent must update it each time, before each and every task invocation. [Wireless Markup Language version 2 Specification section 5.4.3.3]
Note: Create a card with three SELECT elements. Also use a WML:GETVAR element to display the value of the variable. The card could contain a submit button which could take the user to a second card which will display the variables value. Call the card, choose an option that is different from the default, and navigate to the second card. The value of the variable should be different from the first one displayed.

5.4.3.4 Checkbox Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/1
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and give each VALUE attribute a separate value. Check two of the three boxes and then submit the form. Make sure that the value of the WML:NAME contains the name of the both selected boxes.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/2
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements that contain a VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and do not specify one of the VALUE attributes. Select all the three checkboxes and make sure that the value of the WML:NAME contains a semicolon-delimited string of the VALUE attributes of the two selected INPUT elements that contain a VALUE attribute.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/3
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements that do not contain an empty VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and set one of the VALUE attributes to an empty string. Select all the three checkboxes and make sure that the value of the WML:NAME contains a semicolon-delimited string of the VALUE attributes of the two selected INPUT elements that have a VALUE attribute set .

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/4
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'checkbox', but the user commits without selecting any checkboxes, the control variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and set the VALUE attributes to a unique value. Submit the form without selecting any checkboxes and make sure that the control variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/5
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'checkbox', but all INPUT element VALUE attributes are set to an empty string, the named variable must also be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all WML:NAME attributes to the same name, and set all the VALUE attributes to an empty string. Select all the three checkboxes and make sure that the control variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/6
Class: A
Text: When the NAME attribute of the INPUT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all NAME attributes to the same name, and give each VALUE attribute a separate value. Check two of the three boxes and then submit the form. Make sure that the value of the NAME contains the name of the both selected boxes.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/7
Class: A
Text: When the NAME attribute of the INPUT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements that contain a VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all NAME attributes to the same name, and do not specify one of the VALUE attributes. Select all the three checkboxes and make sure that the value of the NAME contains a semicolon-delimited string of the VALUE attributes of the two selected INPUT elements that contain a VALUE attribute.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/8
Class: A
Text: When the NAME attribute of the INPUT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'checkbox', the named variable must be set to a semicolon-delimited string of the VALUE attributes of the selected INPUT elements that do not contain an empty VALUE attribute. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all NAME attributes to the same name, and set one of the VALUE attributes to an empty string. Select all the three checkboxes and make sure that the value of the NAME contains a semicolon-delimited string of the VALUE attributes of the two selected INPUT elements that have a VALUE attribute set .

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/9
Class: A
Text: When the NAME attribute of the INPUT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'checkbox', but the user commits without selecting any checkboxes, the control variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all NAME attributes to the same name, and set the VALUE attributes to a unique value. Submit the form without selecting any checkboxes and make sure that the control variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/checkboxcontrol/10
Class: A
Text: When the NAME attribute of the INPUT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'checkbox', but all INPUT element VALUE attributes are set to an empty string, the named variable must also be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. Set all NAME attributes to the same name, and set all the VALUE attributes to an empty string. Select all the three checkboxes and make sure that the control variable is an empty string.

5.4.3.5 Radio Button Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

ID: wml2/uabehaviour/formprocessing/forminteraction/radiobuttoncontrol/1
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'radio', the named variable must hold the value of the VALUE attribute of the selected INPUT element. [Wireless Markup Language version 2 Specification section 5.4.3.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all WML:NAME attributes to the same name, and give each VALUE attribute a unique value. The card could also use a form submit button to go to a second card, which will display the variables value. Load the card, check one of the buttons, and then go to the second card and make sure that the variable holds that value of the chosen radio buttons VALUE attribute.

ID: wml2/uabehaviour/formprocessing/forminteraction/radiobuttoncontrol/2
Class: A
Text: When the WML:NAME attribute of the INPUT element is assigned, the TYPE attribute of the INPUT element is set to 'radio', the value of the VALUE attribute of the selected INPUT element is not specified, the named variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all WML:NAME attributes to the same name, but do not specify their VALUE attribute. The card could also use a form submit button to go to a second card, which will display the variables value. Load the card, check one of the buttons, and then go to the second card and make sure that the variable is an empty string.

ID: wml2/uabehaviour/formprocessing/forminteraction/radiobuttoncontrol/3
Class: A
Text: When the NAME attribute of the SELECT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'radio', the named variable must hold the value of the VALUE attribute of the selected INPUT element. [Wireless Markup Language version 2 Specification section 5.4.3.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all NAME attributes to the same name, and give each VALUE attribute a unique value. The card could also use a form submit button to go to a second card, which will display the variables value. Load the card, check one of the buttons, and then go to the second card and make sure that the variable holds that value of the selected radio buttons VALUE attribute.

ID: wml2/uabehaviour/formprocessing/forminteraction/radiobuttoncontrol/4
Class: A
Text: When the NAME attribute of the SELECT element is used to name the control variable, the TYPE attribute of the INPUT element is set to 'radio', the value of the VALUE attribute of the selected INPUT element is not specified, the named variable must be set to an empty string. [Wireless Markup Language version 2 Specification section 5.4.3.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all NAME attributes to the same name, but do not specify their VALUE attribute. The card could also use a form submit button to go to a second card, which will display the variables value. Load the card, check one of the buttons, and then go to the second card and make sure that the variable is an empty string.

5.4.3.6 Submit Button Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.3.7 Reset Button Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.3.8 Hidden Control Interaction

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.4.4 Committing Form Data

ID: wml2/uabehaviour/formprocessing/commitformdata/1
Class: A
Text: When navigating away from a card containing a form, the user agent must commit the current value of each form control to its form control variable. [Wireless Markup Language version 2 Specification section 5.4.4]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'radio'. Set all WML:NAME attributes to the same name, and give each VALUE attribute a separate value. The card could also use an accept button to go to a second card, which will display the variables value. Load the card, check one of the buttons, and then go to the second card and make sure that the variable holds that value of the chosen radio buttons VALUE attribute.

5.4.5 Form Submission

ID: wml2/uabehaviour/formprocessing/formsubmission/1
Class: A
Text: When submitting a form, and the ACTION attribute of the FORM element is set to 'get', it must define the method used to submit the data. [Wireless Markup Language version 2 Specification section 5.4.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. The FORM element will have its METHOD attribute set to 'get'. Select one of the option and make sure that the value sent is the selected value.

ID: wml2/uabehaviour/formprocessing/formsubmission/2
Class: A
Text: When submitting a form, and the ACTION attribute of the FORM element is set to 'post', it must define the method used to submit the data. [Wireless Markup Language version 2 Specification section 5.4.5]
Note: Create a card with three INPUT elements with the TYPE attribute set to 'checkbox'. The FORM element will have its METHOD attribute set to 'post'. Select one of the option and make sure that the value sent is the selected value.

ID: wml2/uabehaviour/formprocessing/formsubmission/3
Class: A
Text: When submitting a form, any form control variables must be sent. [Wireless Markup Language version 2 Specification section 5.4.5]
Note: Create a card with an INPUT element (checkbox), a TEXTAREA element and a menu control element and different form control variables for each fielset. Make sure that all the form control variables are sent into the form.

5.5 Attribute Expression Syntax

ID: wml2/uabehaviour/attribexplang/1
Class: A
Text: When calling a document of the type WML2(application/wml+xml), the user agent must process the document according to the WML variable attribute expression language. [Wireless Markup Language version 2 Specification section 5.5]
Note: Create a card that sets a variable using the WML:SETVAR element, and then goes to another card that references the set variable. Make sure the variable name is substituted for the value it holds when dispayed.

5.5.1 Attribute Expression Syntax Processing

There are no testable assertions in this section.

5.5.1.1 Variable References

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/1
Class: A
Text: When using the WML variable attribute expression language, the variable names must consist of a US-ASCII letter or underscore, followed by zero or more letters, digits or underscores. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create several documents that set a variable using the WML:SETVAR element. These variable names should be a combination of legal and illegal characters to test conformance to the spec.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/2
Class: A
Text: When using the WML variable attribute expression language, and the 'noesc' conversion is used, the user agent must not apply any escapement to the variable. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters(e.g. 'http://foo.com/%62%61%72'). The card could then automatically attempt to fetch a document (using the WML:GO element) at a URI that contains URL encoded characters. The card could also display the variable using the '$(Foo:noesc)' syntax. Make sure that you are not taken to the second card and that the card does not change the string when displaying the variable.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/3
Class: A
Text: When using the WML variable attribute expression language, and 'escape' conversion is used, the user agent must apply URL encoding to the string before using it in the current context. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains reserved characters that will be escaped when URL encoding is applied(e.g. 'http://foo.com/'). The card should then display the variable using the '$(Foo:escape)' syntax. Make sure the card applies URL encoding to the string when displaying the variable (e.g. 'http%3A%2F%2Ffoo.com'.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/4
Class: A
Text: When using the WML variable attribute expression language, the 'unesc' conversion is used, the user agent must reverse URL encoding from the string before using it in the current context. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters(e.g. 'http://foo.com/%62%61%72'). The card should then display the variable using the '$(Foo:unesc)' syntax. Make sure the card reverses the URL encoding within the string when displaying the variable (e.g. 'http://foo.com/bar'.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/5
Class: A
Text: When a WML2.0 user agent loads an XHTML Basic document, and that document content contains the '$', it must treat is as an ordinary text character, and not a variable. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create an XHTML Basic document that has what would be a legal variable reference in WML2.0(e.g. $test). When the card is called, make sure that '$test' is displayed as literal text.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variableref/6
Class: A
Text: When a WML2.0 user agent loads an XHTML Basic document, and that document content contains the '$$', it must treat them as ordinary text characters, and show both dollar signs. [Wireless Markup Language version 2 Specification section 5.5.1.1]
Note: Create an XHTML Basic document that has what would be a variable escapement in WML2.0(e.g. $$test). When the card is called, make sure that '$$test' is displayed as literal text.

5.5.1.2 Parsing the Variable Reference Syntax

ID: wml2/uabehaviour/attribexplang/wmlvariable/parsingvarref/1
Class: A
Text: When using the WML variable attribute expression language, in the context of variable parsing, all XML syntax must have a higher precedence than the variable syntax(e.g. entity substitution occurs before the variable substitution syntax is parsed). [Wireless Markup Language version 2 Specification section 5.5.1.2]
Note: Create a card that uses the ENTERFORWARD event that sets a variable(e.g. $X). The card should then display the variable using three variations of the syntax(e.g. $X - $X - $X). Display the card and make sure that the variable value is displayed three times.

5.5.1.3 The Dollar-sign Character

ID: wml2/uabehaviour/attribexplang/wmlvariable/dollarsign/1
Class: A
Text: When a author wishes to include a '$' character in an attribute value in a WML2 document, they must escape the dollar sign by using two dollar signs(e.g. $$). [Wireless Markup Language version 2 Specification section 5.5.1.3]
Note: Create a card that uses two dollar signs to include a single dollar sign when the card is displayed. Make sure that one dollar sign is displayed.

5.5.1.4 Variable Scoping

There are no testable assertions in this section.

5.5.1.4.1 Scoped Variable Declarations
ID: wml2/uabehaviour/attribexplang/wmlvariable/variablescoping/declarations/1
Class: A
Text: When a variable is declared within a form control element using the WML:NAME attribute, the variable must be globally scoped. [Wireless Markup Language version 2 Specification section 5.5.1.4.1]
Note: Create a card that has a SELECT element and three OPTIONS elements within a form control element. The SELECT element should name and set a WML:NAME attribute variable and a predefined value. Display the variable into the first card but not in the form and make sure that the variable has the selected value.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variablescoping/declarations/2
Class: A
Text: When a form control element is placed inside of a FORM element, and that control names a variable with the WML:NAME attribute, that form control variable must be globally scoped. [Wireless Markup Language version 2 Specification section 5.5.1.4.1]
Note: Create a card(c1) that sets a variable on entry (e.g. wml:setvar name="x" value="cat") and then shows that variables value to the user. Card(c1) could also hold a link to navigate to a second card(c2) that has an INPUT element which is within a form control element. The INPUT element should name and set the WML:NAME attribute(wml:name='x'). Display the card note the value, then navigate to the second card(c2). Enter a different value into the input control and then go back to the first card(c1). The value of the variable should now hold the value that the user input.

ID: wml2/uabehaviour/attribexplang/wmlvariable/variablescoping/declarations/3
Class: A
Text: When a variable is declared with the WML:SETVAR element, the variable must be globally scoped, regardless of the positioning of the WML:SETVAR element relative to a FORM element. [Wireless Markup Language version 2 Specification section 5.5.1.4.1]
Note: Create a card that sets a variable(use a WML:SETVAR element, within a WML:GO element, within a WML:ANCHOR element), within a FORM element. Display the card, click the link, and make sure you are taken to a second card that will display the variables value.
5.5.1.4.2 Scoped Variable References

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

5.5.1.5 Validation

ID: wml2/uabehaviour/attribexplang/wmlvariable/validation/1
Class: A
Text: When the value of an attribute is not to be evaluated as part of the WML variable expression language, and it is to contain a literal '$' character, it must use an escaped literal dollar sign to prevent the creation. [Wireless Markup Language version 2 Specification section 5.5.1.5]
Note: Create a card that uses two dollar signs within the value that is assigned to an element's attribute (e.g. <a href="/next" title="Win $$1,000,000!">. Display the card and make sure only one dollar sign is displayed.

ID: wml2/uabehaviour/attribexplang/wmlvariable/validation/2
Class: A
Text: When a variable reference uses invalid syntax, the document must be treated as being in error. [Wireless Markup Language version 2 Specification section 5.5.1.5]
Note: Create a card that attempts to set one illegal variable (e.g. WML:SETVAR name="1234" value="cat"). The card could also hold a REFRESH task, to attempt to display the variable. When the card is loaded it should be in error. Refresh the screen, and make sure the card is still in error(refreshing the screen may not be an option, due to the error in the card).

ID: wml2/uabehaviour/attribexplang/wmlvariable/validation/3
Class: B
Text: When a variable reference is placed in an invalid location, the document must be treated as being in error. [Wireless Markup Language version 2 Specification section 5.5.1.5]
Note: Untestable as it is not specified what an invalid location is

5.5.1.6 Event Parameters

ID: wml2/uabehaviour/attribexplang/wmlvariable/eventparam/1
Class: B
Text: When an event parameter is referenced, it must be a variable name consisting of one or more digits(e.g. $1 or $(2:esc). [Wireless Markup Language version 2 Specification section 5.5.1.6]
Note: Untestable as is is not stated what event includes event paramenters.

ID: wml2/uabehaviour/attribexplang/wmlvariable/eventparam/2
Class: B
Text: When an event defines no parameters and an expression is used to set a variable using the '$1' syntax, the value of the expression must be empty. [Wireless Markup Language version 2 Specification section 5.5.1.6]
Note: Untestable as there are no means to check the value of an event parameter reference inside an WML:ONEVENT element.

5.5.1.7 Regeneration of Presentation Document

ID: wml2/uabehaviour/attribexplang/wmlvariable/regendocument/1
Class: B
Text: Before executing a task, the user agent must either re-generate the presentation of a document, or perform an operation that is indistinguishable from it. [Wireless Markup Language version 2 Specification section 5.5.1.7]
Note: Untestable as to make the test run, this implies to change the presentation settings and the modifications of the presentation are implementation dependant.

ID: wml2/uabehaviour/attribexplang/wmlvariable/regendocument/2
Class: B
Text: Before processing event bindings, the user agent must either re-generate the presentation document, or perform an operation that is indistinguishable from it. [Wireless Markup Language version 2 Specification section 5.5.1.7]
Note: Untestable as to make the test run, this implies to change the presentation settings and the modifications of the presentation are implementation dependant.

5.6 WML2 Event Model

There are no testable assertions in this section.

5.6.1 WML Intrinsic Events

Further assertions on this subject can be found in section 5.6.3.1

There are no testable assertions in this section.

5.6.2 WML Extrinsic Events

There are no testable assertions in this section.

5.6.3 Event Bindings

There are no testable assertions in this section.

5.6.3.1 Bindings for Typed Events

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/1
Class: A
Text: When a WML:ONEVENT element has its TYPE attribute set to 'timer' and the timer expires, the associated event must occur. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that holds a WML:ONEVENT element with its type attribute set to 'timer'. The card should also hold a WML:TIMER event with its VALUE attribute set to say '1'. When the timer expires a script could be called to verify that the event occurred.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/2
Class: A
Text: When a card is entered and a WML:ONEVENT elements TYPE attribute is set to 'enterforward', the associated event must occur. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that sets a variable and then automatically navigates to a script when a card is entered.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/3
Class: A
Text: When a card is entered via backward navigation (e.g. a WML:PREV task), and an ENTERBACKWARD event handler is set, the associated event must occur. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that navigates to a second card. In the second card, set a WML:PREV, and then navigate back to the first card, that has a WML:ONEVENT element with a TYPE attribute set to 'enterbackward'. The event handler should set a variable and navigate to a third card, that verifies success to the user.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/4
Class: A
Text: When an OPTION element contains a WML:ONEVENT element with the TYPE attribute set to 'pick', and the option is chosen, the event must be processed. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that holds a OPTION element with a PICK event handler set to navigate to a card when it is chosen. Display the card, choose the associated option, and make sure that the user agent navigates to the second card.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/5
Class: A
Text: When a WML:CARD element has its ONTIMER attribute set to a URL, when the timer expires the user agent must automatically navigate to the given URL. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that sets the ONTIMER attribute of the WML:CARD element to go to a defined url when it expires.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/6
Class: A
Text: When a WML:CARD element has its ONENTERFORWARD attribute set to a URL, and the card is entered, the user agent must automatically navigate to the given URL. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that sets the ONENTERFORWARD attribute of the WML:CARD element to go to a script when the card is entered via forward navigation.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/7
Class: A
Text: When a WML:CARD has its ONENTERBACKWARD attribute set to a URL, and the card is entered via backward navigation, the user agent must navigate to the URL stated. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that that contains a link that navigates to a second card, and in the second card, a link to navigate to a third card. In the third card, set the WML:PREV element within a WML:ONEVENT element, that will navigate back to the second card. The second card must also contain a ONENTERBACKBARD attribute that navigates back to card1. Make sure that the first card is reached at the end of the cycle.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/8
Class: A
Text: When an OPTION element contains a WML:ONPICK attribute set to a URL, and the option is chosen, the event must be processed. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card that holds an OPTION element with a WML:ONPICK attribute set to navigate to a card when it is chosen. Display the card, choose the associated option, and make sure that the user agent navigates to the second card.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/9
Class: A
Text: When the user agent handles an event, it must treat the attribute syntax as an abbreviated form of the WML:ONEVENT element, where the attribute name is mapped to the TYPE attribute of the WML:ONEVENT element. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card c1 wtih an ONENTERFORWARD attribute pointing to a card c2. The card c2 will have an ONENVENT element with enterforward as value of its TYPE attribute. Make sure that the same behaviour happens for both events.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/10
Class: A
Text: When an event binding is used, it must be scoped to the element in which it is declared. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a document with at least two cards. Both cards should hold a timer event handler, and both cards should hold a WML:TIMER element which could be set to '5' seconds. Each WML:ONEVENT element could also be set to go to different cards. Display both cards, and make sure that the timer event only occurs for the card that holds the event binding.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/11
Class: A
Text: When an event binding element specifies an event type that does not apply to its parent element, the user agent must ignore the event binding. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card and insert a WML:ONEVENT element, with it's TYPE attribute set to 'pick', within a WML:CARD element. Make sure that the user agent ignores the event binding by not executing the task.

ID: wml2/uabehaviour/eventmodel/eventbindings/typedevents/12
Class: A
Text: When conflicting event bindings are used within an element, they must be treated as an error. [Wireless Markup Language version 2 Specification section 5.6.3.1]
Note: Create a card with two ENTERFORWARD event bindings within the same scope. Each event binding must set a variable that the card will display. Display the card and make sure that neither variable is set.

5.6.3.2 Bindings for Untyped Events

ID: wml2/uabehaviour/eventmodel/eventbindings/untypedevents/1
Class: A
Text: When the WML:DO element is used, the only way to bind a task to the associated event is to place the task element within the WML:DO element. [Wireless Markup Language version 2 Specification section 5.6.3.2]
Note: Create a card that holds a WML:GO element within a WML:DO element, and set the WML:DO elements TYPE attribute to 'accept'. Make sure that the result are sent to the server.

5.6.3.3 Event Binding Scope

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/1
Class: A
Text: When a card level binding is set, the binding must appear inside a WML:CARD element and specify event-processing behaviour for that particular card. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a document that contains a card that in turn contains a WML:ONEVENT element with its type attribute set to ENTERFORWARD. The WML:ONEVENT element could contain a WML:GO element sending a variable to the server, which will validate the value.

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/2
Class: A
Text: When a document level binding is set, the binding must appear inside the HTML element and specify event-processing behaviour for each card in the document. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a document with two cards. Set a WML:ONEVENT element at document level, that holds a WML:GO element, to go to a card (card3) of another document. Go to card1 and card2, and make sure that each time, you are brought directly to card3.

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/3
Class: A
Text: When a document holds an event binding at both document level and card level, the card level event binding must override the document level event binding. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a document with two cards. Set a WML:ONEVENT element with the TYPE attribute set to 'enterforward' at document level, that holds a WML:GO element, to go to a card (card3) of another document. Set as well a WML:ONEVENT with the TYPE attribute set to 'enterforward' at card level and of both cards, holding a WML:GO element, to go to a card card4. Go to card1 and card2, and make sure that each time, you are brought directly to card4 and never reach card3.

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/4
Class: A
Text: When a card level-binding shadows a document-level binding, and the card-level binding specifies the NOOP task, the event binding for that event must be completely masked. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a document with two cards. Set a WML:ONEVENT element with the TYPE attribute set to 'enterforward' at document level, that holds a WML:GO element, to go to a card (card3) of another document. Set as well a WML:ONEVENT with the TYPE attribute set to 'enterforward' at card level and of both cards, holding a WML:NOOP element. Go to card1 and card2, and make sure that each time, you are brought directly to card3.

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/5
Class: A
Text: When a card-level binding specifies a NOOP task but does not override another binding, then the binding for that event must be masked and similarly ignored with no side effects. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a card with an ENTERFORWARD event binding with a NOOP task and display the card. The card should be displayed without side effects.

ID: wml2/uabehaviour/eventmodel/eventbindings/shadowing/6
Class: A
Text: When a document-level binding specifies a NOOP task but does not override and is not overridden by another binding, then the binding for that event must be masked and similarly ignored with no side effects. [Wireless Markup Language version 2 Specification section 5.6.3.3]
Note: Create a document with an ENTERFORWARD event binding with a NOOP task and display a card within that document. The card should be displayed without side effects.

5.7 Identification of Document Types

There are no testable assertions in this section.

5.8 Common User Agent Behaviour depending on type of Elements

There are no testable assertions in this section.

5.8.1 Activation of Elements using Access Keys

Assertions on -wap-accesskey are covered in WCSS specification. It is assumed the user agent conforms to the W3C XHTML recommendations and normative references.

There are no testable assertions in this section.

5.9 The Back Key

Further assertions on this subject can be found in section 5.3.2

ID: wml2/uabehaviour/backkey/1
Class: A
Text: The WML2 user agent must provide the end user access to a back key at all times. [Wireless Markup Language version 2 Specification section 5.9]
Note: Create a document with at least two cards. Navigate to the second card, then navigate back using the back key.

ID: wml2/uabehaviour/backkey/2
Class: A
Text: When the back key is activated by the end user, the user agent must execute a prev task. [Wireless Markup Language version 2 Specification section 5.9]
Note: Create a document with at least two cards. Navigate to the second card. then navigate back using the back key and make sure that you return to the first card.

5.10 Navigation User Interface Using the wml:do Element

ID: wml2/uabehaviour/navuiwmldo/1
Class: A
Text: When the user activates a WML:DO element, the user agent must execute the associated task. [Wireless Markup Language version 2 Specification section 5.10]
Note: Create a card that holds the WML:DO element, with it's TYPE attribute set to 'accept'. The WML:DO element will have WML:GO element sending the results to the server.

5.10.1 Processing the role attribute

There are no testable assertions in this section.

5.10.2 Overriding the BACK key using the wml:do element

ID: wml2/uabehaviour/navuiwmldo/overridebackkey/1
Class: A
Text: When the WML:DO element's TYPE attribute is set to 'prev', and the default presentation is selected, the user agent must override the default behavior of the BACK key with the task associated with the WML:DO element. [Wireless Markup Language version 2 Specification section 5.10.2]
Note: Create a card that holds a WML:DO element, with it's TYPE attribute set to 'prev'. Within the WML:DO element use the WML:GO element to go to a second card. Call the card and then press the back button and make sure you are taken to the second card.

ID: wml2/uabehaviour/navuiwmldo/overridebackkey/2
Class: A
Text: When there is more than one WML:DO element with it's TYPE attribute is set to 'prev', the first WML:DO element in the document order must override the BACK key. [Wireless Markup Language version 2 Specification section 5.10.2]
Note: Create a card that holds two WML:DO element(set one after the other), with their TYPE attribute set to 'prev'. Within both WML:DO elements use a WML:GO element, each going to a different card. Call the card and then press the back button and make sure you are taken to the card set in the first WML:DO element.

5.10.3 The Widget Selection Alogrithm

There are no testable assertions in this section.

5.10.4 Widget Types

There are no testable assertions in this section.

5.10.5 Widget Label

There are no testable assertions in this section.

5.10.6 Default Presentation of the wml:do Element

Assertions on this subject can be found in section/subsections of 5.9

There are no testable assertions in this section.

5.10.7 Access Keys in Widget Selection

There are no testable assertions in this section.

5.11 Timer Processing

It is assumed the user agent conforms to the W3C XHTML recommendations and normative references.

ID: wml2/uabehaviour/timerprocessing/1
Class: A
Text: When a card is entered and the card contains a WML:TIMER element, the timer must be initialised and started. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card that contains a WML:GO element, within a WML:ONEVENT element(TYPE attribute set to 'timer'). The WML:GO element will send a variable to the server. Set the timer to '5' and make sure that the server receives the variable sent.

ID: wml2/uabehaviour/timerprocessing/2
Class: A
Text: When a timer is started, it must decrement from its initial value, triggering the delivery of a WML-ONTIMER event on transition from a value of one to zero. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card that holds a WML:EVENT binding, with its TYPE attribute set to 'timer', that will navigate to a second card indicating timer expiration. The first card should also include a WML:TIMER element its NAME and VALUE(set to '5') attributes set. Display the card, and make sure when you are taken to the second card, that the value of the timer variable is '0'.

ID: wml2/uabehaviour/timerprocessing/3
Class: A
Text: When a timer is running within a card, and the timer expires before the user exits the card, a TIMER event must occur. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card that contains a WML:TIMER element set to a value of say five seconds. The card should also contain a WML:ONEVENT element with it's TYPE attribute set to 'timer'. When the event occurs a script could be called.

ID: wml2/uabehaviour/timerprocessing/4
Class: A
Text: When a WML:TIMER element's VALUE attribute is not set to a positive number, the user agent must ignore the WML:TIMER element. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card that contains a WML:TIMER element set to a value of '-5' seconds. The card should also contain a TIMER event handler that will take the user to a second card indicating failure of the test if it occurs.

ID: wml2/uabehaviour/timerprocessing/5
Class: A
Text: When a refresh task is invoked while a timer is running, the task must stop the timer, commit it's value to the context, and update the user agent accordingly. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card with a WML:TIMER set to '600' seconds, and a WML:DO element that will invoke a refresh task. The card must also display the timer variable(when set). Display the card then press the refresh button. The value of the timer variable should be displayed.

ID: wml2/uabehaviour/timerprocessing/6
Class: A
Text: When a refresh task is invoked while a timer is running, on completion of the refresh task, the user agent must treat it as an entry to a card and the timer must be restarted. [Wireless Markup Language version 2 Specification section 5.11]
Note: Create a card(c1) that holds a WML:ONEVENT element set to 'timer', that contains a WML:GO element, that sets a variable and then navigates to a second card that displays the variable. The card(c1) should also hold a WML:TIMER element with its VALUE attribute set to say '150', and a WML:DO task that holds a WML:REFRESH element that will refresh the card. Display the card(c1), wait for '10' seconds and then refresh it. The timer should now restart, which means that navigation to the second card will not take place until another '15' seconds.

5.12 Acceptance of XHTML Basic

There are no testable assertions in this section.

5.13 User Agent Conformance Rules

It is assumed the user agent conforms to the W3C XHTML recommendations and normative references.

ID: wml2/uabehaviour/uaconformance/1
Class: A
Text: When a user agent encounters an element it does not recognize, it must continue to process the children of that element. [Wireless Markup Language version 2 Specification section 5.13]
Note: Create an WML:ONEVENT with its TYPE attribute set to 'enterforward' inside a bogus element. The WML:ONEVENT element shall send a variable to the server. Make sure that the server receives the variable.

ID: wml2/uabehaviour/uaconformance/2
Class: A
Text: When a user agent encounters an element it does not recognize, and that element contains content that is text, the text must be presented to the user. [Wireless Markup Language version 2 Specification section 5.13]
Note: Create a card that contains text within the content of an undefined element. Call the card and make sure the text is displayed to the user.

ID: wml2/uabehaviour/uaconformance/3
Class: A
Text: When a user agent encounters an attribute it does not recognize, it must ignore the entire attribute specification(i.e. the attribute and it's value). [Wireless Markup Language version 2 Specification section 5.13]
Note: Create a card that contains a WML:ONEVENT element that sets a variable using the WML:POSTFIELD element. The WML:POSTFIELD element should contain an attribute that the user agent does not recognize. Make sure that the variable is sent to the server.

ID: wml2/uabehaviour/uaconformance/4
Class: A
Text: When a user agent encounters an attribute value it does not recognize, it must use the default attribute value(if there is one for that element). [Wireless Markup Language version 2 Specification section 5.13]
Note: Create a card that sets a variable on entry. The card could also contain a link to a second card. The second card could set the NEWCONTEXT attribute to an unrecognisable value(e.g. new context="blah"). The second card could also contain a WML:GETVAR element to display the variable set in the first card. Display the first card, click the link and make sure you are taken to the second card, and that the variable set in the first card is displayed. Thus implying the NEWCONTEXT attribute defaulted to 'false'.

6 WML2 Markup Elements and Attributes

There are no testable assertions in this section.

6.1 XHTML Basic and Extensions

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.2 The Structure Module

There are no testable assertions in this section.

6.2.1 The body Element

ID: wml2/markup/structuremodule/bodyelement/1
Class: A
Text: When a document is entered, and the WML:NEWCONTEXT attribute is set to 'true', the user agent context must be initialised. [Wireless Markup Language version 2 Specification section 6.2.1]
Note: Create a document that sets a variable upon entry and then navigates to a second document that has the WML:NEWCONTEXT attribute (within a BODY element) set to 'true'. The second document could then automatically navigate to a script that checks the value of the variable. Make sure that the variable is not set.

6.2.2 The html Element

There are no testable assertions in this section.

6.2.3 The wml:card Element

ID: wml2/markup/structuremodule/wmlcardelement/1
Class: A
Text: When a document is constructed, multiple WML:CARD's must be allowed. [Wireless Markup Language version 2 Specification section 6.2.3]
Note: Create a document with two WML:CARD's. Display the first card, then navigate to the second.

ID: wml2/markup/structuremodule/wmlcardelement/2
Class: A
Text: When a document is constructed, each WML:CARD in the document must represent an individual presentation and/or interaction with the user. [Wireless Markup Language version 2 Specification section 6.2.3]
Note: Create a document with two WML:CARD's. Display the first card, then navigate to the second. Make sure only one card is visible at a time.

ID: wml2/markup/structuremodule/wmlcardelement/3
Class: A
Text: When a card is entered, and the NEWCONTEXT attribute is set to 'true', the user agent must reinitialise the browser context. [Wireless Markup Language version 2 Specification section 6.2.3]
Note: Create a card that sets a variable upon entry and then navigates to a second card that has the NEWCONTEXT attribute(within a WML:CARD element) set to 'true'. The second card could then automatically navigate to a script that checks the value of the variable. Make sure that the variable is not set.

6.3 Text Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.3.1 The p Element

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.4 Hypertext Module

There are no testable assertions in this section.

6.5 Forms Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.5.1 The Select Element

Further assertions on this subject can be found in section 5.4.3.2

There are no testable assertions in this section.

6.5.2 The Input Element Format Attributes

There are no testable assertions in this section.

6.5.2.1 The wml:format Attribute

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/1
Class: A
Text: When using a text input control, the WML:FORMAT attribute must specify an input mask for the control. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*A'. Display the card and enter '9eadke', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using uppercase characters and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/2
Class: A
Text: When processing a text input control that contains a WML:FORMAT attribute, the user agent must ignore invalid masks. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '!@'. Display the card and enter a string with a variety of characters and make sure that when committed, the user agent accepts the input.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/3
Class: A
Text: When using a text input control, the user agent must be able to support ASCII graphic characters of the Unicode Basic Latin block. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control. Display the card and enter a range of characters (e.g.'~<>?!etA*&'), then commit the input. Make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/4
Class: A
Text: When the WML:FORMAT attribute of the INPUT element is specified as "*A", the text input must be limited to upper-case letters, symbols or punctuation characters. Numeric characters are excluded. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*A'. Display the card and enter '9eadke', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using uppercase characters and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/5
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "*a", the text input must be limited to lower-case letters, symbols or punctuation characters. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*a'. Display the card and enter '9EADKE', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using lowercase characters and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/6
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "*N", the text input must be limited to numeric characters. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*N'. Display the card and enter 'EADKE', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using numeric characters and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/7
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "*n", the text input must be limited to numeric, symbol, or punctuation characters. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*n'. Display the card and enter 'EADKE', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using a mix of numeric, sumbol, and punctuation characters and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/8
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "*X", the text input must be limited to uppercase letters, numeric characters, symbols, or punctuation characters. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*X'. Display the card and enter 'abcde', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using a mix of uppercase letters, numeric characters, symbols, and punctuation characters, and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/9
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "*x", the text input must be limited to lowercase letters, numeric characters, symbols, or punctuation characters. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*x'. Display the card and enter 'ABCDE', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string using a mix of lowercase letters, numeric characters, symbols, and punctuation characters, and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/10
Class: B
Text: When the FORMAT attribute of the INPUT element is specified as "", the text input must belong to the language-specific class. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Untestable as it is vendor-specific or user agent specific.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/11
Class: A
Text: When the FORMAT attribute of the INPUT element is specified as "nf", where n must be a natural number and f is one of the format characters "aANXx", the number of input characters is limited to n and the type is limited to f. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '3N'. Display the card and enter '1234', then commit the input. Make sure that the control rejects the input and resets the control. Re-input a string of numeric characters(up to 3 digits) and make sure that the input is accepted and the variable set.

ID: wml2/markup/formsmodule/inputelementformat/wmlformatattribute/12
Class: A
Text: When the FORMAT attribute of the INPUT element contains a backslash "\" followed by a character c, that character must be displayed in the input field at the position indicated. [Wireless Markup Language version 2 Specification section 6.5.2.1]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to 'NNNNN\-3N'. Set the VALUE attribute to '12345-678'. Display the card and make sure that the control displays the control with the value initialised to the value of the variable.

6.5.2.2 The wml:emptyok Attribute

ID: wml2/markup/formsmodule/inputelementformat/wmlemptyokattribute/1
Class: A
Text: When WML:EMPTYOK is true, input is not required even if the format mask would otherwise require it. [Wireless Markup Language version 2 Specification section 6.5.2.2]
Note: Create a card that holds a text input control, set the WML:EMPTYOK attribute to 'true', and set the WML:FORMAT attribute to '4A'. Display the card leave the control empty, and commit it. Make sure that the user agent accepts the empty string.

ID: wml2/markup/formsmodule/inputelementformat/wmlemptyokattribute/2
Class: A
Text: When EMPTYOK is false, input is required even if the format mask would otherwise not require it. [Wireless Markup Language version 2 Specification section 6.5.2.2]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*A'. Display the card leave the control empty, and commit it. Make sure the user agent does not accept the non-value.

ID: wml2/markup/formsmodule/inputelementformat/wmlemptyokattribute/3
Class: A
Text: When a FORMAT attribute of the INPUT elmement is specified such that it requires input, e.g. "M*M", and the WML:EMPTYOK attribute is not specified, the FORMAT attribute must fully define the input requirement(the user agent must treat the WML:EMPTYOK as the implied value of 'false'). [Wireless Markup Language version 2 Specification section 6.5.2.2]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to 'M*M'. Display the card, leave the control empty, and commit it. Make sure the user agent does not accept the non-value and re-displays the card.

ID: wml2/markup/formsmodule/inputelementformat/wmlemptyokattribute/4
Class: A
Text: When the FORMAT attribute of the INPUT element is specified such that it allows empty input, e.g. "*f", and the WML:EMPTYOK attribute is not specified, the format attribute must fully define the input requirement(the user agent must treat the WML:EMPTYOK as the implied value of 'true'. [Wireless Markup Language version 2 Specification section 6.5.2.2]
Note: Create a card that holds a text input control and set the WML:FORMAT attribute to '*M'. Display the card leave the control empty, and commit it. Make sure the user agent accepts the non-value.

6.5.3 The wml:name Attribute

Further assertions on this subject can be found in section 5.4.3.2

There are no testable assertions in this section.

6.5.4 The accesskey Attribute

There are no testable assertions in this section.

6.5.5 The wml:onpick Attribute

There are no testable assertions in this section.

6.6 Tables Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.6.1 The Table Element

ID: wml2/markup/tablemodule/tableelement/1
Class: B
Text: When the user agent chooses to render tables in a traditional tabular manner, the user agent must use a non-zero width gutter to separate each non-empty column. [Wireless Markup Language version 2 Specification section 6.6.1]
Note: Untestable as it is not specified what will happen when the error occurs.

6.7 Lists Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.8 Image Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.8.1 The img Element

ID: wml2/markup/imagemodule/imgelement/1
Class: B
Text: When the IMG element is used, and the WML:LOCALSRC attribute specifies an alternative internal representation for an image, this internal image must be used. [Wireless Markup Language version 2 Specification section 6.8.1]
Note: Q."How is it possible to use/set an internal representation of an image." A."the user agent should declare which localsrc's are supported". How does the user agent declare this, and how is the WML:LOCALSRC set(what value is used)?

ID: wml2/markup/imagemodule/imgelement/2
Class: A
Text: When the IMG element is used, and there is no internal representation for the image, the image must be downloaded from the URI specified in the SRC attribute. [Wireless Markup Language version 2 Specification section 6.8.1]
Note: Create a card that contains an IMG element. Set the WML:LOCALSRC attribute value to a value that does not exist, and the SRC attribute to a value that does. Display the card and make sure the image is displayed.

6.9 Metainformation Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.9.1 The meta Element

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references. The only test assertion would have been to cover the WML:FORUA attribute, but this has been marked as deprecated.

There are no testable assertions in this section.

6.10 Link Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.11 Base Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.12 Object Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.13 Stylesheets Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.14 Presentation Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.15 Events Module

It is assumed the user agent conforms to the W3C XHTML Basic recommendations and normative references.

There are no testable assertions in this section.

6.15.1 The wml:onevent Element

Further assertions on this subject can be found in section 5.6.3.1

ID: wml2/markup/eventsmodule/wmloneventelement/1
Class: A
Text: When a WML:ONEVENT element is used, it must be scoped to the element in which it is declared. [Wireless Markup Language version 2 Specification section 6.15.1]
Note: Create a document with at least two cards. The both cards should hold a WML:ONEVENT element set to 'timer'. Display both cards, and make sure that the timer only executes for the card that holds the event binding.

ID: wml2/markup/eventsmodule/wmloneventelement/2
Class: A
Text: When the WML:ONEVENT element is used and the TYPE attribute does not correspond to a legal event for the immediately enclosing element, the user agent must ignore the WML:ONEVENT element. [Wireless Markup Language version 2 Specification section 6.15.1]
Note: Create a card and insert a WML:ONEVENT element with its TYPE attribute set to an unknown type. Make sure that the user agent ignores the event binding by not executing the task.

6.16 Context and Navigation Module

There are no testable assertions in this section.

6.16.1 The wml:anchor Element

ID: wml2/markup/contextandnav/wmlanchorelement/1
Class: A
Text: When the user activates the WML:ANCHOR element, the user agent must execute the associated task. [Wireless Markup Language version 2 Specification section 6.16.1]
Note: Create a card with that contains the WML:ANCHOR element, which contains a WML:GO element. Display the card, make sure the link is visable and that when clicked, it takes you to a second card.

ID: wml2/markup/contextandnav/wmlanchorelement/2
Class: B
Text: When the WML:ANCHOR element is used, it must not be placed within a OPTION element. [Wireless Markup Language version 2 Specification section 6.16.1]
Note: Untestable as it is not stated what will happen if a WML:ANCHOR element is placed within a OPTION.

ID: wml2/markup/contextandnav/wmlanchorelement/3
Class: A
Text: When the WML:ANCHOR element is used, the user agent must accept the WML:ANCHOR element anywhere within the text flow. [Wireless Markup Language version 2 Specification section 6.16.1]
Note: Create a card with several WML:ANCHOR elements within the flow of the text. Make sure all anchors are displayed.

ID: wml2/markup/contextandnav/wmlanchorelement/4
Class: B
Text: When the WML:ANCHOR element is used, there must be one and only one task element(e.g. WML:GO, WML:PREV, or WML:REFRESH) within it. [Wireless Markup Language version 2 Specification section 6.16.1]
Note: Untestable as it is not stated what will happen when an error occurs.

6.16.2 The wml:access Element

ID: wml2/markup/contextandnav/wmlaccesselement/1
Class: B
Text: When more than one WML:ACCESS element is used in a document, an error must occur. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Untestable as it is not stated what error will occur and how the user agent will handle it.

ID: wml2/markup/contextandnav/wmlaccesselement/2
Class: A
Text: When a document does not contain a WML:ACCESS element, access control must be disabled. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card containing a link to a simple card and make sure that the message is displayed when called.

ID: wml2/markup/contextandnav/wmlaccesselement/3
Class: A
Text: When the WML:ACCESS element is used, and the DOMAIN attribute is set, the entire element of each sub-domain must match each element exactly(e.g., www.wapforum.org shall match wapforum.org). [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card containing a WML:ACCESS element and set the DOMAIN attribute to a value that partly matches the domain of the server to be accessed(e.g. set attribute to forum.org for a domain named wapforum.org). Call the card and make sure access is denied. Repeat the test with a full domain name, and make sure that access is allowed.

ID: wml2/markup/contextandnav/wmlaccesselement/4
Class: A
Text: When the WML:ACCESS element is used, and the PATH attribute is set, the entire path elements must match each element exactly to gain access(e.g., /X/Y matches path="/X attribute, but does not match path="/XZ" attribute). [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card containing a WML:ACCESS element and set the PATH attribute to a path that does not match the path of the document to be entered. Call the card and make sure access is denied. Repeat the test with a matching path and make sure access is gained.

ID: wml2/markup/contextandnav/wmlaccesselement/5
Class: A
Text: When the WML:ACCESS element is used without specifying the DOMAIN attribute, the DOMAIN attribute must default to the current document's domain. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card with the WML:ACCESS element, set the PATH attribute, but do not specify the DOMAIN attribute. Call the card and make sure access is granted.

ID: wml2/markup/contextandnav/wmlaccesselement/6
Class: A
Text: When the WML:ACCESS element is used without specifying the PATH attribute, the PATH attribute must default to the value '/'. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card with the WML:ACCESS element, set the DOMAIN attribute, but do not specify the PATH attribute. Call the card and make sure access is granted.

ID: wml2/markup/contextandnav/wmlaccesselement/7
Class: A
Text: When the WML:ACCESS element is used, and the PATH attribute is set to a relative URI, and the URI matches the path to be accessed (once the user agent has converted the relative URI into an absolute path), the user agent must allow access to the destination requested. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card containing a WML:ACCESS element and set the PATH attribute to a relative URI that does not exist. Display the card and make sure access is denied. Repeat the test with a relative URI that is within the same root directory as the card to be accessed. Make sure that access is achieved.

ID: wml2/markup/contextandnav/wmlaccesselement/8
Class: A
Text: When the WML:ACCESS element is used, and the DOMAIN and PATH attribute are set, the user agent must verify that the referring document's URI matches the values of the attributes. [Wireless Markup Language version 2 Specification section 6.16.2]
Note: Create a card containing a WML:ACCESS element and set the DOMAIN and PATH attributes to a path that does not match the path of the document to be entered. Call the card and make sure access is denied. Repeat the test with a matching domain and path and make sure access is gained.

6.16.3 The wml:do Element

For further details of widget control processing with the WML:DO, see section 5.10 Further assertions on the ROLE attribute can be found in section 5.10.1

There are no testable assertions in this section.

6.16.4 The wml:widget Element

Assertions on the WML:WIDGET element can be found in section 5.10.3

There are no testable assertions in this section.

6.16.5 The wml:go Element

ID: wml2/markup/contextandnav/wmlgoelement/1
Class: A
Text: When the SENDREFERER attribute of the WML:GO element is set to true, the user agent must send the URL of the deck containing this task to the server. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card that contains the WML:GO element within the ENTERFORWARD event binding. The WML:GO attributes SENDREFERER attribute must be set to 'true'. Call the card and make sure that when the event happens the URI is sent to the server.

ID: wml2/markup/contextandnav/wmlgoelement/2
Class: B
Text: When the ACCEPT-CHARSET attribute of the GO element is specified as a list of comma- or space-separated character encoding names as specified in RFC2045 and RFC2616, the server will accept submissions in any of the encodings specified. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Not testable as it is impossible to define a list that every gateway must support.

ID: wml2/markup/contextandnav/wmlgoelement/3
Class: A
Text: When the cache-control attribure is present within the WML:GO element and its CACHE-CONTROL attribute value is set to "no-cache", the client must reload the URL from the origin server. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card that contains the WML:GO element, within an ENTERFORWARD event binding, then call a second card that display's the current time. Call the card, make sure the time is noted, then refresh the card. Make sure the second time is greater than the first.

ID: wml2/markup/contextandnav/wmlgoelement/4
Class: A
Text: When the cache-control attribute is present within the WML:GO element, the HTTP cache-control header must be added to the request with the same value as specified in the attribute. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card that contains the WML:GO element within the ENTERFORWARD event. Set the WML:GO attributes CACHE-CONTROL attribute to 'no-cache'. Call the card and make sure that when the event happens the CACHE-CONTROL header is sent to the server and it contains the value set by the attribute.

ID: wml2/markup/contextandnav/wmlgoelement/5
Class: B
Text: When the TYPE attribute of the WML:GO element is specified it must supply a hint to the content type of the content available at the link target address. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: This is untestable as the type attribute is only specified as a hint to the user agent what the content type at the given location is. It is up to the user agent how it handles this attribute, so can not be tested.

ID: wml2/markup/contextandnav/wmlgoelement/6
Class: A
Text: When the WML:GO element is specified, it must declare a GO task, indicating navigation to a URI. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card that contains the WML:GO element within the ENTERFORWARD event. Call the card and make sure you are automatically navigated to the resource stated in the WML:GO element.

ID: wml2/markup/contextandnav/wmlgoelement/7
Class: A
Text: When the WML:GO element's HREF attribute names a WML card, the user agent must display the destination card. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card that contains the WML:GO element within an ENTERFORWARD event binding. Call the card and make sure you are automatically navigated to the resource stated in the WML:GO element, and the card is displayed.

ID: wml2/markup/contextandnav/wmlgoelement/8
Class: B
Text: When the WML:GO element contains one or more WML:POSTFIELD elements, and the URI stated in the WML:GO element specifies a card in the same document, the user agent must ignore the WML:POSTFIELD elements. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Untestable as it is not possible to check for parameters when navigating from one card to the next in the same document.

ID: wml2/markup/contextandnav/wmlgoelement/9
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', all field names and values sent must be escaped using URI-escaping and assembled into an application/x-www-form-urlencoded content type. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'get' and the ENCTYPE attribute to 'application/vnd.wap.wml.form.urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, set it's NAME attribute value to '$$' and it's VALUE attribute to '??'. Make sure when the task is executed, the values sent to the server are URL-encoded (e.g. Name = '%24%24', Value = '%3F%3F').

ID: wml2/markup/contextandnav/wmlgoelement/10
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', the WML:POSTFIELD element is used to name a field, and the value of the WML:POSTFIELD's VALUE attribute references the control variable for a multiple-selection control, the field VALUE must be submitted as a semicolon-separated list of assigned values. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'get' and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded'. The card should also contain two OPTION elements within a SELECT element, already selected. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element, and the value of the control variables/s must be sent by using the WML:POSTFIELD element within the WML:GO element (e.g. wml:postfield="y" value="$(control_variable)"). Call the card, check that the options have been pre-selected and make sure when the task is executed, one name, and a semicolon separated list of values are sent(e.g. car=ford;alpha).

ID: wml2/markup/contextandnav/wmlgoelement/11
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', data sent to the server must be a valid query component with the original query part and the postfields combined. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'get'. The card should also contain three OPTION elements within each SELECT element(of which in this case there should be two). Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes & the multiple attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element. Set the URI of the WML:GO elements HREF attribute to contain one of the control variables (e.g. "http://www.example.com/app?x=$(x)"), and a WML:POSTFIELD element to contain the other control variable (e.g. wml:postfield name="y" value="$(y)"). Call the card, check that the options have been pre-selected and make sure when the task is executed, one name, and a semicolon separated list of values are sent (e.g. car=ford;alpha) for each control variable.

ID: wml2/markup/contextandnav/wmlgoelement/12
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', and the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', all field names and values sent must e escaped using URI-escaping and assembled into an application/x-www-form-urlencoded content type. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'get', and the ENCTYPE attribute to 'application/x-www-form-urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, set it's NAME attribute value to '$$' and it's VALUE attribute to '??'. Call the card and make sure when the task is executed, the values sent to the server are URL-encoded (e.g. Name = '%24%24', Value = '%3F%3F').

ID: wml2/markup/contextandnav/wmlgoelement/13
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', the WML:POSTFIELD element is used to name a field, and the value of the WML:POSTFIELD's VALUE attribute references the control variable for a multiple-selection control, the field value must be submitted as specified in [HTML4] where one name/value pair is included for each item in the list. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'get'. The card should also contain three OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. The control variable will be sent via the WML:POSTFIELD element (e.g. wml:postfield name="y" value="$(y)") which is held within the the WML:GO element. The WML:GO task could be executed by putting it within a WML:DO element. Call the card, check that the options have been pre-selected and make sure when the task is executed, a name/value pair for each selected option is sent(e.g. x=choice1&x=choice3).

ID: wml2/markup/contextandnav/wmlgoelement/14
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', and the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', data sent to the server must be a valid query component with the original query part and the postfields combined. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'get'. The card should also contain three OPTION elements within each SELECT element(of which in this case there should be two). Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes & the multiple attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element. Set the URI of the WML:GO elements HREF attribute to contain one of the control variables (e.g. "http://www.example.com/app?x=$(x)"), and a WML:POSTFIELD element to contain the other control variable (e.g. wml:postfield name="y" value="$(y)"). Call the card, check that the options have been pre-selected and make sure when the task is executed, one name, and a semicolon separated list of values are sent (e.g. car=ford&car=alpha) for each control variable.

ID: wml2/markup/contextandnav/wmlgoelement/15
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'get', and the ENCTYPE attribute is set to 'multipart/form-data', the user agent must ignore the WML:GO element. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'get', and the ENCTYPE attribute to 'multipart/form-data'. Within the WML:GO element include a WML:POSTFIELD element, and set NAME and VALUE attributes. The WML:GO task could be executed by putting it within a WML:DO element. Call the card and make sure when the do element is activated, the user agent ignores the task.

ID: wml2/markup/contextandnav/wmlgoelement/16
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', all field names and values sent must be escaped using URI-escaping and assembled into an application/x-www-form-urlencoded content type. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'post', and the ENCTYPE attribute to 'application/vnd.wap.wml.form.urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, set it's NAME attribute value to '$$' and it's VALUE attribute to '??'. The WML:GO task could be executed by putting it within a WML:DO element. Call the card and make sure when the task is executed, the values sent to the server are URL-encoded (e.g. Name = '%24%24', Value = '%3F%3F').

ID: wml2/markup/contextandnav/wmlgoelement/17
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', the WML:POSTFIELD element is used to name a field, and the value of the WML:POSTFIELD's VALUE attribute references the control variable for a multiple-selection control, the field VALUE must be submitted as a semicolon-separated list of assigned values. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'post'. The card should also contain two OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element, and the value of the control variables/s must be sent by using the WML:POSTFIELD element within the WML:GO element(e.g. wml:postfield="y" value="$(control_variable)"). Call the card, check that the options have been pre-selected and make sure when the task is executed, one name, and a semicolon separated list of values are sent(e.g. car=ford;alpha).

ID: wml2/markup/contextandnav/wmlgoelement/18
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', any submission data must be sent as the body of the HTTP POST request. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'post'. The card should also contain two OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes & the MULTIPLE attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element, and the value of the control variables/s must be sent by using the WML:POSTFIELD element within the WML:GO element (e.g. wml:postfield="y" value="$(control_variable)"). Call the card, check that the options have been pre-selected and make sure when the task is executed, one name, and a semicolon separated list of values are sent (e.g. car=ford;alpha) as the body of the HTTP POST request.

ID: wml2/markup/contextandnav/wmlgoelement/19
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/vnd.wap.wml.form.urlencoded', the CONTENT-TYPE header must include the CHARSET parameter to indicate the character encoding. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'post'. Within the WML:GO element include one WML:POSTFIELD element. Make sure when the task is executed, the CONTENT-TYPE header includes the CHARSET parameter to indicate the character encoding.

ID: wml2/markup/contextandnav/wmlgoelement/20
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', all field names and values sent must be escaped using URI-escaping and assembled into an application/x-www-form-urlencoded content type. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'post', and the ENCTYPE attribute to 'application/x-www-form-urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, set it's NAME attribute value to '$$' and it's VALUE attribute to '??'. Call the card and make sure when the task is executed, the values sent to the server are URL-encoded (e.g. Name = '%24%24', Value = '%3F%3F').

ID: wml2/markup/contextandnav/wmlgoelement/21
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', the WML:POSTFIELD element is used to name a field, and the value of the WML:POSTFIELD's VALUE attribute references the control variable for a multiple-selection control, the field value must be submitted as specified in [HTML4] where one name/value pair is included for each item in the list. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'post'. The card should also contain two OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element. Call the card, check that the options have been pre-selected and make sure when the task is executed, a name and value for each selected option is sent.

ID: wml2/markup/contextandnav/wmlgoelement/22
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', any submission data must be sent as the body of the HTTP POST request. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element and set the METHOD attribute to 'post'. The card should also contain two OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. The WML:GO task could be executed by putting it within a WML:DO element. Call the card, check that the options have been pre-selected and make sure when the task is executed, the submission data must be sent as the body of the HTTP POST request.

ID: wml2/markup/contextandnav/wmlgoelement/23
Class: B
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'application/x-www-form-urlencoded', the CONTENT-TYPE header must include the CHARSET parameter to indicate the character encoding when the part contains characters not in the US-ASCII character set. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Untestable as cannot determine what character set the data will be put into when it is not in the US-ASCII character set.

ID: wml2/markup/contextandnav/wmlgoelement/24
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'multipart/form-data', all field names and values sent must be encoded as a 'multipart/form-data' content type. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'post', and the ENCTYPE attribute to 'multipart/form-data'. Within the WML:GO element include a WML:POSTFIELD element, set it's NAME attribute value to '$$' and it's VALUE attribute to '??'. The WML:GO task could be executed by putting it within a WML:DO element. Call the card and make sure when the task is executed, the names and values are encoded as a 'multipart/form-data' content type.

ID: wml2/markup/contextandnav/wmlgoelement/25
Class: B
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'multipart/form-data', the CONTENT-TYPE header must include the CHARSET parameter to indicate the character encoding when the part contains characters not in the US-ASCII character set. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Untestable as cannot determine what character set the data will be put into when it is not in the US-ASCII character set.

ID: wml2/markup/contextandnav/wmlgoelement/26
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'multipart/form-data', any submission data must be sent as the body of the HTTP POST request. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'post' and the ENCTYPE attribute to 'multipart/form-data'. Within the WML:GO element include two WML:POSTFIELD element, set both NAME attribute values to 'car', one VALUE attribute to 'ford', and the other VALUE attribute to 'alpha'. The WML:GO task could be executed by putting it within a WML:DO element. Call the card and make sure when the task is executed, that the submission data is sent as the body of the HTTP POST request.

ID: wml2/markup/contextandnav/wmlgoelement/27
Class: A
Text: When the WML:GO element is specified, the METHOD attribute is set to 'post', and the ENCTYPE attribute is set to 'multipart/form-data', the WML:POSTFIELD element is used to name a field, and the value of the WML:POSTFIELD's VALUE attribute references the control variable for a multiple-selection control, the field value must be submitted as specified in [HTML4] where one part is included for each item in the list. [Wireless Markup Language version 2 Specification section 6.16.4]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'post' and the ENCTYPE attribute to 'multipart/form-data'. The card should also contain two OPTION elements within a SELECT element. Set the WML:VALUE attribute of the SELECT element to a semicolon-delimited list of two of the OPTION elements VALUE attributes and the MULTIPLE attribute to 'multiple'. Call the card, check that the options have been pre-selected and make sure, when the task is executed, one part for each selected option is included in the body.

6.16.6 The wml:noop Element

ID: wml2/markup/contextandnav/wmlnoopelement/1
Class: A
Text: When the WML:NOOP element is specified, no operation should be carried out when the task is called. [Wireless Markup Language version 2 Specification section 6.16.5]
Note: Create a card with a WML:TIMER element set to '5' seconds. The event should hold the WML:NOOP task. Call the card, and make sure that after 5 seconds, nothing happens.

6.16.7 The wml:prev Element

Assertions on the WML:PREV element can be found in section 5.3.2

There are no testable assertions in this section.

6.16.8 The wml:refresh Element

Assertions on the WML:REFRESH element can be found in section 5.3.4

There are no testable assertions in this section.

6.16.9 The wml:postfield Element

ID: wml2/markup/contextandnav/wmlpostfieldelement/1
Class: A
Text: When the WML:POSTFIELD is used, the NAME attribute must specify the field name. [Wireless Markup Language version 2 Specification section 6.16.8]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'get' and the ENCTYPE attribute to 'application/vnd.wap.wml.form.urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, and set it's NAME and VALUE attributes. Call the card and make sure when the task is executed, the values are sent to the server.

ID: wml2/markup/contextandnav/wmlpostfieldelement/2
Class: A
Text: When the WML:POSTFIELD is used, the VALUE attribute must specify the field value. [Wireless Markup Language version 2 Specification section 6.16.8]
Note: Create a card containing the WML:GO element, set the METHOD attribute to 'get' and the ENCTYPE attribute to 'application/vnd.wap.wml.form.urlencoded'. Within the WML:GO element include a WML:POSTFIELD element, and set it's NAME and VALUE attributes. Call the card and make sure when the task is executed, the values are sent to the server.

6.16.10 The wml:setvar Element

ID: wml2/markup/contextandnav/wmlsetvarelement/1
Class: A
Text: When the WML:SETVAR element is used, the NAME attribute must specify the name of the variable. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element. The event could call a script that checks the variable is set.

ID: wml2/markup/contextandnav/wmlsetvarelement/2
Class: A
Text: When the WML:SETVAR element is used, the VALUE attribute must specify the expression to evaluate and assign to the variable. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element that sets the NAME attribute to 'book' and the VALUE attribute to 'The Hobbit'. The card could then display the variable set.

ID: wml2/markup/contextandnav/wmlsetvarelement/3
Class: A
Text: When a WML:SETVAR element contains a NAME attribute that does not evaluate to a legal variable name, the element is ignored. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element. Set the NAME attribute to '12345'. The event could call a script that checks the variable has not been set.

ID: wml2/markup/contextandnav/wmlsetvarelement/4
Class: A
Text: When a WML:SETVAR element contains a VALUE attribute that does not evaluate to a legal expression at runtime, the element is ignored. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element. Set the VALUE attribute to $1123. The event could call a script that checks the variable has not been set.

ID: wml2/markup/contextandnav/wmlsetvarelement/5
Class: A
Text: When a WML:SETVAR element contains a NAME attribute and it's value is a variable expression, the user agent must correctly evaluate the variable expression specified. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card, which includes a WML:SETVAR element with it's NAME attribute set to the value of a previously set variable (e.g. wml:setvar name=$somevar value=toto) and goes to a next card. Display the variable name $somevar and make sure that the variable has been correctly set.

ID: wml2/markup/contextandnav/wmlsetvarelement/6
Class: A
Text: When a WML:SETVAR element contains a VALUE attribute and it's value is a variable expression, the user agent must correctly evaluate the variable expression specified. [Wireless Markup Language version 2 Specification section 6.16.9]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element with it's VALUE attribute set to the value of a previously set variable(e.g. wml:setvar name='varname' value=$somevar). The card could hold a WML:REFRESH task within a WML:ANCHOR element that will refresh the card/document and display the variables value. Call the card, refresh the display, and make sure the variable has been set (i.e. $varname should now hold the value of $somevar).

6.16.11 The wml:getvar Element

ID: wml2/markup/contextandnav/wmlgetvarelement/1
Class: A
Text: When the WML:GETVAR element is used, the required NAME attribute must specify the name of the variable whose value is the substitution text. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card with a ENTERFORWARD event binding, which includes a WML:SETVAR element. On the next card display the variable using the WML:GETVAR element and make sure the variable is shown.

ID: wml2/markup/contextandnav/wmlgetvarelement/2
Class: A
Text: When the WML:GETVAR element is used, and the variable is not set, the substitution text must be an empty string [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the WML:GETVAR element to display a variable that has not been set. Make sure that when the card is called, no text is displayed for the variable reference.

ID: wml2/markup/contextandnav/wmlgetvarelement/3
Class: A
Text: When the WML:GETVAR element is used, and the NAME attribute does not evaluate to a legal variable name, the substitution text must be a empty string. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that attempts to reference an illegal variable name using the WML:GETVAR element( wml:getvar name='1_23'. Display the card and make sure the variable is not shown.

ID: wml2/markup/contextandnav/wmlgetvarelement/4
Class: A
Text: When the WML:GETVAR element is specified, the user agent must replace the element with the substitution text. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card with a ENTERFORWARD event, which includes a WML:SETVAR element. The same card could also display the variable using the WML:GETVAR element. Display the card and make sure the variable is shown.

ID: wml2/markup/contextandnav/wmlgetvarelement/5
Class: A
Text: When the CONVERSION attribute of the WML:GETVAR element is specified, then it must specify the conversion to be applied to the value of the variable. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters (e.g. 'http://foo.com/%62%61%72'). The card should then display the variable using the WML:GETVAR element, with the CONVERSION attribute set to 'noesc'. Make sure the card does not change the string when displaying the variable.

ID: wml2/markup/contextandnav/wmlgetvarelement/6
Class: A
Text: When the CONVERSION attribute of the WML:GETVAR element is set to 'noesc', the user agent must not apply any escapement to the variable. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters (e.g. 'http://foo.com/%62%61%72'). The card should then display the variable using the WML:GETVAR element, with the CONVERSION attribute set to 'noesc'. Make sure the card does not change the string when displaying the variable.

ID: wml2/markup/contextandnav/wmlgetvarelement/7
Class: A
Text: When the CONVERSION attribute of the WML:GETVAR element is set to 'escape', the user agent must apply URL encoding to the string before using it in the current context. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters (e.g. 'http://foo.com'). The card should then display the variable using the WML:GETVAR element, with the CONVERSION attribute set to 'escape'. Make sure the card applies URL encoding to the string when displaying the variable (e.g. 'http%3A%2F%2Ffoo.com'.

ID: wml2/markup/contextandnav/wmlgetvarelement/8
Class: A
Text: When the CONVERSION attribute of the WML:GETVAR element is set to 'unesc', the user agent must must reverse URL encoding from the string before using it in the current context. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable that contains URL-encoded characters(e.g. 'http://foo.com/%62%61%72'). The card should then display the variable using the WML:GETVAR element, with the CONVERSION attribute set to 'unesc'. Make sure the card reverses the URL encoding within the string when displaying the variable (e.g. 'http://foo.com/bar'.

ID: wml2/markup/contextandnav/wmlgetvarelement/9
Class: A
Text: When the WML:GETVAR element is used, no substitution of elements must be possible. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable to '<hr />'. The card should then display the variable using the WML:GETVAR element. Make sure that there is no horizontal rule shown within the card.

ID: wml2/markup/contextandnav/wmlgetvarelement/10
Class: A
Text: When the WML:GETVAR element is used, no substitution of attributes must be possible. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable which holds a string value, which is a WML2.0 attribute (e.g. set 'x' to 'href="#card2"' for the a tag). Next use the WML:GETVAR element, and get the attribute in the a element. Call the card and make sure that the card2 is unreachable.

ID: wml2/markup/contextandnav/wmlgetvarelement/11
Class: A
Text: When the WML:GETVAR element references a variable, the user agent must not attempt to process the resulting string as XML markup. [Wireless Markup Language version 2 Specification section 6.16.10]
Note: Create a card that uses the ENTERFORWARD event to set a variable to '<hr />'. The card should then display the variable using the WML:GETVAR element. Make sure that the text is not converted into a element.

6.16.12 The wml:timer Element

ID: wml2/markup/contextandnav/wmltimerelement/1
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, it must define the name of the variable to be set with the value of the timer. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card (card2) with an ENTERFORWARD event binding that sets a variable to '50', and a TIMER event binding that will navigate to a second card indicating timer expiration. Card1 should also include a WML:TIMER element with the NAME attribute set to the same name as the variable already set, and the VALUE attribute set to '5000'. Display the card, and make sure you are taken to a second card after a period of 5 seconds.

ID: wml2/markup/contextandnav/wmltimerelement/2
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, the named variable must be used to set the timeout period upon timer initialisation. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card with an ENTERFORWARD event binding that sets a variable to '50', and a TIMER event binding that will navigate to a second card indicating timer expiration. Card1 will include a WML:TIMER element with the NAME attribute set to the same name as the variable already set, and the VALUE attribute set to '5000'. Make sure that the value set in the card1 overrides the default value of the card2, (e.g card2 will be displayed 5 seconds and after card1 will be displayed again.

ID: wml2/markup/contextandnav/wmltimerelement/3
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, the named variable must be set with the current timer value when the card is exited. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card contains a WML:EVENT element that contains a WML:NOOP element. The card should also include a WML:TIMER element with the NAME and VALUE(set to '5000') attributes set. The card should also contain a link to a second card that will display the variables value. Display the card, click the link without allowing the timer to expire, and make sure the value of the variable is greater than zero.

ID: wml2/markup/contextandnav/wmltimerelement/4
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, the named variable must be set to the value of '0' when the timer expires. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card that holds a WML:EVENT binding, with its TYPE attribute set to 'timer', that will navigate to a second card indicating timer expiration. The first card should also include a WML:TIMER element its NAME and VALUE(set to '50') attributes set. Display the card, and make sure when you are taken to the second card, that the value of the timer variable is '0'.

ID: wml2/markup/contextandnav/wmltimerelement/5
Class: A
Text: When the VALUE attribute of the WML:TIMER element is specified, it must hold the default value of the variable named in the NAME attribute. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card with a TIMER event binding that will navigate to a second card indicating timer expiration. The card should also include a WML:TIMER element with it's NAME attribute set to the name of a variable that does not exist, and it's VALUE attribute set to a value of '50'. Display the card, and make sure you are taken to a second card after a period of 5 seconds.

ID: wml2/markup/contextandnav/wmltimerelement/6
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, and the variable value is not already set, the variable must be set with the value of the VALUE attribute. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card with a TIMER event binding that will navigate to a second card indicating timer expiration. The card should also include a WML:TIMER element with it's NAME attribute set to the name of a variable that does not exist, and it's VALUE attribute set to a value of '50'. Display the card, and make sure you are taken to a second card after a period of 5 seconds.

ID: wml2/markup/contextandnav/wmltimerelement/7
Class: A
Text: When the NAME attribute of the WML:TIMER element is specified, and the variable value is already set, the VALUE attribute must be ignored. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card with an ENTERFORWARD event binding that sets a variable to '50', and a TIMER event binding that will navigate to a second card indicating timer expiration. Card1 should also include a WML:TIMER element with the NAME attribute set to the same name as the variable already set, and the VALUE attribute set to '5000'. Display the card, and make sure you are taken to a second card after a period of 5 seconds.

ID: wml2/markup/contextandnav/wmltimerelement/8
Class: A
Text: When the NAME attribute of the WML:TIMER element is not specified, the timeout is always initialised to the value specified in the VALUE attribute. [Wireless Markup Language version 2 Specification section 6.16.11]
Note: Create a card with a TIMER event binding that will navigate to a second card indicating timer expiration. Card1 should also include a WML:TIMER element with the VALUE attribute set to '50', and the NAME attribute not set. Display the card, and make sure you are taken to a second card after a period of 5 seconds.

6.17 Document Conformance

There are no testable assertions in this section.

7 Use of Style Sheets with WML2

WAP CSS assertions for this and further subsections are covered in the WCSS2 specification.

There are no testable assertions in this section.

7.1 Adding Style to WML2 Documents.

There are no testable assertions in this section.

7.2 The Default Style Sheet for WML2

There are no testable assertions in this section.