Arquillian AngularJS 1.2.0.Alpha1 Released

The Arquillian team is proud to announce the 1.2.0.Alpha1 release of the Arquillian AngularJS component!

New Arquillian Extension for AngularJS!

This is the first release of a new Arquillian Extension for use with AngularJS. Initially we’re providing extensions to Arquillian Graphene, but we’re interested in hearing your ideas for other possible extensions to the Arquillian universe for AngularJS testing.

It might seem odd that the first release of a completely new extension is 1.2.0.Alpha1, but we’re intending to tie the releases of this extension to the minor releases of AngularJS. What that means is that this release will be compatible with 1.2.x versions of AngularJS. Whether the extension is compatible with versions of AngularJS outside 1.2.x depends on the extent that we have depended on AngularJS internal APIs that were either not present in previous versions, or removed in future ones.

Graphene enhancements for AngularJS

  • WebDriver event synchronization
  • @FindByNg selectors (see below)

@FindByNg Selectors

With this first release, we support the following use of @FindByNg:

  • Model bindings – @FindByNg(model = "..")
  • Button, link or form actions – @FindByNg(action = "..")
  • Repeated DOM blocks – @FindByNg(repeat = "..")

Here’s an example of these in use:

@RunWith(Arquillian.class)
@RunAsClient
public class AngularTest {

    ..

    @FindByNg(model = "todo.done")
    List<WebElement> todos;

    @FindByNg(model = "todoText")
    WebElement todoEntry;

    @FindByNg(action = "archive()")
    WebElement archive;

    @FindByNg(action = "addTodo()")
    WebElement addTodo;

    @FindByNg(repeat = "todo in todos")
    List<WebElement> todoRepeat;

    @Before
    public void loadPage() {
        browser.navigate().to(contextRoot + "index.html");
    }

    @Test
    public void testNumberOfTodos() {
        assertEquals(2, todos.size());
    }

    @Test
    public void testArchive() {
        assertEquals(2, todos.size());
        archive.click();
        assertEquals(1, todos.size());
    }

    @Test
    public void testAddTodo() {
        assertEquals(2, todos.size());
        todoEntry.sendKeys("This is a new TODO item");
        addTodo.submit();
        assertEquals(3, todos.size());
    }

    @Test
    public void testRepeater() {
        assertEquals(2, todoRepeat.size());
        WebElement secondRow = todoRepeat.get(1);
        WebElement checkbox = secondRow.findElement(By.tagName("input"));
        WebElement todoItem = secondRow.findElement(By.tagName("span"));
        assertEquals("second todo", todoItem.getText());

        checkbox.click();
        archive.click();

        assertEquals(0, todoRepeat.size());
    }
}

We hope that you’ll enjoy our new stuff and look forward to hear your feedback 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 AngularJS
Version 1.2.0.Alpha1 view tag
Release date 2014-05-05
Released by Ken Finnigan
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-angularjs-graphene pom
  • org.jboss.arquillian.extension » arquillian-angularjs-graphene-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-angularjs-graphene-impl jar javadoc pom

Release notes and resolved issues 0

First Alpha for support for Angular 1.2

Thanks to the following list of contributors: Ken Finnigan, Lukas Fryc