Although on the other hand, it will be nice to use XInclude instead of
entities,
provided that there is a good implementation in Cocoon.




----- Original Message -----
From: "Ivelin Ivanov" <[EMAIL PROTECTED]>
To: "Ivelin Ivanov" <[EMAIL PROTECTED]>; "Ovidiu Predescu"
<[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Saturday, June 08, 2002 8:08 PM
Subject: Re: [VOTE] Schematron validator in Anteater (and Cocoonvalidating
Transformer)


>
> Ovidiu,
>
> I think I have answered my question about step composition.
> Since Anteater is an Ant extenstion, the method used by WebTest (and
Latka)
> is applicable here.
>
> We can just use external XML Entities to reference test steps.
> Although not the most elegant mechanism, it is simple and works.
>
> See here for example:
> http://webtest.canoo.com/webtest/samples/ffo/NatPerSingle/MostSimple.xml
>
>
> I am still waiting for response on the validation syntax and JUnit report
> feed.
>
>
>
> Ivelin
>
>
> ----- Original Message -----
> From: "Ivelin Ivanov" <[EMAIL PROTECTED]>
> To: "Ovidiu Predescu" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Friday, June 07, 2002 11:48 PM
> Subject: Re: [VOTE] Schematron validator in Anteater (and Cocoonvalidating
> Transformer)
>
>
> >
> > I will be interested to contribute some code.
> > The validator package is totally independent of Avalon.
> > It only needs commons-jxpath.jar
> >
> > The package is org.apache.cocoon.components.validation
> >
> > I guess I can just zip up the files in the package for anteater.
> >
> > I would like us to work out the exact syntax before starting, though.
> >
> > How do we plan to generate junit reports.
> > Right now I don't see a nice way to interrupt a test, if there was a
> > validation error, and jump straight to the junit reporting.
> >
> > I have also asked a question about reusing steps among test cases.
> > How do you suggest this can be done?
> >
> > Once we work out the architectural problems, I'll move to coding.
> >
> > My sf.net login is "ivelin"
> >
> >
> >
> >
> > Ivelin
> >
> >
> >
> > ----- Original Message -----
> > From: "Ovidiu Predescu" <[EMAIL PROTECTED]>
> > To: "Ivelin Ivanov" <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>;
> > <[EMAIL PROTECTED]>
> > Sent: Friday, June 07, 2002 10:18 PM
> > Subject: Re: [VOTE] Schematron validator in Anteater (and
Cocoonvalidating
> > Transformer)
> >
> >
> > > Ivelin,
> > >
> > > This sounds very interesting, are you interested in adding this
feature
> to
> > > Anteater and writing some documentation for it? If you're interested,
I
> > can
> > > make you a committer to the project, so you can develop more easily.
> Just
> > > let me know your SourceForge account.
> > >
> > > The way I'd see this added is through an additional package in CVS. As
> I'm
> > > not familiar with the internals of the validator, I can't comment much
> on
> > > how this can be integrated. Is the validator implemented as a
component
> > > using Avalon? If so you'd need to change it to match the Ant style of
> > > writing extensions. If exactly the same code from Cocoon can be reused
> > > unmodified in Anteater, then perhaps the best option is to build a jar
> > file
> > > in Cocoon, and just drop it in Anteater's lib/ directory.
> > >
> > > Cheers,
> > > Ovidiu
> > >
> > > On 6/7/02 4:51 PM, "Ivelin Ivanov" <[EMAIL PROTECTED]> wrote:
> > >
> > > >
> > > >
> > > > =================================
> > > > ||     VERY LONG !!!           ||
> > > > =================================
> > > > ||    AND INTERESTING.         ||
> > > > =================================
> > > >
> > > >
> > > > I am surprised that there is not much interest in the Cocoon
community
> > for
> > > > Anteater. What do people use for web apps functional test suites?
> > > > There are a few other open source test tools, but I think Anteater
has
> > great
> > > > potential. Especially for Cocoon apps.
> > > >
> > > > So, let's begin:
> > > >
> > > >
> > > >
> > > >                       - 1 -
> > > >
> > > >
> > > >
> > > >
> > > > While Anteater is still not solidified and has a relatively small
user
> > base,
> > > > I would like to suggest an architectural change, which is compatible
> > with
> > > > Anteater's values, but will hopefully
> > > > improve it in the following areas:
> > > >
> > > > 1) standartization
> > > > 2) learning curve
> > > > 3) cross project code reuse
> > > > 4) maintainance
> > > >
> > > > The ideas is to use references to schema documents of standard XML
> > languages
> > > > (like Schematron, DTD, XML Schema, Relax NG) for response
validation,
> > > > instead of supporting a proprietary grammar.
> > > > I suggest that we use the org.apache.cocoon.components.validation
> > package
> > > > which is an independent component in Cocoon's main tree and is used
by
> > > > XMLForm.
> > > > The Schematron implementation is already available and I think it is
> > quite
> > > > suitable for Anteater, because Schematron is a superset of
Anteater's
> > match
> > > > element.
> > > > To be precise it is a superset of the validating use, i.e the cases
> when
> > > > match is used to assign value to a "result" property. Asigning
values
> > within
> > > > <match/> to other properties which are used for subsequent requests
is
> a
> > > > separate concern.
> > > >
> > > >
> > > >
> > > >
> > > >                       - 2 -
> > > >
> > > >
> > > >
> > > >
> > > > Schematron was specificly designed for partial, multi-phase
validation
> > and
> > > > user friendly error reporting.
> > > >
> > > > I'll explain how points 1-4 above are addressed by this proposal:
> > > >
> > > > 1) Schematron is relatively popular. There are a number of articles
in
> > > > popular magazines which promote Schematron over other validating
> > schemas.
> > > > 2) Schematron is very easy to learn. Specification and tutorials are
> > > > availbel. There is also supporing discussion groups with decent
> response
> > > > time.
> > > > 3) Schematron is used for a number of projects. For example there is
a
> > > > complete RSS 1.0 validating schema available on the RSS site.
> > > > http://home.freeuk.com/leigh.dodds/rss_validator/
> > > > XMLForm is using schematron extensively as well. Slash-edit is
another
> > > > example.
> > > > 4) Maintainance of Schematron documents is easy. Minor local changes
> are
> > > > made as the underlying (validated) model changes.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >                       - 3 -
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 5) Bonus ;)
> > > >
> > > > Here is one additional reason why I posted this proposal.
> > > > Validating Schematron documents can be referenced in a transparent
> > > > transformer prior to a page serialization.
> > > > This can be useful in development and QA, to catch and report bugs
in
> > > > content (HTML, WAP, XML, etc.) during navigation.
> > > >
> > > > Searching for problems in a broken HTML page (or other xml markup)
can
> > be
> > > > painful.
> > > > Instead of searching for the missing tags or label or icon, the
tester
> > (or
> > > > developer) will see a meaningful error report in place of the actual
> > page.
> > > > After testing certain pages time and again, the eye tends to ignore
> > elements
> > > > peripheral to the currently tested feature.
> > > > If there is an underlying validating document which is applied
before
> > > > display, then things may be easier. The developer (tester) has to
only
> > make
> > > > changes to it when the page structure changes.
> > > > The rest of the time this document will be a safeguard of unexpected
> > > > problems caused as side efects by the development of other features
or
> > bug
> > > > fixes or another one of the infinite other possible reasons.
> > > > The transformer applying the validating document can be, of course,
> > turned
> > > > off in production.
> > > >
> > > > Now the next interesting part. The forementioned validating
documents
> > can be
> > > > referenced just as well by Anteater regression suites as they can by
a
> > > > pipeline embedded validating transformer.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >                       - 4 -
> > > >
> > > >
> > > >
> > > >
> > > > As a quick thought, this is how an Anteater script may look:
> > > >
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > >
> > > > <project name="calc-test" default="calc">
> > > >
> > > > <!-- Simulate the behavior of a user that opens a browser, starts
> > > > the calculator example, and goes back in the processing several
> > > > times. -->
> > > > <target name="calc">
> > > >   <property name="calc"
> value="${cocoon}/samples/flow/examples/calc/"/>
> > > >   <property name="schema-doc-ns"
> > > > value="http://www.ascc.net/xml/schematron"/>
> > > >   <property name="schema-doc-url"
> > > > value="${cocoon}/samples/flow/examples/calc/sch-report.xml"/>
> > > >   <http description="Test the 'calc' JavaScript implementation">
> > > >     <httpRequest href="${calc}/">
> > > >       <match>
> > > >         <xpath select="html/body//form/@action" assign="cont1"/>
> > > >         <validate phase="page1" assign="violations">
> > > >       </match>
> > > >     </httpRequest>
> > > >
> > > >     <echo>result = ${violations}</echo>
> > > >   </http>
> > > >
> > > > ....
> > > >
> > > > Then the Schematron document would be something like:
> > > >
> > > > <schema xmlns="http://www.ascc.net/xml/schematron";>
> > > >
> > > >   <title>Schema for the Calc example</title>
> > > >
> > > >   <phase id="page1">
> > > >           <p>first page check.</p>
> > > >           <active pattern="form-present"/>
> > > >   </phase>
> > > >   ... other phases ...
> > > >   <pattern name="Test for HTML form element" id="form-present">
> > > > <rule context="/">
> > > > <assert  test="//form">
> > > >       Form element expected on this page.
> > > >     </assert>
> > > > <assert  test="//form/@action">
> > > > Form element must have action attribute.
> > > >     </assert>
> > > > </rule>
> > > > ... other rules ...
> > > > </pattern>
> > > >   ... other patterns...
> > > >
> > > >  </schema>
> > > > ...
> > > >
> > > >
> > > >
> > > >
> > > > Where the validate element will use the validation package to apply
> the
> > > > schema against the document.
> > > > The violations can be then nicely integrated in the JUnit reporting
> > package.
> > > >
> > > >
> > > >
> > > > If there are enough votes I'll contribute some of the work myself.
> > > > Help would be certainly appreciated.
> > > >
> > > >
> > > > Thanks for reading this far.
> > > >
> > > >
> > > > Thoughts?
> > > >
> > > >
> > > > -= Ivelin =-
> > >
> >
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to