org.sample.booking.AuthenticationTestCase.java Source code

Java tutorial

Introduction

Here is the source code for org.sample.booking.AuthenticationTestCase.java

Source

/*
 * Copyright 2013 eXo Platform SAS
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.sample.booking;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.InSequence;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import static junit.framework.Assert.*;

import java.net.URL;

/**
 * @author <a href="hoang281283@gmail.com">Minh Hoang TO</a>
 * @date 11/8/12
 */
public class AuthenticationTestCase extends AbstractBookingTestCase {

    @Deployment
    public static WebArchive createDeployment() {
        return AbstractBookingTestCase.createDeployment();
    }

    @Test
    @InSequence(0)
    @RunAsClient
    public void login(@ArquillianResource URL deploymentURL) throws Exception {
        URL url = deploymentURL.toURI().resolve("embed/BookingPortlet").toURL();
        driver.get(url.toString());
        WebElement loginForm = driver.findElement(By.className("formLogin"));
        assertNotNull(loginForm);

        loginForm.findElement(By.name("username")).sendKeys("demo");
        loginForm.findElement(By.name("password")).sendKeys("demo");
        loginForm.submit();

        WebElement messageBoard = driver.findElement(By.className("fSuccess"));
        assertNotNull(messageBoard);
        assertEquals("Welcome, Demo User", messageBoard.getText());
    }

    @Test
    @InSequence(1)
    @RunAsClient
    public void refreshAfterLogin(@ArquillianResource URL deploymentURL) throws Exception {
        URL url = deploymentURL.toURI().resolve("embed/BookingPortlet").toURL();
        driver.get(url.toString());
        WebElement options = driver.findElement(By.className("options"));
        assertNotNull(options);
        assertEquals("Connected as demo | Search | Settings | Logout", options.getText());
    }

    @Test
    @InSequence(2)
    @RunAsClient
    public void logout(@ArquillianResource URL deploymentURL) throws Exception {
        WebElement options = driver.findElement(By.className("options"));
        assertNotNull(options);
        assertEquals("Connected as demo | Search | Settings | Logout", options.getText());

        WebElement logout = options.findElement(By.linkText("Logout"));
        assertNotNull(logout);
        assertEquals("Logout", logout.getText());
        driver.get(logout.getAttribute("href"));

        WebElement login = driver.findElement(By.className("login"));
        assertNotNull(login);
        assertTrue(login.getText().contains("(try with demo/demo)"));
        assertNotNull(login.findElement(By.tagName("form")));
    }

    @Test
    @InSequence(3)
    @RunAsClient
    public void refreshAfterLogout(@ArquillianResource URL deploymentURL) throws Exception {
        URL url = deploymentURL.toURI().resolve("embed/BookingPortlet").toURL();
        driver.get(url.toString());

        WebElement login = driver.findElement(By.className("login"));
        assertNotNull(login);
        assertTrue(login.getText().contains("(try with demo/demo)"));
        assertNotNull(login.findElement(By.tagName("form")));
    }
}