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/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_session.rb,
lib/webrat/core/locators.rb,
lib/webrat/core/xml/rexml.rb,
lib/webrat/core/xml/hpricot.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/core/save_and_open_page.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/application_server.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/selenium/merb_application_server.rb,
lib/webrat/core/locators/field_by_id_locator.rb,
lib/webrat/core/locators/field_named_locator.rb,
lib/webrat/selenium/rails_application_server.rb,
lib/webrat/core/locators/field_labeled_locator.rb,
lib/webrat/core/locators/select_option_locator.rb,
lib/webrat/selenium/sinatra_application_server.rb
Overview
HashWithIndifferentAccess = Mash
Defined Under Namespace
Modules: HaveTagMatcher, Locators, Logging, MIME, Matchers, Methods, SaveAndOpenPage, Selenium, XML Classes: Area, ButtonField, CheckboxField, Configuration, DisabledFieldError, Element, Field, FileField, Form, HiddenField, InfiniteRedirectError, Label, Link, MechanizeSession, MerbSession, NotFoundError, PageLoadError, PasswordField, RackSession, RadioField, RailsSession, ResetField, Scope, SelectField, SelectOption, SeleniumResponse, SeleniumSession, Session, SinatraSession, TextField, TextareaField, TimeoutError, WebratError
Constant Summary collapse
- VERSION =
'0.4.4'
Class Method Summary collapse
-
.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:.
- .on_java? ⇒ Boolean
- .require_xml ⇒ Object
- .rexml_document(stringlike) ⇒ Object
- .session_class ⇒ Object
-
.xml_nokogiri_document(stringlike) ⇒ Object
:nodoc:.
Class Method Details
.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 |
.on_java? ⇒ Boolean
26 27 28 |
# File 'lib/webrat.rb', line 26 def self.on_java? RUBY_PLATFORM =~ /java/ end |
.require_xml ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/webrat.rb', line 12 def self.require_xml gem "nokogiri", ">= 1.0.6" if on_java? # We need Nokogiri's CSS to XPath support, even if using REXML and Hpricot for parsing and searching require "nokogiri/css" require "hpricot" require "rexml/document" else require "nokogiri" require "webrat/core/xml/nokogiri" end 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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/webrat/core/session.rb', line 15 def self.session_class case Webrat.configuration.mode when :rails RailsSession when :merb MerbSession when :selenium SeleniumSession when :rack RackSession when :sinatra SinatraSession when :mechanize MechanizeSession 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 |
.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 |