diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/test_sni_hostnames.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/unit/test_sni_hostnames.rb b/test/unit/test_sni_hostnames.rb new file mode 100644 index 0000000..457afee --- /dev/null +++ b/test/unit/test_sni_hostnames.rb @@ -0,0 +1,47 @@ +# -*- encoding: binary -*- +require "test/unit" +require "unicorn" + +# this tests an implementation detail, it may change so this test +# can be removed later. +class TestSniHostnames < Test::Unit::TestCase + include Unicorn::SSLServer + + def setup + GC.start + end + + def teardown + GC.start + end + + def test_host_name_detect_one + app = Rack::Builder.new do + map "http://sni1.example.com/" do + use Rack::ContentLength + use Rack::ContentType, "text/plain" + run lambda { |env| [ 200, {}, [] ] } + end + end.to_app + hostnames = rack_sni_hostnames(app) + assert hostnames.include?("sni1.example.com") + end + + def test_host_name_detect_multiple + app = Rack::Builder.new do + map "http://sni2.example.com/" do + use Rack::ContentLength + use Rack::ContentType, "text/plain" + run lambda { |env| [ 200, {}, [] ] } + end + map "http://sni3.example.com/" do + use Rack::ContentLength + use Rack::ContentType, "text/plain" + run lambda { |env| [ 200, {}, [] ] } + end + end.to_app + hostnames = rack_sni_hostnames(app) + assert hostnames.include?("sni2.example.com") + assert hostnames.include?("sni3.example.com") + end +end |