/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.selenium.tests.simple; import junit.framework.Assert; import org.eclipse.skalli.selenium.pageobjects.MainHeaderPage; import org.eclipse.skalli.selenium.pageobjects.concrete.LoginFailedPage; import org.eclipse.skalli.selenium.pageobjects.concrete.LoginPage; import org.eclipse.skalli.selenium.utils.DriverProvider; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; public class PageAccessTest { private static WebDriver driver; private static MainHeaderPage page; @BeforeClass public static void setupClass() { initializeDriver(); initializePageObjects(); } private static void initializeDriver() { driver = DriverProvider.getDriver(); } private static void initializePageObjects() { page = PageFactory.initElements(driver, MainHeaderPage.class); } @Before public void setup() { //navigate to the base url before every test DriverProvider.navigateToBaseUrl(driver); } @After public void proof() { //check after every test if MainHeaderPage page is displayed //should be a page of the project which meants that the page is accessible try { page.isDisplayedWithExplicitWait(); } catch (NoSuchElementException e) { throw new NoSuchElementException("page title is: " + page.getTitle() + " (Maybe the page couldn't be loaded!)\n" + e.getMessage(), e.getCause()); } } /** * Tests the accessibility of the page */ @Test public void pageAccessTest() { //check the login page or the main page (depends on what test is executed first - maybe we are logged in) } /** * Tests whether the login is possible or not */ @Test public void loginTest() { //reset driver if we are not on login page if (!DriverProvider.isOnLoginPage(driver)) { DriverProvider.goToLoginPage(); } //check if the login page is displayed LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); loginPage.isDisplayedWithExplicitWait(); //test login failed page String foo = "foo"; DriverProvider.login(driver, foo, ""); //check if the LoginFailedPage is displayed LoginFailedPage loginFailedPage = PageFactory.initElements(driver, LoginFailedPage.class); loginFailedPage.isDisplayedWithExplicitWait(); //navigate back to the login page driver.navigate().back(); loginPage.isDisplayedWithExplicitWait(); //deleting the user name (clear) loginPage.sendKeysToUserNameField(new String(new char[foo.length()]).replace('\0', '\b')); Assert.assertTrue("Could not login!", DriverProvider.login(driver)); } }