summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/test/soap/header
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/test/soap/header')
-rw-r--r--ruby_1_8_5/test/soap/header/server.cgi119
-rw-r--r--ruby_1_8_5/test/soap/header/test_authheader.rb240
-rw-r--r--ruby_1_8_5/test/soap/header/test_authheader_cgi.rb121
-rw-r--r--ruby_1_8_5/test/soap/header/test_simplehandler.rb116
4 files changed, 0 insertions, 596 deletions
diff --git a/ruby_1_8_5/test/soap/header/server.cgi b/ruby_1_8_5/test/soap/header/server.cgi
deleted file mode 100644
index 2a188538d9..0000000000
--- a/ruby_1_8_5/test/soap/header/server.cgi
+++ /dev/null
@@ -1,119 +0,0 @@
-require 'pstore'
-require 'soap/rpc/cgistub'
-require 'soap/header/simplehandler'
-
-
-class AuthHeaderPortServer < SOAP::RPC::CGIStub
- PortName = 'http://tempuri.org/authHeaderPort'
- SupportPortName = 'http://tempuri.org/authHeaderSupportPort'
- MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth")
- SessionDB = File.join(File.expand_path(File.dirname(__FILE__)), 'session.pstoredb')
-
- class AuthHeaderService
- def self.create
- new
- end
-
- def deposit(amt)
- "deposit #{amt} OK"
- end
-
- def withdrawal(amt)
- "withdrawal #{amt} OK"
- end
- end
-
- class AuthHeaderSupportService
- def delete_sessiondb
- File.unlink(SessionDB) if File.file?(SessionDB)
- backup = SessionDB + "~"
- File.unlink(backup) if File.file?(backup)
- end
- end
-
- def initialize(*arg)
- super
- add_rpc_servant(AuthHeaderService.new, PortName)
- add_rpc_servant(AuthHeaderSupportService.new, SupportPortName)
- add_rpc_headerhandler(ServerAuthHeaderHandler.new)
- end
-
- class ServerAuthHeaderHandler < SOAP::Header::SimpleHandler
- Users = {
- 'NaHi' => 'passwd',
- 'HiNa' => 'wspass'
- }
-
- def initialize
- super(MyHeaderName)
- @db = PStore.new(SessionDB)
- @db.transaction do
- @db["root"] = {} unless @db.root?("root")
- end
- @userid = @sessionid = nil
- end
-
- def login(userid, passwd)
- userid and passwd and Users[userid] == passwd
- end
-
- def auth(sessionid)
- in_sessiondb do |root|
- root[sessionid][0]
- end
- end
-
- def create_session(userid)
- in_sessiondb do |root|
- while true
- key = create_sessionkey
- break unless root[key]
- end
- root[key] = [userid]
- key
- end
- end
-
- def destroy_session(sessionkey)
- in_sessiondb do |root|
- root.delete(sessionkey)
- end
- end
-
- def on_simple_outbound
- { "sessionid" => @sessionid }
- end
-
- def on_simple_inbound(my_header, mu)
- succeeded = false
- userid = my_header["userid"]
- passwd = my_header["passwd"]
- if login(userid, passwd)
- succeeded = true
- elsif sessionid = my_header["sessionid"]
- if userid = auth(sessionid)
- destroy_session(sessionid)
- succeeded = true
- end
- end
- raise RuntimeError.new("authentication failed") unless succeeded
- @userid = userid
- @sessionid = create_session(userid)
- end
-
- private
-
- def create_sessionkey
- Time.now.usec.to_s
- end
-
- def in_sessiondb
- @db.transaction do
- yield(@db["root"])
- end
- end
- end
-end
-
-
-status = AuthHeaderPortServer.new('AuthHeaderPortServer', nil).start
diff --git a/ruby_1_8_5/test/soap/header/test_authheader.rb b/ruby_1_8_5/test/soap/header/test_authheader.rb
deleted file mode 100644
index 47e1e76b82..0000000000
--- a/ruby_1_8_5/test/soap/header/test_authheader.rb
+++ /dev/null
@@ -1,240 +0,0 @@
-require 'test/unit'
-require 'soap/rpc/driver'
-require 'soap/rpc/standaloneServer'
-require 'soap/header/simplehandler'
-
-
-module SOAP
-module Header
-
-
-class TestAuthHeader < Test::Unit::TestCase
- Port = 17171
- PortName = 'http://tempuri.org/authHeaderPort'
- MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth")
- DummyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "dummy")
-
- class AuthHeaderPortServer < SOAP::RPC::StandaloneServer
- class AuthHeaderService
- def self.create
- new
- end
-
- def deposit(amt)
- "deposit #{amt} OK"
- end
-
- def withdrawal(amt)
- "withdrawal #{amt} OK"
- end
- end
-
- def initialize(*arg)
- super
- add_rpc_servant(AuthHeaderService.new, PortName)
- ServerAuthHeaderHandler.init
- add_request_headerhandler(ServerAuthHeaderHandler)
- end
-
- class ServerAuthHeaderHandler < SOAP::Header::SimpleHandler
- class << self
- def create
- new
- end
-
- def init
- @users = {
- 'NaHi' => 'passwd',
- 'HiNa' => 'wspass'
- }
- @sessions = {}
- end
-
- def login(userid, passwd)
- userid and passwd and @users[userid] == passwd
- end
-
- def auth(sessionid)
- @sessions[sessionid][0]
- end
-
- def create_session(userid)
- while true
- key = create_sessionkey
- break unless @sessions[key]
- end
- @sessions[key] = [userid]
- key
- end
-
- def destroy_session(sessionkey)
- @sessions.delete(sessionkey)
- end
-
- def sessions
- @sessions
- end
-
- private
-
- def create_sessionkey
- Time.now.usec.to_s
- end
- end
-
- def initialize
- super(MyHeaderName)
- @userid = @sessionid = nil
- end
-
- def on_simple_outbound
- { "sessionid" => @sessionid }
- end
-
- def on_simple_inbound(my_header, mu)
- auth = false
- userid = my_header["userid"]
- passwd = my_header["passwd"]
- if self.class.login(userid, passwd)
- auth = true
- elsif sessionid = my_header["sessionid"]
- if userid = self.class.auth(sessionid)
- self.class.destroy_session(sessionid)
- auth = true
- end
- end
- raise RuntimeError.new("authentication failed") unless auth
- @userid = userid
- @sessionid = self.class.create_session(userid)
- end
- end
- end
-
- class ClientAuthHeaderHandler < SOAP::Header::SimpleHandler
- def initialize(userid, passwd, mustunderstand)
- super(MyHeaderName)
- @sessionid = nil
- @userid = userid
- @passwd = passwd
- @mustunderstand = mustunderstand
- end
-
- def on_simple_outbound
- if @sessionid
- { "sessionid" => @sessionid }
- else
- { "userid" => @userid, "passwd" => @passwd }
- end
- end
-
- def on_simple_inbound(my_header, mustunderstand)
- @sessionid = my_header["sessionid"]
- end
-
- def sessionid
- @sessionid
- end
- end
-
- class DummyHeaderHandler < SOAP::Header::SimpleHandler
- def initialize(mustunderstand)
- super(DummyHeaderName)
- @mustunderstand = mustunderstand
- end
-
- def on_simple_outbound
- { XSD::QName.new("foo", "bar") => nil }
- end
-
- def on_simple_inbound(my_header, mustunderstand)
- end
- end
-
- def setup
- @endpoint = "http://localhost:#{Port}/"
- setup_server
- setup_client
- end
-
- def setup_server
- @server = AuthHeaderPortServer.new(self.class.name, nil, '0.0.0.0', Port)
- @server.level = Logger::Severity::ERROR
- @t = Thread.new {
- @server.start
- }
- end
-
- def setup_client
- @client = SOAP::RPC::Driver.new(@endpoint, PortName)
- @client.wiredump_dev = STDERR if $DEBUG
- @client.add_method('deposit', 'amt')
- @client.add_method('withdrawal', 'amt')
- end
-
- def teardown
- teardown_server
- teardown_client
- end
-
- def teardown_server
- @server.shutdown
- @t.kill
- @t.join
- end
-
- def teardown_client
- @client.reset_stream
- end
-
- def test_success_no_mu
- h = ClientAuthHeaderHandler.new('NaHi', 'passwd', false)
- @client.headerhandler << h
- do_transaction_check(h)
- end
-
- def test_success_mu
- h = ClientAuthHeaderHandler.new('NaHi', 'passwd', true)
- @client.headerhandler << h
- do_transaction_check(h)
- end
-
- def test_no_mu
- h = ClientAuthHeaderHandler.new('NaHi', 'passwd', true)
- @client.headerhandler << h
- @client.headerhandler << DummyHeaderHandler.new(false)
- do_transaction_check(h)
- end
-
- def test_mu
- h = ClientAuthHeaderHandler.new('NaHi', 'passwd', true)
- @client.headerhandler << h
- @client.headerhandler << (h2 = DummyHeaderHandler.new(true))
- assert_raise(SOAP::UnhandledMustUnderstandHeaderError) do
- assert_equal("deposit 150 OK", @client.deposit(150))
- end
- @client.headerhandler.delete(h2)
- @client.headerhandler << (h2 = DummyHeaderHandler.new(false))
- do_transaction_check(h)
- end
-
- def do_transaction_check(h)
- assert_equal("deposit 150 OK", @client.deposit(150))
- serversess = AuthHeaderPortServer::ServerAuthHeaderHandler.sessions[h.sessionid]
- assert_equal("NaHi", serversess[0])
- assert_equal("withdrawal 120 OK", @client.withdrawal(120))
- serversess = AuthHeaderPortServer::ServerAuthHeaderHandler.sessions[h.sessionid]
- assert_equal("NaHi", serversess[0])
- end
-
- def test_authfailure
- h = ClientAuthHeaderHandler.new('NaHi', 'pa', false)
- @client.headerhandler << h
- assert_raises(RuntimeError) do
- @client.deposit(150)
- end
- end
-end
-
-
-end
-end
diff --git a/ruby_1_8_5/test/soap/header/test_authheader_cgi.rb b/ruby_1_8_5/test/soap/header/test_authheader_cgi.rb
deleted file mode 100644
index d70b022ad8..0000000000
--- a/ruby_1_8_5/test/soap/header/test_authheader_cgi.rb
+++ /dev/null
@@ -1,121 +0,0 @@
-require 'test/unit'
-require 'soap/rpc/driver'
-require 'soap/rpc/standaloneServer'
-require 'soap/header/simplehandler'
-require 'logger'
-require 'webrick'
-require 'rbconfig'
-
-
-module SOAP
-module Header
-
-
-class TestAuthHeaderCGI < Test::Unit::TestCase
- # This test shuld be run after installing ruby.
- RUBYBIN = File.join(
- Config::CONFIG["bindir"],
- Config::CONFIG["ruby_install_name"] + Config::CONFIG["EXEEXT"]
- )
- RUBYBIN << " -d" if $DEBUG
-
- Port = 17171
- PortName = 'http://tempuri.org/authHeaderPort'
- SupportPortName = 'http://tempuri.org/authHeaderSupportPort'
- MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth")
-
- class ClientAuthHeaderHandler < SOAP::Header::SimpleHandler
- def initialize(userid, passwd)
- super(MyHeaderName)
- @sessionid = nil
- @userid = userid
- @passwd = passwd
- end
-
- def on_simple_outbound
- if @sessionid
- { "sessionid" => @sessionid }
- else
- { "userid" => @userid, "passwd" => @passwd }
- end
- end
-
- def on_simple_inbound(my_header, mustunderstand)
- @sessionid = my_header["sessionid"]
- end
-
- def sessionid
- @sessionid
- end
- end
-
- def setup
- @endpoint = "http://localhost:#{Port}/"
- setup_server
- setup_client
- end
-
- def setup_server
- @endpoint = "http://localhost:#{Port}/server.cgi"
- logger = Logger.new(STDERR)
- logger.level = Logger::Severity::ERROR
- @server = WEBrick::HTTPServer.new(
- :BindAddress => "0.0.0.0",
- :Logger => logger,
- :Port => Port,
- :AccessLog => [],
- :DocumentRoot => File.dirname(File.expand_path(__FILE__)),
- :CGIPathEnv => ENV['PATH'],
- :CGIInterpreter => RUBYBIN
- )
- @t = Thread.new {
- Thread.current.abort_on_exception = true
- @server.start
- }
- end
-
- def setup_client
- @client = SOAP::RPC::Driver.new(@endpoint, PortName)
- @client.wiredump_dev = STDERR if $DEBUG
- @client.add_method('deposit', 'amt')
- @client.add_method('withdrawal', 'amt')
- @supportclient = SOAP::RPC::Driver.new(@endpoint, SupportPortName)
- @supportclient.add_method('delete_sessiondb')
- end
-
- def teardown
- @supportclient.delete_sessiondb
- teardown_server
- teardown_client
- end
-
- def teardown_server
- @server.shutdown
- @t.kill
- @t.join
- end
-
- def teardown_client
- @client.reset_stream
- @supportclient.reset_stream
- end
-
- def test_success
- h = ClientAuthHeaderHandler.new('NaHi', 'passwd')
- @client.headerhandler << h
- assert_equal("deposit 150 OK", @client.deposit(150))
- assert_equal("withdrawal 120 OK", @client.withdrawal(120))
- end
-
- def test_authfailure
- h = ClientAuthHeaderHandler.new('NaHi', 'pa')
- @client.headerhandler << h
- assert_raises(RuntimeError) do
- @client.deposit(150)
- end
- end
-end
-
-
-end
-end
diff --git a/ruby_1_8_5/test/soap/header/test_simplehandler.rb b/ruby_1_8_5/test/soap/header/test_simplehandler.rb
deleted file mode 100644
index 75dbd4a550..0000000000
--- a/ruby_1_8_5/test/soap/header/test_simplehandler.rb
+++ /dev/null
@@ -1,116 +0,0 @@
-require 'test/unit'
-require 'soap/rpc/driver'
-require 'soap/rpc/standaloneServer'
-require 'soap/header/simplehandler'
-
-
-module SOAP
-module Header
-
-
-class TestSimpleHandler < Test::Unit::TestCase
- Port = 17171
- PortName = 'http://tempuri.org/authHeaderPort'
-
- class PingPortServer < SOAP::RPC::StandaloneServer
- class PingService
- def self.create
- new
- end
-
- def ping
- Thread.current[:pingheader]
- end
- end
-
- def initialize(*arg)
- super
- add_rpc_servant(PingService.new, PortName)
- add_request_headerhandler(PingServerHeaderHandler)
- end
-
- class PingServerHeaderHandler < SOAP::Header::SimpleHandler
- MyHeaderName = XSD::QName.new("http://xmlsoap.org/Ping", "PingHeader")
-
- def self.create
- new
- end
-
- def initialize()
- super(MyHeaderName)
- end
-
- def on_simple_outbound
- "dummy"
- end
-
- def on_simple_inbound(my_header, mu)
- Thread.current[:pingheader] = my_header
- end
- end
- end
-
- class PingClientHeaderHandler < SOAP::Header::SimpleHandler
- MyHeaderName = XSD::QName.new("http://xmlsoap.org/Ping", "PingHeader")
-
- def initialize(pingHeader)
- super(MyHeaderName)
- @pingHeader = pingHeader
- @mustunderstand = false
- end
-
- def on_simple_outbound
- @pingHeader # --- note, not a Hash
- end
-
- def on_simple_inbound(my_header, mustunderstand)
- Thread.current[:pingheader] = my_header
- end
- end
-
- def setup
- @endpoint = "http://localhost:#{Port}/"
- setup_server
- setup_client
- end
-
- def setup_server
- @server = PingPortServer.new(self.class.name, nil, '0.0.0.0', Port)
- @server.level = Logger::Severity::ERROR
- @t = Thread.new {
- @server.start
- }
- end
-
- def setup_client
- @client = SOAP::RPC::Driver.new(@endpoint, PortName)
- @client.wiredump_dev = STDERR if $DEBUG
- @client.add_method('ping')
- end
-
- def teardown
- teardown_server
- teardown_client
- end
-
- def teardown_server
- @server.shutdown
- @t.kill
- @t.join
- end
-
- def teardown_client
- @client.reset_stream
- end
-
- def test_string
- h = PingClientHeaderHandler.new('pingheader')
- @client.headerhandler << h
- assert_equal("pingheader", @client.ping)
- assert_equal("dummy", Thread.current[:pingheader])
- end
-end
-
-
-end
-end