module Helpers
  module Apache
    require 'chef/mixin/shell_out'
    include Chef::Mixin::ShellOut
    include MiniTest::Chef::Assertions
    include MiniTest::Chef::Context
    include MiniTest::Chef::Resources

    def apache_config_parses?
      acp = shell_out("#{node['apache']['binary']} -t")
      acp.exitstatus == 0
    end

    def apache_configured_ports
      port_config = File.read("#{node['apache']['dir']}/ports.conf")
      port_config.scan(/^Listen ([0-9]+)/).flatten.map{|p| p.to_i}
    end

    def apache_enabled_modules
      apache_modules = shell_out("#{node['apache']['binary']} -M")
      apache_modules.send(
        if node['platform_family'] == 'rhel' && node['platform_version'].to_f < 6.0
          :stderr
        else
          :stdout
        end
        ).split.select! {|i| i =~ /_module$/}
    end

    def apache_service
      service(case node['platform']
              when "debian","ubuntu" then "apache2"
              when "freebsd" then "apache22"
              else "httpd"
              end)
    end

    def config
      file(case node['platform']
           when "debian","ubuntu" then "#{node['apache']['dir']}/apache2.conf"
           when "freebsd" then "#{node['apache']['dir']}/httpd.conf"
           else "#{node['apache']['dir']}/conf/httpd.conf"
           end)
    end

    def ran_recipe?(recipe)
      node.run_state[:seen_recipes].keys.include?(recipe)
    end
  end
end

Revert "use a symlink instead of copy of the file"
Revert "use a symlink instead of copy of the file"

This reverts commit a9325a3180eea20cf2a9148cab84e3e9c5fcb540.

Test kitchen complains the file doesn't exist:

ERROR: Errno::ENOENT: No such file or directory - /tmp/apache2/../apache2/test/kitchen/cookbooks/apache2_test/files/default/tests/minitest/support/helpers.rb
