Module: Webrat::SaveAndOpenPage

Included in:
SeleniumSession, Session
Defined in:
lib/webrat/core/save_and_open_page.rb

Instance Method Summary collapse

Instance Method Details

#doc_rootObject

:nodoc:



36
37
38
# File 'lib/webrat/core/save_and_open_page.rb', line 36

def doc_root #:nodoc:
  nil
end

#open_in_browser(path) ⇒ Object

:nodoc



20
21
22
23
24
25
# File 'lib/webrat/core/save_and_open_page.rb', line 20

def open_in_browser(path) # :nodoc
  require "launchy"
  Launchy::Browser.run(path)
rescue LoadError
  warn "Sorry, you need to install launchy to open pages: `gem install launchy`"
end

#rewrite_css_and_image_references(response_html) ⇒ Object

:nodoc:



27
28
29
30
# File 'lib/webrat/core/save_and_open_page.rb', line 27

def rewrite_css_and_image_references(response_html) # :nodoc:
  return response_html unless doc_root
  response_html.gsub(/("|')\/(stylesheets|images)/, '\1' + doc_root + '/\2')
end

#save_and_open_pageObject

Saves the page out to RAILS_ROOT/tmp/ and opens it in the default web browser if on OS X. Useful for debugging.

Example:

save_and_open_page


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/webrat/core/save_and_open_page.rb', line 8

def save_and_open_page
  return unless File.exist?(saved_page_dir)

  filename = "#{saved_page_dir}/webrat-#{Time.now.to_i}.html"

  File.open(filename, "w") do |f|
    f.write rewrite_css_and_image_references(response_body)
  end

  open_in_browser(filename)
end

#saved_page_dirObject

:nodoc:



32
33
34
# File 'lib/webrat/core/save_and_open_page.rb', line 32

def saved_page_dir #:nodoc:
  File.expand_path(".")
end