package com.framework.site.pages.activities;
import com.framework.asserts.JAssertion;
import com.framework.driver.event.HtmlElement;
import com.framework.driver.extensions.jquery.By;
import com.framework.site.objects.body.common.SectionBreadcrumbsBarObject;
import com.framework.site.pages.BaseCarnivalPage;
import com.framework.testing.annotations.DefaultUrl;
import com.google.common.base.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.hamcrest.Matchers.is;
@DefaultUrl( value = "/Activities", matcher = "endsWith()" )
public class ActivitiesPage extends BaseCarnivalPage
{
//region ActivitiesPage - Variables Declaration and Initialization Section.
private static final Logger logger = LoggerFactory.getLogger( ActivitiesPage.class );
private static final String LOGICAL_NAME = "Shore Excursions Page";
// ------------------------------------------------------------------------|
// --- WEB-OBJECTS DEFINITIONS --------------------------------------------|
// ------------------------------------------------------------------------|
private SectionBreadcrumbsBarObject breadcrumbsBar;
//endregion
//region ActivitiesPage - Constructor Methods Section
public ActivitiesPage()
{
super( LOGICAL_NAME );
}
//endregion
//region ActivitiesPage - Initialization and Validation Methods Section
protected void validatePageInitialState()
{
logger.debug( "validating static elements for: <{}>, name:<{}>...", getQualifier(), getLogicalName() );
final String REASON = "assert that element \"%s\" exits";
JAssertion assertion = new JAssertion( getDriver() );
Optional<HtmlElement> e = getDriver().elementExists( By.jQuerySelector( "h1:contains('Shore Excursions')" ) );
assertion.assertThat( String.format( REASON, "h1:contains('Shore Excursions')" ), e.isPresent(), is( true ) );
}
//endregion
//region ActivitiesPage - Service Methods Section
public SectionBreadcrumbsBarObject breadcrumbsBar()
{
if ( null == this.breadcrumbsBar )
{
this.breadcrumbsBar = new SectionBreadcrumbsBarObject( findBreadcrumbBarDiv() );
}
return breadcrumbsBar;
}
//endregion
//region ActivitiesPage - Business Methods Section
//endregion
//region ActivitiesPage - Element Finder Methods Section
//endregion
}