# File lib/god/conditions/http_response_code.rb, line 115
      def test
        response = nil

        connection = Net::HTTP.new(self.host, self.port)
        connection.use_ssl = self.port == 443 ? true : self.ssl
        connection.verify_mode = OpenSSL::SSL::VERIFY_NONE if connection.use_ssl?

        if connection.use_ssl? && self.ca_file
          pem = File.read(self.ca_file)
          connection.ca_file = self.ca_file
          connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
        end

        connection.start do |http|
          http.read_timeout = self.timeout
          response = http.get(self.path, self.headers)
        end

        actual_response_code = response.code.to_i
        if self.code_is && self.code_is.include?(actual_response_code)
          pass(actual_response_code)
        elsif self.code_is_not && !self.code_is_not.include?(actual_response_code)
          pass(actual_response_code)
        else
          fail(actual_response_code)
        end
      rescue Errno::ECONNREFUSED
        self.code_is ? fail('Refused') : pass('Refused')
      rescue Errno::ECONNRESET
        self.code_is ? fail('Reset') : pass('Reset')
      rescue EOFError
        self.code_is ? fail('EOF') : pass('EOF')
      rescue Timeout::Error
        self.code_is ? fail('Timeout') : pass('Timeout')
      rescue Errno::ETIMEDOUT
        self.code_is ? fail('Timedout') : pass('Timedout')
      rescue Exception => failure
        self.code_is ? fail(failure.class.name) : pass(failure.class.name)
      end