package org.fluentlenium.integration; import org.fluentlenium.core.FluentControl; import org.fluentlenium.core.FluentPage; import org.fluentlenium.core.annotation.Page; import org.fluentlenium.core.domain.FluentWebElement; import org.fluentlenium.integration.localtest.IntegrationFluentTest; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; /** * */ public class PageInPageTest extends IntegrationFluentTest { @Page private TestPage testPage; @Page private SubSubTestPage subTestPage; @Test public void pagesShouldBeInjected() { assertThat(testPage).isNotNull(); assertThat(testPage).isInstanceOf(TestPage.class); assertThat(testPage.includedPage).isNotNull(); assertThat(testPage.includedPage).isInstanceOf(IncludedPage.class); assertThat(testPage.includedPage.element).isNotNull(); assertThat(subTestPage).isNotNull(); assertThat(subTestPage).isInstanceOf(SubTestPage.class); assertThat(subTestPage.includedPage).isNotNull(); assertThat(subTestPage.anotherIncludedPage).isNotNull(); } } class TestPage extends FluentPage { @Page /* default */ IncludedPage includedPage; } class SubSubTestPage extends SubTestPage { } class SubTestPage extends TestPage { @Page /* default */ IncludedPage anotherIncludedPage; } class SubTestPageWithCreate extends FluentPage { private IncludedPage pageWithCreatePage; public void initFluent(FluentControl control) { super.initFluent(control); pageWithCreatePage = newInstance(IncludedPage.class); } public IncludedPage getPageWithCreatePage() { return pageWithCreatePage; } } class IncludedPage extends FluentPage { /* default */ FluentWebElement element; }