/******************************************************************************* * 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 java.util.Iterator; import java.util.List; import org.eclipse.skalli.selenium.pageobjects.concrete.CreateProjectPage; import org.eclipse.skalli.selenium.pageobjects.concrete.EditPage; import org.eclipse.skalli.selenium.pageobjects.concrete.MainPage; import org.eclipse.skalli.selenium.pageobjects.ext.editform.InfoExtensionEditForm; import org.eclipse.skalli.selenium.pageobjects.ext.util.RemovableFieldEntry; import org.eclipse.skalli.selenium.tests.TestUtilities; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; public class EditPageInfoExtensionEditFormTest { private static WebDriver driver; private static MainPage mainPage; private static CreateProjectPage createProjectPage; private static EditPage editPage; private static InfoExtensionEditForm editForm; @BeforeClass public static void setupClass() { driver = TestUtilities.initializeDriver(); initializePageObjects(); mainPage.isDisplayedWithExplicitWait(); //navigate to the edit page mainPage.clickCreateProjectLink(); createProjectPage.isDisplayedWithExplicitWait(); createProjectPage.clickCreateProjectButton(); editPage.isDisplayedWithExplicitWait(); //initialize extensions editForm = PageFactory.initElements(driver, InfoExtensionEditForm.class); } private static void initializePageObjects() { mainPage = PageFactory.initElements(driver, MainPage.class); createProjectPage = PageFactory.initElements(driver, CreateProjectPage.class); editPage = PageFactory.initElements(driver, EditPage.class); } @Before public void setup() { //checks if the edit page is displayed before every test editPage.isDisplayedWithExplicitWait(); } @Test public void infoEditFormPrintMailingsListsInformationTest() { //print the project homepage System.out.println("project homepage: " + editForm.getProjectHomepage()); //get the mailing list entries... List<RemovableFieldEntry> mailingListEntries = editForm.getMailingsListEntries(); //and print them for (Iterator<RemovableFieldEntry> iterator = mailingListEntries.iterator(); iterator.hasNext();) { RemovableFieldEntry mailingListEntry = (RemovableFieldEntry) iterator.next(); System.out.println("mailing lists link: " + mailingListEntry.getFieldContent()); } } @Test public void infoEditFormAddMailingListTest() { //check the number of mailing lists int num = editForm.getNumberOfMailingLists(); //add a mailing list entry editForm.clickAddMailingListLink(); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not add mailing list", editForm.getNumberOfMailingLists() == num + 1); //clean up editForm.clickRemoveMailingListLink(0); editForm.isDisplayedWithExplicitWait(); } @Test public void infoEditFormSetMailingListTest() { String text = "test@test.org"; //sends the keys to the field editForm.sendKeysToMailingListField(text, 0); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not set mailing list", editForm.getMailingListLink(0).equals(text)); //clear editForm.sendKeysToMailingListField(new String(new char[text.length()]).replace('\0', '\b'), 0); editForm.isDisplayedWithExplicitWait(); } @Test public void infoEditFormSetProjectHomepageTest() { String text = "http://www.test.org"; //sends the keys to the field editForm.sendKeysToProjectHomepageField(text); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not set project homepage", editForm.getProjectHomepage().equals(text)); } @Test public void infoEditFormAddRemoveTest() { //add a mailing lists entry editForm.clickAddMailingListLink(); editForm.isDisplayedWithExplicitWait(); //change the mailing list to "foo<number>" for (int i = 0; i < editForm.getNumberOfMailingLists(); i++) { editForm.sendKeysToMailingListField("foo" + i, i); editForm.isDisplayedWithExplicitWait(); } //get the number of mailing lists int num = editForm.getNumberOfMailingLists(); //remove the first mailing list editForm.clickRemoveMailingListLink(0); editForm.isDisplayedWithExplicitWait(); //check the content of the mailing list entries for (int i = 0; i < editForm.getNumberOfMailingLists(); i++) { Assert.assertTrue("false content - maybe removing an element doesn't work correctly", editForm .getMailingListLink(i).equals("foo" + (i + 1))); } Assert.assertTrue("could not remove mailing list", editForm.getNumberOfMailingLists() == num - 1); } }