WSRP Conformance statements

Shared by: ajizai
Categories
Tags
-
Stats
views:
0
posted:
9/29/2012
language:
Unknown
pages:
58
Document Sample
scope of work template
							                                                                                                                    Co
                                             Co                                                                Re   nf
                                  Pr      Pr
                                      Po     ns                                                                po   ig                                                                                                                        Monitor between
                      Pa          io      od                                                                                                              Producer Testcase        Monitor between                Consumer Testcase
 #       Section           Line       rtl    u                   Conformance statement                         rt   ur Testcase Driver Portlet                                                                                               Consumer and User-          Cooperating User-Agent Notes or Alternatives
                      ge          rit     uc                                                                                                                   Driver            Consumer and Produer                  Driver
                                      et     m                                                                 ab   at                                                                                                                             Agent
                                   y      er
                                             er                                                                le   io
                                                                                                                    n

                                                                                                                        Need a portlet that                                                                                                                                                            Is this requirement on the
                                                   The Consumer MUST respect this new session scope                     requires transient state, so                             Verify that the consumer                                                                                              Portlet or the Producer?
CS001       3.5       12    6     M            X                                                               X    2
                                                   as described in section 6.1.1.                                       that a new SessionContext                                supplies a valid session ID                                                                                           Who really generates
                                                                                                                        is returned.                                                                                                                                                                   SessionIDs?
                                                   To supply the bookmarking and page refresh
                                                                                                                                                                                                                                                                                                       Reissue http get without
                                                   capabilities End-Users expect, the Consumer MAY                                                                                                                                          Observe navigational state
CS002       3.6       12   17                  X                                                                    U                                                                                                                                                                                  any cookies, report on
                                                   store this (navigational) state, or a reference to it, in                                                                                                                                in URLs
                                                                                                                                                                                                                                                                                                       bookmarkability
                                                   the URL.
                                                   This specification defines two kinds of persistent state
                                                   with each referred to via a handle that MUST remain                                                                           Verify that the handle does
CS003       3.6       12   31     L        X                                                                        5
                                                   invariant once the Producer supplies it to the                                                                                not change
                                                   Consumer:
                                                   The Consumer MUST NOT invoke operations on any                                                                                Verify that no request
                                                   Portlets within the context of the initiating request                                                                         messages appear in the                                                                  Need to have messages
CS004      3.10       13   33     L            X   from the client of the Consumer until either the receipt         2                                                            log between the request                                                                 identity end-user in order
                                                   of a response or the invocation of                                                                                            and the reply (assume                                                                   to test with multiple users
                                                   performBlockingInteraction() fails (e.g. times out).                                                                          only 1 user)

                                                   Since the transport layer is often used to store various
                                                   pieces of information (e.g. J2EE load balancing                                                                               I think this is saying that                                                             May be testable with a
                                                   depends on a session cookie and HTTP transport),                                                                              the same cookie must be                                                                 specialized Producer and
                                                   and these pieces of information often will pertain to a                                                                       passed to the                                                                           configurable set of end-
CS005      3.11       14    2     H            X   client session with the Consumer rather than the                 2                                                            MarkupInterface apis for                                                                user clients. Simulate
                                                   Consumer itself, Consumers that manage transport                                                                              the same end user client                                                                multiple users. Verify
                                                   layer issues, such as cookies, MUST return them to                                                                            session. Need dual                                                                      cookies in both message
                                                   the Producer only for subsequent invocations within                                                                           message logs for this.                                                                  logs.
                                                   the Markup Interface during the same client session.

                                                                                                                                                                                 Untestable. How can the
                                                                                                                                                                                 message log tell if the
                                                   Using HTTP as an example, if the Producer requires
                                                                                                                                                                                 producer needs cookies
                                                   such support of Consumers, it MUST indicate so by
CS006      3.12       14   19              X                                                                   X    U                                                            but neglected to set the
                                                   setting the requiresInitCookie metadata to a value
                                                                                                                                                                                 requiresInitCookie flag?
                                                   other than “none”.
                                                                                                                                                                                 Can check for cookie
                                                                                                                                                                                 errors being generated.
                                                   If the Producer set requiresInitCookie to a value other
                                                   than “none”, the Consumer MUST ensure the cookie is                                                                           Look for cookies in the                                                                 Required for user
CS007      3.12       14   20     H            X                                                                    2
                                                   properly supplied in subsequent requests for the End-                                                                         messages.                                                                               correlation
                                                   User.
                                                   Consumers and Producers SHOULD NOT rely on
CS008      5.1.1      16   18              X   X   receiving back any extensions passed to or returned              U                                                            Untestable
                                                   from an invocation.
                                                   Each such extension element carries a single child
                                                                                                                                                                                 Verify message contains
