~nvalcarcel/ubuntu/lucid/puppet/fix-546677

« back to all changes in this revision

Viewing changes to spec/integration/network/server/webrick.rb

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2009-12-23 00:48:10 UTC
  • mfrom: (1.1.10 upstream) (3.1.7 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091223004810-3i4oryds922g5n59
Tags: 0.25.1-3ubuntu1
* Merge from debian testing.  Remaining changes:
  - debian/rules:
    + Don't start puppet when first installing puppet.
  - debian/puppet.conf, lib/puppet/defaults.rb:
    + Move templates to /etc/puppet
  - lib/puppet/defaults.rb:
    + Fix /var/lib/puppet/state ownership.
  - man/man8/puppet.conf.8: 
    + Fix broken URL in manpage.
  - debian/control:
    + Update maintainer accordint to spec.
    + Puppetmaster Recommends -> Suggests
    + Created puppet-testsuite as a seperate. Allow the users to run puppet's 
      testsuite.
  - tests/Rakefile: Fix rakefile so that the testsuite can acutally be ran.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
require File.dirname(__FILE__) + '/../../../spec_helper'
4
4
require 'puppet/network/server'
 
5
require 'puppet/ssl/certificate_authority'
5
6
require 'socket'
6
7
 
7
8
describe Puppet::Network::Server do
8
9
    describe "when using webrick" do
9
10
        before :each do
10
11
            Puppet[:servertype] = 'webrick'
11
 
            @params = { :address => "127.0.0.1", :port => 34343, :handlers => [ :node ] }
12
 
        end
13
 
        
 
12
            Puppet[:server] = '127.0.0.1'
 
13
            @params = { :port => 34343, :handlers => [ :node ], :xmlrpc_handlers => [ :status ] }
 
14
 
 
15
            # Get a safe temporary file
 
16
            @tmpfile = Tempfile.new("webrick_integration_testing")
 
17
            @dir = @tmpfile.path + "_dir"
 
18
 
 
19
            Puppet.settings[:confdir] = @dir
 
20
            Puppet.settings[:vardir] = @dir
 
21
 
 
22
            Puppet::SSL::Host.ca_location = :local
 
23
 
 
24
            ca = Puppet::SSL::CertificateAuthority.new
 
25
            ca.generate(Puppet[:certname]) unless Puppet::SSL::Certificate.find(Puppet[:certname])
 
26
        end
 
27
 
 
28
        after do
 
29
            @tmpfile.delete
 
30
            Puppet.settings.clear
 
31
 
 
32
            system("rm -rf %s" % @dir)
 
33
 
 
34
            Puppet::Util::Cacher.expire
 
35
        end
 
36
 
14
37
        describe "before listening" do
15
38
            it "should not be reachable at the specified address and port" do
16
39
                lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error
17
40
            end
18
41
        end
19
 
        
 
42
 
20
43
        describe "when listening" do
21
44
            it "should be reachable on the specified address and port" do
22
 
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))            
23
 
                @server.listen
24
 
                lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error            
25
 
            end
26
 
                        
 
45
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
 
46
                @server.listen
 
47
                lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error
 
48
            end
 
49
 
 
50
            it "should default to '0.0.0.0' as its bind address" do
 
51
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
 
52
                @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
 
53
                @server.send(:http_server).expects(:listen).with { |args| args[:address] == "0.0.0.0" }
 
54
                @server.listen
 
55
            end
 
56
 
 
57
            it "should use any specified bind address" do
 
58
                Puppet[:bindaddress] = "127.0.0.1"
 
59
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
 
60
                @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
 
61
                @server.send(:http_server).expects(:listen).with { |args| args[:address] == "127.0.0.1" }
 
62
                @server.listen
 
63
            end
 
64
 
27
65
            it "should not allow multiple servers to listen on the same address and port" do
28
 
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))            
 
66
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
29
67
                @server.listen
30
68
                @server2 = Puppet::Network::Server.new(@params.merge(:port => 34343))
31
69
                lambda { @server2.listen }.should raise_error
32
70
            end
33
 
            
 
71
 
34
72
            after :each do
35
73
                @server.unlisten if @server.listening?
36
74
            end
37
75
        end
38
 
        
 
76
 
39
77
        describe "after unlistening" do
40
78
            it "should not be reachable on the port and address assigned" do
41
 
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))            
 
79
                @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
42
80
                @server.listen
43
81
                @server.unlisten
44
 
                lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)                
 
82
                lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)
45
83
            end
46
84
        end
47
85
    end