/******************************************************************************* * 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.RelatedProjectsExtensionEditForm; import org.eclipse.skalli.selenium.pageobjects.ext.util.RelatedProjectsExtensionEditFormRelatedProjectEntry; 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 EditPageRelatedProjectsExtensionEditFormTest { private static WebDriver driver; private static MainPage mainPage; private static CreateProjectPage createProjectPage; private static EditPage editPage; private static RelatedProjectsExtensionEditForm 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, RelatedProjectsExtensionEditForm.class); editForm.makeExtensionEditable(); } 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() { //check if the edit page is displayed before every test editPage.isDisplayedWithExplicitWait(); } @Test public void relatedProjectsEditFormPrintRelatedProjectsInformationTest() { System.out.println("calculate related projects?: " + editForm.isCalculateRelatedProjectCheckBoxChecked()); //get the related projects List<RelatedProjectsExtensionEditFormRelatedProjectEntry> relatedProjectEntries = editForm .getRelatedProjectEntries(); //and print them for (Iterator<RelatedProjectsExtensionEditFormRelatedProjectEntry> iterator = relatedProjectEntries.iterator(); iterator .hasNext();) { RelatedProjectsExtensionEditFormRelatedProjectEntry relatedProjectEntry = (RelatedProjectsExtensionEditFormRelatedProjectEntry) iterator .next(); System.out.println("related project: " + relatedProjectEntry.getRelatedProject()); } } @Test public void relatedProjectsEditFormAddRelatedProjectTest() { //get the number of related projects int num = editForm.getNumberOfRelatedProjects(); //add a related project editForm.clickAddRelatedProjectLink(); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not add related project", editForm.getNumberOfRelatedProjects() == num + 1); } @Test public void relatedProjectsEditFormSetRelatedProjectTest() { String text = "test <test>"; //sends the keys to the field editForm.sendKeysToRelatedProjectField(text, false, 0); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not set related project", editForm.getRelatedProject(0).equals(text)); } @Test public void relatedProjectsEditFormCheckCalculateRelatedProjectsCheckBoxTest() { editForm.checkCalculateRelatedProjectCheckBox(true); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("could not check calculate related projects checkbox", editForm.isCalculateRelatedProjectCheckBoxChecked()); } //TODO https://bugs.eclipse.org/bugs/show_bug.cgi?id=366372 @Test public void relatedProjectsEditFormAddRemoveTest() { //uncheck calculate related projects to be able to add links editForm.checkCalculateRelatedProjectCheckBox(false); editForm.isDisplayedWithExplicitWait(); //add a related project editForm.clickAddRelatedProjectLink(); editForm.isDisplayedWithExplicitWait(); //sends the keys to the field editForm.sendKeysToRelatedProjectField("Skalli <skalli>", true, 0); editForm.isDisplayedWithExplicitWait(); //sends the keys to the field editForm.sendKeysToRelatedProjectField("Eclipse <eclipse>", true, 1); editForm.isDisplayedWithExplicitWait(); //get the number of related projects int num = editForm.getNumberOfRelatedProjects(); //remove the first related project editForm.clickRemoveRelatedProjectLink(0); editForm.isDisplayedWithExplicitWait(); Assert.assertTrue("false content - maybe removing an element doesn't work correctly", editForm .getRelatedProject(0) .equals("Eclipse <eclipse>")); Assert.assertTrue("could not remove related project", editForm.getNumberOfRelatedProjects() == num - 1); } }