module YaksHTML::CapybaraDSL

Public Class Methods

included(base) click to toggle source
# File lib/yaks-html/rspec.rb, line 17
def self.included(base)
  base.class_eval do
    let(:rel_prefix) { '' }
  end
end

Public Instance Methods

click_first_rel(rel) click to toggle source
# File lib/yaks-html/rspec.rb, line 28
def click_first_rel(rel)
  rel = [rel_prefix, rel].join unless rel.is_a? Symbol
  all("a[rel=\"#{rel}\"]").first.click
end
click_rel(rel) click to toggle source
# File lib/yaks-html/rspec.rb, line 23
def click_rel(rel)
  rel = [rel_prefix, rel].join unless rel.is_a? Symbol
  find("a[rel=\"#{rel}\"]").click
end
env() click to toggle source
# File lib/yaks-html/rspec.rb, line 52
def env
  YaksHTML::RACK_ENV
end
refresh() click to toggle source
# File lib/yaks-html/rspec.rb, line 48
def refresh
  visit current_path
end
submit!() click to toggle source
# File lib/yaks-html/rspec.rb, line 33
def submit!
  find('input[type="submit"]').click
end
submit_form(name) { |block| ... } click to toggle source
# File lib/yaks-html/rspec.rb, line 41
def submit_form(name, &block)
  within(find_form(name)) do
    yield block
    submit!
  end
end
within_form(name, &block) click to toggle source
# File lib/yaks-html/rspec.rb, line 37
def within_form(name, &block)
  within(find_form(name), &block)
end

Private Instance Methods

find_form(name) click to toggle source
# File lib/yaks-html/rspec.rb, line 58
def find_form(name)
  forms = all("form[@name=\"#{name}\"]")

  if forms.empty?
    fname = "/tmp/page-#{rand(999999999999999)}.html"
    File.write(fname, page.body)
    raise "No form found with name #{name}. Page saved as #{fname}"
  end

  forms.first
end