Arquillian Portal Extension 1.1.0.Alpha1 Released

The Arquillian team is proud to announce the 1.1.0.Alpha1 release of the Arquillian Portal Extension component!

You may have noticed that we jumped from 1.0.0.CR1 to 1.1.0.Alpha1! No, we’re not going crazy, but given the stability inherit within 1.0.0.CR1 and the changes we were
looking to introduce into the extension, it made sense to bump the version to 1.1.0.

This release contained quite a large amount of changes, compared to previously.

Some of the highlights in this release

GateIn and Pluto portlet container implementations are now included as implementations of the portal extension instead of being in separate repositories.

Add the ability to run integration testing against the portlet containers, and different servlet containers.

Extend Warp to cater for regular and JSF Portlets.

Warp extensions for portlets

For non JSF portlets we can specify an Inspection method with either @BeforePortletPhase or @AfterPortletPhase to specify whether we want to the method executed before or after the particular PortletRequest specified by the value on the annotation. An example of executing an inspection after a RenderRequest would be:

@AfterPortletPhase(Phase.RENDER)
public void afterRender() {
    assertTrue(true);
}

It’s also possible to inject the request and response objects into the Inspection. You can choose to either use a generic PortletRequest or more specific request types based on the portlet lifecycle phase, such as ActionRequest. Here’s an example:

@ArquillianResource
ActionResponse actionResponse;

@BeforePortletPhase(Phase.ACTION)
public void beforeActionRequest() {
    String[] values = actionResponse.getRenderParameterMap().get("data");
    assertNull("Render parameter for data should not be set.", values);
}

@AfterPortletPhase(Phase.ACTION)
public void afterActionRequest() {
    String[] values = actionResponse.getRenderParameterMap().get("data");
    assertTrue("Render parameter for data should be set.", values.length == 1);
    assertEquals("Render parameter set to incorrect value.", BasicPortlet.ACTION, values[0]);
}

For JSF portlets we can still use @BeforePortletPhase and @AfterPortletPhase, but these don’t allow us to inspect the JSF lifecycle. To perform inspection on the JSF lifecycle, we need to use @PortletPhase in combination with the JSF lifecycle annotations from Warp. To inspect when JSF changes the value of a bean on form submission for a portlet:

@ManagedProperty("")
Bean bean;

@PortletPhase(ACTION) @BeforePhase(Phase.UPDATE_MODEL_VALUES)
public void testBeanValueBeforeUpdate() {
    assertEquals("Bean value should not be updated yet.", "originalValue", bean.getText());
}

@PortletPhase(ACTION) @AfterPhase(Phase.UPDATE_MODEL_VALUES)
public void testBeanValueAfterUpdate() {
    assertEquals("Bean value should now be updated.", "newValue", bean.getText());
}

One point of note when writing Warp tests for portlets is that most portlet containers perform a redirect after an Action or Event request, but before the portlet is rendered. To be able to inspect on both an Action and Render request, we need to use Warp request groups:

Warp
    .initiate(new Activity() {
        public void perform() {
            // Do something
        }
    })
    .group()
        .observe(request().index(1))
        .inspect(new Inspection() {
            private static final long serialVersionUID = 1L;

            @PortletPhase(ACTION) @BeforePhase(Phase.UPDATE_MODEL_VALUES)
            public void testBeanValueBeforeUpdate() {
                // Asserts
            }
        })
    .group()
        .observe(request().index(2))
        .inspect(new Inspection() {
            private static final long serialVersionUID = 1L;

            @PortletPhase(RENDER) @BeforePhase(Phase.RENDER_RESPONSE)
            public void testBeanValueBeforeRenderResponse() {
                // Asserts
            }
        })
    .execute();

We look forward to hearing your feedback about this release in the community forums!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Portal Extension
Version 1.1.0.Alpha1 view tag
Release date 2013-10-31
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-base jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-gatein jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-pluto-container jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-pluto-jetty-bom pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-pluto-jsf jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-warp-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-warp-portlet jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-warp-jsf jar javadoc pom

Release notes and resolved issues 4

Feature Request
  • ARQ-1539 - Support for Warp testing with Portlets
Task
  • ARQ-1540 - Migrate implementations into Portal Extension
  • ARQ-1542 - Add integration testing to portal extension

Thanks to the following list of contributors: Ken Finnigan

Arquillian Portal Extension 1.0.0.CR1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.CR1 release of the Arquillian Portal Extension component!

There are several important fixes in this release for those testing portlets with Arquillian.

Some of the highlights in this release

Fix exceptions where there are multiple portlet deployments present on a Test class.

Allow @PortalURL to be present on a test method parameter, in addition to a field.

Modify the parsing of portlet.xml to occur for each test instead of once per Test class.

