Thursday, May 21, 2009

Grails JSR-186 Portlets Plugin Released

Kenji Nakamura has taken the reins of my initial work on the Grails Portlets plugin and done an awesome job of refactoring it into more manageable sub-plugins.

You can now plug-in portal implementations with Pluto and Liferay supported initially.

JSR-286 will be supported when the underlying version of Spring used by Grails is updated to Spring 3.0.

Check it out at the Grails plugin portal.

Great work Kenji!

Wednesday, May 6, 2009

Grails Amazon S3 Plugin 0.5 Released

The latest version of the Amazon S3 plugin has been released which incorporates the latest jets3t snapshot library (0.7.1-SNAPSHOT) which has improved compatibility with the Eucalyptus open source EC2/S3 clone and some bug fixes.

The plugin S3 event handling code was also updated to avoid stale object and optimistic locking exceptions being thrown by Hibernate.

Thursday, April 30, 2009

WebTest Plugin Released

A new minor release of the Grails WebTest plugin to allow the plugin to download the latest WebTest snapshot (which uses HtmlUnit 2.5 which fixes issues with testing JQuery 1.3.2).

It will download the latest snapshot by default when installed. If you would prefer the latest stable release (3.0) you can answer no when prompted.

Testing a JQuery-UI Drag and Drop using WebTest

Just a quick post regarding using WebTest with JQuery-UI Draggable and Droppable.
The way that WebTest performs a drag and drop is as follows:
Note that there is no intermediate move events between mouse down on the thing you're dragging and mousing over the target element.
What this means is that you need to configure your Draggable to start dragging on mousedown without delay. You can do this by setting the distance and delay options to zero (delay is zero by default):
WebTest will now be able to click and drag it correctly. Unfortunately due to HtmlUnits 'renderless' behaviour you cannot specify exactly where you want to drop it so if you require precise targeting to properly test your application you're out of luck.

Saturday, April 4, 2009

Grails WebTest Plugin 1.1.4 Released

Another WebTest plugin release, this time with some new functionality!

Soenke Sothmann has contributed a nice patch to allow you to run custom suites of tests:

run-webtest -suite=MyTestSuite

Note that under windows you will need to quote the -suite argument due to an issue with Gant's argument parsing e.g. "-suite=MyTestSuite"

import grails.util.WebTest

class MyTestSuite extends WebTest {

    static void main(args) {
        new MyTestSuite().runTests(args)

    void suite() {
        new SomeTest1(ant:ant).suite()
        new SomeTest2(ant:ant).suite()
        // You could also load up certain tests based on naming conventions or annotations

In addition to this patch, there were some bug fixes relating to running webtests under Hudson and also around setting a custom port when starting up the server.

Wednesday, April 1, 2009


Apologies to those people who left me comments to which I hadn't replied. I thought I had email notification turned on - looks like I didn't! I've replied as best I could although some of the topics are well out of my recent memory :)

Tuesday, March 31, 2009

Grails code example: Integration testing quartz job

Here's a quick snippet to use to integration test a quartz job.
I couldn't find a clear example after a quick Google so hopefully this is useful.
There's a good chance that there's a better auto-magical way to get the job injected but I haven't poked through the testing code to work it out :)

class TempCleanerJobTests extends GrailsUnitTestCase {

  def tempCleanerJob
  def grailsApplication

  protected void setUp() {
    tempCleanerJob = grailsApplication.mainContext.getBean(TempCleanerJob)

  protected void tearDown() {

  void testCleanNothing() {