nginx_test_helper 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,29 @@
1
+ require File.expand_path('spec_helper', File.dirname(__FILE__))
2
+ require "net/http"
3
+ require "uri"
4
+
5
+ describe "Example2 Spec" do
6
+ before(:all) do
7
+ configuration = {:return_code => 301} # Your configuration hash
8
+ @config = NginxTestHelper::Config.new("example_config_id", configuration)
9
+ start_server(@config)
10
+ end
11
+
12
+ after(:all) do
13
+ stop_server(@config)
14
+ end
15
+
16
+ context "when using running many tests with same configuration" do
17
+ it "should get '301' return code getting index.html" do
18
+ uri = URI.parse("http://#{nginx_host}:#{nginx_port}/")
19
+ response = Net::HTTP.get_response(uri)
20
+ response.code.should eql("301")
21
+ end
22
+
23
+ it "should get '302' return code getting /test/index.html" do
24
+ uri = URI.parse("http://#{nginx_host}:#{nginx_port}/test/index.html")
25
+ response = Net::HTTP.get_response(uri)
26
+ response.code.should eql("302")
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path('spec_helper', File.dirname(__FILE__))
2
+ require "net/http"
3
+ require "uri"
4
+
5
+ describe "Example Spec" do
6
+ context "when using 'nginx_test_configuration' helper" do
7
+ it "should not accept an 'unknown_directive'" do
8
+ nginx_test_configuration({:unknown_value => 0}).should include('unknown directive "unknown_directive"')
9
+ end
10
+ end
11
+
12
+ context "when using 'nginx_run_server' helper" do
13
+ it "should get '202' return code using 'get_in_socket' helper" do
14
+ nginx_run_server do
15
+ socket = open_socket(nginx_host, nginx_port)
16
+ headers, body = get_in_socket("/index.html", socket)
17
+ headers.should include("HTTP/1.1 202 Accepted")
18
+ end
19
+ end
20
+
21
+ it "should get '422' return code using 'Net/Http'" do
22
+ nginx_run_server({:return_code => 422}) do
23
+ uri = URI.parse("http://#{nginx_host}:#{nginx_port}/")
24
+ response = Net::HTTP.get_response(uri)
25
+ response.code.should eql("422")
26
+ end
27
+ end
28
+
29
+ it "should use custom timeout" do
30
+ expect do
31
+ nginx_run_server({}, {:timeout => 1}) do
32
+ sleep 2
33
+ end
34
+ end.to raise_error(Timeout::Error, "execution expired")
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,49 @@
1
+ require 'nginx_test_helper'
2
+ module NginxConfiguration
3
+ def self.default_configuration
4
+ {
5
+ :disable_start_stop_server => false,
6
+ :master_process => 'off',
7
+ :daemon => 'off',
8
+
9
+ :unknown_value => nil,
10
+
11
+ :return_code => 202
12
+ }
13
+ end
14
+
15
+
16
+ def self.template_configuration
17
+ %(
18
+ pid <%= pid_file %>;
19
+ error_log <%= error_log %> debug;
20
+
21
+ worker_processes <%= nginx_workers %>;
22
+
23
+ events {
24
+ worker_connections 1024;
25
+ use <%= (RUBY_PLATFORM =~ /darwin/) ? 'kqueue' : 'epoll' %>;
26
+ }
27
+
28
+ http {
29
+ access_log <%= access_log %>;
30
+
31
+ client_body_temp_path <%= client_body_temp %>;
32
+
33
+ server {
34
+ listen <%= nginx_port %>;
35
+ server_name <%= nginx_host %>;
36
+
37
+ location /test {
38
+ <%= write_directive("return", return_code.nil? ? return_code : return_code + 1, "return_code") %>
39
+ }
40
+
41
+ location / {
42
+ <%= write_directive("unknown_directive", unknown_value) %>
43
+ <%= write_directive("return", return_code, "return_code") %>
44
+ }
45
+ }
46
+ }
47
+ )
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nginx_test_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Wandenberg Peixoto
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: popen4
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 2.10.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.10.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: debugger
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.1.3
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: simplecov
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.0.1
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.0.1
78
+ description: A collection of helper methods to test your nginx module.
79
+ email:
80
+ - wandenberg@gmail.com
81
+ executables:
82
+ - nginx_test_helper
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - .gitignore
87
+ - .rspec
88
+ - Gemfile
89
+ - LICENSE
90
+ - README.md
91
+ - Rakefile
92
+ - bin/nginx_test_helper
93
+ - lib/nginx_test_helper.rb
94
+ - lib/nginx_test_helper/command_line_tool.rb
95
+ - lib/nginx_test_helper/config.rb
96
+ - lib/nginx_test_helper/env_methods.rb
97
+ - lib/nginx_test_helper/rspec_utils.rb
98
+ - lib/nginx_test_helper/version.rb
99
+ - nginx_test_helper.gemspec
100
+ - spec/nginx_test_helper/command_line_tool_spec.rb
101
+ - spec/nginx_test_helper/config_spec.rb
102
+ - spec/nginx_test_helper/env_methods_spec.rb
103
+ - spec/nginx_test_helper/rspec_utils_spec.rb
104
+ - spec/nginx_test_helper_spec.rb
105
+ - spec/spec_helper.rb
106
+ - templates/INSTALL
107
+ - templates/spec/example2_spec.rb
108
+ - templates/spec/example_spec.rb
109
+ - templates/spec/nginx_configuration.rb
110
+ homepage: ''
111
+ licenses: []
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubyforge_project:
130
+ rubygems_version: 1.8.24
131
+ signing_key:
132
+ specification_version: 3
133
+ summary: A collection of helper methods to test your nginx module.
134
+ test_files:
135
+ - spec/nginx_test_helper/command_line_tool_spec.rb
136
+ - spec/nginx_test_helper/config_spec.rb
137
+ - spec/nginx_test_helper/env_methods_spec.rb
138
+ - spec/nginx_test_helper/rspec_utils_spec.rb
139
+ - spec/nginx_test_helper_spec.rb
140
+ - spec/spec_helper.rb