<commit_before>require_relative "helper"

require "puma/binder"
require "puma/puma_http11"

class TestBinder < Minitest::Test
  def setup
    @events = Puma::Events.null
    @binder = Puma::Binder.new(@events)
  end

  def test_localhost_addresses_dont_alter_listeners_for_tcp_addresses
    skip_on_jruby

    @binder.parse(["tcp://localhost:10001"], @events)

    assert_equal [], @binder.listeners
  end

  def test_localhost_addresses_dont_alter_listeners_for_ssl_addresses
    skip_on_appveyor
    skip_on_jruby

    key =  File.expand_path "../../examples/puma/puma_keypair.pem", __FILE__
    cert = File.expand_path "../../examples/puma/cert_puma.pem", __FILE__

    @binder.parse(["ssl://localhost:10002?key=#{key}&cert=#{cert}"], @events)

    assert_equal [], @binder.listeners
  end

  def test_binder_parses_ssl_cipher_filter
    skip_on_appveyor
    skip_on_jruby

    key =  File.expand_path "../../examples/puma/puma_keypair.pem", __FILE__
    cert = File.expand_path "../../examples/puma/cert_puma.pem", __FILE__
    ssl_cipher_filter = "AES@STRENGTH"

    @binder.parse(["ssl://0.0.0.0?key=#{key}&cert=#{cert}&ssl_cipher_filter=#{ssl_cipher_filter}"], @events)

    ssl = @binder.instance_variable_get(:@ios)[0]
    ctx = ssl.instance_variable_get(:@ctx)
    assert_equal(ssl_cipher_filter, ctx.ssl_cipher_filter)
  end

  def test_binder_parses_jruby_ssl_options
    skip unless Puma.jruby?

    keystore = File.expand_path "../../examples/puma/keystore.jks"
    ssl_cipher_list = "TLS_DHE_RSA_WITH_DES_CBC_SHA,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"
    @binder.parse(["ssl://0.0.0.0?keystore=#{keystore}&ssl_cipher_list=#{ssl_cipher_list}"], @events)

    ssl= @binder.instance_variable_get(:@ios)[0]
    ctx = ssl.instance_variable_get(:@ctx)
    assert_equal(keystore, ctx.keystore)
    assert_equal(ssl_cipher_list, ctx.ssl_cipher_list)
  end
end
<commit_msg>Fix path of test file<commit_after>require_relative "helper"

require "puma/binder"
require "puma/puma_http11"

class TestBinder < Minitest::Test
  def setup
    @events = Puma::Events.null
    @binder = Puma::Binder.new(@events)
  end

  def test_localhost_addresses_dont_alter_listeners_for_tcp_addresses
    skip_on_jruby

    @binder.parse(["tcp://localhost:10001"], @events)

    assert_equal [], @binder.listeners
  end

  def test_localhost_addresses_dont_alter_listeners_for_ssl_addresses
    skip_on_appveyor
    skip_on_jruby

    key =  File.expand_path "../../examples/puma/puma_keypair.pem", __FILE__
    cert = File.expand_path "../../examples/puma/cert_puma.pem", __FILE__

    @binder.parse(["ssl://localhost:10002?key=#{key}&cert=#{cert}"], @events)

    assert_equal [], @binder.listeners
  end

  def test_binder_parses_ssl_cipher_filter
    skip_on_appveyor
    skip_on_jruby

    key =  File.expand_path "../../examples/puma/puma_keypair.pem", __FILE__
    cert = File.expand_path "../../examples/puma/cert_puma.pem", __FILE__
    ssl_cipher_filter = "AES@STRENGTH"

    @binder.parse(["ssl://0.0.0.0?key=#{key}&cert=#{cert}&ssl_cipher_filter=#{ssl_cipher_filter}"], @events)

    ssl = @binder.instance_variable_get(:@ios)[0]
    ctx = ssl.instance_variable_get(:@ctx)
    assert_equal(ssl_cipher_filter, ctx.ssl_cipher_filter)
  end

  def test_binder_parses_jruby_ssl_options
    skip unless Puma.jruby?

    keystore = File.expand_path "../../examples/puma/keystore.jks", __FILE__
    ssl_cipher_list = "TLS_DHE_RSA_WITH_DES_CBC_SHA,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"
    @binder.parse(["ssl://0.0.0.0?keystore=#{keystore}&ssl_cipher_list=#{ssl_cipher_list}"], @events)

    ssl= @binder.instance_variable_get(:@ios)[0]
    ctx = ssl.instance_variable_get(:@ctx)
    assert_equal(keystore, ctx.keystore)
    assert_equal(ssl_cipher_list, ctx.ssl_cipher_list)
  end
end

{'fraction_non_alphanumeric': 0.13448275862068965, 'fraction_numerical': 0.01220159151193634, 'mean_word_length': 4.611607142857143, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '725916', 'n_tokens_mistral': 1540, 'n_tokens_neox': 1425, 'n_words': 177}