Convert groovy tests to java

This commit is contained in:
Eddú Meléndez
2016-11-22 02:48:11 +01:00
committed by Vedran Pavic
parent 9c236fa256
commit 8f71ace84c
97 changed files with 3029 additions and 1820 deletions

View File

@@ -1,46 +0,0 @@
/*
* Copyright 2014-2016 the original author or authors.
*
* 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 sample
import geb.spock.*
import sample.pages.HomePage;
import spock.lang.Stepwise
import pages.*
/**
* Tests the CAS sample application using service tickets.
*
* @author Rob Winch
*/
@Stepwise
class AttributeTests extends GebReportingSpec {
def 'first visit no attributes'() {
when:
to HomePage
then:
attributes.empty
}
def 'create attribute'() {
when:
createAttribute('a','b')
then:
attributes.size() == 1
attributes[0].name == 'a'
attributes[0].value == 'b'
}
}

View File

@@ -1,46 +0,0 @@
/*
* Copyright 2014-2016 the original author or authors.
*
* 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 sample.pages
import geb.*
/**
* The home page
*
* @author Rob Winch
*/
class HomePage extends Page {
static url = ''
static at = { assert driver.title == 'Session Attributes'; true}
static content = {
form { $('form') }
submit { $('input[type=submit]') }
createAttribute(required:false) { name, value ->
form.attributeName = name
form.attributeValue = value
submit.click(HomePage)
}
attributes { moduleList AttributeRow, $("table tr").tail() }
}
}
class AttributeRow extends Module {
static content = {
cell { $("td", it) }
name { cell(0).text() }
value { cell(1).text() }
}
}

View File

@@ -0,0 +1,60 @@
/*
* Copyright 2014-2017 the original author or authors.
*
* 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 sample;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import sample.pages.HomePage;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Eddú Meléndez
*/
public class AttributeTests {
private WebDriver driver;
@Before
public void setup() {
this.driver = new HtmlUnitDriver();
}
@After
public void tearDown() {
this.driver.quit();
}
@Test
public void noAttributes() {
HomePage home = HomePage.go(this.driver);
assertThat(home.attributes().size()).isEqualTo(0);
}
@Test
public void createAttribute() {
HomePage home = HomePage.go(this.driver);
home.addAttribute("a", "b");
assertThat(home.attributes().size()).isEqualTo(1);
assertThat(home.row(0).getAttributeName()).isEqualTo("a");
assertThat(home.row(0).getAttributeValue()).isEqualTo("b");
}
}

View File

@@ -0,0 +1,102 @@
/*
* Copyright 2014-2017 the original author or authors.
*
* 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 sample.pages;
import java.util.ArrayList;
import java.util.List;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.PageFactory;
/**
* @author Eddú Meléndez
*/
public class HomePage {
private WebDriver driver;
private List<Row> rows;
public HomePage(WebDriver driver) {
this.driver = driver;
this.rows = new ArrayList<Row>();
}
private static void get(WebDriver driver, String get) {
String baseUrl = "http://localhost:" + System.getProperty("tomcat.port");
driver.get(baseUrl + get);
}
public static HomePage go(WebDriver driver) {
get(driver, "/");
return PageFactory.initElements(driver, HomePage.class);
}
public void addAttribute(String name, String value) {
WebElement form = this.driver.findElement(By.tagName("form"));
WebElement attributeName = form.findElement(By.name("attributeName"));
WebElement attributeValue = form.findElement(By.name("attributeValue"));
attributeName.sendKeys(name);
attributeValue.sendKeys(value);
form.findElement(By.cssSelector("input[type=\"submit\"]")).click();
}
public List<Row> attributes() {
WebElement table = this.driver.findElement(By.tagName("table"));
WebElement tbody = table.findElement(By.tagName("tbody"));
List<WebElement> trs = tbody.findElements(By.tagName("tr"));
List<Row> rows = new ArrayList<Row>();
for (WebElement tr : trs) {
List<WebElement> tds = tr.findElements(By.cssSelector("td"));
Row row = Row.builder()
.driver(this.driver)
.attributeName(tds.get(0).getText())
.attributeValue(tds.get(1).getText())
.build();
rows.add(row);
}
this.rows.addAll(rows);
return this.rows;
}
public Row row(int index) {
return this.rows.get(index);
}
@Data
@Builder
public static class Row {
final String attributeName;
final String attributeValue;
@Getter(AccessLevel.PRIVATE)
final WebDriver driver;
}
}