Skip to content

Latest commit

 

History

History
102 lines (80 loc) · 3.25 KB

ROADMAP.textile

File metadata and controls

102 lines (80 loc) · 3.25 KB

Scope selectors

Providing abstraction for xpath / css selectors for common areas of application, to operate easily on:

  • parts of page
    • top|left|bottom|right
    • main menu, footer
  • table sectors
    • a row that contains sth
      **a default area (i.e without menus, columns and footer)

Verification mechanism that ensures taken action results in desirable state within app

Distinct what user see from what browser see in the source. This includes:

  • see sth that is visible for user
    • visible object is a text ( regex, string )
    • visible object is a value in field { hash of pairs field (id|name), value }
    • elements in proper order
  • send in email (emails should be attached per user – mailbox)
  • see sth in the source code (in debug mode)

Interactions with applications.

  • clicking
  • visiting
  • drag and drop
  • fill_in forms
    • including rich text (‘textarea’, ‘ckeditor’, ’’)
    • all type of inputs (‘text’, ‘password’, ‘email’, ‘checkbox’, ‘radio’, ‘file’, ‘select’, ‘multi-select’)
  • handling tricky testing parts in better manner
    • popups
    • frames / windows
    • native windows (like confirmations)
  • support for common ui components
    • jquery ui
      • calendars
      • sliders
    • colorbox // other modalboxes
      **
  • all browser simulation handlers
    • … go back etc
  • all mouse and keyboard simulation
    • hover over
  • using javascript (might be as debug mode)
    • to trigger events that are hard to imitate
  • testing visibility of element (debug mode)
  • support for mobile applications – touching around the specified html element.

user object

  • is a ruby object containing info about
    • session
    • user in system he represents(including not encrypted password)
    • can perform many actions in will { … } block
    • can login/logout
  • customization (specific classes for specific types of users)
    • roles
    • methods for setup certain state of account (must to work well with factories and support bulk update to speed up things)

handle somehow guest type of account

sessions (from browser perspective)

  • by default share the same sessions
  • exclusive session support ( when testing multiuser interactions)

shared examples that are skeleton for testing

  • pagination
  • sorting

Make kameleon agnostic from devise, support for other authentication solutions

i18n support

using keys other than labels

shortcuts to abstract some internal elements

long class names, constants etc

see partial elemnts in what scope you are

print debug.send(:scopes).last.native

see sorted columns

  • ordered => [:asc, :column => ‘Title’]
  • within :multiple need to be rewritten – is very ugly so far
  • implement better keyboard support

Other

  • Make kameleon agnostic from devise, easier integrating other authentication solutions
  • Add support for nice frame/window switching
  • Support for interaction with mobile websites – sometimes you have to ‘touch’ an element, pull a slider, etc. To do so, you have to click around the specified text. And example:
    I18n.locale = :en
    translation = I18n.t(arg1)
    element = page.find(:xpath, "//span[contains(.,'#{arg1}') or contains(.,'#{translation}')]").find(:xpath, ".//..").find(:xpath, ".//..")
    element.click