Sha256: bd9968821eae068019132485ab910ae9ecce4dca2e574a377806b5bb0a817d7f

Contents?: true

Size: 1.41 KB

Versions: 8

Compression:

Stored size: 1.41 KB

Contents

require 'selenium_on_rails/paths'

module SeleniumOnRails::PartialsSupport
  include SeleniumOnRails::Paths

  # Overrides where the partial is searched for, and returns only the command table rows.
  def render_partial(options)
    pattern = partial_pattern options[:partial]
    filename = Dir[pattern].first
    raise "Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')" unless filename
    partial = render :file => filename, :use_full_path => false, :locals => options[:locals]
    extract_commands_from_partial partial
  end

  # Extracts the commands from a partial. The partial must contain a html table
  # and the first row is ignored since it cannot contain a command.
  def extract_commands_from_partial partial
    partial = partial.match(/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/im)[1]
    raise "Partial '#{name}' doesn't contain any table" unless partial
    partial
  end

  private
    # Generates the file pattern from the provided partial path.
    # The starting _ and file extension don't have too be provided.
    def partial_pattern partial_path
      path = partial_path.split '/'
      filename = path.delete_at(-1)
      filename = '_' + filename unless filename.starts_with? '_'
      filename << '.*' unless filename.include? '.'
      pattern = selenium_tests_path + '/'
      pattern << path.join('/') + '/' if path
      pattern << filename
    end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
zena-1.2.7 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.6 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.5 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.4 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.3 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.2 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.1 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb
zena-1.2.0 vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb