Sha256: dd51b07678c088f42386e59df35f78a2ee40e529e573c519fd2452e64783d91c

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require File.expand_path('../../test_helper', __FILE__)

class HelpLinkTest < ActionDispatch::IntegrationTest
  class << self
    def urls_from_module(mod)
      obj = Class.new { include mod }.new

      mod.public_instance_methods.collect do |name|
        mod.instance_method(name)
      end.select do |m|
        m.name =~ /_url$/ && m.arity == 0
      end.inject({}) do |hash, m|
        uri = URI.parse(obj.send(m.name))
        hash["#{mod.name}##{m.name}"] = uri if uri.is_a?(URI::HTTPS) || uri.is_a?(URI::HTTP)
        hash
      end
    end
    def create_test(name, uri)
      test "can access #{name}(#{uri})" do
        check_url(name, uri)
      end
    end
  end

  def check_url(name, uri)
    begin
      req = Net::HTTP.new(uri.host, uri.port)
      if uri.is_a?(URI::HTTPS)
        req.use_ssl = true
        req.verify_mode = OpenSSL::SSL::VERIFY_NONE
      end
      res = req.start do |http|
        http.get(uri.request_uri)
      end
      assert 200, res.code
    rescue Exception => e
      raise e, "Could not retrieve #{name}(#{uri}): #{e.message}"
    end
  end

  urls_from_module(Console::HelpHelper).each_pair{ |name,uri| self.create_test(name,uri) }
  urls_from_module(Console::CommunityHelper).each_pair{ |name,uri| self.create_test(name,uri) }
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
openshift-origin-console-1.3.4 test/integration/help_link_test.rb
openshift-origin-console-1.3.3 test/integration/help_link_test.rb
openshift-origin-console-1.3.2 test/integration/help_link_test.rb