Module: Spec::ControllerExecution::InstanceMethods
- Defined in:
- lib/controller_mixin.rb
Instance Attribute Summary collapse
-
#controller ⇒ Object
readonly
Returns the value of attribute controller.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Instance Method Summary collapse
- #assigns(key = nil) ⇒ Object
-
#delete(action, parameters = nil) ⇒ Object
Performs a DELETE request on
action
withparams
. -
#get(action, parameters = nil) ⇒ Object
Performs a GET request on
action
withparams
. -
#head(action, parameters = nil) ⇒ Object
Performs a HEAD request on
action
withparams
. -
#post(action, parameters = nil) ⇒ Object
Performs a POST request on
action
withparams
. -
#process(action, parameters = nil) ⇒ Object
Excutes the request
action
withparams
. -
#put(action, parameters = nil) ⇒ Object
Performs a PUT request on
action
withparams
. - #setup_with_controller(controller_name = nil) ⇒ Object
- #teardown_with_controller ⇒ Object
- #xml_attrs(xpath) ⇒ Object
- #xml_document ⇒ Object
- #xml_tags(xpath) ⇒ Object
- #xml_text(xpath) ⇒ Object
Instance Attribute Details
#controller ⇒ Object (readonly)
Returns the value of attribute controller.
27 28 29 |
# File 'lib/controller_mixin.rb', line 27 def controller @controller end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
27 28 29 |
# File 'lib/controller_mixin.rb', line 27 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
27 28 29 |
# File 'lib/controller_mixin.rb', line 27 def response @response end |
Instance Method Details
#assigns(key = nil) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/controller_mixin.rb', line 61 def assigns(key = nil) if key.nil? @response.template.assigns else @response.template.assigns[key.to_s] end end |
#delete(action, parameters = nil) ⇒ Object
Performs a DELETE request on action
with params
.
124 125 126 127 |
# File 'lib/controller_mixin.rb', line 124 def delete(action, parameters = nil) @request.env['REQUEST_METHOD'] = 'DELETE' process action, parameters end |
#get(action, parameters = nil) ⇒ Object
Performs a GET request on action
with params
.
92 93 94 95 |
# File 'lib/controller_mixin.rb', line 92 def get(action, parameters = nil) @request.env['REQUEST_METHOD'] = 'GET' process action, parameters end |
#head(action, parameters = nil) ⇒ Object
Performs a HEAD request on action
with params
.
100 101 102 103 |
# File 'lib/controller_mixin.rb', line 100 def head(action, parameters = nil) @request.env['REQUEST_METHOD'] = 'HEAD' process action, parameters end |
#post(action, parameters = nil) ⇒ Object
Performs a POST request on action
with params
.
108 109 110 111 |
# File 'lib/controller_mixin.rb', line 108 def post(action, parameters = nil) @request.env['REQUEST_METHOD'] = 'POST' process action, parameters end |
#process(action, parameters = nil) ⇒ Object
Excutes the request action
with params
.
See also: get, post, put, delete, head, xml_http_request
74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/controller_mixin.rb', line 74 def process(action, parameters = nil) parameters ||= {} @request.recycle! @request.env['REQUEST_METHOD'] ||= 'GET' @request.action = action.to_s @request.assign_parameters @controller_class.controller_path, action.to_s, parameters build_request_uri action, parameters @controller.process @request, @response end |
#put(action, parameters = nil) ⇒ Object
Performs a PUT request on action
with params
.
116 117 118 119 |
# File 'lib/controller_mixin.rb', line 116 def put(action, parameters = nil) @request.env['REQUEST_METHOD'] = 'PUT' process action, parameters end |
#setup_with_controller(controller_name = nil) ⇒ Object
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 |
# File 'lib/controller_mixin.rb', line 29 def setup_with_controller(controller_name=nil) return unless controller_name @controller_class = "#{controller_name}_controller".camelize.constantize #@controller_class = Object.path2class @controller_class_name raise "Can't determine controller class for #{self.class}" if @controller_class.nil? @controller = @controller_class.new @session = ActionController::TestSession.new @flash = ActionController::Flash::FlashHash.new @session['flash'] = @flash @request = ActionController::TestRequest.new @request.session = @session @response = ActionController::TestResponse.new @controller_class.send(:define_method, :rescue_action) { |e| raise e } @deliveries = [] ActionMailer::Base.deliveries = @deliveries # used by util_audit_assert_assigns @assigns_asserted = [] @assigns_ignored ||= [] # untested assigns to ignore end |
#teardown_with_controller ⇒ Object
58 59 |
# File 'lib/controller_mixin.rb', line 58 def teardown_with_controller end |
#xml_attrs(xpath) ⇒ Object
137 138 139 |
# File 'lib/controller_mixin.rb', line 137 def xml_attrs(xpath) xml_document.elements.to_a(xpath).first.attributes end |
#xml_document ⇒ Object
129 130 131 |
# File 'lib/controller_mixin.rb', line 129 def xml_document @xml_document ||= REXML::Document.new(@response.body) end |
#xml_tags(xpath) ⇒ Object
133 134 135 |
# File 'lib/controller_mixin.rb', line 133 def (xpath) xml_document.elements.to_a(xpath) end |
#xml_text(xpath) ⇒ Object
141 142 143 |
# File 'lib/controller_mixin.rb', line 141 def xml_text(xpath) xml_document.elements.to_a(xpath).first.text.to_s end |