package org.fluentlenium.configuration; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Configure a FluentLenium test class with this annotation. * * @see ConfigurationProperties */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface FluentConfiguration { /** * Boolean value used in annotation that can has a third DEFAULT value equivalent to null. */ enum BooleanValue { TRUE(true), FALSE(false), DEFAULT(null); private final Boolean value; /** * Creates a new boolean value. * * @param value boolean value */ BooleanValue(Boolean value) { this.value = value; } /** * Get this Boolean value as a {@link Boolean} * * @return boolean value */ Boolean asBoolean() { return value; } } /** * <i>configurationFactory</i> property. * * @return configurationFactory * @see ConfigurationProperties#getConfigurationFactory() */ Class<? extends ConfigurationFactory> configurationFactory() default DefaultConfigurationFactory.class; /** * <i>configurationDefaults</i> property. * * @return configurationDefaults * @see ConfigurationProperties#getConfigurationDefaults() */ Class<? extends ConfigurationProperties> configurationDefaults() default ConfigurationDefaults.class; /** * <i>webDriver</i> property. * * @return webDriver * @see ConfigurationProperties#getWebDriver() */ String webDriver() default ""; /** * <i>remoteUrl</i> property. * * @return remoteUrl * @see ConfigurationProperties#getRemoteUrl() */ String remoteUrl() default ""; /** * <i>capabilities</i> property. * * @return capabilities * @see ConfigurationProperties#getCapabilities() */ String capabilities() default ""; /** * <i>driverLifecycle</i> property. * * @return driverLifecycle * @see ConfigurationProperties#getDriverLifecycle() */ ConfigurationProperties.DriverLifecycle driverLifecycle() default ConfigurationProperties.DriverLifecycle.DEFAULT; /** * <i>deleteCookies</i> property. * * @return deleteCookies * @see ConfigurationProperties#getDeleteCookies() */ BooleanValue deleteCookies() default BooleanValue.DEFAULT; /** * <i>baseUrl</i> property. * * @return baseUrl * @see ConfigurationProperties#getBaseUrl() */ String baseUrl() default ""; /** * <i>pageLoadTimeout</i> property. * * @return pageLoadTimeout * @see ConfigurationProperties#getPageLoadTimeout() */ long pageLoadTimeout() default -1; /** * <i>implicitlyWait</i> property. * * @return implicitlyWait * @see ConfigurationProperties#getImplicitlyWait() */ long implicitlyWait() default -1; /** * <i>scriptTimeout</i> property. * * @return scriptTimeout * @see ConfigurationProperties#getScriptTimeout() */ long scriptTimeout() default -1; /** * <i>awaitAtMost</i> property. * * @return awaitAtMost * @see ConfigurationProperties#getAwaitAtMost() */ long awaitAtMost() default -1; /** * <i>awaitPollingEvery</i> property. * * @return awaitPollingEvery * @see ConfigurationProperties#getAwaitPollingEvery() () */ long awaitPollingEvery() default -1; /** * <i>eventsEnabled</i> property. * * @return eventsEnabled * @see ConfigurationProperties#getEventsEnabled() */ BooleanValue eventsEnabled() default BooleanValue.DEFAULT; /** * <i>screenshotPath</i> property. * * @return screenshotPath * @see ConfigurationProperties#getScreenshotPath() */ String screenshotPath() default ""; /** * <i>htmlDumpPath</i> property. * * @return htmlDumpPath * @see ConfigurationProperties#getHtmlDumpPath() */ String htmlDumpPath() default ""; /** * <i>screenshotMode</i> property. * * @return screenshotMode * @see ConfigurationProperties#getScreenshotMode() */ ConfigurationProperties.TriggerMode screenshotMode() default ConfigurationProperties.TriggerMode.DEFAULT; /** * <i>htmlDumpMode</i> property. * * @return htmlDumpMode * @see ConfigurationProperties#getHtmlDumpMode() */ ConfigurationProperties.TriggerMode htmlDumpMode() default ConfigurationProperties.TriggerMode.DEFAULT; /** * Custom properties. * * @return array of CustomProperty annotations * @see ConfigurationProperties#getCustomProperty(String) */ CustomProperty[] custom() default {}; }