package org.fluentlenium.integration.initialization; import org.fluentlenium.core.FluentPage; import org.fluentlenium.core.domain.FluentWebElement; import org.fluentlenium.integration.util.adapter.FluentTest; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; import static org.assertj.core.api.Assertions.assertThat; public class BeforeInitialization extends FluentTest { private final WebDriver webDriver = new HtmlUnitDriver(); private TestPrivatePageWithElement page2; // NOPMD UsunedPrivateField private TestPrivatePage2 page; @Before public void beforeTest() { page2 = newInstance(TestPrivatePageWithElement.class); page = newInstance(TestPrivatePage2.class); } @Test public void testNoException() { page.go(); } @Test public void testInternalFluentWebElementInstantiate() { TestPrivatePageWithElement privatePage = newInstance(TestPrivatePageWithElement.class); assertThat(privatePage.myElement).isNotNull(); } @Test public void testSuperclassFluentWebElementInstantiate() { TestPrivatePageWithElementSubclass privatePage = newInstance(TestPrivatePageWithElementSubclass.class); assertThat(privatePage.myElement).isNotNull(); } @Override public WebDriver newWebDriver() { return webDriver; } } class TestPrivatePage2 extends FluentPage { @Override public String getUrl() { return "about:blank"; } } class TestPrivatePageWithElement extends FluentPage { /* default */ FluentWebElement myElement; @Override public String getUrl() { return "about:blank"; } } class TestPrivatePageWithElementSubclass extends TestPrivatePageWithElement { }