/*******************************************************************************
* 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.DevelopmentInfrastructureExtensionEditForm;
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 EditPageDevelopmentInfrastructureEditFormTest {
private static WebDriver driver;
private static MainPage mainPage;
private static CreateProjectPage createProjectPage;
private static EditPage editPage;
private static DevelopmentInfrastructureExtensionEditForm 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, DevelopmentInfrastructureExtensionEditForm.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() {
//checks if the edit page is displayed before every test
editPage.isDisplayedWithExplicitWait();
}
@Test
public void developmentInfrastructureEditFormPrintInformationTest() {
System.out.println("Source Code: " + editForm.getSourceCodeFieldContent());
//print the repository entries
//repositories
List<RemovableFieldEntry> repositoryEntries = editForm.getRepositoryEntries();
for (Iterator<RemovableFieldEntry> iterator = repositoryEntries.iterator(); iterator.hasNext();) {
RemovableFieldEntry repositoryEntry = (RemovableFieldEntry) iterator.next();
System.out.println("Repository: " + repositoryEntry.getFieldContent());
}
System.out.println("Bugtracker: " + editForm.getBugTrackerFieldContent());
System.out.println("Build: " + editForm.getBuildFieldContent());
System.out.println("Quality: " + editForm.getQualityFieldContent());
System.out.println("Code Review: " + editForm.getCodeReviewFieldContent());
//print the javadoc entries
//javadocs
List<RemovableFieldEntry> javadocEntries = editForm.getRepositoryEntries();
for (Iterator<RemovableFieldEntry> iterator = javadocEntries.iterator(); iterator.hasNext();) {
RemovableFieldEntry javadocEntry = (RemovableFieldEntry) iterator.next();
System.out.println("Javadoc: " + javadocEntry.getFieldContent());
}
}
@Test
public void developmentInfrastructureEditFormAddJavadocTest() {
//get the number of javadocs
int num = editForm.getNumberOfJavadocs();
//add a javadoc
editForm.clickAddJavadocLink();
editForm.isDisplayedWithExplicitWait();
Assert.assertTrue("could not add javadoc", editForm.getNumberOfJavadocs() == num + 1);
}
@Test
public void developmentInfrastructureEditFormAddRemoveRepositoryTest() {
//get the number of repositories
int num = editForm.getNumberOfRepositories();
//add a repository
editForm.clickAddRepositoryLink();
editForm.isDisplayedWithExplicitWait();
//remove a repository
editForm.clickRemoveRepositoryLink(0);
editForm.isDisplayedWithExplicitWait();
Assert.assertTrue("could not add and remove repository", editForm.getNumberOfRepositories() == num);
}
@Test
public void developmentInfrastructureEditFormAddRepositoryTest() {
//get the number of repositories
int num = editForm.getNumberOfRepositories();
//add a repository
editForm.clickAddRepositoryLink();
editForm.isDisplayedWithExplicitWait();
Assert.assertTrue("could not add repository", editForm.getNumberOfRepositories() == num + 1);
}
@Test
public void developmentInfrastructureEditFormAddRemoveJavadocTest() {
//get the number of javadocs
int num = editForm.getNumberOfJavadocs();
//add a javadoc
editForm.clickAddJavadocLink();
editForm.isDisplayedWithExplicitWait();
//remove a javadoc
editForm.clickRemoveJavadocsLink(0);
editForm.isDisplayedWithExplicitWait();
Assert.assertTrue("could not add and remove javadoc", editForm.getNumberOfJavadocs() == num);
}
}