We look forward to hearing your feedback about this release in the community forums!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Portal Extension
Version 1.0.0.CR1 view tag
Release date 2013-09-20
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-portal-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-impl jar javadoc pom

Release notes and resolved issues 4

Bug
  • ARQ-1484 - ConcurrentModificationException when TestClass contains multiple Portlet Archive Deployments
  • ARQ-1485 - PortletXMLProcessor does not check for PortalURL annotation on test method parameters
  • ARQ-1486 - Parsing of portlet.xml needs to occur for a deployment to provide correct list of available portlets for a test

Thanks to the following list of contributors: Ken Finnigan

Arquillian Portal Extension 1.0.0.Beta1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.Beta1 release of the Arquillian Portal Extension component!

Highlighted Features

Shrinkwrap Archive type for portlets

We now have PortletArchive for creating Shrinkwrap archives for portlets. (read more)

Helpers for creating portlet.xml

Within PortletArchive there are some simple helpers for creating the contents of portlet.xml. (read more)

Shrinkwrap Archive type for portlets

We can now use PortletArchive instead of WebArchive when we’re creating micro deployments for testing a portlet. In it includes methods for setting the content of portlet.xml without needing to specify the path, in a similar manner that WebArchive provides setWebXML() methods.

Helpers for creating portlet.xml

PortletArchive also adds some nice helpers for creating GenericPortlet or GenericFacesPortlet portlet definitions within portlet.xml. A GenericPortlet can be added to portlet.xml by:

Shrinkwrap.create(PortletArchive.class)
	.createSimplePortlet(MyPortletClass.class);

And adding a portlet for JSF is:

Shrinkwrap.create(PortletArchive.class)
	.createFacesPortlet("portletName", "Portlet Title", "index.xhtml");

For examples on how to use these extensions with their respective portal containers, you can take a look at the testsuite of Portlet Bridge.

We look forward to hearing your feedback about this release in the community forums!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Portal Extension
Version 1.0.0.Beta1 view tag
Release date 2013-01-31
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-portal-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-shrinkwrap-impl jar javadoc pom

Release notes and resolved issues 2

Feature Request
  • ARQ-1279 - Create PortletArchive as Shrinkwrap archive type for portlets

Thanks to the following list of contributors: Ken Finnigan

Arquillian Portal Extension 1.0.0.Alpha2 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.Alpha2 release of the Arquillian Portal Extension component!

The Portal extension for Arquillian brings testing into the world of Portlets!

Some of the highlights in this release

URL injection of portlets by name. @PortalURL now supports defining the names of the portlets that you want rendered on the page of the injected URL. You can either specify a single portlet name, multiple, or leave it empty and it will load all portlets defined within portlets.xml onto the page. Injecting a URL of a portlet page with the MyPortlet portlet present is done by:

MyTest.java
@ArquillianResource
@PortalURL("MyPortlet")
URL portletPage;

Annotation for marking portlet tests. @PortalTest now represents a marker on a test class that signifies to Portal extension implementations that a portlet test is being invoked. This enables for augmenting the test deployment with whatever information is needed for particular portlet containers to enable a portlet to be tested. It has the added benefit of decoupling a test needing to inject a @PortalURL if the tests don’t require a URL to the portlet page.

Currently there are two implementations of this extension for use with Pluto and GateIn portal containers.

For examples on how to use these extensions with their respective portal containers, you can take a look at the testsuite of JBoss Portlet Bridge.

We look forward to hearing your feedback about this release in the community forums!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Portal Extension
Version 1.0.0.Alpha2 view tag
Release date 2012-10-17
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-portal-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal jar javadoc pom

Release notes and resolved issues 6

Enhancement
  • ARQ-1117 - Support Portal URL for specific portlet or several on a page
Bug
  • ARQ-961 - Error in README for the name of additional URL qualifier
Task
  • ARQ-1115 - Introduce Portal depchain
  • ARQ-1116 - Change references of portal container to portlet container
  • ARQ-1151 - Update Portal Extension to Core 1.0.2.Final

Thanks to the following list of contributors: Ken Finnigan, Thomas Delhoménie

Arquillian Portal Extension 1.0.0.Alpha1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.Alpha1 release of the Arquillian Portal Extension component!

This is the first release of a new Arquillian Extension for assisting in the complex task of testing portlets in a portal environment.

Some of the highlights in this release

Portal URL resource

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Portal Extension
Version 1.0.0.Alpha1 view tag
Release date 2012-05-08
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-portal-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-portal-impl-base jar javadoc pom

Release notes and resolved issues 4

First Release of Portal Extension

Task
  • ARQ-902 - Add README to portal extension project
  • ARQ-903 - Update pom.xml with missing information
  • ARQ-904 - Update license to ASLv2

Thanks to the following list of contributors: Ken Finnigan