Skip to content
mplord edited this page Oct 11, 2016 · 6 revisions

Features

This is the set of 'features' extracted from the Cinnamon code. Should be covered in 'Solutions' or 'Why Cinnamon' or 'Examples'.

If we think at item is covered we should mark it as such.

e.g. Some feature - Solutions/ Why Cinnamon

Project Initiation

  • Easily create a new project from the Cinnamon archetype

Environment Configuration

  • Easily specify an environment configuration file and Cinnamon will provide an Env object and manage it's lifecycle
  • Overridable configuration
  • Config file
  • Environment variables
  • Jenkins / TC parameterised configuration
  • Command line

Cucumber Integration

  • Easy integration with Cucumber

WebDriverFactory

  • Default normalised WebDriver support across IE, Chrome, Safari
  • Additional support for BrowserStack, SauceLabs, custom 3rd party browsers
  • Zero-configuration default browser profiles
  • Easily extend capabilities
  • Easily provide additional driver configuration
  • Automatic driver dependency management (supporting CI build)

WebDriver

  • PageElement
  • Stale element protection / zero element caching
  • Fluent expression of complex element interactions
  • Extendable PageElements to define custom encapsulated element type interactions (not yet)
  • Element collection locator and sub-element iteration / interaction
  • Usage Pattern
  • Elements and FindBy annotation element injection model
  • Element Actions
  • Unified implementation across Chrome, IE, Safari and other browsers
  • ChromeActions - Click workaround for Chrome - scrollBeforeClickAction
  • InternetExplorerActions - Mouse hover workaround for IE - JQueryHover
  • SafariActions - Hover workaround - DOM event hoverOver, doubleClick workaround - DOM event doubleClick
  • Delayable actions - for actions to be performed with a delay
  • Point based actions - perform actions at a specific point on the screen
  • Select actions - byIndex, byValue, byVisibleText, byVisibleTextContains
  • Action timeouts
  • Element Collections
  • PageElementCollection
  • 'Wildcard' locator
  • Found element iteration
  • Zero element caching
  • Conditions
  • WebDriver conditions - AjaxFinished, DocumentReadyState
  • Element conditions - AttributeContains, AttributeEquals, AttributeMatches, CssPropertyContains, CssPropertyEquals, CssPropertyMatches, Displayed, Empty, Enabled, EventListenerRegistered, InnerHtmlContains, InViewPort, Obscured, PositionUnchanged, Selected, TextContains, TextEquals, TextMatches
  • Element Collection conditions - SizeGreaterThan, TextsContain
  • Combining conditions - And (allOf), Or (anyOf), Not
  • Window Control
  • SwitchToWindow
  • Internal WindowTracker
  • CloseAllWindows
  • Screenshots

Code / feature extraction

  • cinnamon-archetype
  • Creation of starting project from Cinnamon maven archetype
  • cinnamon-core
  • Env configuration and load
  • cinnamon-cucumber
  • Integration with cucumber
  • cinnamon-vendor-browserstack
  • BrowserStack support
  • cinnamon-vendor-saucelabs
  • SauceLabs support
  • cinnamon-vendor-support
  • Third party custom support
  • cinnamon-webdriver
  • Usage Pattern
  • Elements and FindBy annotation model
  • Actions
  • Unified implementation across Chrome, IE, Safari and other browsers
  • ChromeActions
  • InternetExplorerActions
  • SafariActions
  • DefaultActions
  • JQuery hover
  • Synthetic actions
  • Delayable actions
  • Point actions
  • SelectAction
  • Collections
  • PageElementCollection
  • Conditions
  • Combining conditions
  • AndCondition
  • OrCondition
  • NotCondition
  • WebDriver conditions
  • AjaxFinishedCondition
  • DocumentReadyStateCondition
  • Element Collection conditions
  • SizeGreaterThanCondition
  • TextsContainCondition
  • Element conditions
  • AttributeContainsCondition
  • AttributeEqualsCondition
  • AttributeMatchesCondition
  • CssPropertyContainsCondition
  • CssPropertyEqualsCondition
  • CssPropertyMatchesCondition
  • DisplayedCondition
  • EmptyCondition
  • EnabledCondition
  • EventListenerRegisteredCondition
  • InnerHtmlContainsCondition
  • InViewPortCondition
  • ObscuredCondition
  • PositionUnchangedCondition
  • SelectedCondition
  • TextContainsCondition
  • TextEqualsCondition
  • TextMatchesCondition
  • Elements
  • PageElement
  • TableElement
  • ... extension ?? Not yet
  • Event Handlers (internal?)
  • AttachScreenshot
  • CloseExtraWindows
  • QuitBrowserSession
  • TrackWindows
  • Window Control
  • SwitchToWindow
  • WindowTracker
  • Flow Control
  • Timeouts

cinnamon-webdriver-factory

  • BrowserProfiles
  • Capabilities
  • DriverExtras