Update specs and fix FM-1361
[puppet_vcsrepo.git] / spec / acceptance / beaker / git / basic_auth / basic_auth_checkout_http.rb
1 test_name 'C3492 - checkout with basic auth (http protocol)'
2 skip_test 'HTTP not supported yet for basic auth using git. See FM-1331'
3
4 # Globals
5 repo_name = 'testrepo_checkout'
6 user      = 'foo'
7 password  = 'bar'
8 http_server_script = 'basic_auth_http_daemon.rb'
9
10 hosts.each do |host|
11   ruby = '/opt/puppet/bin/ruby' if host.is_pe? || 'ruby'
12   gem = '/opt/puppet/bin/gem' if host.is_pe? || 'gem'
13   tmpdir = host.tmpdir('vcsrepo')
14   step 'setup - create repo' do
15     install_package(host, 'git')
16     my_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
17     scp_to(host, "#{my_root}/acceptance/files/create_git_repo.sh", tmpdir)
18     on(host, "cd #{tmpdir} && ./create_git_repo.sh")
19   end
20
21   step 'setup - start http server' do
22     script =<<-EOF
23     require 'sinatra'
24
25     set :bind, '0.0.0.0'
26     set :static, true
27     set :public_folder, '#{tmpdir}'
28
29
30     use Rack::Auth::Basic do |username, password|
31         username == '#{user}' && password == '#{password}'
32     end
33     EOF
34     create_remote_file(host, "#{tmpdir}/#{http_server_script}", script)
35     on(host, "#{gem} install sinatra")
36     on(host, "#{ruby} #{tmpdir}/#{http_server_script} &")
37   end
38
39   teardown do
40     on(host, "rm -fr #{tmpdir}")
41     on(host, "ps ax | grep '#{ruby} #{tmpdir}/#{http_server_script}' | grep -v grep | awk '{print \"kill -9 \" $1}' | sh ; sleep 1")
42   end
43
44   step 'checkout with puppet using basic auth' do
45     pp = <<-EOS
46     vcsrepo { "#{tmpdir}/#{repo_name}":
47       ensure => present,
48       source => "http://#{host}:4567/testrepo.git",
49       provider => git,
50       basic_auth_username => '#{user}',
51       basic_auth_password => '#{password}',
52     }
53     EOS
54
55     apply_manifest_on(host, pp, :catch_failures => true)
56     apply_manifest_on(host, pp, :catch_changes  => true)
57   end
58
59   step "verify checkout" do
60     on(host, "ls #{tmpdir}/#{repo_name}/.git/") do |res|
61       fail_test('checkout not found') unless res.stdout.include? "HEAD"
62     end
63   end
64
65 end