mongrel2 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.gemtest +0 -0
- data/History.rdoc +4 -0
- data/Manifest.txt +66 -0
- data/README.rdoc +169 -0
- data/Rakefile +77 -0
- data/bin/m2sh.rb +600 -0
- data/data/mongrel2/bootstrap.html +25 -0
- data/data/mongrel2/config.sql +84 -0
- data/data/mongrel2/mimetypes.sql +855 -0
- data/examples/README.txt +6 -0
- data/examples/config.rb +54 -0
- data/examples/helloworld-handler.rb +31 -0
- data/examples/request-dumper.rb +45 -0
- data/examples/request-dumper.tmpl +71 -0
- data/examples/run +17 -0
- data/lib/mongrel2.rb +62 -0
- data/lib/mongrel2/config.rb +212 -0
- data/lib/mongrel2/config/directory.rb +78 -0
- data/lib/mongrel2/config/dsl.rb +206 -0
- data/lib/mongrel2/config/handler.rb +124 -0
- data/lib/mongrel2/config/host.rb +88 -0
- data/lib/mongrel2/config/log.rb +48 -0
- data/lib/mongrel2/config/mimetype.rb +15 -0
- data/lib/mongrel2/config/proxy.rb +15 -0
- data/lib/mongrel2/config/route.rb +51 -0
- data/lib/mongrel2/config/server.rb +58 -0
- data/lib/mongrel2/config/setting.rb +15 -0
- data/lib/mongrel2/config/statistic.rb +23 -0
- data/lib/mongrel2/connection.rb +212 -0
- data/lib/mongrel2/constants.rb +159 -0
- data/lib/mongrel2/control.rb +165 -0
- data/lib/mongrel2/exceptions.rb +59 -0
- data/lib/mongrel2/handler.rb +309 -0
- data/lib/mongrel2/httprequest.rb +51 -0
- data/lib/mongrel2/httpresponse.rb +187 -0
- data/lib/mongrel2/jsonrequest.rb +43 -0
- data/lib/mongrel2/logging.rb +241 -0
- data/lib/mongrel2/mixins.rb +143 -0
- data/lib/mongrel2/request.rb +148 -0
- data/lib/mongrel2/response.rb +74 -0
- data/lib/mongrel2/table.rb +216 -0
- data/lib/mongrel2/xmlrequest.rb +36 -0
- data/spec/lib/constants.rb +237 -0
- data/spec/lib/helpers.rb +246 -0
- data/spec/lib/matchers.rb +50 -0
- data/spec/mongrel2/config/directory_spec.rb +91 -0
- data/spec/mongrel2/config/dsl_spec.rb +218 -0
- data/spec/mongrel2/config/handler_spec.rb +118 -0
- data/spec/mongrel2/config/host_spec.rb +30 -0
- data/spec/mongrel2/config/log_spec.rb +95 -0
- data/spec/mongrel2/config/proxy_spec.rb +30 -0
- data/spec/mongrel2/config/route_spec.rb +83 -0
- data/spec/mongrel2/config/server_spec.rb +84 -0
- data/spec/mongrel2/config/setting_spec.rb +30 -0
- data/spec/mongrel2/config/statistic_spec.rb +30 -0
- data/spec/mongrel2/config_spec.rb +111 -0
- data/spec/mongrel2/connection_spec.rb +172 -0
- data/spec/mongrel2/constants_spec.rb +32 -0
- data/spec/mongrel2/control_spec.rb +192 -0
- data/spec/mongrel2/handler_spec.rb +261 -0
- data/spec/mongrel2/httpresponse_spec.rb +232 -0
- data/spec/mongrel2/logging_spec.rb +76 -0
- data/spec/mongrel2/mixins_spec.rb +62 -0
- data/spec/mongrel2/request_spec.rb +157 -0
- data/spec/mongrel2/response_spec.rb +81 -0
- data/spec/mongrel2/table_spec.rb +176 -0
- data/spec/mongrel2_spec.rb +34 -0
- metadata +294 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Host do
|
26
|
+
|
27
|
+
# No functionality outside of Sequel::Model's purview yet
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'socket'
|
14
|
+
require 'rspec'
|
15
|
+
|
16
|
+
require 'spec/lib/constants'
|
17
|
+
require 'spec/lib/helpers'
|
18
|
+
|
19
|
+
require 'mongrel2'
|
20
|
+
require 'mongrel2/config'
|
21
|
+
|
22
|
+
|
23
|
+
#####################################################################
|
24
|
+
### C O N T E X T S
|
25
|
+
#####################################################################
|
26
|
+
|
27
|
+
describe Mongrel2::Config::Log do
|
28
|
+
|
29
|
+
before( :all ) do
|
30
|
+
setup_logging( :fatal )
|
31
|
+
setup_config_db()
|
32
|
+
end
|
33
|
+
|
34
|
+
after( :all ) do
|
35
|
+
reset_logging()
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
it "has a convenience method for writing to the commit log" do
|
40
|
+
what = 'load etc/mongrel2.conf'
|
41
|
+
why = 'updating'
|
42
|
+
where = 'localhost'
|
43
|
+
how = 'm2sh'
|
44
|
+
|
45
|
+
log = Mongrel2::Config::Log.log_action( what, why, where, how )
|
46
|
+
|
47
|
+
log.what.should == what
|
48
|
+
log.why.should == why
|
49
|
+
log.location.should == where
|
50
|
+
log.how.should == how
|
51
|
+
end
|
52
|
+
|
53
|
+
it "has reasonable defaults for 'where' and 'how'" do
|
54
|
+
what = 'load etc/mongrel2.conf'
|
55
|
+
why = 'updating'
|
56
|
+
|
57
|
+
log = Mongrel2::Config::Log.log_action( what, why )
|
58
|
+
|
59
|
+
log.location.should == Socket.gethostname
|
60
|
+
log.how.should == File.basename( $0 )
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "an entry" do
|
64
|
+
|
65
|
+
before( :each ) do
|
66
|
+
@log = Mongrel2::Config::Log.new(
|
67
|
+
who: 'who',
|
68
|
+
what: 'what',
|
69
|
+
location: 'location',
|
70
|
+
happened_at: Time.at( 1315598592 ),
|
71
|
+
how: 'how',
|
72
|
+
why: 'why'
|
73
|
+
)
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
it "stringifies as a readable log file line" do
|
78
|
+
|
79
|
+
# 2011-09-09 20:29:47 -0700 [mgranger] @localhost m2sh: load etc/mongrel2.conf (updating)
|
80
|
+
@log.to_s.should =~ %r{
|
81
|
+
^
|
82
|
+
(?-x:\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [\+\-]\d{4} )
|
83
|
+
\[who\] \s
|
84
|
+
@location \s
|
85
|
+
how: \s
|
86
|
+
what \s
|
87
|
+
\(why\)
|
88
|
+
$
|
89
|
+
}x
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Proxy do
|
26
|
+
|
27
|
+
# No functionality outside of Sequel::Model's purview yet
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Route do
|
26
|
+
|
27
|
+
before( :all ) do
|
28
|
+
setup_logging()
|
29
|
+
Mongrel2::Config.configure( :configdb => ':memory:' )
|
30
|
+
Mongrel2::Config.init_database
|
31
|
+
end
|
32
|
+
|
33
|
+
before( :each ) do
|
34
|
+
@route = Mongrel2::Config::Route.new( :path => '' )
|
35
|
+
end
|
36
|
+
|
37
|
+
after( :all ) do
|
38
|
+
reset_logging()
|
39
|
+
end
|
40
|
+
|
41
|
+
it "returns a Mongrel2::Config::Directory if its target_type is 'dir'" do
|
42
|
+
dir = Mongrel2::Config::Directory.create(
|
43
|
+
:base => 'var/www/',
|
44
|
+
:default_ctype => 'text/plain',
|
45
|
+
:index_file => 'index.html' )
|
46
|
+
|
47
|
+
@route.target_type = 'dir'
|
48
|
+
@route.target_id = dir.id
|
49
|
+
|
50
|
+
@route.target.should == dir
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns a Mongrel2::Config::Proxy if its target_type is 'proxy'" do
|
54
|
+
proxy = Mongrel2::Config::Proxy.create( :addr => '10.2.18.8' )
|
55
|
+
|
56
|
+
@route.target_type = 'proxy'
|
57
|
+
@route.target_id = proxy.id
|
58
|
+
|
59
|
+
@route.target.should == proxy
|
60
|
+
end
|
61
|
+
|
62
|
+
it "returns a Mongrel2::Config::Handler if its target_type is 'handler'" do
|
63
|
+
handler = Mongrel2::Config::Handler.create(
|
64
|
+
:send_ident => TEST_UUID,
|
65
|
+
:send_spec => 'tcp://127.0.0.1:9998',
|
66
|
+
:recv_spec => 'tcp://127.0.0.1:9997' )
|
67
|
+
|
68
|
+
@route.target_type = 'handler'
|
69
|
+
@route.target_id = handler.id
|
70
|
+
|
71
|
+
@route.target.should == handler
|
72
|
+
end
|
73
|
+
|
74
|
+
it "raises an exception if its target_type is set to something invalid" do
|
75
|
+
@route.target_type = 'giraffes'
|
76
|
+
|
77
|
+
expect {
|
78
|
+
@route.target
|
79
|
+
}.to raise_error( ArgumentError, /unknown target type/i )
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Server do
|
26
|
+
|
27
|
+
before( :all ) do
|
28
|
+
setup_logging( :fatal )
|
29
|
+
setup_config_db()
|
30
|
+
end
|
31
|
+
|
32
|
+
before( :each ) do
|
33
|
+
@server = Mongrel2::Config::Server.new(
|
34
|
+
uuid: TEST_UUID,
|
35
|
+
access_log: '/logs/access.log',
|
36
|
+
error_log: '/logs/error.log',
|
37
|
+
pid_file: '/run/mongrel2.pid',
|
38
|
+
default_host: 'localhost',
|
39
|
+
port: 8118
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
after( :all ) do
|
44
|
+
reset_logging()
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
it "is valid if its access_log, error_log, pid_file, default_host, and port are all valid" do
|
49
|
+
@server.should be_valid()
|
50
|
+
end
|
51
|
+
|
52
|
+
it "isn't valid if it doesn't have an access_log path" do
|
53
|
+
@server.access_log = nil
|
54
|
+
@server.should_not be_valid()
|
55
|
+
@server.errors.full_messages.first.should =~ /missing or nil/i
|
56
|
+
end
|
57
|
+
|
58
|
+
it "isn't valid if it doesn't have an error_log path" do
|
59
|
+
@server.error_log = nil
|
60
|
+
@server.should_not be_valid()
|
61
|
+
@server.errors.full_messages.first.should =~ /missing or nil/i
|
62
|
+
end
|
63
|
+
|
64
|
+
it "isn't valid if it doesn't have an pid_file path" do
|
65
|
+
@server.pid_file = nil
|
66
|
+
@server.should_not be_valid()
|
67
|
+
@server.errors.full_messages.first.should =~ /missing or nil/i
|
68
|
+
end
|
69
|
+
|
70
|
+
it "isn't valid if it doesn't have a default_host" do
|
71
|
+
@server.default_host = nil
|
72
|
+
@server.should_not be_valid()
|
73
|
+
@server.errors.full_messages.first.should =~ /missing or nil/i
|
74
|
+
end
|
75
|
+
|
76
|
+
it "isn't valid if it doesn't specify a port" do
|
77
|
+
@server.port = nil
|
78
|
+
@server.should_not be_valid()
|
79
|
+
@server.errors.full_messages.first.should =~ /missing or nil/i
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
end
|
84
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Setting do
|
26
|
+
|
27
|
+
# No functionality outside of Sequel::Model's purview yet
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config::Statistic do
|
26
|
+
|
27
|
+
# No functionality outside of Sequel::Model's purview yet
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
BEGIN {
|
4
|
+
require 'pathname'
|
5
|
+
basedir = Pathname.new( __FILE__ ).dirname.parent.parent
|
6
|
+
|
7
|
+
libdir = basedir + "lib"
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
|
10
|
+
$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
require 'spec/lib/helpers'
|
16
|
+
|
17
|
+
require 'mongrel2'
|
18
|
+
require 'mongrel2/config'
|
19
|
+
|
20
|
+
|
21
|
+
#####################################################################
|
22
|
+
### C O N T E X T S
|
23
|
+
#####################################################################
|
24
|
+
|
25
|
+
describe Mongrel2::Config do
|
26
|
+
|
27
|
+
before( :all ) do
|
28
|
+
setup_logging()
|
29
|
+
setup_config_db()
|
30
|
+
end
|
31
|
+
|
32
|
+
after( :all ) do
|
33
|
+
reset_logging()
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
it "has a factory method for creating derivative classes" do
|
38
|
+
begin
|
39
|
+
model_class = Mongrel2::Config( :hookers )
|
40
|
+
model_class.should < Mongrel2::Config
|
41
|
+
model_class.dataset.first_source.should == :hookers
|
42
|
+
ensure
|
43
|
+
# Remove the example class from the list of subclasses so it
|
44
|
+
# doesn't affect later tests
|
45
|
+
Mongrel2::Config.subclasses.delete( model_class ) if model_class
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it "can reset the database handle for the config classes" do
|
50
|
+
db = Mongrel2::Config.in_memory_db
|
51
|
+
Mongrel2::Config.db = db
|
52
|
+
Mongrel2::Config::Directory.db.should equal( db )
|
53
|
+
end
|
54
|
+
|
55
|
+
it "has a convenience method for fetching an Array of all of its configured servers" do
|
56
|
+
Mongrel2::Config.init_database
|
57
|
+
Mongrel2::Config::Server.dataset.truncate
|
58
|
+
s = Mongrel2::Config::Server.create(
|
59
|
+
uuid: TEST_UUID,
|
60
|
+
access_log: '/log/access.log',
|
61
|
+
error_log: '/log/error.log',
|
62
|
+
pid_file: '/run/m2.pid',
|
63
|
+
default_host: 'localhost',
|
64
|
+
port: 8275
|
65
|
+
)
|
66
|
+
Mongrel2::Config.servers.should have( 1 ).member
|
67
|
+
Mongrel2::Config.servers.first.uuid.should == TEST_UUID
|
68
|
+
end
|
69
|
+
|
70
|
+
it "can read the configuration schema from a data file" do
|
71
|
+
Mongrel2::Config.load_config_schema.should =~ /create table server/i
|
72
|
+
end
|
73
|
+
|
74
|
+
it "knows whether or not its database has been initialized" do
|
75
|
+
Mongrel2::Config.db = Mongrel2::Config.in_memory_db
|
76
|
+
Mongrel2::Config.database_initialized?.should be_false()
|
77
|
+
Mongrel2::Config.init_database!
|
78
|
+
Mongrel2::Config.database_initialized?.should be_true()
|
79
|
+
end
|
80
|
+
|
81
|
+
it "doesn't re-initialize the database if the non-bang version of init_database is used" do
|
82
|
+
Mongrel2::Config.db = Mongrel2::Config.in_memory_db
|
83
|
+
Mongrel2::Config.init_database
|
84
|
+
|
85
|
+
Mongrel2::Config.should_not_receive( :load_config_schema )
|
86
|
+
Mongrel2::Config.init_database
|
87
|
+
end
|
88
|
+
|
89
|
+
it "can return the path to the config DB as a Pathname if it's pointing at a file" do
|
90
|
+
Mongrel2::Config.db = Mongrel2::Config.adapter_method[ 'config-spec.sqlite' ]
|
91
|
+
Mongrel2::Config.pathname.should == Pathname( 'config-spec.sqlite' )
|
92
|
+
end
|
93
|
+
|
94
|
+
it "returns nil if asked for the pathname to an in-memory database" do
|
95
|
+
Mongrel2::Config.db = Mongrel2::Config.in_memory_db
|
96
|
+
Mongrel2::Config.pathname.should be_nil()
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "Configurability support", :if => defined?( Configurability ) do
|
100
|
+
require 'configurability/behavior'
|
101
|
+
|
102
|
+
it_should_behave_like "an object with Configurability"
|
103
|
+
|
104
|
+
it "uses the 'mongrel2' config section" do
|
105
|
+
Mongrel2::Config.config_key.should == :mongrel2
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|