vendor/rails/actionpack/test/controller/webservice_test.rb in radiant-0.6.4 vs vendor/rails/actionpack/test/controller/webservice_test.rb in radiant-0.6.5
- old
+ new
@@ -1,22 +1,18 @@
require File.dirname(__FILE__) + '/../abstract_unit'
-require 'stringio'
class WebServiceTest < Test::Unit::TestCase
-
class MockCGI < CGI #:nodoc:
- attr_accessor :stdinput, :stdoutput, :env_table
+ attr_accessor :stdoutput, :env_table
- def initialize(env, data = '')
+ def initialize(env, data = '')
self.env_table = env
- self.stdinput = StringIO.new(data)
self.stdoutput = StringIO.new
- super()
+ super(nil, StringIO.new(data))
end
end
-
class TestController < ActionController::Base
session :off
def assign_parameters
if params[:full]
@@ -38,34 +34,37 @@
def rescue_action(e) raise end
end
def setup
@controller = TestController.new
- ActionController::Base.param_parsers.clear
- ActionController::Base.param_parsers[Mime::XML] = :xml_node
+ @default_param_parsers = ActionController::Base.param_parsers.dup
end
-
+
+ def teardown
+ ActionController::Base.param_parsers = @default_param_parsers
+ end
+
def test_check_parameters
process('GET')
assert_equal '', @controller.response.body
end
def test_post_xml
process('POST', 'application/xml', '<entry attributed="true"><summary>content...</summary></entry>')
assert_equal 'entry', @controller.response.body
assert @controller.params.has_key?(:entry)
- assert_equal 'content...', @controller.params["entry"].summary.node_value
+ assert_equal 'content...', @controller.params["entry"]['summary']
assert_equal 'true', @controller.params["entry"]['attributed']
end
def test_put_xml
process('PUT', 'application/xml', '<entry attributed="true"><summary>content...</summary></entry>')
assert_equal 'entry', @controller.response.body
assert @controller.params.has_key?(:entry)
- assert_equal 'content...', @controller.params["entry"].summary.node_value
+ assert_equal 'content...', @controller.params["entry"]['summary']
assert_equal 'true', @controller.params["entry"]['attributed']
end
def test_register_and_use_yaml
ActionController::Base.param_parsers[Mime::YAML] = Proc.new { |d| YAML.load(d) }
@@ -96,19 +95,10 @@
def test_use_xml_ximple_with_empty_request
ActionController::Base.param_parsers[Mime::XML] = :xml_simple
assert_nothing_raised { process('POST', 'application/xml', "") }
assert_equal "", @controller.response.body
end
-
- def test_deprecated_request_methods
- process('POST', 'application/x-yaml')
- assert_equal Mime::YAML, @controller.request.content_type
- assert_equal true, @controller.request.post?
- assert_equal :yaml, @controller.request.post_format
- assert_equal true, @controller.request.yaml_post?
- assert_equal false, @controller.request.xml_post?
- end
def test_dasherized_keys_as_xml
ActionController::Base.param_parsers[Mime::XML] = :xml_simple
process('POST', 'application/xml', "<first-key>\n<sub-key>...</sub-key>\n</first-key>", true)
assert_equal 'action, controller, first_key(sub_key), full', @controller.response.body
@@ -189,60 +179,6 @@
"HTTPS" => "off"}, data)
@controller.send(:process, ActionController::CgiRequest.new(cgi, {}), ActionController::CgiResponse.new(cgi))
end
-end
-
-
-class XmlNodeTest < Test::Unit::TestCase
- def test_all
- xn = XmlNode.from_xml(%{<?xml version="1.0" encoding="UTF-8"?>
- <response success='true'>
- <page title='Ajax Summit' id='1133' email_address='ry87ib@backpackit.com'>
- <description>With O'Reilly and Adaptive Path</description>
- <notes>
- <note title='Hotel' id='1020' created_at='2005-05-14 16:41:11'>
- Staying at the Savoy
- </note>
- </notes>
- <tags>
- <tag name='Technology' id='4' />
- <tag name='Travel' id='5' />
- </tags>
- </page>
- </response>
- }
- )
- assert_equal 'UTF-8', xn.node.document.encoding
- assert_equal '1.0', xn.node.document.version
- assert_equal 'true', xn['success']
- assert_equal 'response', xn.node_name
- assert_equal 'Ajax Summit', xn.page['title']
- assert_equal '1133', xn.page['id']
- assert_equal "With O'Reilly and Adaptive Path", xn.page.description.node_value
- assert_equal nil, xn.nonexistent
- assert_equal "Staying at the Savoy", xn.page.notes.note.node_value.strip
- assert_equal 'Technology', xn.page.tags.tag[0]['name']
- assert_equal 'Travel', xn.page.tags.tag[1][:name]
- matches = xn.xpath('//@id').map{ |id| id.to_i }
- assert_equal [4, 5, 1020, 1133], matches.sort
- matches = xn.xpath('//tag').map{ |tag| tag['name'] }
- assert_equal ['Technology', 'Travel'], matches.sort
- assert_equal "Ajax Summit", xn.page['title']
- xn.page['title'] = 'Ajax Summit V2'
- assert_equal "Ajax Summit V2", xn.page['title']
- assert_equal "Staying at the Savoy", xn.page.notes.note.node_value.strip
- xn.page.notes.note.node_value = "Staying at the Ritz"
- assert_equal "Staying at the Ritz", xn.page.notes.note.node_value.strip
- assert_equal '5', xn.page.tags.tag[1][:id]
- xn.page.tags.tag[1]['id'] = '7'
- assert_equal '7', xn.page.tags.tag[1]['id']
- end
-
-
- def test_small_entry
- node = XmlNode.from_xml('<entry>hi</entry>')
- assert_equal 'hi', node.node_value
- end
-
end