class TestCentricity::PageManager

Attributes

current_page[RW]

Public Class Methods

current_page() click to toggle source

Get the currently active PageObject

@return [PageObject] @example

active_page = TestCentricity::PageManager.current_page
# File lib/testcentricity_web.rb, line 87
def self.current_page
  @current_page
end
current_page=(page) click to toggle source

Sets the currently active PageObject

@param page [PageObject] Reference to the active PageObject @example

TestCentricity::PageManager.current_page = product_search_page
# File lib/testcentricity_web.rb, line 97
def self.current_page=(page)
  @current_page = page
end
find_page(page_name) click to toggle source
# File lib/testcentricity_web.rb, line 74
def self.find_page(page_name)
  (page_name.is_a? String) ? page_id = page_name.gsub(/\s+/, '').downcase.to_sym : page_id = page_name
  page = @page_objects[page_id]
  raise "No page object defined for page named '#{page_name}'" unless page
  page
end
loaded?() click to toggle source

Have all PageObjects been registered?

@return [Boolean] true if all PageObjects have been registered @example

TestCentricity::PageManager.loaded?
# File lib/testcentricity_web.rb, line 70
def self.loaded?
  !@page_objects.empty?
end
register_page_objects(pages) click to toggle source
# File lib/testcentricity_web.rb, line 46
def self.register_page_objects(pages)
  result = ''
  pages.each do |page_object, page_class|
    obj = page_class.new
    @page_objects[page_object] = obj unless @page_objects.has_key?(page_object)
    page_names = obj.page_name
    page_names = Array(page_names) if page_names.is_a? String
    page_names.each do |name|
      page_key = name.gsub(/\s+/, '').downcase.to_sym
      if page_key != page_object
        @page_objects[page_key] = obj unless @page_objects.has_key?(page_key)
      end
      result = "#{result}def #{page_object};@#{page_object} ||= TestCentricity::PageManager.find_page(:#{page_object});end;"
    end
  end
  result
end