CS009      5.1.1      16   19     M        X   X   element which MUST declare its type using the                    5
                                                                                                                                                                                 type attribute
                                                   schema-defined “type” attribute.
                                                   We RECOMMEND extensions either be of type
                                                   xsd:string (where xsd stands for
                                                                                                                                                                                 Check for use of xsd:string
                                                   http://www.w3c.org/2001/XMLSchema) or be of a
CS010      5.1.1      16   20     L        X   X                                                               X    5                                                            or references into the
                                                   type defined in the Producer’s WSDL as this enables                                                                           WSDL types.
                                                   Consumers to prepare an appropriate
                                                   serializer/deserializer.
                                                   Consumers and Producers are NOT REQUIRED to
CS011      5.1.1      16   26              X   X   process information supplied using these extension               U                                                            Untestable
                                                   elements.
                                                   The Consumer MAY truncate longer handles to 255                                                     Send handle that is too
CS012      5.1.2      17    2     VL           X                                                               X    2
                                                   characters.                                                                                         long
                                                                                                                                                                                 Verify namespace
                                                   extensions: The extensions field MAY be used to
         5.1.6 +                                                                                                                                                                 declarations (i.e. do strict
CS013                 18   11     L        X       extend this structure. Extension elements MUST be           X    5
        many others                                                                                                                                                              schema validation of
                                                   from namespaces other than WSRP.
                                                                                                                                                                                 messages)
                                                   In addition to these fully specified Mime types, use of
                                                   “*” (indicates all Mime types are acceptable) and
CS014     5.1.10      19   19     L        X                                                                   X    5                                                            Are wildcards used?
                                                   type/* (where type includes things such as “text”)
                                                   from the HTTP definition MAY be specified.
                                                   For the fields this specification defines, the named
                                                   profile items a Portlet uses MUST all come from the
                                                   “Profile Name” column of the table found in section
                                                   11. Any use of additional userProfile items specified                Have portlet try to use bad
CS015     5.1.11      21    7     L        X       as available when the Consumer registered SHOULD                 3   profile names, and see if                                Any typos?
                                                   use the names the Consumer supplied. Any additional                  Producer catches it.
                                                   items specified SHOULD be interpreted by the
                                                   Consumer as additional items the Portlet could use if
                                                   the Consumer is able to supply the data.
                                                   If the Consumer uses a Portlet which specifies
                                                   usesMethodGet as ”true”, the Consumer MUST format                                                                                                                                                                     Have a portlet that sets
                                                   its URLs in a manner that keeps user-agents from
CS016     5.1.11      21   15     L            X                                                                    2                                                                                                                                                    this flag, check URLs at
                                                   throwing away information (see section 10.2.4 for a
                                                                                                                                                                                                                                                                         user-agent
                                                   description of the difficulties in using forms with
                                                   method=get).
                                                                                                                                                                                 Check flag from
                                                   For Portlets setting doesUrlTemplateProcessing to
                                                                                                                                                                                 PortletDescription against
CS017     5.1.11      21   46     H            X   “true”, Consumers MUST provide the URL writing                   2
                                                                                                                                                                                 presence of templates in
                                                   templates and namespacePrefix field.
                                                                                                                                                                                 RuntimeContext+J48

                                                   Note that the Consumer MAY send UserContext
CS018     5.1.11      21   30     L            X   information on any invocations as a replacement for         X    6
                                                   information the Portlet MAY be storing in a session.
                                                   Note that the Consumer MAY send templates on any
CS019     5.1.11      21   38     L                invocations as a replacement for information the            X    6
                                                   Portlet MAY be storing in a session.
                                                                                                                                                                                 Any property use with zero
CS020     5.1.12      22    9     H        X   X   Name of the property, MUST have a non-zero length.               5
                                                                                                                                                                                 length names?
                                                   Name of the property whose value is to be reset;                                                                              Any property use with zero
CS021     5.1.13      22   24     H            X                                                                    6
                                                   MUST have a non-zero length.                                                                                                  length names?

                                                   The Producer MUST return an
CS022     5.1.14      22   40     M    X           Interface.InvalidParameters fault message if the                 3
                                                   Consumer supplies a property in both the properties and
                                                   resetProperties array of a PropertyList.
                                                   Name of the property being described, MUST have a                                                                             Any property use with zero
CS023     5.1.15      23   10     H        X                                                                        5
                                                   non-zero length.                                                                                                              length names?
                                                   (CookieProtocolType)perUser: The Consumer MUST
                                                                                                                                                                                                                                                                         Identify user on all
                                                   invoke initCookie() once per user of the Consumer,
CS024     5.1.18      24    5     H            X                                                                    2                                                                                                                                                    messages, check for
                                                   and associate any returned cookies with subsequent
                                                                                                                                                                                                                                                                         cookie handling
                                                   invocations on behalf of that user.

                                                   (CookieProtocolType)perGroup: The Consumer MUST
                                                   invoke initCookie() once per unique groupID from
                                                   the PortletDescriptions for the Portlets it is                                                                                                                                                                        Identify user, groupID on
CS025     5.1.18      24    7     H            X   aggregating on a page for each user of the Consumer,             2                                                                                                                                                    all messages, check for
                                                   and associate any returned cookies with subsequent                                                                                                                                                                    cookie handling
                                                   invocations on behalf of that user targeting Portlets
                                                   with identical groupIDs.
                                                   If requiresRegistration is set to “false” then it MUST
                                                                                                                                                                                                                Try all operations with a
CS026     5.1.19      24   29     H        X   X   be valid to not pass a registrationContext field to all          3
                                                                                                                                                                                                                nil RegistrationContext
                                                   operations with this parameter.

                                                 If requiresRegistration is set to “true” then the Producer
CS027     5.1.19      24   31     H    X         MUST throw a fault when no registrationContext is                  3
                                                 supplied to an operation, other than
                                                 getServiceDescription(), which takes this field.
                                                 customUserProfileItemDescriptions: An array of
                                                 ItemDescription structures as defined in Section 5.1.9.
CS028     5.1.19      24   41     L    X         This array MUST include an entry for any user profile              5
                                                 item the Producer supports which are not defined by
                                                 this specification.
                                                 customWindowStateDescriptions: An array of
                                                 ItemDescription structures as defined in Section 5.1.9.
CS029     5.1.19      24   44     L    X                                                                            5
                                                 This array MUST include an entry for any custom
                                                 window state the Producer supports.
                                                 customModeDescriptions: An array of ItemDescription
                                                 structures as defined in Section 5.1.9. This array
CS030     5.1.19      25    1     L    X         MUST include an entry for any custom mode the                      5
                                                 Producer supports.
                                                 If the registrationState field has a value, the
          5.1.20      25   27                                                                                                                          Need to push persistent
CS031                             H            X Consumer MUST return this value on any subsequent                  2
          5.1.21      26    2                                                                                                                          state to Consumer
                                                 calls in the context of this registration
                                                 Since localized strings use an indirection through
                                                 resources to carry the set of values for different
CS032     5.1.22      26   11     L        X     locales, the first member of this array SHOULD be             X    5
                                                 used as the locale for the values returned directly in
                                                 the structure.
                                                   The minimum information a Producer MUST return
                                                   from getServiceDescription() is that which declares                                                                           Examine returned
                                                   what is required for a Consumer to register (i.e. the                                                                         ServiceDescription when
CS033       5.2       26   25     H        X                                                                        3
                                                   requiresRegistration flag and whenever additional data                                                                        no RegistrationContext
                                                   is required, the registrationPropertyDescription field)                                                                       was supplied.
                                                   with the Producer.
                                                                                                                                                                                 Examine returned
                                                   Producers MUST return a complete enough                                                                                       ServiceDescription when a
                                                   ServiceDescription to registered Consumers for them                                                                           RegistrationContext was
CS034       5.2       26   33     H        X                                                                        3                                                            supplied. Must now
                                                   to properly interact with both the Producer and
                                                   Portlets it exposes.                                                                                                          contain at least a
                                                                                                                                                                                 PortletDescription field.
                                                                                                                                                                                 Dependent on Profile?
                                                   When generating the ServiceDescription response the
                                                   Producer SHOULD use the desiredLocales (an array of
CS035       5.2       26   36     L        X                                                                   X    5
                                                   strings) to control what locales are returned for
                                                   localized strings.
                                                   The maximum length of a sessionID is 4096
                                                   characters, though Producers SHOULD keep it as                       1. Check length                                          Monitor sessionIDs as
CS036      6.1.1      27   23     H        X                                                                   X    5
                                                   short as possible as this can have a significant impact              2. Report length                                         they are generated.
                                                   on Consumer performance.
                                                                                                                                                                                 Compute duration of a
                                                   Producers SHOULD also keep the sessionID as stable                                                                            session when a new
                                                                                                                                                                                 sessionID is returned. Are
CS037      6.1.1      27   25     VL       X       as possible since changes in value can also have a          X    5                                                                                                                                                                                  Hard to test, not worth it.
                                                                                                                                                                                 we able to coorelate the
                                                   significant impact on Consumer performance.
                                                                                                                                                                                 request and response in
                                                                                                                                                                                 this case?
                                                                                                                Co
                                         Co                                                                Re   nf
                              Pr      Pr
                                  Po     ns                                                                po   ig                                                                                                                    Monitor between
                  Pa          io      od                                                                                                        Producer Testcase            Monitor between               Consumer Testcase
 #      Section        Line       rtl    u                   Conformance statement                         rt   ur Testcase Driver Portlet                                                                                           Consumer and User-   Cooperating User-Agent Notes or Alternatives
                  ge          rit     uc                                                                                                             Driver                Consumer and Produer                 Driver
                                  et     m                                                                 ab   at                                                                                                                         Agent
                               y      er
                                         er                                                                le   io
                                                                                                                n
                                               If the Producer returns an Interface.InvalidSession fault
                                               message after returning a sessionID, the Consumer
                                               MUST NOT resupply that sessionID on a subsequent                                              Explicit test case for        How to correlate 2nd                                                           Tracking the user can
CS038    6.1.1    27   33     H            X   invocation and SHOULD reinvoke the operation that                2                            testing handling of this      request to fault from first                                                    enable validation that the
                                               caused the fault message without any sessionID and                                            fault                         fault?                                                                         correct data is resent.
                                               supply any data that may have been stored in the
                                               session.
                                                                                                                                                                           For Consumers supplying
                                               portletInstanceKey: An opaque string, unique within                                                                         this field, place multiple
                                                                                                                                             Observe
CS039    6.1.2    28   12     VL           X   the registrationContext, which the Consumer MAY             X    6                                                          instances of a portlet on a
                                                                                                                                             portletInstanceKeys
                                               supply as a reference to its use of the Portlet.                                                                            page. Are unique Keys
                                                                                                                                                                           supplied?
                                               Consumer SHOULD keep their portletInstanceKey
CS040    6.1.2    28   17     VL           X                                                               X    6                                                                                                                                                                        Untestable
                                               values as short as possible.
                                                                                                                                                                                                                                                                                         Is it really necessary to
                                               If the PortletDescription also has
                                                                                                                                                                           Check whether the                                                                                             test this? If so, right a
                                               templatesStoredInSession set to “true”, then the
CS041    6.1.2    28   25     VL           X                                                               X    2                                                          Consumer follows this                                                                                         portletDescription that sets
                                               Consumer MAY elect to only send these once for a
                                                                                                                                                                           behaviour.                                                                                                    templateStoredInSession
                                               sessionID.
                                                                                                                                                                                                                                                                                         to true

                                               If the portletState field has a value, the Consumer
                                               MUST return this value on subsequent calls using the                                          Requires a Producer that
                                               same portletHandle. Note that such uses can span                                              pushes persistent state to
CS042    6.1.3    29    2     H            X   multiple starting and stopping cycles of the Consumer            2                            the Consumer. Full test
                                               and therefore this state MUST be persisted by the                                             requires cycling the
                                               Consumer until successfully invoking                                                          Consumer.
                                               destroyPortlets() with the related portletHandle.
                                               UserScope is an open set of values where the
                                               Producer SHOULD restrict the values supplied to those
CS043    6.1.4    29   10     L                                                                            X    5
                                               specified in this specification or custom values the
                                               Consumer has indicated it supports.
                                                                                                                                                                           This involves testing cache
                                               ”wsrp:perUser”: The markup is specific to the                                                                               semantics. It will involve                                                     May require Consumer
                                               userContext for which it was generated. Changes to                                                                          usingthe monitor to                                                            specific tasks to update a
CS044    6.1.4    29   16                  X                                                                    C
                                               the data of the UserContext MUST invalidate the                                                                             determine when the cache                                                       piece of data in the
                                               cached markup.                                                                                                              was used rather than the                                                       UserContext.
                                                                                                                                                                           Portlet being called.
                                               Note that any key used by the caching system to
                                                                                                                                                                                                                                                          Will involve fragments that
                                               locate this markup MUST include the MarkupParams                                                                            This involves testing cache
CS045    6.1.5    29   21                  X                                                                    C                                                                                                                                         do and do not cause this
                                               structure that was current when the content was                                                                             semantics.
                                                                                                                                                                                                                                                          structure to change.
                                               originally cached.
                                               validateTag: A string the Consumer MAY use to                                                                               This involves testing cache
CS046    6.1.5    29   34                  X   attempt to revalidate markup once the expires               X    C                                                          semantics. Is validateTag
                                               duration elapses.                                                                                                           ever sent to the Producer?


CS047    6.1.5    29   31                  X   If the Consumer does not know how to process the                 C
                                               specified userScope, it MUST NOT cache the markup.
                                               The Consumer MUST set the                                                                                                                                                                                  Involves separately
                                               secureClientCommunication flag as the Portlet MAY                                                                                                                                                          informing the Producer
CS048    6.1.9    31   31     H            X                                                                    2
                                               render different content when it knows the delivery                                                                                                                                                        about the security of the
                                               channel is secure.                                                                                                                                                                                         client-Consumer channel.
                                               In addition to these fully specified Mime types, use of
                                               “*” (indicates all Mime types are acceptable) and
CS049    6.1.9    32    3     VL           X                                                               X    6                                                          Are wildcards used?
                                               type/* (where type includes things such as “text”)
                                               from the HTTP definition[1] MAY be specified.

                                               Portlets SHOULD generate markup in one of the                                                                               Did generated markup use
CS050    6.1.9    32    6     L    X   X                                                                   X    5
                                               specified Mime types.                                                                                                       a requested mime type?
                                               The Consumer MUST specify either one of the modes                                                                           Inspect MarkupParams,
CS051    6.1.9    32   12     H            X   from the Portlet’s metadata or “wsrp:view” (all                  6                                                          compare to
                                               Portlets are required to support this mode).                                                                                PortletDescription
                                               The Consumer MUST specify either one of the
                                                                                                                                                                           Inspect MarkupParams,
                                               windowStates from the Portlet’s metadata or
CS052    6.1.9    32   16     H            X                                                                    6                                                          compare to
                                               “wsrp:normal” (all Portlets are required to support
                                                                                                                                                                           PortletDescription
                                               this windowState).
                                               When the SOAP binding is in use, the Producer MUST
                                               either use one of the markupCharacterSets, UTF-8 or                                                                         Was this value or UTF-8       Send a
CS053    6.1.9    32   26     H        X       UTF-16 for the response message as the nature of                 3                                                          used for the response         markupCharacterSet other
                                               XML requires the character set used for the markup to                                                                       message?                      than UTF-8
                                               be the same as the response message.
                                                                                                                                                                           Was any supplied
                                               validateTag: This field MAY contain a validateTag
                                                                                                                                             Testing will be easier with   validateTag part of a
CS054    6.1.9    32   30     L            X   previously supplied to the Consumer in a                    X    6
                                                                                                                                             extremely short "expires"     previous
                                               MarkupContext structure.
                                                                                                                                                                           MarkupResponse?
                                                                                                                                                                           Are all mode change
                                               validNewModes: Current set of modes the Producer
CS055    6.1.9    32   38     VL           X                                                               X    6                                                          requests taken from this
                                               MAY request changing to.
                                                                                                                                                                           list?
                                               Custom modes, windowStates, userScopes and
                                               userAuthentication values MUST be URI's in order to
CS056    6.1.9    33   11     L            X                                                               X    6                                                          Any non-URIs?
                                               reduce name clashes with any values that may be
                                               defined by future versions of this specification.
                                               If the value for useCachedMarkup is “true” the
                                                                                                                                                                           Are both in a
CS057   6.1.10    33   30     H        X       markupString and markupBinary fields MUST NOT be                 5
                                                                                                                                                                           MarkupResponse?
                                               returned.
                                               If the field’s (useCachedMarkup) value is “true”, any
                                               supplied cacheControl field MUST be processed as an                                                                         This involves testing cache                                                    Check cache hits obey new
CS058   6.1.10    33   31                  X                                                                    C
                                               update to the cacheControl originally supplied with the                                                                     semantics.                                                                     caching semantics.
                                               cached markup.
                                                                                                                                                                           1.If markup is returned,
                                                                                                                                                                           markupType has to be
                                                                                                                                                                           present.
                                               The mimeType field MUST be specified whenever                                                                               2. markupType must
                                               markup is returned, and if the markupBinary field is                                                                        always be a valid mime
                                               used to return the markup, the mime type MUST                                                                               type
                              V
CS059   6.1.10    33   34              X       include the character set for textual mime types using           5                                                          3. If the markup is
                              H
                                               the syntax specified in RFC1522 (e.g. “text/html;                                                                           supplied via the
                                               charset=UTF-8”). In this particular case this character                                                                     markupBinary field and
                                               set MAY be different than the response message.                                                                             the markupType is textual
                                                                                                                                                                           (e.g. text/*), the
                                                                                                                                                                           markupType has to
                                                                                                                                                                           contain the charset.
                                               The character set of the markup a Portlet returns
CS060   6.1.10    33   43     H        X       MUST either match that requested in MarkupParams,                5                                                          Does it match?
                                               be UTF-8 or UTF-16.
                                               The locale MUST be specified whenever markup is
CS061   6.1.10    34    6     H        X       returned and is NOT REQUIRED to be from the set of               5                                                          Cross check
                                               requested locales.
                                                                                                                                                                                                                                                          Set flag, place various
                                                                                                                                                                                                                                                          URLs for rewriting in fields
                                               The Consumer MUST parse the markup for URL
CS062   6.1.10    34    9     H            X                                                                    2                                                                                                                                         and then have client
                                               rewriting if the value of requiresUrlRewriting is “true”.
                                                                                                                                                                                                                                                          submit the form to check
                                                                                                                                                                                                                                                          they were rewritten.

                                               If the cacheControl field is not supplied, the Consumer                                                                     This involves testing cache
CS063   6.1.10    34   12                  X                                                                    C
                                               MUST treat the returned markup as not cachable.                                                                             semantics.
                                               The Consumer SHOULD supply this value as the
                                               navigationalState on the subsequent invocations for                                                                         Did the navState get
                                                                                                                                                                                                                                                                                         This contradicts section 3.6
CS064   6.1.13    35   18     L            X   this use of the Portlet for at least the duration of the    X    2                                                          resupplied on a page
                                                                                                                                                                                                                                                                                         and requirement 180
                                               End-User’s interactions with this aggregated page in                                                                        refresh?
                                               order to maintain End-User state.
                                               The Consumer SHOULD choose to respect this request
                                               to change the window state, but since the Portlet
                                               cannot depend on that choice it MUST NOT encode
CS065     6.9     50    6          X           this new window state into any of its stateful settings.         U                                                          not testable
                                               Rather, the Portlet MUST compute any such impact on
                                               stateful settings after the Consumer has actually
                                               changed the window state.

                                               The Consumer MUST respect requests to change the
                                               mode outside of exceptional circumstances (e.g.
CS066     6.8     48   33          X                                                                            U                                                          not testable
                                               access control restrictions), but the Portlet must not
                                               depend on such a request being respected.

                                               As the Producer is ignorant of this encoding and the
                                               Consumer is required to consistently encode                                                                                                                                                                Send some of the hideous
CS067   6.1.17    37    1     L            X   parameters passed to the Producer in the SOAP                    2                                                                                                                                         test cases through the
                                               message, Consumers MUST ensure that form data is                                                                                                                                                           Consumer for decoding.
                                               properly decoded before it is passed to the Producer.
                                               The userContextKey MUST remain invariant for the                                                                                                                                                           Need to have a separate
CS068   6.1.19    40   30     VL           X                                                                    2
                                               duration of a Consumer’s registration.                                                                                                                                                                     indication of the user.
                                               The Consumer MUST NOT assert a user category for
CS069   6.1.19    40   34     M            X   which no UserCategoryDescription was part of the                 6
                                               Producer’s ServiceDescription.
                                               Whenever the cacheControl field of a MarkupResponse
                                                                                                                                                                           This involves testing cache
CS070   6.2.1.1   41   18                  X   structure is filled in the Consumer MAY cache the                C
                                                                                                                                                                           semantics.
                                               markup fragment.
                                               The Consumer MUST follow the defined invalidation
                                                                                                                                                                           This involves testing cache
CS071   6.2.1.1   41   19                  X   policies to keep the cache up-to-date from section               C
                                                                                                                                                                           semantics.
                                               6.2.1.2.
                                               If the cacheControl field is empty, the Consumer                                                                            This involves testing cache
CS072   6.2.1.1   41   20                  X                                                                    C
                                               MUST NOT cache the markup fragment.                                                                                         semantics.
                                               Portlets indicating the cached markup can be used
                                                                                                                                                                           This involves testing cache
CS073   6.2.1.2   41   27          X   X       SHOULD also supply a new CacheControl structure             X    C
                                                                                                                                                                           semantics.
                                               with a new expiry for the markup.
                                               The Consumer MUST always propagate these End-
CS074     6.3     41   39     H            X                                                                    2
                                               User interactions to the Producer.
                                               If the Consumer has set the portletState flag to
                                                                                                                                             Report on whether
                                               “readWrite”, the Portlet MAY modify its persistent
CS075    6.3.3    42   50          X   X                                                                        U                            persistent state updates
                                               state regardless of whether it is persisted on the
                                                                                                                                             respect this flag
                                               Producer or Consumer.
                                               If the Consumer has set the portletState field to
                                               “cloneBeforeWrite”, persistent state changes are
                                                                                                                                                                                                                                                                                         We can't determine
                                               allowed only if the Producer first clones the Portlet. If                                     Report on whether
                                                                                                                                                                                                                                                                                         whether or not a portlet
CS076    6.3.3    43    4          X   X       the Producer does not clone the Portlet, processing              U                            persistent state updates                                    Try to set the properties
                                                                                                                                                                                                                                                                                         modified its persistent
                                               attempts to modify persistent state MUST proceed as                                           respect this flag
                                                                                                                                                                                                                                                                                         state
                                               if the Consumer had specified “readOnly” for
                                               portletState.
                                               If the Producer clones the Portlet, processing attempts
                                                                                                                                             Report on whether
                                               to modify persistent state on the new Portlet SHOULD
CS077    6.3.3    43    7          X   X                                                                        U                            persistent state updates
                                               proceed as if the Consumer had specified “readWrite”
                                                                                                                                             respect this flag
                                               for portletState.
                                                                                                               Co
                                         Co                                                               Re   nf
                              Pr      Pr
                                  Po     ns                                                               po   ig                                                                                                                  Monitor between
                  Pa          io      od                                                                                                       Producer Testcase         Monitor between                Consumer Testcase
 #      Section        Line       rtl    u                   Conformance statement                        rt   ur Testcase Driver Portlet                                                                                         Consumer and User-   Cooperating User-Agent Notes or Alternatives
                  ge          rit     uc                                                                                                            Driver             Consumer and Produer                  Driver
                                  et     m                                                                ab   at                                                                                                                       Agent
                               y      er
                                         er                                                               le   io
                                                                                                               n

                                               If the Producer returns a new portletHandle without
                                                                                                                                                                                                                                                       Which portletHandle does
                                               returning a new sessionID, the Consumer MUST
CS078    6.3.3    43   11     H            X                                                                   2                                                                                                                                       the Consumer resupply the
                                               associate the current sessionID with the new
                                                                                                                                                                                                                                                       sessionID for?
                                               portletHandle rather than the previous portletHandle.
                                               If the Consumer has set the portletState flag to
                                               ”readOnly”, the Portlet MUST NOT modify its                                                  Report on whether
                                               persistent state regardless of whether it is persisted
CS079    6.3.3    43   16     L        X                                                                       3                            persistent state updates
                                               on the Producer or Consumer and MUST throw a fault
                                                                                                                                            respect this flag
                                               message if processing the interaction requires
                                               changing its persistent state.
                                               If the Producer implements access control that
                                               prevents Portlets from updating persistent state and a
CS080    6.3.3    43   22          X   X       Portlet is unable to process the interaction without       X    U
                                               such an update, then the fault
                                               “Interface.PortletStateChangeRequired” MAY be
                                               thrown indicating the interaction processing failed.
                                               If the Producer’s metadata has set the
                                               requiresInitCookie field to any value other than                                                                        Check ServiceDescription
                                               “none”, then the Consumer MUST invoke
CS081     6.4     44    7     H            X                                                                   2                                                       against invocation
                                               initCookie() and supply any returned cookies                                                                            sequence.
                                               according to the semantics of the value of
                                               requiresInitCookie as defined in section 5.1.17.
                                               If at any time the Producer throws a fault message
                                               (“Interface.InvalidCookie”) indicating the supplied
                                               cookie has been invalidated at the Producer, then the
                                                                                                                                                                       Check invocation sequence
CS082     6.4     44    9     H            X   Consumer MUST again invoke initCookie() and                     2
                                                                                                                                                                       when fault is observed.
                                               SHOULD reprocess the invocation that caused the
                                               fault message to be thrown and include any data that
                                               may have been stored in a session related to a cookie.
                                               The Consumer MAY inform the Producer that it will no
                                               longer be using a set of sessions by invoking
CS083     6.5     44   15     VL           X                                                              X    6
                                               releaseSessions() (e.g. the Consumer is releasing
                                               resources related to the sessionIDs):
                                               After invoking releaseSessions() the Consumer
CS084     6.5     44   21     H            X   MUST NOT include any of the supplied sessionIDs on              6                                                       Do relevant checks
                                               subsequent invocations.
                                               If a Producer indicates that it uses cookies, the
                                               Consumer MUST ensure that any cookies the Producer
CS085     6.6     44   25     H            X                                                                   2                                                       Do http header checks.
                                               sets are available on all invocations within the Markup
                                               interface.
                                               In addition, moving cookies from an HTTPS to an
                                               HTTP connection opens security issues that MUST be
CS086     6.6     44   30     H            X   handled in the manner prescribed in RFC2109[2].                 2                                                       Do http header checks.
                                               Consumers MUST respect the security setting on each
                                               cookie.
                                               Conformant Portlets MUST support the wsrp:view                                                                                                         Invoke getMarkup w/view
CS087    6.8.1    48   12     H    X                                                                           4
                                               mode.                                                                                                                                                  mode
                                               A Portlet MUST map any mode it does not understand
CS088    6.8.5    48   34          X                                                                           U
                                               to the wsrp:view mode.
                                               The wsrp:normal window state MAY also indicate that
                                               the target device has limited display capabilities.
CS089    6.9.1    49   14          X                                                                      X    U
                                               Therefore, a Portlet SHOULD restrict the size of its
                                               rendered output in this window state.
                                               Conformant Portlets MUST support the wsrp:normal
CS090    6.9.1    49   18     H    X                                                                           4
                                               window state.
                                               When the window state is wsrp:minimized, the Portlet
                                               SHOULD NOT render visible markup, but is free to
CS091    6.9.2    49   20     L    X                                                                      X    4                                                       Inspect returned markup
                                               include non-visible data such as javascript or hidden
                                               forms.
                                               A Portlet SHOULD generate richer content when its
CS092    6.9.3    49   26          X                                                                           U                                                       Inspect returned markup
                                               window state is wsrp:maximized.
                                               A Portlet SHOULD generate richer content when its
CS093    6.9.4    49   30          X                                                                           U                                                       Inspect returned markup
                                               window state is wsrp:solo.
                                               A Portlet MUST map any window state it does not
CS094    6.9.5    49   37          X   X                                                                       U
                                               understand to wsrp:normal.
                                               A Producer’s ServiceDescription MAY declare support
CS095    6.10     50    2     L        X                                                                  X    5                                                       Does it?
                                               for user categories.
                                               A Consumer MAY map End-Users to the user
CS096    6.10     50    2                  X   categories a Producer declares in any manner it                 U                                                       untestable
                                               chooses, including ignoring them.
                                               Producers that use user categories SHOULD
                                               implement appropriate default behavior in the event a
CS097    6.10     50    4              X                                                                       U                                                       untestable
                                               Consumer does not assert any user category for the
                                               End-User.
                                               All Producer registration processes MUST result in a
                                                                                                                                                                                                      Exercise registration
CS098     7       50   37     VL       X       unique, opaque token that may be used to refer to the      X    3                                                                                                                                                                   Cannot verify uniqueness
                                                                                                                                                                                                      portType
                                               registration.
                                               The consumerAgent value MUST start with
                                               “productName.majorVersion.minorVersion” where
                                               “productName” identifies the product the Consumer
CS099    7.1.1    51   18     L            X                                                                   6                                                       validate format
                                               installed for its deployment, and majorVersion and
                                               minorVersion are vendor-defined indications of the
                                               version of its product.
                                               registrationProperties: List of registration properties.
                                               The names of these properties SHOULD be from the
CS100    7.1.1    51   42     L            X   set declared in the registrationPropertyDescription        X    6                                                       Full set, superset, …?
                                               from the Producer’s ServiceDescription and are not
                                               part of this specification.
                                               When the Consumer chooses to end the relationship,                                                                      verify invocation. Likely
                                               it MUST attempt an invocation of the deregister()                                                                       depends on using a
CS101     7.2     52    5     M            X                                                                   6
                                               operation so that the Producer may release related                                                                      Consumer UI to declare
                                               resources.                                                                                                              the relationship over.
                                               When the Producer chooses to invalidate the
                                                                                                                                                                       verify fault. Likely depends
                                               registration identifier, it MUST inform the Consumer of
                                                                                                                                                                       on using a Producer UI to
CS102     7.2     52    7     L        X       this through a fault message on the next invocation             3
                                                                                                                                                                       declare the relationship
                                               specifying this registrationHandle so that the
                                                                                                                                                                       over.
                                               Consumer may release related resources.
                                               If the Producer’s metadata declares registration is not
                                               supported (i.e. requiresRegistration flag was set to                                                                                                   Willing to pass a nil
CS103     7.2     52   13     H        X                                                                       3
                                               “false”), then it MUST be valid to not supply a                                                                                                        registrationContext
                                               registrationContext to operations with this parameter.
                                               Whenever the registration attempt fails a fault
                                                                                                                                                                                                      Register without passing
CS104     7.2     52   15     L        X       message MUST be thrown indicating this to the                   3
                                                                                                                                                                                                      required data
                                               Consumer
                                               A Producer supporting registration MUST allow a
                                               Consumer to register itself multiple times with
CS105     7.2     52   18     M            X                                                                   3
                                               potentially different settings (e.g. billing settings)
                                               resulting in multiple registrationHandles [R351].
                                               The Consumer MUST NOT consider a relationship with
                                                                                                                                            Are failed deregister()
CS106     7.4     52   32                  X   a Producer ended until a successful invocation of               U
                                                                                                                                            invocations retried?
                                               deregister().
                                               The Consumer MUST NOT use an invalidated
                                               registrationHandle, where the invalidation occurs
                                               either by passing the handle to deregister() or by                                                                      Look for invalidated
CS107     7.4     52   40     H            X                                                                   2
                                               receiving a Security.InvalidRegistration fault message                                                                  handles
                                               from the Producer on an invocation supplying the
                                               handle.
                                               The Producer MUST return a
                                                                                                                                                                                                      Pass invalidated handles
CS108     7.4     52   43     H        X       Security.InvalidRegistration fault message whenever             3
                                                                                                                                                                                                      as registrationHandles
                                               a Consumer supplies an invalid registrationHandle
                                               If the deregister() operation fails, the Producer
CS109     7.4     52   44              X       MUST return a fault message specifying the reason for           U                                                       not testable
                                               the failure.
                                               Producers MUST expose one or more logically distinct
                                                                                                                                                                       ServiceDescription has
                                               ways of generating markup and handling interaction
CS110     8       53    2     H        X                                                                       5                                                       PortletDescriptions, at
                                               with that markup [A205], which this specification
                                                                                                                                                                       least after registration
                                               refers to as Portlets.
                                               A Consumer MAY request a unique configuration of
                                               one of these Portlets, either in an opaque manner
                                               (e.g. the “edit” button common on aggregated pages
CS111     8       53   11     L            X   which invokes a Portlet-generated page for setting the     X    6
                                               configuration) or by using the property definitions
                                               found in the Portlet’s metadata to configure it in an
                                               explicit manner
                                               Any Producer that supports cloning portlets on
CS112     8       53   17     M        X       performBlockingInteraction() invocations MUST                   5                                                       not testable
                                               support the releasePortlet() operation.
                                               For security reasons related to exposing the existence
                                               of something the caller is not allowed to access, it is
                                               RECOMMENDED that a Security.AccessDenied fault be
                                               generated both for the case of the supplied
CS113     8.2     54   39     L        X       portletHandle not being a valid reference in the scope          U
                                               of the supplied registrationHandle and for the case of
                                               the user not having access to a valid reference (i.e. by
                                               definition access is denied when the Portlet reference
                                               is invalid).

                                               When generating the PortletDescriptionResponse the
                                                                                                                                                                       Check that there is some
CS114     8.2     55    1     VL   X   X       Producer SHOULD use the desiredLocales to control          X    5
                                                                                                                                                                       correspondance
                                               what locales are supplied for localized strings.
                                               The supplied PortletContext MUST refer to either a                                                                      Check handle and state
CS115     8.3     55   12     H            X   Producer Offered Portlet or a previously cloned                 6                                                       against previously logged
                                               Consumer Configured Portlet.                                                                                            Portlet identifiers.
                                                                                                                                                                       Can validate when
                                                                                                                                                                       PortletState is pushed to
                                               The initial state of the new Portlet MUST be equivalent
                                                                                                                                                                       the Consumer. Specialized
CS116     8.3     56   13     L        X       to the state of the Portlet referenced by the supplied          3
                                                                                                                                                                       Portlet for hosting on the
                                               handle.
                                                                                                                                                                       Producer may provide
                                                                                                                                                                       more testing.

                                               The new portletHandle MUST be scoped by the                                                                                                            Try using a portletHandle
CS117     8.3     55   17     H        X       registrationHandle in the supplied RegistrationContext          3                                                       Check for uniqueness.          with a different
                                               and be unique within this registration.                                                                                                                registrationHandle
                                               If a Producer chooses to push the persistent state of
                                               its Portlets to the Consumer, it is RECOMMENDED that
                                               the portletHandle encode the supplied
CS118     8.3     55   21              X       registrationHandle. In this case, it is also                    U                                                       not testable
                                               RECOMMENDED that the portletState encode the
                                               portletHandle so that the Producer can do reasonable
                                               cross checks that it is receiving a consistent set of
                                               handles and state.
                                                                                                                 Co
                                            Co                                                              Re   nf
                                 Pr      Pr
                                     Po     ns                                                              po   ig                                                                                                               Monitor between
                     Pa          io      od                                                                                                      Producer Testcase        Monitor between              Consumer Testcase
  #      Section          Line       rtl    u                  Conformance statement                        rt   ur Testcase Driver Portlet                                                                                      Consumer and User-   Cooperating User-Agent Notes or Alternatives
                     ge          rit     uc                                                                                                           Driver            Consumer and Produer                Driver
                                     et     m                                                               ab   at                                                                                                                    Agent
                                  y      er
                                            er                                                              le   io
                                                                                                                 n
                                                                                                                                                                        Requires using a
                                                 If the Consumer has not registered, then the
                                                                                                                                                                        Consumer UI to cause
                                                 Consumer MUST invoke destroyPortlets() when it                                               Need a Producer that does
CS119      8.3       55   32     L           X                                                                   2                                                      deregistration on a
                                                 would have deregistered, passing each portletHandle                                          not support Registration
                                                                                                                                                                        Producer not supporting
                                                 that would have been scoped by a registration.
                                                                                                                                                                        registration
                                                 The Consumer MUST inform the Producer that a
                                                 Consumer Configured Portlet will no longer be used by                                                                  Requires using a
                                                 invoking destroyPortlets() and MUST NOT consider                                                                       Consumer UI to cause
CS120      8.4       55   36     L           X                                                                   6
                                                 a Portlet to have been destroyed until                                                                                 release. On failure, are
                                                 destroyPortlets() has been successfully invoked for                                                                    there any retrys?
                                                 that Portlet.
                                                 A Consumer MUST NOT reference any of the supplied
                                                 portletHandles after successfully invoking
CS121      8.4       56    5     H           X   destroyPortlets() and MAY reclaim resources                     6                                                      Any reused references?
                                                 related to the supplied portletHandles (e.g.
                                                 portletState).
                                                 The supplied set of property changes MUST be
                                                 processed together. In particular, validation SHOULD
                                                 only be done considering the entire set as partial
CS122      8.5       56   24         X   X       updates could easily create an internally inconsistent          U                                                      not testable
                                                 set of properties. The storage of the update caused by
                                                 applying the set of property updates SHOULD only
                                                 occur after the Producer/Portlet executes this
                                                 validation.
                                                                                                                                                                                                     Blast invocations from
                                                                                                                                                                                                     multiple threads at the
                                                 The Producer SHOULD serialize invocations of
CS123      8.5       56   28             X                                                                       U                                                                                   same Portlet. Follow each
                                                 setPortletProperties() for any one portletHandle.
                                                                                                                                                                                                     with a
                                                                                                                                                                                                     getPortletProperties().
                                                                                                                                                                        Does the returned
                                                 If the Consumer does not pass a names parameter,
                                                                                                                                                                        PropertyList correspond to
CS124      8.6       56   43     L   X   X       the Producer / Portlet MUST treat this as a request to          3
                                                                                                                                                                        PortletPropertyDescription
                                                 enumerate the properties of the Portlet.
                                                                                                                                                                        s
                                                 While it is possible the set of properties can change
                                                 with time (e.g. the Portlet dynamically creates or
CS125      8.7       57   14         X   X       destroys properties), Producers and Portlets SHOULD             U
                                                 make the returned modelDescription as complete as
                                                 possible.
                                                 When generating the
                                                 PortletPropertyDescriptionResponse the Producer
CS126      8.7       57   18     L   X   X                                                                  X    5
                                                 SHOULD use the desiredLocales to control which
                                                 locales are supplied for localized strings.
                                                 The Consumer indicates to the Portlet the preferred
                                                 character encoding, using the markupCharacterSets
                                                 field of the MarkupParams structure. It is up to the
                                                 Portlet to generate markup that complies with this
                                                 encoding. The Portlet is allowed to generate its
CS127     10.1       58   30     L   X                                                                      X    4
                                                 markup in either the UTF-8 or UTF-16 character set
                                                 encodings if it is unable to generate the requested
                                                 character set. If it is unable to generate markup in
                                                 any of these character sets, the Portlet MUST return a
                                                 fault message to the Consumer.
                                                 As the Portlet writes URLs into the markup it MUST
                                                 encode them based on the markupType. For example,
CS128     10.2       59   42     L   X           XML based markup requires that all ‘&’ characters               4
                                                 have to be encoded as “&”.
                                                 If a Portlet is unable to completely write the portlet
                                                 URLs for its markup, it MUST set the
CS129     10.2       59   45     L   X                                                                      X    4
                                                 requiresUrlRewriting flag in the returned
                                                 MarkupContext structure to “true”.
                                                 Portlets MUST adopt the following convention for
                                                 including non-ASCII characters within portlet URLs in
                                                 order to comply with W3C recommendations.
                                                     1. Represent each character in UTF-8 (see                                                                          Inspect URLs from markup
CS130     10.2       60    9     L   X   X       [RFC2279]) as one or more bytes.                           X    5                                                      in the log for non-ASCII
                                                     2. Escape these characters with the URI escaping                                                                   characters
                                                 mechanism (i.e., by converting each byte to %HH,
                                                 where HH is the hexadecimal notation of the character
                                                 value)
                                                 When URL activations occur, the Consumer MUST
                                                 process all mode and window state change requests
                                                 and either honor and reject them prior to invoking the                                                                                                                                               Monitor when
CS131     10.2       60   23     H           X   operation indicated by the URL. If the requested mode           2                                                                                                                                    mode/window state
                                                 or window state is for a value that is either invalid or                                                                                                                                             changes happen
                                                 unavailable, the Consumer SHOULD leave the current
                                                 value unchanged.

                                                 The Consumer is NOT REQUIRED to process URLs not
                                                 conforming to this format and MAY choose to pass
                                                                                                                                                                                                                                                      Report on the possible
CS132    10.2.1      60   39                 X   them unchanged, replace them with error text, do a         X    U
                                                                                                                                                                                                                                                      actions of the Consumer.
                                                 best effort processing or invalidate the entire markup
                                                 fragment.
                                                 The Consumer is NOT REQUIRED to process escaped
                                                 characters in parameter names, but rather MAY pass
                                                                                                                                                                        ***Untestable using                                                           Did odd strings arrive at
CS133    10.2.1      60   41                 X   them unchanged to either the user-agent (during URL        X    U
                                                                                                                                                                        message log                                                                   the user-agent?
                                                 rewriting) or the Producer (during processing of an
                                                 activated URL).
                                                 This parameter (wsrp-urlType) MUST be specified first
                                                                                                                                                                        Check parameter
CS134   10.2.1.1     61    4     H   X   X       when using the Consumer URL rewriting template and              5
                                                                                                                                                                        placement
                                                 the value selected from the following definitions.
                                                 All form parameters, submitted as query string
                                                 parameters using the HTTP GET method, that are not                                                                                                                                                   Monitor how items are
CS135   10.2.1.1.1   61   10     H           X   used to encode parameters defined by this                       2                                                                                                                                    received by the Consumer
                                                 specification MUST be passed to                                                                                                                                                                      vs passed to the Producer.
                                                 performBlockingInteraction() as formParameters.
                                                 The URL MAY specify a wsrp-navigationalState portlet
                                                 URL parameter, whose value the Consumer MUST
                                                                                                                                                                                                                                                      Monitor how items are
                                                 supply in the navigationalState field of the
CS136   10.2.1.1.2   61   17     H           X                                                                   2                                                                                                                                    received by the Consumer
                                                 MarkupParams structure. If there is no such portlet
                                                                                                                                                                                                                                                      vs passed to the Producer.
                                                 URL parameter, the Consumer MUST NOT supply a
                                                 value for this field.
                                                 When a portlet URL specifies “resource” for the wsrp-
                                                 urlType portlet URL parameter, both the wsrp-url and
CS137   10.2.1.1.3   61   25     M   X   X                                                                       5                                                      Check parameters on URLs
                                                 wsrp-rewriteResource portlet URL parameters MUST
                                                 also be specified.
                                                 Since the values a Portlet provides will appear as
                                                 either an URL parameter value or as part of the path
                                                 of an URL, these values it MUST be strictly encoded                                                                    Examine URLs to see if
CS138     10.2       60   18     M   X   X                                                                       5
                                                 (i.e. “&”, “=“, “/”, and “?” need to be url-escaped) so                                                                they are properly encoded.
                                                 that special URL characters do not invalidate the
                                                 processing of the enclosing URL.
                                                 The wsrp-token portlet URL parameter MUST only be
CS140 10.2.1.1.4.1   62   21     M       X       used in URLs where the wsrp-urlType portlet URL                 5
                                                 parameter has a value of “namespace”.

                                                 The value of this portlet URL parameter defines the
                                                 navigational state the Consumer MUST send to the
CS141   10.2.1.2     62   25     H           X   Producer when the URL is activated. If this parameter           2
                                                 is missing, the Consumer MUST NOT supply the
                                                 navigationalState field of the MarkupParams.
                                                 The value of this portlet URL parameter defines the
                                                 interaction state the Consumer MUST send to the
                                                 Producer when the URL is activated. If this parameter
CS142   10.2.1.3     62   29     H           X   is missing, the Consumer MUST NOT supply the                    2
                                                 interactionState field of the InteractionParams
                                                 structure.
                                                 The value for wsrp-mode MUST be one of the modes
CS143   10.2.1.4     62   34     M   X   X       detailed in section 6.8 or a custom mode the                    5                                                      Check parameters on URLs
                                                 Consumer specified as supported during registration.

                                                  The wsrp-mode portlet URL parameter MAY be used
CS144   10.2.1.4     63   36     L       X                                                                       5
                                                 whenever the wsrp-urlType portlet URL parameter has
                                                 a value of “blockingAction” or “render”.
                                                 The value for wsrp-windowState MUST be one of the
                                                 values detailed in section 6.9 or a custom window
CS145   10.2.1.5     62   40     M   X   X                                                                       5                                                      Check parameters on URLs
                                                 state the Consumer specified as supported during
                                                 registration.

                                                 The wsrp-windowState portlet URL parameter MAY be
CS146   10.2.1.5     62   42     L       X       used whenever the wsrp-urlType portlet URL parameter            5
                                                 has a value of “blockingAction” or “render”.
                                                 The value for the wsrp-secureURL is a boolean
                                                 indicating whether the resulting URL MUST involve                                                                                                                                                    Validate Consumer URL
CS147   10.2.1.7     63    5     H           X   secure communication between the client and                     2                                                                                                                                    rewriting can produce a
                                                 Consumer, as well as between the Consumer and                                                                                                                                                        secure URL upon request.
                                                 Producer.
                                                                                                                                                                                                                                                      Monitor transitions in
                                                 Note that the Consumer’s aggregated page MUST be
                                                                                                                                                                                                                                                      Portlets requesting a
                                                 secure if any of the Portlets whose content is being
CS148   10.2.1.7     63    7     H           X                                                                   2                                                                                                                                    secure page with security
                                                 displayed on the page have indicated the need for
                                                                                                                                                                                                                                                      transitions of the
                                                 secure communication for their current markup.
                                                                                                                                                                                                                                                      Consumer's page.
                                                 All content outside the {} pairs MUST be treated by                                                                    Check URLs against
CS149    10.2.2      63   33     H   X   X       the Producer/Portlet as constants the Consumer needs            3                                                      templates Consumer
                                                 to receive when the portlet URL is activated.                                                                          provided.

                                                 The Consumer MUST integrate placeholders for at
                                                 least the portlet URL parameters wsrp-
                                                 navigationalState, wsrp-interactionState, wsrp-mode
CS150   10.2.2.1     64    8     H           X                                                                   2                                                      Examine templates
                                                 and wsrp-windowState in its template and SHOULD
                                                 integrate placeholders for the other portlet URL
                                                 paramaters defined in this specification.
                                                 The Consumer MUST integrate placeholders for at
                                                 least the portlet URL parameters wsrp-
CS151   10.2.2.3     64   17     H           X                                                                   2                                                      Examine templates
                                                 navigationalState, wsrp-mode and wsrp-windowState
                                                 in its template.
                                                 The Consumer MUST integrate placeholders for at
CS152   10.2.2.5     64   24     H           X   least the portlet URL parameter wsrp-url to allow the           2                                                      Examine templates
                                                 Portlet to place the address of the URL.
                                                 Consumers not supplying all the other non-secure
CS153   10.2.2.7     64   32     H           X                                                                   2                                                      Examine templates
                                                 templates MUST set a value for this template.
                                                                                                                     Co
                                          Co                                                                    Re   nf
                               Pr      Pr
                                   Po     ns                                                                    po   ig                                                                                                        Monitor between
                   Pa          io      od                                                                                                            Producer Testcase         Monitor between            Consumer Testcase
 #      Section         Line       rtl    u                    Conformance statement                            rt   ur Testcase Driver Portlet                                                                               Consumer and User-   Cooperating User-Agent Notes or Alternatives
                   ge          rit     uc                                                                                                                 Driver             Consumer and Produer              Driver
                                   et     m                                                                     ab   at                                                                                                             Agent
                                y      er
                                          er                                                                    le   io
                                                                                                                     n

                                                Since this may become the value for an action
                                                oriented template, the Consumer SHOULD integrate
CS154   10.2.2.7   64   33     L            X   placeholders for at least the portlet URL parameters            X    2                                                       Examine templates
                                                wsrp-navigationalState, wsrp-interactionState, wsrp-
                                                mode and wsrp-windowState in this template.
                                                Consumers not supplying all the other secure
CS155   10.2.2.8   65    3     H            X                                                                        2                                                       Examine templates
                                                templates MUST set a value for this template.
                                                Since this may become the value for an action
                                                oriented template, the Consumer SHOULD integrate
CS156   10.2.2.8   65    4     L            X   placeholders for at least the portlet URL parameters            X    2                                                       Examine templates
                                                wsrp-navigationalState, wsrp-interactionState, wsrp-
                                                mode and wsrp-windowState in this template.
                                                If the Consumer includes wsrp-portletHandle, wsrp-
                                                userContextKey, wsrp-portletInstanceKey or wsrp-
                                                sessionID in a template, Producer written URLs based                                                                         Capture template & data
CS157   10.2.2.9   65   10     H    X   X                                                                            3
                                                on that template MUST replace the specified portlet                                                                          values, verify replacement
                                                URL parameter with the value the Consumer
                                                separately supplied in a data field.
                                                                                                                                                                             Scan for "<form …
                                                As a result, Portlets that include HTML forms with                                                                           method=get …>" in
                                                                                                                                                                             markup fragments. When
CS158   10.2.4     66    6     L    X           method=get in their markup MUST specify                         X    5
                                                                                                                                                                             found, validate
                                                usesMethodGet as “true” in their PortletDescription.
                                                                                                                                                                             PortletDescription set the
                                                                                                                                                                             flag.
                                                                                                                                                                             Is namespacePrefix used?
                                                Tokens needing uniqueness on the aggregated page
                                                                                                                                                                             Other common prefixes?
                                                MUST be encoded to a Portlet-instance specific
                                                                                                                                                                             Any naming conflicts on
CS159    10.3      66   13     L    X           namespace [A301]. The Portlet MAY do this by                         5
                                                                                                                                                                             an aggregated page
                                                prefixing the name of the resource with the
                                                                                                                                                                             containing 2 instances of
                                                namespacePrefix from the RuntimeContext structure.
                                                                                                                                                                             the portlet?

                                                Consumer URL and form processing has been
                                                designed so that namespace prefixing is not needed to
                                                qualify portlet URL parameters, portlet form
                                                parameters, or resource URL parameters. This allows                                                                                                                                                Observe prefixes
CS160    10.3      66   19     M            X   Consumers to avoid unnecessary processing when                       2                                                                                                                             Consumer inserted, does it
                                                dispatching client requests. Portlets choosing to                                                                                                                                                  strip them on a submit?
                                                namespace such elements MUST be process these
                                                parameters with their namespace prefix still attached
                                                as Consumers MUST NOT remove any prefixes.

                                                                                                                                                                                                                                                   Use a set of documents
                                                                                                                                                                                                                                                   that all namespace the
                                                The Consumer will locate such markers and MUST
                                                                                                                                                                                                                                                   same token (e.g.
CS161   10.3.1     66   37     H            X   replace them with a prefix that is unique to this                    2
                                                                                                                                                                                                                                                   Javascript function). Did
                                                instance of this portlet on the page.
                                                                                                                                                                                                                                                   the Consumer namespace
                                                                                                                                                                                                                                                   them consistently?
                                                The disallowed tags listed below are those tags that
                                                impact other Portlets or may even break the entire
                                                aggregated page. Inclusion of such a tag invalidates                                                                         What did the Consumer
CS162    10.5      67   15     VL           X                                                                   X    2                            Generate invalid markup.
                                                the whole markup fragment, which the Consumer MAY                                                                            do?
                                                replace with an error message.
                                                However, in order to be certified as being a cross-
                                                platform Portlet, a Portlet MUST NOT use the tags                                                                            Does markup contain any
CS163   10.5.1.1   67   21     H    X                                                                                4
                                                <body>, <frame>, <frameset>, <head>, <html>,                                                                                 disallowed tags?
                                                and <title>.
                                                However, in order to be certified as being a cross-
        10.5.2.1   67   35                                                                                                                                                   Does markup contain any
CS164                          H    X           platform Portlet, a Portlet MUST NOT use the tags                    4
        10.5.3.1   68   12                                                                                                                                                   disallowed tags?
                                                <body>, <head>, <html>, and <title>.
                                                                                                                                                                             Did they use these CSS
                                                Portlets SHOULD use the CSS style definitions from
                                                                                                                                                                             classes? Did they use
CS165    10.6      68   27     L    X           this specification in order to participate in a uniform         X    4
                                                                                                                                                                             other CSS classes? Tag
                                                display of their content by various Consumers.
                                                                                                                                                                             specific styles?
                                                For markup types that support CSS stylesheets,
                                                Consumers MUST supply a CSS stylesheet with
CS166    10.6      68   28     H            X   definitions for the classes defined in section 10.5 of               6
                                                this specification.
                                                A Consumer SHOULD provide the specific fields the
                                                Portlet declared it needs, unless the information is not                                                                     Did the Consumer supply
CS167    11.1      74   12     VL           X                                                                   X    2
                                                available or is restricted by policy (e.g. privacy                                                                           all requested data?
                                                policy).
                                                Normative copies of the WSDL that MUST be
                                                referenced by Producers implementing this
                                                specification can be found at:
                                                    http://www.oasis-
                                                open.org/committees/wsrp/v1/WSRP_v1_Types.xsd -
                                                The type, message and fault definitions for this
                                                                                                                                                                             Normal case is referencing
                                                specification
CS168     14       76   26     H        X                                                                       X    5                                                       these WSDLs via a WSDL
                                                    http://www.oasis-
                                                                                                                                                                             <import/> statement.
                                                open.org/committees/wsrp/v1/WSRP_v1_Interfaces.
                                                wsdl - The portType definitions for this specification
                                                    http://www.oasis-
                                                open.org/committees/wsrp/v1/WSRP_v1_Bindings.ws
                                                dl - The standard binding definitions for this
                                                specification
                                                WSRP_v1_Markup_PortType: All Producers MUST
                                                                                                                                                                             Parse WSDL for port that
                                                expose this portType.
CS169     14       76   36     H        X                                                                            5                                                       references a binding to
                                                WSRP_v1_ServiceDescription_PortType: All Producers
                                                                                                                                                                             this portType.
                                                MUST expose this portType.
                                                WSRP_v1_Markup_Binding_SOAP: All Producers
                                                MUST expose a port with this binding for the
                                                WSRP_v1_Markup_PortType (the Markup portType).
                                                WSRP_v1_ServiceDescription_Binding_SOAP: All                                                                                 Parse WSDL for port that
CS170     14       77    2     H        X                                                                            5
                                                Producers MUST expose a port with this binding for                                                                           references this binding.
                                                the WSRP_v1_ServiceDescription_PortType (the
                                                ServiceDescription portType).

                                                WSRP_v1_Registration_Binding_SOAP: Producers
                                                supporting the Registration portType MUST expose a                                                                           Parse WSDL for port that
CS171     14       77    6     L        X                                                                     X      5
                                                port with this binding to the                                                                                                references this binding.
                                                WSRP_v1_Registration_PortType.
                                                WSRP_v1_PortletManagement_Binding_SOAP:
                                                Producers supporting the PortletManagement portType                                                                          Parse WSDL for port that
CS172     14       77    8     L        X                                                                     X      5
                                                MUST expose a port with this binding to the                                                                                  references this binding.
                                                WSRP_v1_PortletManagement_PortType .
                                                The SOAP 1.1 faultcode SHOULD be set to the WSRP error
CS173     13       75   25                      code being raised, namespace qualified to be in the
                                                "urn:oasis:names:tc:wsrp:v1:types" namespace.
                                                In addition, the SOAP 1.1 fault's detail element MUST contain
CS174     13       75   27                      the corresponding namespaced fault element from the WSRP
                                                v1 WSDL as its only content.
                                                When using SOAP 1.2, the Subcode element MUST be
                                                present and carry the corresponding WSRP error code in its
                                                mandatory Value sub-element. The Subcode element MUST
CS175     13       75   28                      be contained in a SOAP 1.2 Receiver fault code, for the fault
                                                messages defined in this specification. SOAP 1.2 faults MAY
                                                carry additional content in the Detail sub-element, but MUST
                                                carry the corresponding WSRP namespaced fault element.
                                                Consumers MUST accept both the “&” character and the
                                                corresponding entity reference (i.e. “&amp;”) as separators
CS176   10.2.1     61   17                      between the name/value pairs as this allows portlets to
                                                produce markup fragments valid for a larger range of mime
                                                types.



                                                Processing order for mode change requests
                                                1. URL has a request for a mode change
                                                2. Consumer decides whether to honor the request
                                                3. performBlockingInteraction invocation
                                                4. InteractionResponse requests a mode change
                                                5. Consumer decides whether to honor the request
                                                6. getMarkup invocation
                  Line
                                                                                                 v2
                   in
 #      Section                            Conformance statement                               Change
                  draft
                                                                                                type
                   09
                          The Consumer MUST NOT begin to gather markup until it considers
CS177    3.12      630                                                                          Added
                          all Portlets to have finished the event distribution step.
                          scheduledDestruction: This optional field informs the Consumer
                       that the Producer has changed the scheduled destruction of the
                       underlying registration to the specified date and time. Producers
CS178    5.1.22   1306 returning this field MUST support the leasing feature. When this         Added
                       field is missing from a response message, scheduled destruction is
                       not in use and the explicit destruction operations MUST be used
                       instead.

                          scheduledDestruction: This optional field informs the Consumer
                       that the Producer has scheduled the underlying registration to be
                       destroyed on a certain date and time unless requested to change
CS179    5.1.23   1331                                                                          Added
                       that date and time. Producers returning this field MUST support the
                       leasing feature. When this field is missing from a response
                       message, scheduled destruction is not in use and the explicit
                       destruction operations MUST be used instead.

                       The optional portletHandles parameter provides a means for a
                       Consumer to restrict the set of Portlets for which it is requesting
CS180     5.2     1481 information. When the Consumer does not supply this parameter,           Added
                       the Producer MUST return a portletDescription for each of the
                       “Producer Offered Portlets” the Consumer has access to through
                       the supplied registrationContext.

                          scheduledDestruction: This optional field informs the Consumer
                       that the Producer has scheduled the Portlet to be destroyed on a
CS181    6.1.3    1493 certain date and time unless requested to change that date and           Added
                       time. Producers returning this field MUST support the leasing
                       feature. When this field is missing, scheduled destruction is not in
                       use and the explicit destruction operations MUST be used instead.
                       payload: This field contains the data for the event. Its contents
CS182    6.1.15   1796                                                                          Added
                       MUST conform to the schema referenced by the type field.
                       failedEvents: This optional array carries notifications to the
                       Consumer of events the Portlet failed to process. Since the
CS183    6.1.19   1886 Producer/Portlet is capable of appropriate retries for the processing    Added
                       of any given event, the Consumer MUST NOT retry distributing
                       failed events to the Portlet.

                       As the Producer is ignorant of this encoding and the Consumer is
CS184    6.1.24   1975 required to consistently encode parameters passed to the Producer       Duplicate
                       in the SOAP message, Consumers MUST ensure that form data is
                       properly decoded before it is passed to the Producer.
                            The Consumer MUST NOT consider a relationship with a Producer
                            ended until either a successful invocation of deregister, elapsing of
CS185      7.4       2675   the scheduled destruction time or receipt of a                        Modified
                            InvalidRegistration fault message from the Producer on an
                            invocation supplying the registrationHandle.
                            If the nillable response from this operation is nil, then scheduled
CS186      7.5       2699   destruction is not in use for this registration and the Consumer       Added
                            MUST use the deregister operation to destroy the registration.
                            The Consumer MUST inform the Producer that a Consumer
                            Configured Portlet which does not use leasing will no longer be used
CS187      8.4       3077   by invoking the destroyPortlets operation and MUST NOT consider Modified
                            such a Portlet to have been destroyed until destroyPortlets has
                            been successfully invoked for that Portlet.
                            If the nillable response from this operation is nil, then scheduled
CS188      8.5       3102   destruction is not in use for this Portlet and the Consumer MUST       Added
                            use the destroyPortlets operation to destroy the Portlet.
                            When not returning a fault, the Producer MUST return exactly one
CS189      8.7       3156                                                                          Added
                            entry in its response for each entry in the request.
                            If the Consumer requires the export to be ByValue and the Producer
CS190      8.8       3187   does not support such exports, the ExportByValueNotSupported           Added
                            fault MUST be returned.
                            When not returning a fault, the Producer MUST return exactly one
CS191      8.8       3198                                                                          Added
                            entry in its response for each entry in the request.
                            When a portlet URL specifies “resource” for the wsrp-urlType
                            portlet URL parameter, the wsrp-requiresRewrite portlet URL
CS192   10.2.1.1.3   3513                                                                         Modified
                            parameter and at least one of the wsrp-url and wsrp-resourceID
                            portlet URL parameters MUST also be specified.

CS193 10.2.1.1.3.2 3528 This parameter provides the resourceID parameter which the          Added
                        Consumer MUST supply when invoking the getResource operation.
                        These tokens are enclosed in curly braces (i.e. “{” and “}”) and
                        contain the name of the portlet URL parameter which the Producer
CS194   10.2.2     3596                                                                     Added
                        MUST replace (using "" for those parameters where the Producer
                        has no value).
                         The Consumer MUST integrate placeholders for at least the portlet
                        URL parameters wsrp-url, wsrp-resourceID, wsrp-
CS195  10.2.2.5    3633 preferOperation, wsrp-requiresRewrite and wsrp-                    Modified
                        navigationalState to allow the Portlet to place all the pieces of
                        information it could use for accessing a resource.
                        Overlap with the fields defined in the containing structure SHOULD
CS196    5.1.1      810                                                                     Added
                        be voided.
                        In the absence of a Consumer supplied value for a public parameter
CS197    6.1.2     1471 the Portlet listed in its portletDescription, the Portlet SHOULD    Added
                        use a default value.
                        Consumers SHOULD supply a value of “*” in the mimeTypes field of
CS198     6.3      2191 the MarkupParams structure as the returned object should simply be  Added
                        streamed to the End-User.
                       The Consumer SHOULD honor a handleEvents invocation
                       returning requests to change mode or windowState provided they do
CS199   6.4.2.3   2292 not conflict with other such requests. How to handle any conflicting  Added
                       requests is up to the Consumer implementation. Portlet developers
                       SHOULD be aware that the impacts on overall layouts MAY cause
                       Consumers to not honor a request to change windowState.
                       The Producer indicates its preferred request size in the
                       recommendedExportSize field of its ServiceDescription.
CS200    8.8      3202                                                                       Added
                       Consumers SHOULD limit their export requests to chunks no larger
                       then this size.
                        If the cacheControl field is empty, the Portlet has provided no
CS201   6.2.1.1   2161 guidance and the Consumer MAY apply whatever cache policy it         Modified
                       chooses.
                       We RECOMMEND extensions be of type xsd:string (where xsd
                       stands for http://www.w3c.org/2001/XMLSchema), a type from the
CS202   5.1.1      793 WSRP-defined “extra” namespace or be of a type defined in the        Modified
                       Producer’s WSDL as this enables Consumers to prepare an
                       appropriate serializer/deserializer.
CS063                                                                                       Deleted
                       Any Producer that supports cloning Portlets on
CS203     8       2729 performBlockingInteraction or handleEvents invocations MUST          Modified
                       support the destroyPortlets operation.
                                                                                            Modified
                       Once we determine the new WSDL location                              Modified
CS067
CS106




CS120




CS137




CS152
CS072



CS010




CS112

CS120?
CS168?
  Config     #Statements        Portlet         Producer        Monitor      Consumer         Monitor       User-Agent           Notes
                                                                                                            Cooperating
                                                                                                                           This may not be
     1             0        Testcase Driver       Any (1)       Required   UNDER TEST         Required       Testcase
                                                                                                                               required
                                                                                                              Driver
                                                                                                            Cooperating
                                                                                                                             Surround the
     2            44        Testcase Driver   Testcase Driver   Required   UNDER TEST         Required       Testcase
                                                                                                                              Consumer
                                                                                                              Driver
                                                                                                                             Surround the
     3            18        Testcase Driver   UNDER TEST        Required   Testcase Driver   Not required      Any
                                                                                                                              Producer
                                                                                                                          Are we intending to
     4             9         UNDER TEST            Any          Required        Any          Not required      Any         run conformance
                                                                                                                          testing for portlets?
                                                                                                                          Passive Monitor of
     5            43             Any          UNDER TEST        Required        Any          Not required      Any
                                                                                                                              Producer
                                                                                                                          Passive Monitor of
     6            22             Any               Any          Required   UNDER TEST        Not required      Any
                                                                                                                             Consumer
     U            26          Untestable
     C            10           Caching


Referenced Statements by config #
      1           2                 3               4             5              6               U              C
                CS001             CS015           CS087         CS003          CS018           CS002          CS044
                CS004             CS022           CS090         CS009          CS019           CS006          CS045
                CS005             CS026           CS091         CS010          CS021           CS008          CS046
                CS007             CS027           CS127         CS013          CS039           CS011          CS047
                CS012             CS033           CS128         CS014          CS040           CS065          CS058
                CS016             CS034           CS129         CS020          CS049           CS066          CS063
                CS017             CS053           CS163         CS023          CS051           CS075          CS070
                CS024             CS079           CS164         CS028          CS052           CS076          CS071
                CS025             CS098           CS165         CS029          CS054           CS077          CS072
                CS031             CS102                         CS030          CS055           CS080          CS073
                CS038             CS103                         CS032          CS056           CS088
                CS041             CS104                         CS035          CS069           CS089
                CS042             CS105                         CS036          CS083           CS092
                CS048             CS108                         CS037          CS084           CS093
                CS062             CS116                         CS043          CS099           CS094
                CS064             CS117                         CS050          CS100           CS096
                CS067             CS124                         CS057          CS101           CS097
                CS068             CS157                         CS059          CS111           CS106
                CS074                                           CS060          CS115           CS109
                CS078                                           CS061          CS120           CS113
                CS081                                           CS095          CS121           CS118
                CS082                                           CS110          CS166           CS122
                CS085                                           CS112                          CS123
                CS086                                           CS114                          CS125
                CS107                                           CS126                          CS132
                CS119                                           CS130                          CS133
                CS131                                           CS134
                CS135                                           CS137
                CS136                                           CS138
                CS141                                           #REF!
                CS142                                           CS140
                CS147                                           CS143
                CS148                                           CS144
                CS150                                           CS145
                CS151                                           CS146
                CS152                                           CS149
                CS153                                           CS158
                CS154                                           CS159
                CS155                                           CS168
                CS156                                           CS169
                CS160                                           CS170
                CS161                                           CS171
                CS162                                           CS172
                CS167
                                                                                          Base
AS #    CS #(s)   Test Case                    Assertion                      Portlet
                                                                                        Producer
                              All Messages exchanged between
                              Producers and Consumers relative to the
AS181              RP1810     invocation of WSRP defined operations                       Test
                              shall conform to the WSRP type
                              definitions.
                              Once a SessionContext.sessionID is
                              returned by the Producer, the Consumer
                              shall (outside of exceptional
AS001   CS001      RP0010     circumstances) return this ID in
                              RuntimeContext.sessionID on subsequent
                              invocations targetting this portlet instance
                              for this end user.
                              Consumers enabling bookmarking by End-
                              Users shall encode each portlet instance's
AS002   CS002         -       navigational state (or a reference to it) in
                              the page's URL.
                              Once a portletHandle is supplied to a
AS003   CS003         -       Consumer, it can not be changed on                        Untestable
                              subsequent invocations.
                              Once a registrationHandle is supplied to a
AS004   CS003         -       Consumer, it can not be changed on                        Untestable
                              subsequent invocations.

                              For client requests that result in
                              performBlockingInteraction() invocations,
AS005   CS004                 no other invocation is allowed until
                              performBlockingInteraction() returns or
                              times out.
                              When the Producer sets a cookie,
                                the Consumer may not:
                                  1. supply the cookie to the portlet for
AS006   CS005                 a different end-user
                                  2. supply the cookie to a different
                              instance of this portlet for the same end-
                              user
                              When the Producer sets a cookie, the
                              Consumer should return it on future
AS177   CS005                 invocations of this portlet instance for this
                              end-user.
                              When the Producer sets a cookie, a high
                              function Consumer shall (outside of
AS182                         exceptional circumstances) return it on
                              future invocations of this portlet instance
                              for this end-user.
                         If the Consumer uses a Producer who has
                         set requiresInitCookie to a value other
                         than "none", it shall:
AS007   CS007              1. Invoke initCookie for each portlet
                         from such a Producer for each new end-
                         user
                           2. Return the set cookie(s) only for this
                         end-user (see AS006, AS023 and AS024).
                         Both the Consumer and the Producer shall
                         continue to operate when the other
                         ignores any protocol extensions the other
                         provides. In particular:
                            1. A Producer shall not require
                         extension elements in order to return
                         markup from a getMarkup() interaction.
                            2. A Producer shall not return an
                         OperationFailed fault because a Consumer
        CS008
AS008             -      did not supply an extension                        Untestable
        CS011
                            3. A Consumer shall embed the markup
                         returned from getMarkup() even when no
                         extensions are supplied.
                            4. A Consumer shall process URL
                         activations from the markup returned by a
                         Portlet in accordance with the WSRP
                         specification even if the Producer does not
                         support an extension the Consumer
                         prefers be used.
                         Every time an extension element appears
                         in a WSRP message, it's child element
AS009   CS009   RP0090   shall use the xsi:type attribute to declare           Test
                         its type.
                         Producer extension elements should all
                         have a value for the xsi:type attribute
AS010   CS010   RP0100   that either points at the schema defined            Report
                         datatypes or datatypes defined in its
                         WSDL.
                         The Producer shall not return a handle
AS011   CS012   RP0110   (registrationHandle or portletHandle)                 Test
                         longer than 255 characters.
                         Both the Consumer and Producer can
AS012   CS013   RP0120   extend the data structures exchanged                Report
                         using the extensions element.
                         The Producer can use wildcards when
AS013   CS014   RP0130   specifying the value for                            Report
                         MarkupTypes.mimeType.
                         The Portlet's metadata shall use
AS014   CS015   RP0140   specification defined names to refer to     Report  Report
                         common user profile data items.
                         When the Consumer uses a Portlet that
                         specifies usesMethodGet='true', the
AS015   CS016   RP0150   Consumer's interaction URLs shall not use
                         query parameters.
                         When using a Portlet which specifies
                         PortletDescription.doesUrlTemplateProces
                         sing as “true”, Consumers have to supply
AS016   CS017   RP0160   values for the RuntimeContext.templates
                         and the RuntimeContext.namespacePrefix
                         fields.
                         When a Portlet specifies
                         PortletDescription.userContextStoredInSe
                         ssion as "true" and the Consumer supplies
AS017   CS018            an updated UserContext parameter, the               Test
                         Portlet's markup shall reflect the updated
                         data.
                         When a Portlet specifies
                         PortletDescription.templatesStoredInSessi
                         on as "true" and the Consumer supplies
AS018   CS019            new templates in                             Test   Test
                         RuntimeContext.templates, the Portlet's
                         markup needs to reflect the updated URL
                         format.
                         The length of the value for the required
AS019   CS020   RP0190   name attribute of all Property elements             Test
                         has to be greater than zero.

                         The length of the value for the required
AS020   CS021   RP0190   name attribute of all ResetProperty
                         elements has to be greater than zero.
                         If the Consumer includes a Property in
                         both the properties and resetProperties
AS021   CS022   RP0210   arrays, then the Producer shall return a            Test
                         Interface.InvalidParameters fault.

                         The length of the value for the required
AS022   CS023   RP0190   name attribute of all PropertyDescription           Test
                         elements has to be greater than zero.

                         When the Producer's
                         ServiceDescription.cookieProtocol has a
AS023   CS024            value of "perUser", the Consumer has to
                         associate the cookie(s) returned from
                         initCookie() with the combination of the
                         Portlet instance and the End-User.
                         When the Producer's
                         ServiceDescription.cookieProtocol has a
                         value of "perGroup", the Consumer has to
AS024   CS025            associate the cookie(s) returned from
                         initCookie() with the combination of the
                         End-User and the set of Portlets from the
                         Producer who specify identical values for
                         PortletDescription.groupID.
                         If ServiceDescription.requiresRegistration
                         is set to “false” then the Producer shall
        CS026            not return a Security.InvalidRegistration
AS025           RP0250                                                    Test
        CS103            fault message when a nil
                         registrationContext parameter is passed
                         to an operation.


                         If ServiceDescription.requiresRegistration is
                         set to “true” and a nill value is supplied
AS026   CS027   RP0260   for the value of registrationContext, then       Test
                         the Producer shall return an
                         Interface.InvalidRegistration fault
                         message.
                         The Producer's
                         ServiceDescription.customUserProfileItem
AS027   CS028   RP0270   Descriptions shall have a record for every       Test
                         user profile item not defined by WSRP
                         that the hosted Portlets use.
                         The Producer's
                         ServiceDescription.customWindowStateDe
AS028   CS029   RP0280   scriptions shall have a record for every         Test
                         custom window state that the hosted
                         Portlets use.

                         The Producer's
AS029   CS030   RP0290   ServiceDescription.customModeDescriptio          Test
                         ns shall have a record for every custom
                         mode that the hosted Portlets use.
                         If the Producer returns a value for the
                         RegistrationContext.registrationState
                         field, the Consumer shall return this value
AS030   CS031   RP0300   in the
                         RegistrationContext.registrationState field
                         whenever supplying the relevant
                         registrationHandle.
                         The in-place value for LocalizedString
                         fields should be in the locale of the first
AS031   CS032   RP0310                                                   Report
                         member of the supplied desiredLocales
                         array.
                         The Producer's ServiceDescription must
AS032   CS033   RP0320   always have a value for the                   Test
                         requiresRegistration flag.
                         After registration, the Producer's
                         ServiceDescription has to contain an array
                         of PortletDescriptions and the metadata
AS033   CS034   RP1080                                                 Test
                         that allows the registered Consumers to
                         properly interact with both the Producer
                         and Portlets it exposes.
                         The Producer's ServiceDescription should
AS034   CS035   RP0340   specify values in the locales the Consumer   Report
                         requests.
                         No SessionContext.sessionID value shall
AS035   CS036   RP0350                                                 Test
                         be longer than 4096 characters.

                         The frequency at which sessions timeout
AS036   CS037            and are regenerated with a new sessionID     Report
                         shall be as long as is reasonable.
                         When the Producer returns an
                         InvalidSession fault, the Consumer shall
                         reinvoke the operation without a
AS037   CS038            sessionID and with any templates and
                         userContext information that may have
                         been omitted in the first invocation.
                         When the Consumer supplies a
                         portletInstanceKey, it shall be a unique
AS038   CS039     -      and invariant reference to the instance of
                         the portlet on its page.

AS039   CS040            The Consumer shall keep its
                         portletInstanceKeys as short as possible.
                         When the
                         PortletDescription.templatesStoredInSessi
AS040   CS041            on is "true", then the Consumer only has
                         to send templates until a session is
                         established.
                         When the Producer returns a value in the
                         portletState field, the Consumer shall
AS041   CS042   RP0410   supply that value whenever the correlated
                         portletHandle is supplied
                         The Producer should only supply a
                         userScope which was either defined by
AS042   CS043   RP0420   this specification or indicated as           Report
                         supported by the Consumer (e.g.
                         consumerUserScopes).
                         A high function Producer only supplies a
                         userScope which was either defined by
AS183           RP1830   this specification or indicated as
                         supported by the Consumer (e.g.
                         consumerUserScopes).
                         Markup may be resupplied from a cache
                         when userScope=wsrp:perUser only if the
                         UserContext that would have been
AS043   CS044            supplied to the Portlet for generating
                         markup is identical to the UserContext
                         used to generate the cached markup.
                         Markup may be resupplied from a cache
                         only if the markupParams that would have
                         been supplied to the Portlet for generating
AS044   CS045            markup are identical to the
                         markupParams used to generate the
                         cached markup.
                         Once the expires duration for caching a
                         returned markup elapses, the Consumer
AS045   CS046   RP0450   can supply the validateTag returned with
                         the markup to inquire whether the
                         markup is still valid.

                         Once the expires duration for caching a
                         returned markup elapses, a high function
AS184           RP1840   Consumer supplies the validateTag
                         returned with the markup to inquire
                         whether the markup is still valid.
                         If the returned userScope is not one the
AS046   CS047            Consumer understands, it can not cache
                         the returned markup.
                         The secureClientCommunication flag
                         supplied by the Consumer shall match the
AS047   CS048   RP047    security of the client connection ('true' for
                         https: and 'false' for http:).
                         The Consumer can use wildcards for
AS048   CS049   RP0480
                         MarkupParams.mimeTypes.

AS049   CS050   RP0490   Portlets should generate markup of a type Report   Report
                         indicated in MarkupParams.mimeTypes.
                         High function Producers only return
AS185           RP1850   markup of a type indicated in
                         MarkupParams.mimeTypes

                         The value supplied in
                         MarkupParams.mode shall be either
AS050   CS051   RP0500   "wsrp:view" or one of the values from the
                         PortletDescription.markupTypes[].modes
                         for a matching mime type, which has to
                         have a value
                         The value supplied in
                         MarkupParams.windowState shall be
                         either "wsrp:normal" or a value from a
AS051   CS052   RP0510   markupTypes record for
                         PortletDescription.markupTypes[].mimeTy
                         pe which matches the value supplied in
                         MarkupParams.mimeTypes[].
                         When using the
                         WSRP_v1_Markup_Binding_SOAP binding,
                         the xml response message character set
AS052   CS053   RP0520   shall either be UTF-8, UTF-16 or a value    Test
                         from
                         MarkupParams.markupCharacterSets[].
                         The Consumer supplied
                         MarkupParams.validateTag field shall
                         either be missing (including nil) or have
                         the value from a previous
                         MarkupContext.CacheControl.validateTag
AS053   CS054   RP0530   where the MarkupParams supplied to the
                         previous invocation shall be field-wise
                         identical to the currently supplied
                         MarkupParams except for the validateTag
                         field.
                         When the Consumer supplies a value in
                         the MarkupParams.validNewModes[]
AS054   CS055            array, it should then honor a Portlet
                         request to change into that new mode.
                         All custom modes, window states, user
                         scopes and user authentication values
AS055   CS056   RP0550   (ServiceDescription, PortletDescription,    Test
                         RegistrationData, etc) shall follow the
                         format of a URI (i.e. namespace:value).
                         The Producer shall not return a
                         MarkupContext containing values for both
AS200           RP2000   the markupString and markupBinary           Test
                         fields

                         When a MarkupContext is returned from
                         an invocation of
                         performBlockingInteraction, the Consumer
AS197                    may use the contained markup, including
                         an empty or missing markup, as the
                         Portlet's current markup provided any
                         simultaneously requested mode and
                         windowState changes are honored.
                         If MarkupContext.useCachedMarkup has a
                         value of "true", then both the
AS056   CS057   RP0560   MarkupContext.markupString and              Test
                         MarkupContext.markupBinary fields shall
                         be missing or nil.
                         If MarkupContext.useCachedMarkup has a
                         value of "true", then any co-supplied
AS057   CS058            cacheControl structure shall replace any
                         previously supplied cacheControl for the
                         cached markup.
                         Whenever either the
                         MarkupContext.markupString or
                         MarkupContext.markupBinary fields have
                         a value, then the
                         MarkupContext.mimeType field shall
                         contain the mime type for the supplied
AS058   CS059   RP0580   markup. In the case of the markup being        Test
                         supplied via the
                         MarkupContext.markupBinary field, this
                         mime type specification shall include the
                         character set of the base64 encoded
                         markup.
                         The markup returned by a Portlet shall
                         either use a character set specified by the
                         Consumer in
                         MarkupParams.markupCharacterSets[],
AS059   CS060   RP0590   be UTF-8 or be UTF-16 (i.e. either the         Test
                         character set of the xml response
                         message or that which is specified using
                         the mimeType parameter syntax for the
                         MarkupContext.mimeType field shall
                         match).
                         The MarkupContext.locale field shall have
AS060   CS061   RP0600   a value whenever either the markupString       Test
                         or markupBinary fields have a value.
                         The value for MarkupContext.locale field
AS178   CS061   RP1780   should be one of the values requested in      Report
                         MarkupParams.locales.


                         When MarkupContext.requiresUrlRewriting
AS061   CS062            has a value of "true", then the Consumer
                         shall parse and rewrite the portlet URLs
                         from the WSRP pattern to valid URLs for
                         activating processing at the Consumer.
                         When MarkupContext.cacheControl is
                         missing or has a value of nil, then the
                         Consumer is not allowed to cache the
AS062   CS063            markup and therefore must invoke the
                         Portlet again in order to generate the
                         markup.
                         When UpdateResponse.navigationalState
                         has a value, the Consumer shall supply it
                         (excepting exceptional situations or cache
AS063   CS064   RP0630   hits) to the Portlet on page refreshes and
                         when regenerating markup due to the
                         activation of a portlet URL from another
                         portlet on the page.
                         A portlet shall not fail to generate markup
        CS065            when the mode or window state for the
AS064           RP064    markup is not what the Portlet had            Test
        CS066
                         requested.


                         The character encoding of all parameters
                         passed to the Producer, including
AS065   CS067     -      InteractionParams.formParameters, shall
                         be the character encoding of the message
                         used to transport the data to the
                         Producer, regardless of the character
                         encoding(s) received by the Consumer.
                         Once a Consumer has supplied a
                         userContextKey to the Producer for a
AS066   CS068            particular End-User, it shall resupply the
                         same key on all future invocations on
                         behalf of that End-User.

                         The Consumer shall not supply a value for
                         a userCategory
AS067   CS069   RP067    (UserContext.userCategories[]) for which
                         it has not received ItemDescription
                         (ServiceDescription.userCategoryDescripti
                         ons[]) using the supplied name.
                         When the Producer returns a
                         MarkupContext.cacheControl to the
                         Consumer, the Consumer is allowed to
AS068   CS070            cache the markup subject to the
                         parameters expressed by the
                         CacheControl.
                         When caching markup received from the
                         Producer, the Consumer shall follow the
AS205   CS071            invalidation controls expressed in the
                         fields of the supplied CacheControl.
                         When the Producer does not supply a
                         MarkupContext.cacheControl structure,
AS069   CS072            the Consumer shall not cache the
                         accompanying markup.
                         Whenever
                         MarkupContext.useCachedMarkup has a
AS070   CS073   RP0700   value of "true", the Portlet is encouraged Report    Report
                         to also supply a new CacheControl
                         structure

                         High function Producers always supply a
AS186           RP1860   CacheControl structure when returning
                         MarkupContext.useCachedMarkup with a
                         value of "true".
                         When an End-User activates a "portlet URL", the
                         Consumer shall invoke the Producer in accordance
                         with the parameters the Portlet had placed on the
                         URL. Namely;
                          1. Invoke correct operation based on wsrp-
                         urlType:
                             a. "blockingAction" =>
                         performBlockingInteraction()
                             b. "render" =" getMarkup()
                             c. "resource" => http get or post
                          2. Place values in fields correctly:
                             a. wsrp-navigationalState =>
                         MarkupParams.navigationalState
                             b. wsrp-interactionState =>
AS071   CS074            InteractionParams.interactionState
                             c. wsrp-url => url target of a resource request
                             d. wsrp-mode => MarkupParams.mode (if mode
                         request is honored)
                             e. wsrp-windowState =>
                         MarkupParams.windowState (if window state change
                         request is honored)
                             f. wsrp-portletHandle =>
                         PortletContext.portletHandle
                             g. wsrp-userContextKey =>
                         UserContext.userContextKey
                             h. wsrp-portletInstanceKey =>
                         RuntimeContext.portletInstanceKey
                             i. wsrp-sessionID => RuntimeContext.sessionID
                          3. Make invocation to a secure port if the activated
                         URL used secure communications (e.g. https).
                         When InteractionParams.portletState has
                         a value of "readWrite", the Portlet is free             Untesta
AS072   CS075     -      to modify any parameter in its persistent                       Untestable
                                                                                   ble
                         configuration.

                         When
                         InteractionParams.portletStateChange has
                         a value of "cloneBeforeWrite" and the      Untesta
AS073   CS076     -                                                         Untestable
                         Producer does not clone the Portlet, the     ble
                         Portlet is not allowed to modify any
                         parameter in its persistent configuration.
                         The Consumer shall not set the
                         InteractionParams.portletStateChange
                         field to a value of "readWrite" when the
                         supplied PortletContext.portletHandle is a
AS201           RP2010   handle to a Producer offered portlet and
                         no portletState has been returned to the
                         Consumer previously for this
                         portletHandle.
                         When the Producer returns a new
                         PortletContext.portletHandle without
                         returning a new
                         SessionContext.sessionID, the Consumer
                         shall supply the
AS075   CS078            RuntimeContext.sessionID sent on this
                         invocation when also supplying the newly
                         returned portletHandle in
                         PortletContext.portletHandle for this End-
                         User.
                         When
                         InteractionParams.portletStateChange has
                         a value of "readOnly", the Portlet is not  Untesta
AS076   CS079     -                                                         Untestable
                         allowed to modify any parameter in its       ble
                         persistent configuration.
                         The fault message
                         Interface.PortletStateChangeRequired can
AS077   CS080   RP0770   be returned to indicate that a state                 Report
                         change is required but currently not
                         allowed.

                         If ServiceDescription.requiresInitCookie
                         has a value of "perUser", then the
                         Consumer shall invoke initCookie() and
AS078   CS081            supply any returned cookies only to this
                         instance of the Portlet for invocations on
                         behalf of one particular End-User
                         (UserContext.userContextKey).

                         If ServiceDescription.requiresInitCookie
                         has a value of "perGroup", then the
                         Consumer shall invoke initCookie() and
AS079   CS081            supply any returned cookies only to
                         Portlets at the Producer having identical
                         PortletDescription.groupIDs for
                         invocations on behalf of one particular
                         End-User (UserContext.userContextKey).

                         If ServiceDescription.requiresInitCookie
                         has a value other than "none", "perUser"
AS080   CS081     -      and "perGroup", then the Consumer shall
                         only use the Producer if it understands
                         the semantics of the setting and agrees to
                         abide by those semantics.

                         When the Producer returns an
                         Interface.InvalidCookie fault message, the
AS081   CS082            Consumer shall reinvoke initCookie() and
                         use any returned cookies to replace those
                         it has been supplying from the previous
                         invocation of initCookie().
                         After complying with AS081, the
                         Consumer should reprocess the invocation
                         that caused the fault message to be
                         returned. The resulting invocation shall
AS082   CS082            resupply any data (templates and
                         userContext) that may not have been
                         sent previously due to an indication it was
                         stored in a session.
                         After complying with AS081, a high
                         function Consumer reprocesses the
                         invocation that caused the fault message
                         to be returned. The resulting invocation
AS187                    resupplies all data (templates and
                         userContext) that may not have been sent
                         previously due to an indication it was
                         stored in a session.

                         The Consumer shall not supply a
AS084   CS084   RP0840   sessionID to the Producer which it has
                         passed to releaseSessions() unless the
                         Producer has since reused the sessionID.
                         The Consumer shall supply any cookies
                         the Producer sets for interacting with a
                         particular instance of a Portlet to both the
AS085   CS085            performBlockingInteraction and
                         getMarkup operations in the
                         WSRP_v1_Markup_PortType interface.
                         Consumer handling of cookies shall follow
                         the prescriptions of RFC2109:
                         1. A Set-Cookie response header whose
                         NAME is the same as a previous cookie,
                         and whose Domain and Path attribute
                         values exactly (string) match those of the
                         previous cookie, will replace the old
                         cookie with the new one.
                         2. If the Set-Cookie has a value for Max-
                         Age of zero, the (old and new) cookie is
                         discarded.
                         3. Otherwise cookies accumulate until
AS086   CS086            they expire (resources permitting), at
                         which time they are discarded.
                         4. Cookies are sent based on the specified
                         request-host (including request-URI) and
                         should be sent until they expire.
                         5. In WSRP, cookies are specific to the
                         portletHandle and the end-user on whose
                         behalf the Consumer is invoking the
                         Producer and may only be resupplied for
                         this specific pair (the portletHandle is
                         relaxed to one from a group for cookies
                         returned from initCookie() when
                         ServiceDescription.requiresInitCookie=per
                         Group)
                         The UnsupportedMode fault message shall
                         not be returned when
AS087   CS087   RP0870   MarkupParams.mode has a value of                     Test
                         "wsrp:view".
                         Portlets shall treat any value of
AS088   CS088            MarkupParams.mode that they do not          Test
                         understand as "wsrp:view".
                         Portlets should restrict the screen real
                         estate needed for their markup when        Untesta
AS089   CS089     -      MarkupParams.windowState has a value         ble
                         of "wsrp:normal".
                         The UnsupportedWindowState fault
                         message shall not be returned when
AS090   CS090   RP0900   MarkupParams.windowState has a value        Test     Test
                         of "wsrp:normal".

                         Portlets may only include non-visible
AS091   CS091            markup (styles, grammars and scripting)     Test
                         when MarkupParams.windowState has a
                         value of "wsrp:minimized".
                         Portlets may consume additional screen
        CS092            real estate when                           Untesta
AS092             -
        CS093            MarkupParams.windowState has a value         ble
                         of "wsrp:maximized" or "wsrp:solo".
                         Portlets shall treat any value of
AS093   CS094     -      MarkupParams.windowState that they do Untesta Untestable
                         not understand as "wsrp:normal".             ble
                         A Producer's
                         ServiceDescription.userCategoryDescriptio
AS094   CS095     -      ns declares what user categories it                Untestable
                         supports.
                         For any End-User, the Consumer may
                         assert in UserContext.userCategories[]
                         any number (zero to all) of user
AS095   CS096   RP0950   categories a Producer has declared in
                         ServiceDescription.userCategoryDescriptio
                         ns.
                         Invocations of Producer operations should
                         not return a fault message just because
AS096   CS097            the Consumer did not specify any user               Report
                         categories.
                         If the Producer has not declared support
                         for any user categories, the Consumer
AS097           RP067    shall not assert any on behalf of the End-
                         User.
                         All registration processes shall produce a
                         registrationHandle which the Consumer
AS098   CS098     -      then supplies as                                   Untestable
                         RegistrationContext.registrationHandle.
                         The value for
                         RegistrationData.consumerAgent shall
AS099   CS099   RP0990   follow the format
                         "productName.majorVersion.minorVersion
                         ".

                         The names of the properties supplied in
                         RegistrationData.registrationProperties
AS100   CS100   RP1000   should be taken from the set published in
                         ServiceDescription.registrationPropertyDe
                         scription.
                         When a Consumer wishes to end a
AS101   CS101     -      relationship with a Producer, it invokes
                         the deregister() operation.
                         When a Producer chooses to end a
                         relationship, it shall return an
AS102   CS102     -      Security.InvalidRegistration fault                Untestable
                         message.
                         An invocation of register() shall either
                         succeed (returning a registrationHandle)
AS103   CS104   RP1030                                                        Test
                         or return a fault message indicating the
                         nature of the failure.
                         An invocation of register() shall not fail
AS104   CS105            because the Consumer has already                   Test
                         registered.
                         The Consumer shall not supply a value in
                         RegistrationContext.registrationHandle
                         that has previously been either supplied
AS105   CS107   RP1050   to deregister() or supplied to an
                         invocation that returned a
                         Security.InvalidRegistration fault
                         message.
                         When the Consumer supplies an invalid
                         RegistrationContext.registrationHandle to
                         a Producer that requires registration, the
AS106   CS108   RP1060   Producer shall return a                            Test
                         Security.InvalidRegistration fault
                         message.
                         Any failure of a deregister() invocation
AS107   CS109     -      shall return a fault message specifying the     Untestable
                         reason for the failure
                         A Producer's
                         ServiceDescription.offeredPortlets array
AS108   CS110   RP1080   shall have at least one member (may                Test
                         require registration to access).
                         Consumers may clone Portlets either
                         explicitly (via clonePortlet()) or implicitly
                         (via the "cloneBeforeWrite" setting of the
AS109   CS111            MarkupParams.portletState field). The
                         properties of a cloned portlet may be set
                         explicitly (via setProperties()) or opaquely
                         (via "wsrp:edit" mode).
                         If a
                         BlockingInteractionResponse.UpdateRespo
                         nse has a value for portletContext, then
AS110   CS112   RP1100   the Producer must have exposed a port              Test
                         that specifies the binding
                         "WSRP_v1_PortletManagement_Binding_S
                         OAP".
                         Producers shall be able to parse a
AS199                    multipart mime message from a single               Test
                         UploadContext structure.

                         Producers shall properly handle the
AS203                    Consumer parsing a multipart mime                  Test
                         message into the formParameters array
                         and an array of UploadContext structures.

                         The AccessDenied fault message should
AS111   CS113   RP1110   be returned when a valid portletHandle is        Report
                         passed with a registrationHandle that
                         does not scope it
                         A high function Producer returns the fault
AS188           RP1880   message AccessDenied when a valid
                         portletHandle is passed with a
                         registrationHandle that does not scope it.
                         The locales with values in
                         PortletDescriptionResponse.resourceList
AS113   CS114   RP1130   should all be in the list of locales         Report
                         requested via the desiredLocales
                         parameter.

                         The PortletContext.portletHandle supplied
                         to clonePortet() shall reference either a
                         portletHandle from
AS114   CS115   RP1160   ServiceDescription.portletDescriptions[].p
                         ortletHandle or a previously returned
                         PortletContext.portletHandle (these can
                         be returned from clonePortlet, getMarkup
                         or performBlockingInteraction).
                         If a Portlet's state is pushed to the
                         Consumer for persisting
                         (PortletContext.portletState) then the
AS115   CS116   RP1150   portletState field returned from              Test
                         clonePortlet() shall be equal to the one
                         supplied.
                         The PortletContext.portletHandle supplied
                         to an operation shall either be selected
AS116   CS117   RP1160   from
                         ServiceDescription.portletDescriptions[].p
                         ortletHandle or a previously returned
                         PortletContext.portletHandle.
                         The Producer shall return a fault message
                         when a cloned portlet
                         (PortletContext.portletHandle) is used
AS179   CS117   RP1790   with a                                        Test
                         RegistrationContext.registrationHandle
                         different from what was supplied when
                         the cloned portlet was generated.
                         The cloned PortletContext.portletHandle
                         returned shall not be a duplicate of a
AS176   CS117   RP1760                                                 Test
                         previously returned clone for the supplied
                         RegistrationContext.registrationHandle.
                         Unregistered Consumers shall destroy any
                         cloned Portlets using destroyPortlets()
AS117   CS119     -
                         when ending a relationship with the
                         Producer
                         When finished using a cloned Portlet, the
AS118   CS120     -      Consumer shall invoke destroyPortlets()
                         supplied the relevant portletHandle.
                         Once destroyPortlets() has returned
                         without an error message, the Consumer
AS119   CS121   RP1190
                         shall not supply any of the passed
                         portletHandles on subsequent invocations.
                         The Producer/Portlet shall process
                         property updates as a set and not do         Untesta
AS120   CS122     -                                                           Untestable
                         things such as validation until the full set   ble
                         has been processed.
                         The Producer shall not begin the
                         processing of a set of property updates
AS121   CS123     -                                                           Untestable
                         while any other set is being processed for
                         the same portletHandle.
                         When a nil names parameter is supplied
                         to getPortletProperties(), the Producer
AS122   CS124     -                                                           Untestable
                         shall enumerate the properties for the
                         referenced portletHandle.
                         PortletPropertyDescriptionResponse
                         should contain all the properties that are
AS123   CS125                                                                  Report
                         enumerated when no names parameter is
                         passed to getPortletProperties().

                         A high function Producer ensures a match
                         between the properties described in
                         PortletPropertyDescriptionResponse and
AS189
                         those enumerated when no names
                         parameter is passed to
                         getPortletProperties().

                         The character set of the returned markup
AS125   CS127     -      shall be one of UTF-8, UTF-16 or a value            Untestable
                         from MarkupParams.characterSets[].
                         The Producer/Portlet shall encode all URL
AS126   CS128            values so that they are valid for the        Test      Test
                         markup type being returned.
                         Whenever the Portlet/Producer needs the
                         Consumer to rewrite any URLs, it shall set
AS127   CS129                                                         Test      Test
                         the MarkupContext.requiresUrlRewriting
                         flag to "true".
                         Producers/Portlets shall comply with
                         RFC2279, RFC1738 and RFC2141 when
AS128   CS130            generating URLs. In particular, non-ASCII    Test      Test
                         characters are to be represented using
                         UTF-8 and then escaped using the %hh
                         syntax.
                         When processing an URL activation, the
                         Consumer shall determine whether or not
AS129   CS131   RP1290   any requests to change window state or
                         mode are to be honored before invoking
                         the target operation on the Producer.
                         Consumer URL rewrite processing can
AS130   CS132     -      ignore URLs not fully complying to the
                         specification defined template.
                         The Consumer shall process "&" and
AS193   CS176   RP1930   "&amp;" as equivalent in URL rewriting
                         expressions.
                         The Consumer can ignore escaped
AS131   CS133     -      characters whenever it is processing
                         Portlet URLs.
                         The first parameter of an URL conforming
AS132   CS133   RP1320   to the format for Consumer URL rewriting          Test
                         shall always be "wsrp-urlType".

                         When form parameters are encoded into
                         the querystring because HTTP Get is used
                         for submitting them, the Consumer shall
AS133   CS135            place all such parameters not explicitly
                         represented in WSRP fields into the
                         InteractionsParams.formParameters
                         array.
                         When an activated portlet URL has
        CS136            specified the wsrp-navigationalState
AS134           RP1340   portlet URL parameter, the Consumer
        CS141
                         shall supply its value unchanged in the
                         MarkupParams.navigationalState field.
                         When an activated portlet URL has not
        CS136            specified the wsrp-navigationalState
AS135           RP1350   portlet URL parameter, the Consumer
        CS141
                         shall not supply any value in the
                         MarkupParams.navigationalState field.
                         When an UpdateResponse has a nil
                         navigationalState element, then the
AS136   CS136   RP1360   Consumer shall not supply any value in
                         the MarkupParams.navigationalState field
                         to an ensuing getMarkup().
                         When a portlet URL has a value of
                         "resource" for the wsrp-urlType portlet
AS137   CS137   RP1370   URL parameter, then it shall also have a   Test   Test
                         value for the wsrp-url and wsrp-
                         rewriteResource portlet URL parameters.
                         The Consumer shall parse the stream
                         fetched from a resource for URL rewriting
                         and namespacing when the resource was
AS198                    requested by a URL with wsrp-
                         urlType="resource" and wsrp-
                         requiresRewrite="true"", and the resource
                         is a textual mime type that the Consumer
                         understands.
                         The values a Portlet supplies for portlet
                         URL parameters shall all be strictly
AS138   CS138   RP1380                                                 Test   Test
                         encoded so as to not invalidate them
                         being specified in an enclosing URL.
                         Producers shall use one of the urlType
                         values defined in the WSRP specification
AS204           RP2040   (i.e. render, resource, blockingAction) to           Test
                         replace any occurrence of {wsrp-urlType}
                         in a template.

                         When an activated portlet URL has
                         specified the wsrp-interactionState portlet
AS143   CS141   RP1430   URL parameter, the Consumer shall
                         supply its value unchanged in the
                         InteractionParams.interactionState field.

                         When an activated portlet URL has not
                         specified the wsrp-interactionState portlet
AS144   CS142   RP1440   URL parameter, the Consumer shall not
                         supply any value in the
                         InteractionParams.interactionState field.
                         The value specified for the wsrp-mode
                         portlet URL parameter shall be one of
AS145   CS143   RP1450   "wsrp:view", "wsrp:edit", "wsrp:help",        Test   Test
                         "wsrp:preview" or a value specified in
                         RegistrationData.consumerModes.
                         When the portlet URL parameter wsrp-
                         mode is used, the wsrp-urlType portlet
AS146   CS144   RP1460                                                 Test   Test
                         URL parameter shall have a value of
                         "render" or "blockingAction".
                         The value specified for the wsrp-
                         windowState portlet URL parameter shall
                         be one of "wsrp:normal",
AS147   CS145   RP1470                                                 Test   Test
                         "wsrp:minimized", "wsrp:maximized",
                         "wsrp:solo" or a value specified in
                         RegistrationData.consumerWindowStates.
                         When the portlet URL parameter wsrp-
                         windowState is used, the wsrp-urlType
AS148   CS146   RP1480                                                 Test   Test
                         portlet URL parameter shall have a value
                         of "render" or "blockingAction".
                         When a Consumer rewrites a portlet URL
                         that specifies wsrp-secureURL as "true" it
AS149   CS147   RP1490
                         shall ensure that secure communications
                         are used when the URL is activated.
                         If any Portlet on an aggregated page has
                         requested secure communications using
                         the
                         PortletDescription.defaultMarkupSecure
                         field, the PortletDescription.onlySecure
                         field or the wsrp-secureURL portlet URL
AS150   CS148   RP1500   parameter, then the Consumer shall only
                         use secure communication with the End-
                         User. The Consumer shall also use secure
                         communications when invoking the
                         portlets which have indicated, using these
                         booleans, that communications need to be
                         secure.
                         The Portlet's processing of templates to
                         write URLs into its markup shall not
AS151   CS149            modify the structure, order or content of    Test   Test
                         the portions outside of the curly braces
                         (i.e "{" and "}".
                         The Consumer's value for
                         RuntimeContext.templates.blockingAction
AS152   CS150   RP1520   Template shall include the parameter
                         wsrp-mode, wsrp-windowState, wsrp-
                         interactionState and wsrp-
                         navigationalState.
                         The Consumer's value for
                         RuntimeContext.templates.renderTemplat
AS153   CS151   RP1530   e shall include the parameter wsrp-mode,
                         wsrp-windowState and wsrp-
                         navigationalState.
                         The Consumer's value for
AS154   CS152   RP1540   resourceTemplate shall include the
                         parameter wsrp-url.
                         If the Consumer supplies templates, then
                         the defaultTemplate shall not be null
AS155   CS153   RP1550   unless all other non-secure templates are
                         not null. These are
                         blockingActionTemplate, renderTemplate
                         and resourceTemplate.
                         The Consumer's value for defaultTemplate
                         should include the parameters wsrp-
AS156   CS154   RP1560
                         navigationalState, wsrp-interactionState,
                         wsrp-windowState and wsrp-mode.
                         A high function Consumer's value for
                         defaultTemplate includes the parameters
                         wsrp-navigationalState, wsrp-
AS190           RP1900   interactionState, wsrp-windowState and
                         wsrp-mode whenever the renderTemplate
                         or blockingActionTemplate are not also
                         supplied.

                         The Consumer's value for
                         secureDefaultTemplate should include the
AS158   CS156   RP1580   parameters wsrp-navigationalState, wsrp-
                         interactionState, wsrp-windowState and
                         wsrp-mode.
                         A high function Consumer's value for
                         secureDefaultTemplate includes the
                         parameters wsrp-navigationalState, wsrp-
AS191           RP1910   interactionState, wsrp-windowState and
                         wsrp-mode whenever the
                         secureRenderTemplate or
                         secureBlockingActionTemplate are not
                         also supplied.
                         If a form where the attribute method has
                         a value of "get" exists in any markup
AS160   CS158            generated by a portlet, then the value for   Test
                         PortletDescription.usesMethodGet shall be
                         "true"
                         Tokens needing to be unique on the
                         Consumer's aggregated page need to be
                         namespaced in a manner unique to the
                         instance of the Portlet. Use of the
AS161   CS159            RuntimeContext.namespacePrefix and           Test
                         RuntimeContext.portletInstanceKey field's
                         values are examples of such a
                         mechanism.
                         The Consumer shall not strip any
AS162   CS160   RP1620   namespaces from parameters on
                         activated URLs.
                         The Consumer shall provide unique
                         namespaced names such that the set of
                         occurences of a namespaced name on the
AS163   CS161
                         aggregated page exactly matches the
                         placement of occurences requesting the
                         namespacing in the Portlet's markup.
                         The Consumer is allowed to replace any
                         MarkupContext.markupString or
AS164   CS162
                         MarkupContext.markupBinary that has
                         invalid elements.
                         The markup returned in either
                         MarkupContext.markupString or
                         MarkupContext.markupBinary shall not
AS165   CS163   RP1650   contain <html>, <body>, <frame>,              Test      Test
                         <frameset>, <head>, or <title> elements
                         for the mime type text/html.
                         The markup returned in either
                         MarkupContext.markupString or
                         MarkupContext.markupBinary shall not
AS166   CS164   RP1650   contain <html>, <body>, <head>, or            Test      Test
                         <title> elements for the mime type
                         "application/xhtml+xml".

                         The markup returned in either
                         MarkupContext.markupString or
                         MarkupContext.markupBinary should have
                         elements with the class attribute as
                         having a value equal to a spec defined
                         CSS class name (i.e. portlet-font, portlet-
                         font-dim, portlet-msg-status,portlet-msg-
                         info, portlet-msg-error, portlet-msg-alert,
                         portlet-msg-success, portlet-section-
                         header, portlet-section-body, portlet-
                         section-alternate, portlet-section-
                         selected, portlet-section-subheader,
                         portlet-section-footer, portlet-section-
AS167   CS165   RP1670   text, portlet-table-header, portlet-table-    Report   Report
                         body, portlet-table-alternate, portlet-table-
                         selected, portlet-table-subheader, portlet-
                         table-footer, portlet-table-text, portlet-
                         form-label, portlet-form-input-field,
                         portlet-form-button, portlet-icon-label,
                         portlet-form-field-label, portlet-form-field,
                         portlet-menu, portlet-menu-item, portlet-
                         menu-item-selected, portlet-menu-item-
                         hover, portlet-menu-item-hover-selected,
                         portlet-menu-cascade-item, portlet-menu-
                         cascade-item-selected, portlet-menu-
                         description or
                         portlet-menu-caption).
                         No style rule for a spec defined CSS class
AS168   CS166            may set visibility="hidden" or
                         block="none".
                         If the Consumer's page is of a type that
                         supports CSS (e.g. text/html) then style
AS169   CS166            rules for all of the CSS class names
                         defined in the spec must exist for the
                         page.
                         The fields under UserContext.profile
AS170   CS167   RP1700   should match those requested in
                         PortletDescription.userProfileItems.
                         Producer using SOAP 1.1 should set the
AS194   CS173   RP1940   faultcode element to be a WSRP Qname           Report
                         for a defined fault type.
                         For fault messages, Producer using SOAP
                         1.1 shall set the child of the detail
AS195   CS174   RP1950   element to be a WSRP defined fault              Test
                         element.
                         For fault messages, Producer using SOAP
                         1.2 shall:
                         1. Set the Subcode element to be a WSRP
AS196   CS175   RO1960   Qname for a defined fault type.                 Test
                         2. Set a child of the detail element to be a
                         WSRP defined fault element.
                         The referenced interfaces.wsdl, bindings
                         and types in the wsdl document must be
AS171   CS168                                                            Test
                         identical to the copies at OASIS when
                         using a compare utility such as XMLdiff.
                         The Producer shall expose a port that
                         resolves to the
AS172   CS170   RP1720   "WSRP_v1_Markup_Binding_SOAP"                   Test
                         binding.
                         The Producer shall expose a port that
                         resolves to the
AS173   CS170   RP1730   "WSRP_v1_ServiceDescription_Binding_S           Test
                         OAP" binding.

                         A high function Producer shall expose a
                         port that resolves to the
AS192           RP1920   "WSRP_v1_PortletManagement_Binding_S
                         OAP" binding.
                         If a Producer exposes any port that
                         resolves to the
                         "WSRP_v1_PortletManagement_PortType"
AS175   CS172   RP1750   portType, then the Producer shall expose        Test
                         a port using the
                         WSRP_v1_PortletManagement_Binding_S
                         OAP binding.
 Simple  Complex    Base              Simple       Complex Functional          Configu
                                                                      Priority
Producer Producer Consumer           Consumer     Consumer Categories           ration



  Test       Test         Test         Test         Test       Unassigned    High




                                                                Session
                         Report       Report       Report                   Medium   2
                                                                Handling




                        Untestable   Untestable   Untestable   Unassigned    Low



Untestable Untestable                                           Handles      Low


Untestable Untestable                                           Handles      Low




                           Test         Test         Test      Unassigned    Low     2




                                                                 Cookie
                           Test         Test         Test                    High    6
                                                                Handling




                                                                 Cookie
                         Report                                              High    6
                                                                Handling



                                                                 Cookie
                                        Test         Test                    High    6
                                                                Handling
                                                               Cookie
                         Test         Test         Test                       High      6
                                                              Handling




Untestable Untestable Untestable   Untestable   Untestable   Extensions




   Test      Test        Test         Test         Test      Extensions     Medium     5, 6




 Report     Report                                           Extensions       Low       5



   Test      Test                                             Handles       Very Low    2


 Report     Report                                           Extensions       Low       5


 Report     Report                                            Metadata        Low       5


 Report     Report                                           User Profile     Low       3
                                      URL
              Test   Test   Test                  Low     2
                                   Processing




              Test   Test   Test   URL Writing    High    6




Test   Test                         Metadata      Low     4




Test   Test                        URL Writing    Low     6




Test   Test   Test   Test   Test   Properties     High    5



              Test   Test   Test   Properties     High    6




Test   Test                        Properties    Medium   3




Test   Test                        Properties     High    5




                                     Cookie
              Test   Test   Test                  High    6
                                    Handling
                                         Cookie
                  Test   Test   Test                  High   6
                                        Handling




 Test     Test                         Registration   High   3




 Test     Test                         Registration   High   3




 Test     Test                         User Profile   Low    5




                                        Window
 Test     Test                                        Low    5
                                        States




 Test     Test                           Modes        Low    5




                  Test   Test   Test   Registration   High   6




Report   Report                        Unassigned     Low    5
 Test     Test                                            Metadata        High     5




 Test     Test                                           Registration     High     5




Report   Report                                           Metadata        Low      5

                                                          Session
 Test     Test                                                            High     5
                                                          Handling

                                                          Session
Report   Report                                                         Very Low   5
                                                          Handling



                                                          Session
                     Test         Test         Test                       Low      6
                                                          Handling




                  Untestable   Untestable   Untestable   Unassigned                6



                   Report       Report       Report      Unassigned     Very Low   6



                   Report       Report       Report      URL Writing    Very Low   2



                                                           Portlet
                     Test         Test         Test                       High     6
                                                         Management



                                                          Caching         Low      5




 Test     Test                                            Caching         Low      5
                 Test     Test     Test     Caching




                 Test     Test     Test     Caching




                Report   Report             Caching




                                   Test     Caching




                 Test     Test     Test     Caching



                 Test     Test     Test    Unassigned     High     2


                Report   Report   Report    Markup      Very Low   6


Report                                      Markup        Low      5


         Test                               Markup        Low      5




                 Test     Test     Test      Modes        High     6




                                            Window
                 Test     Test     Test                   High     6
                                            States
Test   Test                              Markup       High     5




               Test     Test     Test    Caching      Low      6




              Report   Report   Report    Modes     Very Low   6




Test   Test    Test     Test     Test    Metadata     Low      6




Test   Test




              Report   Report   Report




Test   Test                              Caching      High     5




               Test     Test     Test    Caching
 Test     Test                                  Markup       Very High   5




 Test     Test                                  Markup         High      5




 Test     Test                                  Markup         High      5



Report   Report                                 Markup         High      5




                   Test     Test     Test    URL Rewriting     High      2




                   Test     Test     Test      Caching




                  Report   Report   Report    Unassigned       Low       2
                                                         Modes        Medium     4




                                                          URL
                Untestable   Untestable   Untestable                    Low      2
                                                       Processing




                   Test         Test         Test      User Profile   Very Low   2




                                                         User
                   Test         Test         Test                     Medium     6
                                                       Categories




                   Test         Test         Test       Caching




                   Test         Test         Test       Caching




                   Test         Test         Test       Caching




Report                                                  Caching




         Test                                           Caching
                                                URL
                        Test   Test   Test                 High    6
                                             Processing




                                               Portlet
Untestable Untestable
                                             Management




                                               Portlet
Untestable Untestable
                                             Management




                                               Portlet
                        Test   Test   Test                Medium
                                             Management
                                                                Session
                           Test         Test         Test                   High   6
                                                                Handling




                                                                 Portlet
Untestable Untestable                                                       Low    3
                                                               Management



                                                                 Portlet
 Report     Report                                                                 3
                                                               Management




                                                                 Cookie
                           Test         Test         Test                   High   6
                                                                Handling




                                                                 Cookie
                           Test         Test         Test                   High   6
                                                                Handling




                                                                 Cookie
                        Untestable   Untestable   Untestable                High
                                                                Handling




                                                                 Cookie
                           Test         Test         Test                   High   6
                                                                Handling
                          Cookie
Report   Report                     Low    2
                         Handling




                          Cookie
                  Test              Low    2
                         Handling




                         Session
 Test     Test    Test              High   6
                         Handling




                          Cookie
 Test     Test    Test              High   6
                         Handling
                                    Cookie
              Test   Test   Test               Low     2
                                   Handling




Test   Test                        Modes       High    4



                                   Modes      Medium   4


                                   Window
                                   States


                                   Window
Test   Test                                    High    4
                                   States



                                   Window
                                               Low     4
                                   States
                                                                Window
                                                                States


                                                                Window
Untestable Untestable
                                                                States


                                                                 User
Untestable Untestable                                                                  5
                                                               Categories



                                                                 User
                         Report       Report       Report                      Low     6
                                                               Categories



                                                                 User
 Report     Report                                                             Low     3
                                                               Categories


                                                                 User
                           Test         Test         Test                     Medium   5
                                                               Categories



Untestable Untestable                                          Registration




                           Test         Test         Test      Registration    Low     6




                         Report       Report       Report      Registration    Low     6




                        Untestable   Untestable   Untestable   Registration            3



Untestable Untestable                                          Registration            3




   Test      Test                                              Registration   Medium   3
   Test      Test                                  Registration   Medium   3




                         Test     Test     Test    Registration    High    2




   Test      Test                                  Registration    High    3




Untestable Untestable                              Registration



   Test      Test                                   Metadata       High    5




                                                     Portlet
                        Report   Report   Report                   Low     6
                                                   Management




                                                     Portlet
   Test      Test                                                 Medium   5
                                                   Management




   Test      Test



   Test      Test




                                                   Registration    Low
 Test     Test                                           Registration   Low




                                                           Portlet
Report   Report                                                     Very Low   5
                                                         Management




                                                           Portlet
                     Test         Test         Test                     High   6
                                                         Management




                                                           Portlet
 Test     Test                                                          Low    3
                                                         Management




                     Test         Test         Test       Handles       High   6




 Test     Test                                            Handles       High   3




                                                           Portlet
 Test     Test                                                          High   3
                                                         Management



                                                           Portlet
                  Untestable   Untestable   Untestable                         2
                                                         Management


                                                           Portlet
                  Untestable   Untestable   Untestable                         6
                                                         Management
                                               Portlet
                        Test   Test   Test                     High     6
                                             Management




Untestable Untestable                         Properties




Untestable Untestable                         Properties




Untestable Untestable                         Properties       Low      3




                                              Properties




   Test      Test                             Properties




Untestable Untestable                           Markup         Low      4



   Test      Test                               Markup         Low      4



   Test      Test                            URL Rewriting     Low      4




   Test      Test                            URL Writing     Very Low   5
                                                         URL
                 Test         Test         Test                      High   6
                                                      Processing




              Untestable   Untestable   Untestable URL Rewriting            2


                 Test         Test         Test      URL Rewriting   High   2


                                                         URL
              Untestable   Untestable   Untestable                          2
                                                      Processing


Test   Test                                          URL Rewriting   High   5




                                                         URL
                 Test         Test         Test                      High   2
                                                      Processing




                                                         URL
                 Test         Test         Test                      High   6
                                                      Processing



                                                         URL
                 Test         Test         Test                      High   6
                                                      Processing



                                                         URL
                 Test         Test         Test                      High   6
                                                      Processing




Test   Test                                          URL Rewriting Medium   5
              Test   Test   Test   URL Rewriting Medium   5




                                       URL
Test   Test                                      Medium   5
                                    Processing




Test   Test




                                       URL
              Test   Test   Test                  High    6
                                    Processing




                                       URL
              Test   Test   Test                  High    6
                                    Processing




Test   Test                           Modes      Medium   5




Test   Test                        URL Writing    Low     5




                                     Window
Test   Test                                      Medium   5
                                     States




Test   Test                        URL Writing    Low     5
               Test    Test   Test   URL Rewriting   High   2




                                         URL
               Test    Test   Test                   High   2
                                      Processing




Test   Test                          URL Writing     High   5




               Test    Test   Test   URL Writing     High   6




               Test    Test   Test   URL Writing     High   6




               Test    Test   Test   URL Writing     High   6




               Test    Test   Test   URL Writing     High   6




              Report                 URL Writing     Low    2
          Test     Test    URL Writing     Low      2




Report                     URL Writing     Low      2




          Test     Test    URL Writing     Low      2




                            Metadata       Low      5




                           Namespacing     Low




 Test     Test     Test    Namespacing   Medium     2




 Test     Test     Test    Namespacing     High     2




Report   Report   Report     Markup      Very Low   2
 Test     Test                                 Markup         High     4




 Test     Test                                 Markup         High     4




Report   Report                                 CSS           Low      4




                   Test     Test     Test       CSS           High     2




                   Test     Test     Test       CSS           High     2



                  Report   Report   Report   User Profile   Very Low   2
Report   Report   Unassigned   Medium



 Test     Test    Unassigned    High




 Test     Test    Unassigned    High




 Test     Test      WSDL        High    5




 Test     Test      WSDL        High    5




 Test     Test      WSDL        High    5




 Test     Test      WSDL        High    5




 Test     Test      WSDL        Low     5

						
Related docs
Other docs by ajizai
True scary creatures.ppt - bishopcook09
Views: 280  |  Downloads: 0
Programa del curso - imfohsa
Views: 258  |  Downloads: 0
Profit Optimizer - Your Business Coaching Club
Views: 238  |  Downloads: 0
Professional body data
Views: 252  |  Downloads: 1
produkter
Views: 396  |  Downloads: 1
Produksjonsstyring Mongstad
Views: 224  |  Downloads: 0
Production optimization - PPT presentation
Views: 253  |  Downloads: 0