aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/test/dispatcher_action_controller_soap_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2007-11-21 15:17:04 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2007-11-21 15:17:04 +0000
commit9b83e3396180d0dbcb23ec3d71adb198eae7629b (patch)
tree01ea5352514acfede892ada48c58ec7f28be2a8e /actionwebservice/test/dispatcher_action_controller_soap_test.rb
parent440f2890af5462402d1a77daaf1751a66742b974 (diff)
downloadrails-9b83e3396180d0dbcb23ec3d71adb198eae7629b.tar.gz
rails-9b83e3396180d0dbcb23ec3d71adb198eae7629b.tar.bz2
rails-9b83e3396180d0dbcb23ec3d71adb198eae7629b.zip
Ousted ActionWebService from Rails 2.0
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8180 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionwebservice/test/dispatcher_action_controller_soap_test.rb')
-rw-r--r--actionwebservice/test/dispatcher_action_controller_soap_test.rb137
1 files changed, 0 insertions, 137 deletions
diff --git a/actionwebservice/test/dispatcher_action_controller_soap_test.rb b/actionwebservice/test/dispatcher_action_controller_soap_test.rb
deleted file mode 100644
index 0b58af3006..0000000000
--- a/actionwebservice/test/dispatcher_action_controller_soap_test.rb
+++ /dev/null
@@ -1,137 +0,0 @@
-$:.unshift(File.dirname(__FILE__) + '/apis')
-require File.dirname(__FILE__) + '/abstract_dispatcher'
-require 'wsdl/parser'
-
-class ActionController::Base
- class << self
- alias :inherited_without_name_error :inherited
- def inherited(child)
- begin
- inherited_without_name_error(child)
- rescue NameError => e
- end
- end
- end
-end
-
-class AutoLoadController < ActionController::Base; end
-class FailingAutoLoadController < ActionController::Base; end
-class BrokenAutoLoadController < ActionController::Base; end
-
-class TC_DispatcherActionControllerSoap < Test::Unit::TestCase
- include DispatcherTest
- include DispatcherCommonTests
-
- def setup
- @direct_controller = DirectController.new
- @delegated_controller = DelegatedController.new
- @virtual_controller = VirtualController.new
- @layered_controller = LayeredController.new
- @protocol = ActionWebService::Protocol::Soap::SoapProtocol.create(@direct_controller)
- end
-
- def test_wsdl_generation
- ensure_valid_wsdl_generation DelegatedController.new, DispatcherTest::WsdlNamespace
- ensure_valid_wsdl_generation DirectController.new, DispatcherTest::WsdlNamespace
- end
-
- def test_wsdl_action
- delegated_types = ensure_valid_wsdl_action DelegatedController.new
- delegated_names = delegated_types.map{|x| x.name.name}
- assert(delegated_names.include?('DispatcherTest..NodeArray'))
- assert(delegated_names.include?('DispatcherTest..Node'))
- direct_types = ensure_valid_wsdl_action DirectController.new
- direct_names = direct_types.map{|x| x.name.name}
- assert(direct_names.include?('DispatcherTest..NodeArray'))
- assert(direct_names.include?('DispatcherTest..Node'))
- assert(direct_names.include?('IntegerArray'))
- end
-
- def test_autoloading
- assert(!AutoLoadController.web_service_api.nil?)
- assert(AutoLoadController.web_service_api.has_public_api_method?('Void'))
- assert(FailingAutoLoadController.web_service_api.nil?)
- assert_raises(MissingSourceFile) do
- FailingAutoLoadController.require_web_service_api :blah
- end
- assert_raises(ArgumentError) do
- FailingAutoLoadController.require_web_service_api 50.0
- end
- assert(BrokenAutoLoadController.web_service_api.nil?)
- end
-
- def test_layered_dispatching
- mt_cats = do_method_call(@layered_controller, 'mt.getCategories')
- assert_equal(["mtCat1", "mtCat2"], mt_cats)
- blogger_cats = do_method_call(@layered_controller, 'blogger.getCategories')
- assert_equal(["bloggerCat1", "bloggerCat2"], blogger_cats)
- end
-
- def test_utf8
- @direct_controller.web_service_exception_reporting = true
- $KCODE = 'u'
- assert_equal(Utf8String, do_method_call(@direct_controller, 'TestUtf8'))
- retval = SOAP::Processor.unmarshal(@response_body).body.response
- assert retval.is_a?(SOAP::SOAPString)
-
- # If $KCODE is not set to UTF-8, any strings with non-ASCII UTF-8 data
- # will be sent back as base64 by SOAP4R. By the time we get it here though,
- # it will be decoded back into a string. So lets read the base64 value
- # from the message body directly.
- $KCODE = 'NONE'
- do_method_call(@direct_controller, 'TestUtf8')
- retval = SOAP::Processor.unmarshal(@response_body).body.response
- assert retval.is_a?(SOAP::SOAPBase64)
- assert_equal "T25lIFdvcmxkIENhZsOp", retval.data.to_s
- end
-
- protected
- def exception_message(soap_fault_exception)
- soap_fault_exception.detail.cause.message
- end
-
- def is_exception?(obj)
- obj.respond_to?(:detail) && obj.detail.respond_to?(:cause) && \
- obj.detail.cause.is_a?(Exception)
- end
-
- def service_name(container)
- container.is_a?(DelegatedController) ? 'test_service' : 'api'
- end
-
- def ensure_valid_wsdl_generation(controller, expected_namespace)
- wsdl = controller.generate_wsdl
- ensure_valid_wsdl(controller, wsdl, expected_namespace)
- end
-
- def ensure_valid_wsdl(controller, wsdl, expected_namespace)
- definitions = WSDL::Parser.new.parse(wsdl)
- assert(definitions.is_a?(WSDL::Definitions))
- definitions.bindings.each do |binding|
- assert(binding.name.name.index(':').nil?)
- end
- definitions.services.each do |service|
- service.ports.each do |port|
- assert(port.name.name.index(':').nil?)
- end
- end
- types = definitions.collect_complextypes.map{|x| x.name}
- types.each do |type|
- assert(type.namespace == expected_namespace)
- end
- location = definitions.services[0].ports[0].soap_address.location
- if controller.is_a?(DelegatedController)
- assert_match %r{http://test.host/dispatcher_test/delegated/test_service$}, location
- elsif controller.is_a?(DirectController)
- assert_match %r{http://test.host/dispatcher_test/direct/api$}, location
- end
- definitions.collect_complextypes
- end
-
- def ensure_valid_wsdl_action(controller)
- test_request = ActionController::TestRequest.new({ 'action' => 'wsdl' })
- test_response = ActionController::TestResponse.new
- wsdl = controller.process(test_request, test_response).body
- ensure_valid_wsdl(controller, wsdl, DispatcherTest::WsdlNamespace)
- end
-end