summaryrefslogtreecommitdiff
path: root/spec/acceptance
diff options
context:
space:
mode:
authorJohn Duarte <john.duarte@puppetlabs.com>2014-05-06 08:55:51 -0700
committerJohn Duarte <john.duarte@puppetlabs.com>2014-05-18 11:38:18 -0700
commit2e8cc51403ead784e9764bb25d15d8a30d8d6475 (patch)
tree224dd761f8096e4c00ce1b1d685c65e179637d65 /spec/acceptance
parent6c284f23696eb5d036537acab9a6d564b700d78a (diff)
Add test for git clone using http
Diffstat (limited to 'spec/acceptance')
-rwxr-xr-xspec/acceptance/files/create_git_repo.sh4
-rw-r--r--spec/acceptance/git_clone_protocols_spec.rb35
2 files changed, 38 insertions, 1 deletions
diff --git a/spec/acceptance/files/create_git_repo.sh b/spec/acceptance/files/create_git_repo.sh
index 87b00a4..40f341a 100755
--- a/spec/acceptance/files/create_git_repo.sh
+++ b/spec/acceptance/files/create_git_repo.sh
@@ -34,4 +34,6 @@ cd ..
git --git-dir=testrepo/.git config core.bare true
cp -r testrepo/.git testrepo.git
rm -rf testrepo
-touch testrepo.git/git-daemon-export-ok
+cd testrepo.git
+touch git-daemon-export-ok
+git update-server-info
diff --git a/spec/acceptance/git_clone_protocols_spec.rb b/spec/acceptance/git_clone_protocols_spec.rb
index a3f897a..96afe56 100644
--- a/spec/acceptance/git_clone_protocols_spec.rb
+++ b/spec/acceptance/git_clone_protocols_spec.rb
@@ -119,5 +119,40 @@ hosts.each do |host|
end
end
+ context 'using http protocol' do
+ before(:all) do
+ on(host,apply_manifest("file {'#{tmpdir}/testrepo': ensure => directory, purge => true, recurse => true, recurselimit => 1, force => true; }"))
+ daemon =<<-EOF
+ require 'webrick'
+ server = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => "#{tmpdir}")
+ WEBrick::Daemon.start
+ server.start
+ EOF
+ create_remote_file(host, '/tmp/daemon.rb', daemon)
+ on(host, "ruby /tmp/daemon.rb")
+ end
+
+ it 'should have HEAD pointing to master' do
+ pp = <<-EOS
+ vcsrepo { "#{tmpdir}/testrepo":
+ ensure => present,
+ provider => git,
+ source => "http://#{host}:8000/testrepo.git",
+ }
+ EOS
+
+ # Run it twice and test for idempotency
+ apply_manifest(pp, :catch_failures => true)
+ apply_manifest(pp, :catch_changes => true)
+ end
+ describe file("#{tmpdir}/testrepo/.git/HEAD") do
+ it { should contain 'ref: refs/heads/master' }
+ end
+
+ after(:all) do
+ host.execute('pkill -9 ruby')
+ end
+ end
+
end
end