Added pagePosition and set featureclick to logEvent in the test and get the 
same result where it works in the html page but not in the testing function:

https://github.com/m1k3ry4n/openlayers/blob/master/tests/Events/featureclick.html

-Mike

On May 23, 2013, at 6:31 PM, Andreas Hocevar <ahoce...@opengeo.org> wrote:

> But the real problem is that the clientX and clientY in your mock events is 
> relative to the map viewport, but should be relative to the browser viewport. 
> You'll need to use OpenLayers.Util.pagePosition to get the position of the 
> map's viewportDiv and add that to the  pixel coordinate you are currently 
> using.
> 
> Andreas.
> 
> 
> On Thu, May 23, 2013 at 5:20 PM, Andreas Hocevar <ahoce...@opengeo.org> wrote:
> Right now you are calling logEvent() once, and you're doing so when
> you define the listener:
> 
>     map.events.on({featureclick: logEvent()});
> 
> Instead, this should read
> 
>     map.events.on({featureclick: logEvent});
> 
> Andreas.
> 
> On Thu, May 23, 2013 at 4:30 PM, Michael Ryan <m...@mry4n.net> wrote:
> > I checked that out, but that didn't seem to be it. I noticed in
> > buttonclick.html that it just uses onload=init() in the body tag and doesn't
> > call init() in any of the test functions.
> >
> > However, it seems ilke I have to add the featureclick event and assign it a
> > function with parantheses, whereas running it in the html requires no
> > parentheses.
> >
> > So the test function now looks like this:
> >
> > function test_onClick23(t) {
> > t.plan(1);
> > logevt = [];
> > map.events.on({featureclick: logEvent()});
> > events = map.events;
> > lonlat = new OpenLayers.LonLat(0,0);
> > pixel = map.getPixelFromLonLat(lonlat);
> > trigger('mousedown', pixel);
> > trigger('mouseup', pixel);
> > t.eq(logevt.length, 2, "testing log length");
> > t.wait_result( 3 );
> > }
> >
> > and the logEvent function is:
> >
> > function logEvent(e) {
> >
> > //alert("Does this happen?");
> > logevt.push(e);
> > }
> >
> > https://github.com/m1k3ry4n/openlayers/blob/master/tests/Events/featureclick.html
> >
> > The problem is that no matter how many features I add, the logevt array is
> > length 1.
> >
> > I tried using the t.wait_result() function, taking a wild stab that since a
> > featureclick event gets fired for each feature that maybe there's some
> > timing issue that gets taken care of when you view featureclick.html but
> > needs to be accounted for in testing. Unfortunately, t.wait_result() didn't
> > change anything.
> >
> > -Mike
> >
> > On May 23, 2013, at 3:26 PM, Andreas Hocevar <ahoce...@opengeo.org> wrote:
> >
> > I think the problem is that your init() function won't be called when the
> > page is loaded by the test runner. So you'll have to call init() from the
> > test function (test_onClick12 in the current code).
> >
> > Andreas.
> >
> >
> > On Thu, May 23, 2013 at 12:33 PM, Michael Ryan <m...@mry4n.net> wrote:
> >>
> >> Thanks for all the help, Andreas.
> >>
> >> I'm pretty sure I can figure the contrib stuff out.
> >>
> >> At the moment, I'm hitting a wall with why a very simple test works if I
> >> just run the featureclick.html page, but not when I run the test function:
> >>
> >>
> >> https://github.com/m1k3ry4n/openlayers/blob/master/tests/Events/featureclick.html
> >>
> >> When I run the html page the logevt array has length 2. In the test, it's
> >> length 0. Yet I'm running the exact same code.
> >>
> >> I know this is taking a while and I may be missing the 2.13 deadline, but
> >> I'll keep plugging away at this til I get it right.
> >>
> >> -Mike
> >>
> >> On May 22, 2013, at 10:02 PM, Andreas Hocevar <ahoce...@opengeo.org>
> >> wrote:
> >>
> >> Hey Michael,
> >>
> >> you should find all information on how to submit code here:
> >> http://trac.osgeo.org/openlayers/wiki/HowToContribute. You will want to
> >> create a pull request, as explained here:
> >> http://trac.osgeo.org/openlayers/wiki/CreatingPatches.
> >>
> >> I hope this helps.
> >>
> >> Andreas.
> >>
> >>
> >> On Wed, May 22, 2013 at 9:34 AM, Michael Ryan <m...@mry4n.net> wrote:
> >>>
> >>> Thank you Andreas for clearing up that I should assign events like so:
> >>>
> >>> events = map.events
> >>>
> >>> The other part of this is that you have specify that the event you are
> >>> triggering is a left-click.
> >>>
> >>> By tracing the code you see that you need to set the "which" attribute to
> >>> 1 in the object passed to triggerEvent(), otherwise onClick in
> >>> featureclick.js ignores the event.
> >>>
> >>> So, this is what my code should have looked like:
> >>>
> >>> events = map.events;
> >>> events.triggerEvent( 'mousedown', {xy: new OpenLayers.Pixel(0,0), which:
> >>> 1}, map);
> >>> events.triggerEvent('mouseup', {xy: new OpenLayers.Pixel(0,0), which: 1},
> >>> map);
> >>>
> >>> I'm assuming I can get tests written today. Although, I'm not exactly
> >>> clear how to submit them. If anyone wants to clue me in to that procedure
> >>> I'd appreciate it.
> >>>
> >>> -Mike
> >>>
> >>> On May 21, 2013, at 5:21 PM, Michael Ryan <m...@mry4n.net> wrote:
> >>>
> >>> While I've understood I need to use trigger() somehow, I have been
> >>> unsuccessful in implementing it.
> >>>
> >>> I was using test for buttonclick as a reference:
> >>> https://github.com/openlayers/openlayers/blob/master/tests/Events/buttonclick.html
> >>>
> >>> I would have assumed that within the context of the featurclick example
> >>> https://github.com/openlayers/openlayers/pull/174/files
> >>>
> >>> I could have used something like
> >>>
> >>> events = OpenLayers.Events(map, document.getElementById("map"));
> >>> events.triggerEvent({type: 'mousedown', xy: new OpenLayers.Pixel(0,0)},
> >>> map); events.triggerEvent({type: 'mouseup', xy: new 
> >>> OpenLayers.Pixel(0,0)},
> >>> map);
> >>>
> >>> But, apparently, that's wrong.
> >>>
> >>> Am I trying to do something that isn't possible? I'm assuming I'm just
> >>> implementing it wrong. Any thoughts?
> >>>
> >>> -Mike
> >>>
> >>> On May 20, 2013, at 5:04 PM, Michael Ryan <m...@mry4n.net> wrote:
> >>>
> >>> I'll answer my question about triggering a buttonclick by saying, it
> >>> looks like you use trigger() which takes coordinates as an argument as in
> >>> this test:
> >>> https://github.com/drewwells/openlayers/blob/master/tests/Control/Measure.html
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Dev mailing list
> >>> d...@lists.osgeo.org
> >>> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
> >>>
> >>
> >>
> >>
> >> --
> >> Andreas Hocevar
> >> OpenGeo - http://opengeo.org/
> >> Expert service straight from the developers.
> >>
> >>
> >>
> >> _______________________________________________
> >> Dev mailing list
> >> d...@lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
> >>
> >
> >
> >
> > --
> > Andreas Hocevar
> > OpenGeo - http://opengeo.org/
> > Expert service straight from the developers.
> >
> >
> 
> 
> 
> --
> Andreas Hocevar
> OpenGeo - http://opengeo.org/
> Expert service straight from the developers.
> _______________________________________________
> Dev mailing list
> d...@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev
> 
> 
> 
> -- 
> Andreas Hocevar
> OpenGeo - http://opengeo.org/
> Expert service straight from the developers.

_______________________________________________
Dev mailing list
d...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-dev

Reply via email to