Class: Webrat::Form
Overview
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Element
#initialize, #inspect, load, load_all, #path
Instance Attribute Details
Returns the value of attribute element.
9
10
11
|
# File 'lib/webrat/core/elements/form.rb', line 9
def element
@element
end
|
Class Method Details
.parse_rails_request_params(query_string) ⇒ Object
117
118
119
120
121
122
123
124
125
|
# File 'lib/webrat/core/elements/form.rb', line 117
def self.parse_rails_request_params(query_string)
if defined?(ActionController::AbstractRequest)
ActionController::AbstractRequest.parse_query_parameters(query_string)
elsif defined?(ActionController::UrlEncodedPairParser)
ActionController::UrlEncodedPairParser.parse_query_parameters(query_string)
else
Rack::Utils.parse_nested_query(query_string)
end
end
|
.query_string_to_params(query_string) ⇒ Object
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/webrat/core/elements/form.rb', line 104
def self.query_string_to_params(query_string)
case Webrat.configuration.mode
when :rails
parse_rails_request_params(query_string)
when :merb
::Merb::Parse.query(query_string)
when :rack, :sinatra
Rack::Utils.parse_nested_query(query_string)
else
query_string.split('&').map {|query| { query.split('=', 2).first => query.split('=', 2).last }}
end
end
|
.replace_param_value(params, oval, nval) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/webrat/core/elements/form.rb', line 69
def self.replace_param_value(params, oval, nval)
output = Hash.new
params.each do |key, value|
case value
when Hash
value = replace_param_value(value, oval, nval)
when Array
value = value.map { |o| o == oval ? nval : ( o.is_a?(Hash) ? replace_param_value(o, oval, nval) : o) }
when oval
value = nval
end
output[key] = value
end
output
end
|
.replace_params_values(params, values) ⇒ Object
85
86
87
88
89
90
|
# File 'lib/webrat/core/elements/form.rb', line 85
def self.replace_params_values(params, values)
values.each do |key, value|
params = replace_param_value(params, key, value)
end
params
end
|
.unescape_params(params) ⇒ Object
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/webrat/core/elements/form.rb', line 92
def self.unescape_params(params)
case params.class.name
when 'Hash', 'Mash'
params.each { |key,value| params[key] = unescape_params(value) }
params
when 'Array'
params.collect { |value| unescape_params(value) }
else
params.is_a?(String) ? CGI.unescapeHTML(params) : params
end
end
|
.xpath_search ⇒ Object
11
12
13
|
# File 'lib/webrat/core/elements/form.rb', line 11
def self.xpath_search
[".//form"]
end
|
Instance Method Details
#field_named(name, *field_types) ⇒ Object
23
24
25
|
# File 'lib/webrat/core/elements/form.rb', line 23
def field_named(name, *field_types)
Webrat::Locators::FieldNamedLocator.new(@session, dom, name, *field_types).locate
end
|
15
16
17
|
# File 'lib/webrat/core/elements/form.rb', line 15
def fields
@fields ||= Field.load_all(@session, @element)
end
|
19
20
21
|
# File 'lib/webrat/core/elements/form.rb', line 19
def submit
@session.request_page(form_action, form_method, params)
end
|