This is awesome progress, guys, thanks for the help.

I'm going to put all the bits together and compile a list of tasks left and
write-up instructions for those who have yet to take a look.  If everyone
on the lists is still happy with the direction, I'll move those to JIRA.


On Thu, Oct 31, 2013 at 11:08 AM, David Kemp <drk...@chromium.org> wrote:

> I converted the couchdb reporter to the 2.0 style and added it to the repo.
> It works(hard coded config), but still needs the configuration components
> completed and some final adjustments to the data.
>
>
>
>
> On Thu, Oct 31, 2013 at 11:05 AM, Anis KADRI <anis.ka...@gmail.com> wrote:
>
> > I ported the contacts plugin [1] to the new style and I found the
> > process to be more or less straightforward. I also kept the eval in
> > there but there might be a better way ?
> >
> > [1] http://goo.gl/uhnwtz
> >
> > On Wed, Oct 30, 2013 at 3:42 PM, Michal Mocny <mmo...@chromium.org>
> wrote:
> > > Sadly, we are approaching an in-between time of moving the mobile-spec
> > > tests out of the app and into plugins.  We are still investigating the
> > best
> > > way to do this without disruption.
> > >
> > > For what its worth: several plugins now have a 'cdvtest' branch which
> > > supplies new-style tests ripped out of mobile-spec.  If you are having
> > > issues cleaning up the old style tests, take a look at the new ones (or
> > try
> > > porting yourself).
> > >
> > > I'm going to write up a doc with the summary of the state of testing
> > within
> > > a day or so given the results of this week to make it easier for you
> (and
> > > others) to pick up.
> > >
> > > -Michal
> > >
> > >
> > > On Wed, Oct 30, 2013 at 1:54 PM, Naik, Archana <na...@lab126.com>
> wrote:
> > >
> > >>  Thanks Michal. You answered my questions.
> > >>
> > >>  More to elaborate on my question: I am testing amazon-fireos
> > >> port(platform) with all plug-ins using mobile-spec. I am seeing some
> > >> failures in 3.1.0 version because of test cases timing out. I am
> pretty
> > new
> > >> to cordova and still in learning phase. :) I am trying to understand
> > these
> > >> failures. Interestingly they pass on 3.0.x version.
> > >>
> > >>  Archana
> > >>
> > >>
> > >>   From: Michal Mocny <mmo...@chromium.org>
> > >> Date: Wednesday, October 30, 2013 10:27 AM
> > >> To: "Naik, Archana" <na...@lab126.com>
> > >> Cc: "dev@cordova.apache.org" <dev@cordova.apache.org>, Michal Mocny <
> > >> mmo...@chromium.org>
> > >>
> > >> Subject: Re: mobile-spec and releases: How do we test?
> > >>
> > >>   May you clarify?
> > >>
> > >>  Right now, there is no formal way to test plugins, we are trying to
> > >> invent that way now.  Check out cordova-labs repo's cdvtest branch
> for a
> > >> sample app & plugin to track progress.
> > >>
> > >>  Jasmine is hosted in that sample app, but plugins will not directly
> > >> know/care.  Any testing framework which is api-compatible should work.
> >  In
> > >> practice, I'm not sure how compatible they all are, so it may very
> well
> > be
> > >> limited to jasmine -- but it does mean you can make local
> modifications
> > >> such as our CI is doing to create a custom test reporter.
> > >>
> > >>  -Michal
> > >>
> > >>
> > >> On Wed, Oct 30, 2013 at 12:57 PM, Naik, Archana <na...@lab126.com>
> > wrote:
> > >>
> > >>> Hi, Guys
> > >>>
> > >>> While on this topic, I have a question: how do I test individual
> > plug-in?
> > >>> Where is the this jasmine version specified?
> > >>>
> > >>> Thanks
> > >>> Archana
> > >>>
> > >>> On 10/30/13 7:26 AM, "Michal Mocny" <mmo...@chromium.org> wrote:
> > >>>
> > >>> >Here are some links to jasmine-2 docs since its a hard time finding
> > them:
> > >>> >
> > >>> >http://jasmine.github.io/2.0/introduction.html
> > >>> >
> > >>> >
> https://github.com/pivotal/jasmine/blob/master/release_notes/20rc5.md
> > >>> >
> > >>> >
> > >>> >On Wed, Oct 30, 2013 at 10:16 AM, Michal Mocny <mmo...@chromium.org
> >
> > >>> >wrote:
> > >>> >
> > >>> >>
> > >>> >>
> > >>> >>
> > >>> >> On Tue, Oct 29, 2013 at 5:29 PM, Bryan Higgins
> > >>> >><br...@bryanhiggins.net>wrote:
> > >>> >>
> > >>> >>> I just converted geolocation to the new test style [1]
> > >>> >>>
> > >>> >>> I'm happy with the process overall, and I find the jasmine 2
> tests
> > are
> > >>> >>> more
> > >>> >>> succinct.
> > >>> >>>
> > >>> >>> There are a few things worth noting:
> > >>> >>> - I kept the eval code in. At google today, it was discussed that
> > this
> > >>> >>>may
> > >>> >>> not be the best approach.
> > >>> >>> - Jasmine 2: You must hit at least one expect statement or the
> test
> > >>> >>>will
> > >>> >>> timeout even though done was called.
> > >>> >>>
> > >>> >>
> > >>> >> We could file a bug (I ran into it during setup once too), but
> > really,
> > >>> >> what is the worth of a test if there are no expect clauses?
> > >>> >>
> > >>> >>
> > >>> >>> - I did not remove the manual test page [2]. It would be great if
> > we
> > >>> >>>had a
> > >>> >>> convention for importing these. (ie test harness looks for a page
> > at
> > >>> >>> www/test/plugin-id.html and adds a link to it if it exists)
> > >>> >>>
> > >>> >>
> > >>> >> I'm going to work on a solution for this today.  The thought is
> that
> > >>> the
> > >>> >> plugin has a single module that can define all auto/manual tests,
> > and
> > >>> >>the
> > >>> >> test-harness choses which to display where.
> > >>> >>
> > >>> >>
> > >>> >>>
> > >>> >>> [1]
> > >>> >>>
> > >>> >>>
> > >>> >>>
> > >>>
> > https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-geolocation.git
> > >>> >>>;a=commit;h=075850a460d8171a04809cf6317fb4c4ef998603
> > >>> >>> [2]
> > >>> >>>
> > >>> >>>
> > >>> >>>
> > >>>
> > https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-geolocation.git
> > >>>
> > >>>
> >
> >>>;a=blob;f=test/manual.html;h=6ec2eed03e18c2efaa8710094d60930bb32227ba;hb
> > >>> >>>=459a01c888801e8dfa2a688d25483bb48c46d8e2
> > >>> >>>
> > >>> >>>
> > >>> >>> On Tue, Oct 15, 2013 at 12:50 PM, David Kemp <
> drk...@chromium.org>
> > >>> >>>wrote:
> > >>> >>>
> > >>> >>> > In spite of that fact that it needs a tooling change, I like
> the
> > >>> >>>added
> > >>> >>> > <mode> tag / prepare steps.
> > >>> >>> > The tooling change should be small and it means no runtime
> > impact on
> > >>> >>> apps.
> > >>> >>> >
> > >>> >>> > I love the approach - a very positive step to cleaning up
> > testing.
> > >>> >>> >
> > >>> >>> > David Kemp
> > >>> >>> >
> > >>> >>> >
> > >>> >>> >
> > >>> >>> > On Tue, Oct 15, 2013 at 12:18 PM, Michal Mocny <
> > mmo...@chromium.org
> > >>> >
> > >>> >>> > wrote:
> > >>> >>> >
> > >>> >>> > > Braden, you're right, good catch.
> > >>> >>> > >
> > >>> >>> > > Discussing locally how we could support "prepare --mode=..."
> in
> > >>> the
> > >>> >>> most
> > >>> >>> > > generalized form, we remembered an old suggestion to just
> > support
> > >>> >>> <mode>
> > >>> >>> > > tags.
> > >>> >>> > >
> > >>> >>> > > The benefits seem to be:
> > >>> >>> > > - No need to add custom tag-prefix/attributes for the
> > combinations
> > >>> >>>of
> > >>> >>> > > js-module mode=, asset mode=, etc etc
> > >>> >>> > > - More visually apparent when reading a plugin.xml file, akin
> > to
> > >>> >>> > > <platforms> tag
> > >>> >>> > >
> > >>> >>> > > The drawbacks seem to be:
> > >>> >>> > > - Not all descendant tags are easy to support for a given
> mode
> > >>> (ie,
> > >>> >>> > > <dependency>)
> > >>> >>> > >
> > >>> >>> > >
> > >>> >>> > > Summarizing the options currently discussed in this thread:
> > >>> >>> > >
> > >>> >>> > > - new <js-test-module> tag.  Not general enough solution to
> > >>> support
> > >>> >>> tests
> > >>> >>> > > bundling <assets>, so -1 from me for this reason.
> > >>> >>> > > - mode="..." attribute for a set of whitelisted tags
> > (<js-module>,
> > >>> >>> > <asset>,
> > >>> >>> > > ...)
> > >>> >>> > > - <mode name="..."> tag for a set of whitelisted descendant
> > >>> >>> > > tags (<js-module>, <asset>, ...)
> > >>> >>> > >
> > >>> >>> > > The last two options are really functionally equivalent, but
> > given
> > >>> >>> that
> > >>> >>> > we
> > >>> >>> > > opted for <platform> tag instead of attribute, I'm also
> > favoring a
> > >>> >>> <mode>
> > >>> >>> > > tag.
> > >>> >>> > >
> > >>> >>> > > -Michal
> > >>> >>> > >
> > >>> >>> > >
> > >>> >>> > > On Tue, Oct 15, 2013 at 11:43 AM, Braden Shepherdson <
> > >>> >>> > bra...@chromium.org
> > >>> >>> > > >wrote:
> > >>> >>> > >
> > >>> >>> > > > It's not true that adding these tests only creates larger
> > >>> >>>binaries.
> > >>> >>> > They
> > >>> >>> > > > will be fetched and parsed by the plugin loader code at app
> > >>> >>>startup
> > >>> >>> > time.
> > >>> >>> > > > It goes through the list of all plugins in
> cordova_plugins.js
> > >>> and
> > >>> >>> loads
> > >>> >>> > > > them all. That parses them, and runs the outermost layer,
> > which
> > >>> >>>is
> > >>> >>> the
> > >>> >>> > > > wrapping function function(require, module, exports) { ...
> > }. So
> > >>> >>> there
> > >>> >>> > is
> > >>> >>> > > > still runtime memory and CPU impact.
> > >>> >>> > > >
> > >>> >>> > > > I support <js-test-module> tags or <js-module ... test> or
> > >>> >>>whatever.
> > >>> >>> > > > Similarly, prepare for tests. I realize we want to avoid
> > tooling
> > >>> >>> > support,
> > >>> >>> > > > but I think tooling support is a lesser evil than
> production
> > >>> >>> > performance
> > >>> >>> > > > impact.
> > >>> >>> > > >
> > >>> >>> > > > Overall approach makes me happy.
> > >>> >>> > > >
> > >>> >>> > > > Braden
> > >>> >>> > > >
> > >>> >>> > > >
> > >>> >>> > > > On Fri, Oct 11, 2013 at 9:43 PM, Michal Mocny
> > >>> >>><mmo...@chromium.org>
> > >>> >>> > > wrote:
> > >>> >>> > > >
> > >>> >>> > > >> On Fri, Oct 11, 2013 at 9:08 PM, Andrew Grieve <
> > >>> >>> agri...@chromium.org>
> > >>> >>> > > >> wrote:
> > >>> >>> > > >>
> > >>> >>> > > >> > The eval of the jasmine interface deserves mention. Is
> the
> > >>> >>> > motivation
> > >>> >>> > > >> > there that tests can choose to use another testing
> > framework?
> > >>> >>> That's
> > >>> >>> > > why
> > >>> >>> > > >> > you don't just make jasmine functions globals?
> > >>> >>> > > >> >
> > >>> >>> > > >>
> > >>> >>> > > >> I was hoping the plugins would need to depend on anything
> > but
> > >>> >>> CDVTest,
> > >>> >>> > > and
> > >>> >>> > > >> not expect any globals.  I guess, though, that CDVTest
> still
> > >>> >>> expects
> > >>> >>> > the
> > >>> >>> > > >> app to provide to a test framework and some other stuff,
> so
> > in
> > >>> >>>the
> > >>> >>> end
> > >>> >>> > > its
> > >>> >>> > > >> no different.  I was hedging on being able to update
> > CDVTest in
> > >>> >>>the
> > >>> >>> > > future
> > >>> >>> > > >> for whatever we need, and all 3rdparty plugins would not
> > need
> > >>> >>> > updating.
> > >>> >>> > > >>  eval() could be used to do all sorts of clever things if
> we
> > >>> >>> needed..
> > >>> >>> > > >>
> > >>> >>> > > >>
> > >>> >>> > > >> >
> > >>> >>> > > >> > One nit pick just from reading your email is that this
> > will
> > >>> >>>cause
> > >>> >>> > the
> > >>> >>> > > >> test
> > >>> >>> > > >> > js-modules to be injected into apps that use the
> plugins.
> > I
> > >>> >>>think
> > >>> >>> > > >> probably
> > >>> >>> > > >> > we will want to update the tools to recognize a
> > >>> >>> <js-test-module>. We
> > >>> >>> > > >> > *could* work around it by adding the tests to new
> plugins
> > >>> that
> > >>> >>> > depend
> > >>> >>> > > on
> > >>> >>> > > >> > the thing they are testing, but I think changing the
> tools
> > >>> >>>would
> > >>> >>> be
> > >>> >>> > > >> nicer.
> > >>> >>> > > >> >
> > >>> >>> > > >>
> > >>> >>> > > >> I also mentioned splitting tests into second plugin but
> > thats
> > >>> >>> overkill
> > >>> >>> > > >> except in extreme circumstances.  Note that the tests
> aren't
> > >>> >>> actually
> > >>> >>> > > >> loaded unless you require them, so its just a matter of
> > larger
> > >>> >>> > binaries
> > >>> >>> > > >> which could be filtered out manually.
> > >>> >>> > > >>
> > >>> >>> > > >> My person preference would be to support conditional build
> > >>> >>>types,
> > >>> >>> > which
> > >>> >>> > > >> have come up before.  ie, cordova prepare debug, cordova
> > >>> prepare
> > >>> >>> > > release,
> > >>> >>> > > >> cordova prepare test -- and plugin.xml could specify a
> > >>> different
> > >>> >>> set
> > >>> >>> > of
> > >>> >>> > > >> js-module for either.
> > >>> >>> > > >>
> > >>> >>> > > >> A specific <js-test-module> would be fine, but isnt "0 new
> > >>> >>> tooling".
> > >>> >>> > > >>
> > >>> >>> > > >> Also, I forgot to mention, but we do need to add support
> for
> > >>> >>> getting
> > >>> >>> > the
> > >>> >>> > > >> full list of plugins installed, which should be trivial to
> > add
> > >>> >>>to
> > >>> >>> > > >> modulemapper (maybe there  is already a way to reach in,
> > but I
> > >>> >>> don't
> > >>> >>> > > think
> > >>> >>> > > >> we have a documented api for it).
> > >>> >>> > > >>
> > >>> >>> > > >>
> > >>> >>> > > >> > Another nit is that it would be nice if the CordovaTests
> > app
> > >>> >>> didn't
> > >>> >>> > > >> depend
> > >>> >>> > > >> > on any plugins. e.g., don't have it depend on device
> > plugin.
> > >>> >>> > > >> >
> > >>> >>> > > >>
> > >>> >>> > > >> CordovaTests doesn't explicitly depend on device plugin,
> > except
> > >>> >>> that
> > >>> >>> > at
> > >>> >>> > > >> the
> > >>> >>> > > >> moment I have it printing the same info that MobileSpec
> > does at
> > >>> >>> > startup.
> > >>> >>> > > >>  This could be wrapped in a try{}catch in case the require
> > >>> >>>fails,
> > >>> >>> but
> > >>> >>> > > its
> > >>> >>> > > >> good info to have in the common case.
> > >>> >>> > > >>
> > >>> >>> > > >>
> > >>> >>> > > >> >
> > >>> >>> > > >> > Overall, really like the approach!
> > >>> >>> > > >> >
> > >>> >>> > > >>
> > >>> >>> > > >> Thanks!
> > >>> >>> > > >>
> > >>> >>> > > >>
> > >>> >>> > > >> >
> > >>> >>> > > >> >
> > >>> >>> > > >> > On Fri, Oct 11, 2013 at 5:17 PM, Michal Mocny <
> > >>> >>> mmo...@chromium.org>
> > >>> >>> > > >> wrote:
> > >>> >>> > > >> >
> > >>> >>> > > >> >> TLDR; I've implemented a plugin testing strategy that
> > >>> >>>requires 0
> > >>> >>> > new
> > >>> >>> > > >> >> tooling features, can support non-core plugins, and
> > >>> hopefully
> > >>> >>> even
> > >>> >>> > > >> support
> > >>> >>> > > >> >> a variety of methods for running/reporting the test
> > results.
> > >>> >>>  Super
> > >>> >>> > > >> alpha
> > >>> >>> > > >> >> preview, but take a look if you like the direction!
> > >>> >>> > > >> >>
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> NEW: CDVTest Plugin: https://github.com/mmocny/CDVTest
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> NEW: CordovaTest App:
> > >>> https://github.com/mmocny/CordovaTests
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> UPDATED: Converted three existing plugins to this "new
> > >>> >>>style".
> > >>> >>> >  Code
> > >>> >>> > > >> is on
> > >>> >>> > > >> >> feature branches of respective repos (cdvtest branch):
> > >>> >>> > > >> >> org.apache.cordova.device
> > >>> >>> > > >> >> org.apache.cordova.device-motion
> > >>> >>> > > >> >> org.chromium.storage
> > >>> >>> > > >> >> (must clone locally, switch to branch, and plugin add
> > from
> > >>> >>>local
> > >>> >>> > > path)
> > >>> >>> > > >> >>
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> Now, any plugin that wants to join in on the fun needs
> to
> > >>> >>> provide a
> > >>> >>> > > >> >> <js-module
> > >>> >>> > > >> >> src="..." name="test" /> and use this template:
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> exports.init = function() {
> > >>> >>> > > >> >>
> > >>> >>> > > >> >>
> > >>> >>> > > >>
> > >>> >>> > >
> > >>> >>>
> > >>>
> > >>>
> >
> >>>eval(require('org.apache.cordova.test.test').injectJasmineInterface(this
> > >>> >>>,
> > >>> >>> > > >> >> 'this'));
> > >>> >>> > > >> >>
> > >>> >>> > > >> >>   // TESTS GO HERE
> > >>> >>> > > >> >>   describe(..., function() {
> > >>> >>> > > >> >>     it(...);
> > >>> >>> > > >> >>   });
> > >>> >>> > > >> >> };
> > >>> >>> > > >> >> (The eval is optional but super useful; it will inject
> > the
> > >>> >>> jasmine
> > >>> >>> > > >> >> interface into your scope, so you don't have to type
> > >>> >>> > > jasmine.describe,
> > >>> >>> > > >> >> jasmine.it, etc.  Not sure of any cleaner way to do
> > this.)
> > >>> >>> > > >> >>
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> STEPS:
> > >>> >>> > > >> >> 1. create a new cordova project
> > >>> >>> > > >> >> 2. import the CordovaTest app into your www
> > >>> >>> > > >> >> 3. add any or all of the above plugins
> > >>> >>> > > >> >> 4. give it a run, and try out the auto tests (all pass
> on
> > >>> >>>ipad,
> > >>> >>> > some
> > >>> >>> > > >> still
> > >>> >>> > > >> >> fail on android)
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> Lots of work left to do, but hopefully good enough to
> > whet
> > >>> >>>your
> > >>> >>> > > >> appetite.
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> One thing to note, I've attempted to make CDVTest and
> > plugin
> > >>> >>> tests
> > >>> >>> > > >> unaware
> > >>> >>> > > >> >> of the specific jasmine version the app is hosting (so
> > that
> > >>> >>>it
> > >>> >>> can
> > >>> >>> > be
> > >>> >>> > > >> >> swapped without changing all plugins), but it must
> > support
> > >>> >>>the
> > >>> >>> new
> > >>> >>> > > >> style
> > >>> >>> > > >> >> interface for async tests (ie, accept a done callback).
> > >>> >>>This is
> > >>> >>> > the
> > >>> >>> > > >> style
> > >>> >>> > > >> >> that node-jasmine uses, mocha uses, and jasmine-2.0 is
> > going
> > >>> >>>to
> > >>> >>> use
> > >>> >>> > > >> (I'm
> > >>> >>> > > >> >> using jasmine 2.0 rc3).  This means that core plugin
> > tests
> > >>> >>> require
> > >>> >>> > > some
> > >>> >>> > > >> >> code transformations, but the net effect is cleaner
> tests
> > >>> and
> > >>> >>> more
> > >>> >>> > > >> common
> > >>> >>> > > >> >> style with our node tools' tests.
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> Manual tests are not implemented yet.
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> -Michal
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> On Fri, Oct 11, 2013 at 12:54 PM, Michal Mocny <
> > >>> >>> > mmo...@chromium.org>
> > >>> >>> > > >> >> wrote:
> > >>> >>> > > >> >>
> > >>> >>> > > >> >> > I'm throwing something together right now, actually.
> >  I'll
> > >>> >>> post
> > >>> >>> > my
> > >>> >>> > > >> >> current
> > >>> >>> > > >> >> > progress today so you can take a look.
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >> > On Fri, Oct 11, 2013 at 12:41 PM, Brian LeRoux <
> > >>> b...@brian.io>
> > >>> >>> > wrote:
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >> >> Sorry keep meaning to respond. I like Michal's first
> > step
> > >>> >>>but
> > >>> >>> > > >> growing
> > >>> >>> > > >> >> to a
> > >>> >>> > > >> >> >> full suite of tools. Are you currently tackling this
> > >>> >>>Braden?
> > >>> >>> I
> > >>> >>> > > feel
> > >>> >>> > > >> >> like
> > >>> >>> > > >> >> >> it
> > >>> >>> > > >> >> >> is related to the Medic stuff and maybe we should
> > throw
> > >>> >>>one
> > >>> >>> of
> > >>> >>> > our
> > >>> >>> > > >> >> guys on
> > >>> >>> > > >> >> >> the problem fully.
> > >>> >>> > > >> >> >>
> > >>> >>> > > >> >> >>
> > >>> >>> > > >> >> >> On Sep 27, 2013 5:10 PM, "Braden Shepherdson" <
> > >>> >>> > > bra...@chromium.org>
> > >>> >>> > > >> >> >> wrote:
> > >>> >>> > > >> >> >>
> > >>> >>> > > >> >> >> > Which one?
> > >>> >>> > > >> >> >> >
> > >>> >>> > > >> >> >> >
> > >>> >>> > > >> >> >> > On Fri, Sep 27, 2013 at 10:09 AM, Brian LeRoux
> > >>> >>><b...@brian.io
> > >>> >>> >
> > >>> >>> > > >> wrote:
> > >>> >>> > > >> >> >> >
> > >>> >>> > > >> >> >> > > I really like your proposal as a starting point.
> > Very
> > >>> >>> simple
> > >>> >>> > > but
> > >>> >>> > > >> >> would
> > >>> >>> > > >> >> >> > > allow for in-app testing as well as on the cmd
> > line
> > >>> if
> > >>> >>> we so
> > >>> >>> > > >> wish.
> > >>> >>> > > >> >> >> > >
> > >>> >>> > > >> >> >> > >
> > >>> >>> > > >> >> >> > > On Fri, Sep 27, 2013 at 3:28 PM, Michal Mocny <
> > >>> >>> > > >> mmo...@chromium.org
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >> >> > wrote:
> > >>> >>> > > >> >> >> > >
> > >>> >>> > > >> >> >> > > > I was looking over some old emails from this
> > list
> > >>> on
> > >>> >>> > plugin
> > >>> >>> > > >> >> testing,
> > >>> >>> > > >> >> >> > and
> > >>> >>> > > >> >> >> > > an
> > >>> >>> > > >> >> >> > > > idea that was proposed way back was to ship
> > plugin
> > >>> >>> tests
> > >>> >>> > as
> > >>> >>> > > a
> > >>> >>> > > >> >> second
> > >>> >>> > > >> >> >> > > > plugin.  That way, you can chose to install
> > tests,
> > >>> >>>or
> > >>> >>> not,
> > >>> >>> > > and
> > >>> >>> > > >> >> know
> > >>> >>> > > >> >> >> > > > explicitly if they are being copied into your
> > final
> > >>> >>> > project.
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > > > An alternative would be to support build
> > targets a
> > >>> >>>la
> > >>> >>> > > >> >> >> "release/debug"
> > >>> >>> > > >> >> >> > and
> > >>> >>> > > >> >> >> > > > have target-specific plugin.xml tags (assets,
> > >>> >>> js-modules,
> > >>> >>> > > >> >> >> > source-file..).
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > > > -Michal
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > > > On Fri, Sep 27, 2013 at 4:52 AM, Brian LeRoux
> <
> > >>> >>> b...@brian.io
> > >>> >>> > >
> > >>> >>> > > >> >> wrote:
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > > > > I think this is basically what we've been
> > >>> >>>proposing
> > >>> >>> for
> > >>> >>> > a
> > >>> >>> > > >> while
> > >>> >>> > > >> >> >> now.
> > >>> >>> > > >> >> >> > > > >
> > >>> >>> > > >> >> >> > > > >
> > >>> >>> > > >> >> >> > > > > On Thu, Sep 26, 2013 at 8:29 PM, Michal
> Mocny
> > <
> > >>> >>> > > >> >> >> mmo...@chromium.org>
> > >>> >>> > > >> >> >> > > > wrote:
> > >>> >>> > > >> >> >> > > > >
> > >>> >>> > > >> >> >> > > > > > I would suggest perhaps a simpler
> approach,
> > >>> >>>which
> > >>> >>> > > doesn't
> > >>> >>> > > >> add
> > >>> >>> > > >> >> >> > > anything
> > >>> >>> > > >> >> >> > > > > new
> > >>> >>> > > >> >> >> > > > > > to cordova-cli/plugman:
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > - Each plugin ships with a "tests"
> > js-module,
> > >>> >>>and
> > >>> >>> we
> > >>> >>> > > >> >> document a
> > >>> >>> > > >> >> >> > > > > convention
> > >>> >>> > > >> >> >> > > > > > of where they should live, and what
> > signature
> > >>> it
> > >>> >>> > should
> > >>> >>> > > >> have
> > >>> >>> > > >> >> >> (i.e.,
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>>cordova.require('plugin.name.Tests').forEach(...)
> > >>> >>> ).
> > >>> >>> > > >> >> >> > > > > >   - Will need a common way to
> > describe/report
> > >>> >>> results
> > >>> >>> > > >> (others
> > >>> >>> > > >> >> >> have
> > >>> >>> > > >> >> >> > > > > > mentioned TAP).
> > >>> >>> > > >> >> >> > > > > > - Any app is free to run those plugin
> tests
> > in
> > >>> >>>any
> > >>> >>> > which
> > >>> >>> > > >> way,
> > >>> >>> > > >> >> >> but
> > >>> >>> > > >> >> >> > we
> > >>> >>> > > >> >> >> > > > > ship a
> > >>> >>> > > >> >> >> > > > > > mobile-spec app which is one opinionated
> > way to
> > >>> >>>do
> > >>> >>> so.
> > >>> >>> > > >> >> >> > > > > >   - It attempts to require the test module
> > for
> > >>> >>>each
> > >>> >>> > > >> installed
> > >>> >>> > > >> >> >> > plugin,
> > >>> >>> > > >> >> >> > > > > runs
> > >>> >>> > > >> >> >> > > > > > them, and aggregates results.
> > >>> >>> > > >> >> >> > > > > >   - It could report results to some shared
> > >>> >>>server,
> > >>> >>> > allow
> > >>> >>> > > >> >> >> toggling
> > >>> >>> > > >> >> >> > of
> > >>> >>> > > >> >> >> > > > > tests,
> > >>> >>> > > >> >> >> > > > > > etc, but no plugin should know or care
> about
> > >>> >>>those
> > >>> >>> > > >> features.
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > Using that as a generic base:
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > - We ship a "CDVTests" (or whatever)
> plugin
> > >>> >>>which
> > >>> >>> has
> > >>> >>> > a
> > >>> >>> > > >> >> bunch of
> > >>> >>> > > >> >> >> > > > library
> > >>> >>> > > >> >> >> > > > > > code for creating tests, and plugins can
> > use it
> > >>> >>>to
> > >>> >>> > > >> register
> > >>> >>> > > >> >> >> their
> > >>> >>> > > >> >> >> > > > tests.
> > >>> >>> > > >> >> >> > > > > > - This makes it easier to register manual
> > tests
> > >>> >>>in
> > >>> >>> a
> > >>> >>> > > >> common
> > >>> >>> > > >> >> >> format
> > >>> >>> > > >> >> >> > > for
> > >>> >>> > > >> >> >> > > > > core
> > >>> >>> > > >> >> >> > > > > > plugins, and prevents code duplication for
> > core
> > >>> >>> auto
> > >>> >>> > > >> tests.
> > >>> >>> > > >> >> >> > > > > > - External plugins can chose to use our
> > testing
> > >>> >>> > library,
> > >>> >>> > > >> or
> > >>> >>> > > >> >> not.
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > -Michal
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > On Thu, Sep 26, 2013 at 10:34 AM, Braden
> > >>> >>> Shepherdson <
> > >>> >>> > > >> >> >> > > > > bra...@chromium.org
> > >>> >>> > > >> >> >> > > > > > >wrote:
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > > > > Here's an off-the-top-of-my-head sketch
> of
> > >>> >>>how we
> > >>> >>> > > might
> > >>> >>> > > >> do
> > >>> >>> > > >> >> >> > Voltron
> > >>> >>> > > >> >> >> > > > > tests:
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > > - Add a tag to plugin.xml that names
> each
> > >>> test
> > >>> >>> file:
> > >>> >>> > > >> >> >> > > > > > >     <test type="automatic"
> > src="spec/foo.js"
> > >>> >>> > name="Foo
> > >>> >>> > > >> >> >> Automated"
> > >>> >>> > > >> >> >> > > />
> > >>> >>> > > >> >> >> > > > > > >     <test type="manual"
> src="spec/bar.js"
> > >>> >>> name="Foo
> > >>> >>> > > >> >> Manual" />
> > >>> >>> > > >> >> >> > > > > > > - Add a new command, cordova test (maybe
> > >>> >>> > > prepare-test),
> > >>> >>> > > >> >> that:
> > >>> >>> > > >> >> >> > > > > > >     - Ignores the top-level www.
> > >>> >>> > > >> >> >> > > > > > >     - Instead copies in a basic testing
> > >>> >>> index.html
> > >>> >>> > > >> similar
> > >>> >>> > > >> >> to
> > >>> >>> > > >> >> >> the
> > >>> >>> > > >> >> >> > > > > current
> > >>> >>> > > >> >> >> > > > > > > mobile-spec's
> > >>> >>> > > >> >> >> > > > > > >     - That index reads a file akin to
> > >>> >>> > > cordova_plugins.js
> > >>> >>> > > >> >> >> > > > > > (cordova_tests.js,
> > >>> >>> > > >> >> >> > > > > > > maybe?) generated by the CLI, containing
> > the
> > >>> >>>info
> > >>> >>> > from
> > >>> >>> > > >> the
> > >>> >>> > > >> >> >> <test>
> > >>> >>> > > >> >> >> > > > tags.
> > >>> >>> > > >> >> >> > > > > > >     - It has navigation similar to the
> > >>> current
> > >>> >>> > > >> mobile-spec,
> > >>> >>> > > >> >> >> with
> > >>> >>> > > >> >> >> > > > > buttons
> > >>> >>> > > >> >> >> > > > > > > for the automatic and manual sections.
> > Auto
> > >>> >>>has
> > >>> >>> > "All"
> > >>> >>> > > >> and
> > >>> >>> > > >> >> then
> > >>> >>> > > >> >> >> > each
> > >>> >>> > > >> >> >> > > > > > module,
> > >>> >>> > > >> >> >> > > > > > > manual just has the list of modules.
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > > Thoughts?
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > > Braden
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > > On Thu, Sep 26, 2013 at 6:33 AM, Carlos
> > >>> >>>Santana <
> > >>> >>> > > >> >> >> > > > csantan...@gmail.com
> > >>> >>> > > >> >> >> > > > > > > >wrote:
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > I like the idea can we call mobilespec
> > now
> > >>> >>> > > >> >> cordova-voltron
> > >>> >>> > > >> >> >> and
> > >>> >>> > > >> >> >> > be
> > >>> >>> > > >> >> >> > > > DRY
> > >>> >>> > > >> >> >> > > > > > and
> > >>> >>> > > >> >> >> > > > > > > > use the tests form the plugins.
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > Voltron by itself creates an App that
> > tests
> > >>> >>> only
> > >>> >>> > > core,
> > >>> >>> > > >> >> but
> > >>> >>> > > >> >> >> as
> > >>> >>> > > >> >> >> > you
> > >>> >>> > > >> >> >> > > > > > > > use plugman to add plugins to voltron
> it
> > >>> has
> > >>> >>> more
> > >>> >>> > > test
> > >>> >>> > > >> >> >> cases.
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > It would not be a bad idea to enhance
> > >>> >>> plugin.xml
> > >>> >>> > in
> > >>> >>> > > >> the
> > >>> >>> > > >> >> >> future
> > >>> >>> > > >> >> >> > to
> > >>> >>> > > >> >> >> > > > > > include
> > >>> >>> > > >> >> >> > > > > > > > information about testing (i.e.
> > Directory
> > >>> >>> > containing
> > >>> >>> > > >> >> tests
> > >>> >>> > > >> >> >> > files,
> > >>> >>> > > >> >> >> > > > > test
> > >>> >>> > > >> >> >> > > > > > > > command, etc..)
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > --Carlos
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > On Thursday, September 26, 2013, Anis
> > KADRI
> > >>> >>> wrote:
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > What's the challenge of having us
> use
> > the
> > >>> >>> tests
> > >>> >>> > > that
> > >>> >>> > > >> >> come
> > >>> >>> > > >> >> >> > with
> > >>> >>> > > >> >> >> > > > the
> > >>> >>> > > >> >> >> > > > > > > > > individual plugins ?
> > >>> >>> > > >> >> >> > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > On Thu, Sep 26, 2013 at 8:13 AM,
> David
> > >>> >>>Kemp <
> > >>> >>> > > >> >> >> > drk...@google.com
> > >>> >>> > > >> >> >> > > > > > > > <javascript:;>>
> > >>> >>> > > >> >> >> > > > > > > > > wrote:
> > >>> >>> > > >> >> >> > > > > > > > > > Currently, the automated test
> system
> > >>> >>>that
> > >>> >>> we
> > >>> >>> > > have
> > >>> >>> > > >> >> >> running
> > >>> >>> > > >> >> >> > > > > (derived
> > >>> >>> > > >> >> >> > > > > > > from
> > >>> >>> > > >> >> >> > > > > > > > > > Medic) uses only the mobilespec
> > tests.
> > >>> >>>It
> > >>> >>> does
> > >>> >>> > > not
> > >>> >>> > > >> >> yet
> > >>> >>> > > >> >> >> use
> > >>> >>> > > >> >> >> > > > tests
> > >>> >>> > > >> >> >> > > > > > > > > collected
> > >>> >>> > > >> >> >> > > > > > > > > > from the plugins. Its been talked
> > >>> about,
> > >>> >>> but
> > >>> >>> > not
> > >>> >>> > > >> gone
> > >>> >>> > > >> >> >> > > anywhere.
> > >>> >>> > > >> >> >> > > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > > David Kemp
> > >>> >>> > > >> >> >> > > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > > On Wed, Sep 25, 2013 at 7:58 PM,
> > Jesse
> > >>> <
> > >>> >>> > > >> >> >> > > > purplecabb...@gmail.com
> > >>> >>> > > >> >> >> > > > > > > > <javascript:;>>
> > >>> >>> > > >> >> >> > > > > > > > > wrote:
> > >>> >>> > > >> >> >> > > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > >> Yeah, I have pushed some changes
> to
> > >>> >>> > > mobile-spec,
> > >>> >>> > > >> and
> > >>> >>> > > >> >> >> when
> > >>> >>> > > >> >> >> > I
> > >>> >>> > > >> >> >> > > > did
> > >>> >>> > > >> >> >> > > > > I
> > >>> >>> > > >> >> >> > > > > > > also
> > >>> >>> > > >> >> >> > > > > > > > > >> copied the tests into the plugin
> > >>> >>>involved.
> > >>> >>> > > >> >> >> > > > > > > > > >> Until we get the magic test
> runner
> > >>> >>> > happening, I
> > >>> >>> > > >> >> think
> > >>> >>> > > >> >> >> we
> > >>> >>> > > >> >> >> > > just
> > >>> >>> > > >> >> >> > > > > keep
> > >>> >>> > > >> >> >> > > > > > > > > >> duplicating.
> > >>> >>> > > >> >> >> > > > > > > > > >>
> > >>> >>> > > >> >> >> > > > > > > > > >> @purplecabbage
> > >>> >>> > > >> >> >> > > > > > > > > >> risingj.com
> > >>> >>> > > >> >> >> > > > > > > > > >>
> > >>> >>> > > >> >> >> > > > > > > > > >>
> > >>> >>> > > >> >> >> > > > > > > > > >> On Wed, Sep 25, 2013 at 4:38 PM,
> > >>> Steven
> > >>> >>> Gill
> > >>> >>> > <
> > >>> >>> > > >> >> >> > > > > > > stevengil...@gmail.com
> > >>> >>> > > >> >> >> > > > > > > > <javascript:;>
> > >>> >>> > > >> >> >> > > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > > >> wrote:
> > >>> >>> > > >> >> >> > > > > > > > > >>
> > >>> >>> > > >> >> >> > > > > > > > > >> > We copied over tests into
> plugins
> > >>> >>>when
> > >>> >>> we
> > >>> >>> > > first
> > >>> >>> > > >> >> broke
> > >>> >>> > > >> >> >> > them
> > >>> >>> > > >> >> >> > > > > out,
> > >>> >>> > > >> >> >> > > > > > > but
> > >>> >>> > > >> >> >> > > > > > > > I
> > >>> >>> > > >> >> >> > > > > > > > > >> don't
> > >>> >>> > > >> >> >> > > > > > > > > >> > believe they have been updated.
> > >>> >>> > > >> >> >> > > > > > > > > >> >
> > >>> >>> > > >> >> >> > > > > > > > > >> > I would say for now to just add
> > the
> > >>> >>> tests
> > >>> >>> > to
> > >>> >>> > > >> >> mobile
> > >>> >>> > > >> >> >> > spec,
> > >>> >>> > > >> >> >> > > > and
> > >>> >>> > > >> >> >> > > > > > > > > possibly in
> > >>> >>> > > >> >> >> > > > > > > > > >> > the future we go all voltron to
> > >>> build
> > >>> >>> > mobile
> > >>> >>> > > >> spec
> > >>> >>> > > >> >> and
> > >>> >>> > > >> >> >> > keep
> > >>> >>> > > >> >> >> > > > > tests
> > >>> >>> > > >> >> >> > > > > > > > with
> > >>> >>> > > >> >> >> > > > > > > > > >> their
> > >>> >>> > > >> >> >> > > > > > > > > >> > corresponding plugins.
> > >>> >>> > > >> >> >> > > > > > > > > >> >
> > >>> >>> > > >> >> >> > > > > > > > > >> >
> > >>> >>> > > >> >> >> > > > > > > > > >> > On Wed, Sep 25, 2013 at 4:22
> PM,
> > Joe
> > >>> >>> > Bowser <
> > >>> >>> > > >> >> >> > > > > bows...@gmail.com
> > >>> >>> > > >> >> >> > > > > > > > <javascript:;>>
> > >>> >>> > > >> >> >> > > > > > > > > wrote:
> > >>> >>> > > >> >> >> > > > > > > > > >> >
> > >>> >>> > > >> >> >> > > > > > > > > >> > > Hey
> > >>> >>> > > >> >> >> > > > > > > > > >> > >
> > >>> >>> > > >> >> >> > > > > > > > > >> > > Right now, I'm working on a
> > weird
> > >>> >>>file
> > >>> >>> > > issue
> > >>> >>> > > >> >> that
> > >>> >>> > > >> >> >> > > requires
> > >>> >>> > > >> >> >> > > > > me
> > >>> >>> > > >> >> >> > > > > > to
> > >>> >>> > > >> >> >> > > > > > > > > >> > > update mobile-spec, but I'm
> > >>> >>>wondering
> > >>> >>> > where
> > >>> >>> > > >> the
> > >>> >>> > > >> >> >> tests
> > >>> >>> > > >> >> >> > > > should
> > >>> >>> > > >> >> >> > > > > > > live.
> > >>> >>> > > >> >> >> > > > > > > > > >> > > Should it all keep living in
> > >>> >>> mobile-spec,
> > >>> >>> > > or
> > >>> >>> > > >> is
> > >>> >>> > > >> >> it
> > >>> >>> > > >> >> >> > with
> > >>> >>> > > >> >> >> > > > the
> > >>> >>> > > >> >> >> > > > > > > > plugins.
> > >>> >>> > > >> >> >> > > > > > > > > >> > > And if it's with the plugins,
> > will
> > >>> >>> there
> > >>> >>> > be
> > >>> >>> > > >> >> >> scripts to
> > >>> >>> > > >> >> >> > > > > > assemble
> > >>> >>> > > >> >> >> > > > > > > > > >> > > mobile-spec all Voltron
> style?
> > >>> >>> > > >> >> >> > > > > > > > > >> > >
> > >>> >>> > > >> >> >> > > > > > > > > >> > > This came up earlier, but I
> > >>> haven't
> > >>> >>> found
> > >>> >>> > > any
> > >>> >>> > > >> >> fix
> > >>> >>> > > >> >> >> that
> > >>> >>> > > >> >> >> > > > > needed
> > >>> >>> > > >> >> >> > > > > > a
> > >>> >>> > > >> >> >> > > > > > > > > >> > > mobile-spec test.  (Many that
> > need
> > >>> >>> native
> > >>> >>> > > >> >> testing,
> > >>> >>> > > >> >> >> > like
> > >>> >>> > > >> >> >> > > > > > > recursive
> > >>> >>> > > >> >> >> > > > > > > > > file
> > >>> >>> > > >> >> >> > > > > > > > > >> > > copy, etc).  Any thoughts?
> > >>> >>> > > >> >> >> > > > > > > > > >> > >
> > >>> >>> > > >> >> >> > > > > > > > > >> > > Joe
> > >>> >>> > > >> >> >> > > > > > > > > >> > >
> > >>> >>> > > >> >> >> > > > > > > > > >> >
> > >>> >>> > > >> >> >> > > > > > > > > >>
> > >>> >>> > > >> >> >> > > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > > > --
> > >>> >>> > > >> >> >> > > > > > > > Carlos Santana
> > >>> >>> > > >> >> >> > > > > > > > <csantan...@gmail.com>
> > >>> >>> > > >> >> >> > > > > > > >
> > >>> >>> > > >> >> >> > > > > > >
> > >>> >>> > > >> >> >> > > > > >
> > >>> >>> > > >> >> >> > > > >
> > >>> >>> > > >> >> >> > > >
> > >>> >>> > > >> >> >> > >
> > >>> >>> > > >> >> >> >
> > >>> >>> > > >> >> >>
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >> >
> > >>> >>> > > >> >>
> > >>> >>> > > >> >
> > >>> >>> > > >> >
> > >>> >>> > > >>
> > >>> >>> > > >
> > >>> >>> > > >
> > >>> >>> > >
> > >>> >>> >
> > >>> >>>
> > >>> >>
> > >>> >>
> > >>>
> > >>>
> > >>
> >
>

Reply via email to