Skip to content

Commit

Permalink
Merge 8f31546 into b831d6b
Browse files Browse the repository at this point in the history
  • Loading branch information
David committed Dec 15, 2015
2 parents b831d6b + 8f31546 commit c268b4d
Show file tree
Hide file tree
Showing 31 changed files with 230 additions and 124 deletions.
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
package org.fluentlenium.integration.localtest;

import static org.fluentlenium.integration.util.UrlUtil.getAbsoluteUrlFromFile;

import org.fluentlenium.adapter.FluentTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

//TODO : Problem here - 1 instance by test when 1 instance for test suite is sufficient ...
public abstract class LocalFluentCase extends FluentTest {
private static final String BASE_URL = getPath();
protected static final String DEFAULT_URL = BASE_URL + "index.html";

public static final String DEFAULT_URL;

static {
DEFAULT_URL = getAbsoluteUrlFromFile("index.html");
}

@Override
public WebDriver getDefaultDriver() {
return new HtmlUnitDriver(true);
}

public static String getPath() {
String currentDir = System.getProperty("user.dir");
if (!currentDir.endsWith("/fluentlenium-assertj")) {
currentDir += "/fluentlenium-assertj";
}
String scheme = "file:/";
if (currentDir.startsWith("/home")) {
scheme = "file:";
}
return scheme + currentDir + "/src/test/html/";
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.fluentlenium.integration.util;

import java.net.URL;

public final class UrlUtil {

private UrlUtil() {
// No instances allowed
}

/**
* Converts a file String to a valid URL String.<br>
* Example: <code>index.html</code> converts to <code>file://C:/path/to/file/index.html</code>.
* @param file the file String
* @return the URL String
*/
public static String getAbsoluteUrlFromFile(final String file) {
if (file == null) {
throw new IllegalArgumentException("file must not be null");
}

final URL url = ClassLoader.getSystemResource(file);
if (url == null) {
throw new NullPointerException("url from file=" + file + " is null");
}

return url.toString();
}
}
Binary file removed fluentlenium-core/src/test/html/.DS_Store
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import java.util.concurrent.TimeUnit;

import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.fluentlenium.integration.localtest.SauceLabsFluentCase;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.util.concurrent.TimeUnit;

import static org.assertj.core.api.Assertions.assertThat;

public class AlertOnLabsTest extends SauceLabsFluentCase {

@Page
Expand Down Expand Up @@ -102,7 +101,7 @@ public void should_prompt() {
class AlertPage extends FluentPage {
@Override
public String getUrl() {
return LocalFluentCase.BASE_URL + "alert.html";
return "alert.html";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class BaseUrlTest extends LocalFluentCase {

@Page
Page2Relative pageRelative;

Expand All @@ -21,7 +22,7 @@ public String getDefaultBaseUrl() {

@Test
public void baseUrlShouldBeUsedForRelativeUrlInGoTo() {
goTo(LocalFluentCase.BASE_URL + "/page2.html");
goTo(PAGE_2_URL);
assertThat(title()).isEqualTo("Page 2");
}

Expand Down Expand Up @@ -49,7 +50,7 @@ class Page2Relative extends FluentPage {

@Override
public String getUrl() {
return LocalFluentCase.BASE_URL + "/page2.html";
return LocalFluentCase.PAGE_2_URL;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,13 @@ public WebDriver getDefaultDriver() {

@Test
public void clickOn() {
ElementListener beforeListener = Mockito.mock(ElementListener.class);
ElementListener afterListener = Mockito.mock(ElementListener.class);
final ElementListener beforeListener = Mockito.mock(ElementListener.class);
final ElementListener afterListener = Mockito.mock(ElementListener.class);

events().beforeClickOn(beforeListener);
events().afterClickOn(new ElementListener() {
@Override
public void on(FluentWebElement element, WebDriver driver) {
System.out.println("Element Clicked: " + element);
public void on(final FluentWebElement element, final WebDriver driver) {
}
});
goTo(DEFAULT_URL);
Expand All @@ -40,8 +39,8 @@ public void on(FluentWebElement element, WebDriver driver) {

@Test
public void findBy() {
FindByListener beforeListener = Mockito.mock(FindByListener.class);
FindByListener afterListener = Mockito.mock(FindByListener.class);
final FindByListener beforeListener = Mockito.mock(FindByListener.class);
final FindByListener afterListener = Mockito.mock(FindByListener.class);

events().beforeFindBy(beforeListener);
events().afterFindBy(afterListener);
Expand All @@ -55,8 +54,8 @@ public void findBy() {

@Test
public void navigate() {
NavigateAllListener beforeListener = Mockito.mock(NavigateAllListener.class);
NavigateAllListener afterListener = Mockito.mock(NavigateAllListener.class);
final NavigateAllListener beforeListener = Mockito.mock(NavigateAllListener.class);
final NavigateAllListener afterListener = Mockito.mock(NavigateAllListener.class);

events().beforeNavigate(beforeListener);
events().afterNavigate(afterListener);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;
import org.openqa.selenium.WebElement;

import static org.assertj.core.api.Assertions.assertThat;

public class FluentWebElementDelegateClassInTest extends LocalFluentCase {
ALink linkToPage2;

public static class ALink {
private final WebElement webElement;

public ALink(WebElement webElement) {
public ALink(final WebElement webElement) {
this.webElement = webElement;
}

Expand All @@ -27,6 +27,6 @@ public void clickIfDisplayed() {
public void when_web_element_in_test_then_they_are_instanciated() {
goTo(LocalFluentCase.DEFAULT_URL);
linkToPage2.clickIfDisplayed();
assertThat(url()).isEqualTo(LocalFluentCase.BASE_URL + "page2.html");
assertThat(url()).isEqualTo(LocalFluentCase.PAGE_2_URL);
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.domain.FluentWebElement;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class FluentWebElementInTest extends LocalFluentCase {
FluentWebElement linkToPage2;

@Test
public void when_web_element_in_test_then_they_are_instanciated() {
goTo(LocalFluentCase.DEFAULT_URL);
linkToPage2.click();
assertThat(url()).isEqualTo(LocalFluentCase.BASE_URL + "page2.html");
assertThat(url()).isEqualTo(LocalFluentCase.PAGE_2_URL);
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.domain.FluentWebElement;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;
import org.openqa.selenium.WebElement;

import static org.assertj.core.api.Assertions.assertThat;

public class FluentWebElementSubclassInTest extends LocalFluentCase {
ALink linkToPage2;

public static class ALink extends FluentWebElement {
public ALink(WebElement webElement) {
public ALink(final WebElement webElement) {
super(webElement);
}

Expand All @@ -26,6 +26,6 @@ public void clickIfDisplayed() {
public void when_web_element_in_test_then_they_are_instanciated() {
goTo(LocalFluentCase.DEFAULT_URL);
linkToPage2.clickIfDisplayed();
assertThat(url()).isEqualTo(LocalFluentCase.BASE_URL + "page2.html");
assertThat(url()).isEqualTo(LocalFluentCase.PAGE_2_URL);
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class IframeTest extends LocalFluentCase {

@Page
Expand Down Expand Up @@ -77,7 +77,7 @@ public void should_get_element_into_a_frame_with_Fluent_switchToDefault() {
class IFramePage extends FluentPage {
@Override
public String getUrl() {
return LocalFluentCase.BASE_URL + "iframe.html";
return LocalFluentCase.IFRAME_URL;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.core.domain.FluentWebElement;
Expand All @@ -8,8 +10,6 @@
import org.junit.Test;
import org.openqa.selenium.support.FindBy;

import static org.assertj.core.api.Assertions.assertThat;

public class PageTest extends LocalFluentCase {
@Page
PageAccueil page;
Expand Down Expand Up @@ -99,7 +99,7 @@ class Page2 extends FluentPage {

@Override
public String getUrl() {
return LocalFluentCase.BASE_URL + "page2.html";
return LocalFluentCase.PAGE_2_URL;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.fluentlenium.integration;

import static org.assertj.core.api.Assertions.assertThat;

import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.integration.localtest.LocalFluentCase;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class SuperclassPageTest extends PageTest {

@Page
Expand All @@ -33,7 +33,7 @@ class AnotherPage extends FluentPage {

@Override
public String getUrl() {
return LocalFluentCase.BASE_URL + "anotherpage.html";
return LocalFluentCase.ANOTHERPAGE_URL;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package org.fluentlenium.integration.localtest;

import static org.fluentlenium.integration.util.UrlUtil.getAbsoluteUrlFromFile;

import org.fluentlenium.adapter.FluentTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public abstract class LocalFluentCase extends FluentTest {
public static final String BASE_URL = getPath();
public static final String DEFAULT_URL = BASE_URL + "index.html";
public static final String JAVASCRIPT_URL = BASE_URL + "javascript.html";

public static final String DEFAULT_URL;
public static final String JAVASCRIPT_URL;
public static final String PAGE_2_URL;
public static final String IFRAME_URL;
public static final String ANOTHERPAGE_URL;

static {
DEFAULT_URL = getAbsoluteUrlFromFile("index.html");
JAVASCRIPT_URL = getAbsoluteUrlFromFile("javascript.html");
PAGE_2_URL = getAbsoluteUrlFromFile("page2.html");
IFRAME_URL = getAbsoluteUrlFromFile("iframe.html");
ANOTHERPAGE_URL = getAbsoluteUrlFromFile("anotherpage.html");
}

@Override
public WebDriver getDefaultDriver() {
return new HtmlUnitDriver(true);
}

public static String getPath() {
String currentDir = System.getProperty("user.dir");
if (!currentDir.endsWith("/fluentlenium-core")) {
currentDir += "/fluentlenium-core";
}
String scheme = "file:/";
if (currentDir.startsWith("/home")) {
scheme = "file:";
}
return scheme + currentDir + "/src/test/html/";
}
}

Loading

0 comments on commit c268b4d

Please sign in to comment.