/spec/support/ssl_test_helper.rb

http://github.com/jnunemaker/httparty · Ruby · 47 lines · 39 code · 8 blank · 0 comment · 4 complexity · b033198170bce16879deaf53446182f6 MD5 · raw file

  1. require 'pathname'
  2. module HTTParty
  3. module SSLTestHelper
  4. def ssl_verify_test(mode, ca_basename, server_cert_filename, options = {}, &block)
  5. options = {
  6. format: :json,
  7. timeout: 30
  8. }.merge(options)
  9. if mode
  10. ca_path = File.expand_path("../../fixtures/ssl/generated/#{ca_basename}", __FILE__)
  11. raise ArgumentError.new("#{ca_path} does not exist") unless File.exist?(ca_path)
  12. options[mode] = ca_path
  13. end
  14. begin
  15. test_server = SSLTestServer.new(
  16. rsa_key: File.read(File.expand_path("../../fixtures/ssl/generated/server.key", __FILE__)),
  17. cert: File.read(File.expand_path("../../fixtures/ssl/generated/#{server_cert_filename}", __FILE__)))
  18. test_server.start
  19. if mode
  20. ca_path = File.expand_path("../../fixtures/ssl/generated/#{ca_basename}", __FILE__)
  21. raise ArgumentError.new("#{ca_path} does not exist") unless File.exist?(ca_path)
  22. return HTTParty.get("https://localhost:#{test_server.port}/", options, &block)
  23. else
  24. return HTTParty.get("https://localhost:#{test_server.port}/", options, &block)
  25. end
  26. ensure
  27. test_server.stop if test_server
  28. end
  29. test_server = SSLTestServer.new({
  30. rsa_key: path.join('server.key').read,
  31. cert: path.join(server_cert_filename).read
  32. })
  33. test_server.start
  34. HTTParty.get("https://localhost:#{test_server.port}/", options, &block)
  35. ensure
  36. test_server.stop if test_server
  37. end
  38. end
  39. end