Module: Webrat
- Defined in:
- lib/webrat/core/xml.rb,
lib/webrat.rb,
lib/webrat/rack.rb,
lib/webrat/rails.rb,
lib/webrat/sinatra.rb,
lib/webrat/culerity.rb,
lib/webrat/selenium.rb,
lib/webrat/core/mime.rb,
lib/webrat/mechanize.rb,
lib/webrat/core/scope.rb,
lib/webrat/core/logging.rb,
lib/webrat/core/methods.rb,
lib/webrat/core/session.rb,
lib/webrat/merb_adapter.rb,
lib/webrat/core/locators.rb,
lib/webrat/core/xml/rexml.rb,
lib/webrat/culerity/scope.rb,
lib/webrat/core/xml/hpricot.rb,
lib/webrat/culerity/locator.rb,
lib/webrat/culerity/session.rb,
lib/webrat/core/xml/nokogiri.rb,
lib/webrat/core/configuration.rb,
lib/webrat/core/elements/area.rb,
lib/webrat/core/elements/form.rb,
lib/webrat/core/elements/link.rb,
lib/webrat/core/elements/field.rb,
lib/webrat/core/elements/label.rb,
lib/webrat/core/elements/element.rb,
lib/webrat/core/locators/locator.rb,
lib/webrat/core/matchers/have_tag.rb,
lib/webrat/merb_multipart_support.rb,
lib/webrat/core/save_and_open_page.rb,
lib/webrat/selenium/silence_stream.rb,
lib/webrat/core/matchers/have_xpath.rb,
lib/webrat/selenium/selenium_session.rb,
lib/webrat/core/locators/area_locator.rb,
lib/webrat/core/locators/form_locator.rb,
lib/webrat/core/locators/link_locator.rb,
lib/webrat/core/matchers/have_content.rb,
lib/webrat/selenium/matchers/have_tag.rb,
lib/webrat/core/elements/select_option.rb,
lib/webrat/core/locators/field_locator.rb,
lib/webrat/core/locators/label_locator.rb,
lib/webrat/core/matchers/have_selector.rb,
lib/webrat/selenium/selenium_rc_server.rb,
lib/webrat/core/locators/button_locator.rb,
lib/webrat/selenium/matchers/have_xpath.rb,
lib/webrat/selenium/matchers/have_content.rb,
lib/webrat/selenium/matchers/have_selector.rb,
lib/webrat/core/locators/field_by_id_locator.rb,
lib/webrat/core/locators/field_named_locator.rb,
lib/webrat/selenium/application_servers/base.rb,
lib/webrat/selenium/application_servers/merb.rb,
lib/webrat/selenium/application_servers/rails.rb,
lib/webrat/core/locators/field_labeled_locator.rb,
lib/webrat/core/locators/select_option_locator.rb,
lib/webrat/selenium/application_server_factory.rb,
lib/webrat/selenium/application_servers/sinatra.rb,
lib/webrat/selenium/application_servers/external.rb
Overview
:nodoc:
Defined Under Namespace
Modules: Culerity, HaveTagMatcher, Locators, Logging, MIME, Matchers, MerbMultipartSupport, Methods, SaveAndOpenPage, Selenium, XML Classes: Area, ButtonField, CheckboxField, Configuration, CulerityLocator, CulerityResponse, CulerityScope, CuleritySession, DisabledFieldError, Element, Field, FileField, Form, HiddenField, InfiniteRedirectError, Label, Link, MechanizeAdapter, MerbAdapter, NotFoundError, PageLoadError, PasswordField, RackAdapter, RadioField, RailsAdapter, ResetField, Scope, SelectField, SelectOption, SeleniumResponse, SeleniumSession, Session, SinatraAdapter, TextField, TextareaField, TimeoutError, WebratError
Class Method Summary collapse
- .adapter_class ⇒ Object
-
.configuration ⇒ Object
:nodoc:.
-
.configure(configuration = Webrat.configuration) {|configuration| ... } ⇒ Object
Configures Webrat.
-
.define_dom_method(object, dom) ⇒ Object
:nodoc:.
- .hpricot_document(stringlike) ⇒ Object
-
.html_nokogiri_document(stringlike) ⇒ Object
:nodoc:.
-
.nokogiri_document(stringlike) ⇒ Object
:nodoc:.
- .prepare_pid_file(file_path, pid_file_name) ⇒ Object
- .rexml_document(stringlike) ⇒ Object
- .session_class ⇒ Object
-
.start_app_server ⇒ Object
:nodoc:.
-
.stop_app_server ⇒ Object
:nodoc:.
-
.xml_nokogiri_document(stringlike) ⇒ Object
:nodoc:.
Class Method Details
.adapter_class ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/webrat/core/session.rb', line 26 def self.adapter_class case Webrat.configuration.mode when :rails RailsAdapter when :merb MerbAdapter when :rack RackAdapter when :rack_test warn("The :rack_test mode is deprecated. Please use :rack instead") require "webrat/rack" RackAdapter when :sinatra warn("The :sinatra mode is deprecated. Please use :rack instead") SinatraAdapter when :mechanize MechanizeAdapter else raise WebratError.new(<<-STR) Unknown Webrat mode: #{Webrat.configuration.mode.inspect} Please ensure you have a Webrat configuration block that specifies a mode in your test_helper.rb, spec_helper.rb, or env.rb (for Cucumber). This configure block supercedes the need to require "webrat/<framework>". For example: Webrat.configure do |config| config.mode = :rails end STR end end |
.configuration ⇒ Object
:nodoc:
12 13 14 |
# File 'lib/webrat/core/configuration.rb', line 12 def self.configuration # :nodoc: @@configuration ||= Webrat::Configuration.new end |
.configure(configuration = Webrat.configuration) {|configuration| ... } ⇒ Object
Configures Webrat. If this is not done, Webrat will be created with all of the default settings.
7 8 9 10 |
# File 'lib/webrat/core/configuration.rb', line 7 def self.configure(configuration = Webrat.configuration) yield configuration if block_given? @@configuration = configuration end |
.define_dom_method(object, dom) ⇒ Object
:nodoc:
53 54 55 56 57 |
# File 'lib/webrat/core/xml/nokogiri.rb', line 53 def self.define_dom_method(object, dom) #:nodoc: object..send(:define_method, :dom) do dom end end |
.hpricot_document(stringlike) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/webrat/core/xml/hpricot.rb', line 3 def self.hpricot_document(stringlike) return stringlike.dom if stringlike.respond_to?(:dom) if Hpricot::Doc === stringlike stringlike elsif Hpricot::Elements === stringlike stringlike elsif StringIO === stringlike Hpricot(stringlike.string) elsif stringlike.respond_to?(:body) Hpricot(stringlike.body.to_s) else Hpricot(stringlike.to_s) end end |
.html_nokogiri_document(stringlike) ⇒ Object
:nodoc:
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/webrat/core/xml/nokogiri.rb', line 21 def self.html_nokogiri_document(stringlike) #:nodoc: return stringlike.dom if stringlike.respond_to?(:dom) if Nokogiri::HTML::Document === stringlike stringlike elsif Nokogiri::XML::NodeSet === stringlike stringlike elsif StringIO === stringlike Nokogiri::HTML(stringlike.string) elsif stringlike.respond_to?(:body) Nokogiri::HTML(stringlike.body.to_s) else Nokogiri::HTML(stringlike.to_s) end end |
.nokogiri_document(stringlike) ⇒ Object
:nodoc:
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/webrat/core/xml/nokogiri.rb', line 5 def self.nokogiri_document(stringlike) #:nodoc: return stringlike.dom if stringlike.respond_to?(:dom) if Nokogiri::HTML::Document === stringlike stringlike elsif Nokogiri::XML::NodeSet === stringlike stringlike elsif StringIO === stringlike Nokogiri::HTML(stringlike.string) elsif stringlike.respond_to?(:body) Nokogiri::HTML(stringlike.body.to_s) else Nokogiri::HTML(stringlike.to_s) end end |
.prepare_pid_file(file_path, pid_file_name) ⇒ Object
23 24 25 26 |
# File 'lib/webrat/culerity.rb', line 23 def self.prepare_pid_file(file_path, pid_file_name) FileUtils.mkdir_p File.(file_path) File.("#{file_path}/#{pid_file_name}") end |
.rexml_document(stringlike) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/webrat/core/xml/rexml.rb', line 3 def self.rexml_document(stringlike) stringlike = stringlike.body.to_s if stringlike.respond_to?(:body) case stringlike when REXML::Document stringlike.root when REXML::Node, Array stringlike else begin REXML::Document.new(stringlike.to_s).root rescue REXML::ParseException => e if e..include?("second root element") REXML::Document.new("<fake-root-element>#{stringlike}</fake-root-element>").root else raise e end end end end |
.session_class ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/webrat/core/session.rb', line 15 def self.session_class case Webrat.configuration.mode when :selenium SeleniumSession when :culerity CuleritySession else Session end end |
.start_app_server ⇒ Object
:nodoc:
12 13 14 15 16 |
# File 'lib/webrat/culerity.rb', line 12 def self.start_app_server #:nodoc: pid_file = prepare_pid_file("#{RAILS_ROOT}/tmp/pids", "mongrel_culerity.pid") system("mongrel_rails start -d --chdir=#{RAILS_ROOT} --port=#{Webrat.configuration.application_port} --environment=#{Webrat.configuration.application_environment} --pid #{pid_file} &") TCPSocket.wait_for_service :host => Webrat.configuration.application_address, :port => Webrat.configuration.application_port.to_i end |
.stop_app_server ⇒ Object
:nodoc:
18 19 20 21 |
# File 'lib/webrat/culerity.rb', line 18 def self.stop_app_server #:nodoc: pid_file = File.(RAILS_ROOT + "/tmp/pids/mongrel_culerity.pid") system "mongrel_rails stop -c #{RAILS_ROOT} --pid #{pid_file}" end |
.xml_nokogiri_document(stringlike) ⇒ Object
:nodoc:
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/webrat/core/xml/nokogiri.rb', line 37 def self.xml_nokogiri_document(stringlike) #:nodoc: return stringlike.dom if stringlike.respond_to?(:dom) if Nokogiri::HTML::Document === stringlike stringlike elsif Nokogiri::XML::NodeSet === stringlike stringlike elsif StringIO === stringlike Nokogiri::XML(stringlike.string) elsif stringlike.respond_to?(:body) Nokogiri::XML(stringlike.body.to_s) else Nokogiri::XML(stringlike.to_s) end end |