reverse-tunnel 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe ReverseTunnel::Server::Tunnels do
4
+
5
+ describe "#create_token" do
6
+
7
+ it "should be very long" do
8
+ subject.create_token.size.should >= 28
9
+ end
10
+
11
+ end
12
+
13
+ describe "#available_local_port" do
14
+
15
+ before do
16
+ subject.local_port_range = 1000..1001
17
+ subject.stub :used_local_ports => 1000
18
+ subject.available_local_port.should == 1001
19
+ end
20
+
21
+ end
22
+
23
+ describe "#create" do
24
+
25
+ it "should create a default token when no specified" do
26
+ subject.stub :create_token => "dummy"
27
+ subject.create.token.should == "dummy"
28
+ end
29
+
30
+ it "should use available local port when no specified" do
31
+ subject.stub :available_local_port => 123
32
+ subject.create.local_port.should == 123
33
+ end
34
+
35
+ it "should add tunnel" do
36
+ tunnel = subject.create "token" => "test"
37
+ subject.find("test").should == tunnel
38
+ end
39
+
40
+ end
41
+
42
+ describe "#destroy" do
43
+
44
+ let(:tunnel) { subject.create }
45
+
46
+ it "should remove tunnel" do
47
+ subject.destroy tunnel.token
48
+ subject.find(tunnel.token).should be_nil
49
+ end
50
+
51
+ it "should close tunnel" do
52
+ tunnel.should_receive(:close)
53
+ subject.destroy tunnel.token
54
+ end
55
+
56
+ it "should return removed tunnel" do
57
+ subject.destroy(tunnel.token).should == tunnel
58
+ end
59
+
60
+ it "should return nil if no tunnel is found" do
61
+ subject.destroy("dummy").should be_nil
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe ReverseTunnel::Server do
4
+
5
+ describe "#server_host" do
6
+
7
+ it "should be '0.0.0.0' by default" do
8
+ subject.server_host.should == '0.0.0.0'
9
+ end
10
+
11
+ end
12
+
13
+ describe "#server_port" do
14
+
15
+ it "should be 4893 by default" do
16
+ subject.server_port.should == 4893
17
+ end
18
+
19
+ end
20
+
21
+ describe "#start_server" do
22
+ it "should use server_host and server_port" do
23
+ subject.server_host = "localhost"
24
+ subject.server_port = 123
25
+
26
+ EventMachine.should_receive(:start_server).with("localhost", 123, anything, anything)
27
+ subject.start_server
28
+ end
29
+ end
30
+
31
+ describe "#api_host" do
32
+
33
+ it "should be '127.0.0.1' by default" do
34
+ subject.api_host.should == '127.0.0.1'
35
+ end
36
+
37
+ end
38
+
39
+ describe "#api_port" do
40
+
41
+ it "should be 4894 by default" do
42
+ subject.api_port.should == 4894
43
+ end
44
+
45
+ end
46
+
47
+ describe "#start_api" do
48
+ it "should use api_host and api_port" do
49
+ subject.api_host = "localhost"
50
+ subject.api_port = 123
51
+
52
+ EventMachine.should_receive(:start_server).with("localhost", 123, anything, anything)
53
+ subject.start_api
54
+ end
55
+ end
56
+
57
+ end
@@ -0,0 +1,15 @@
1
+ require 'simplecov'
2
+
3
+ SimpleCov.start do
4
+ add_filter "/spec/"
5
+ end
6
+
7
+ require 'reverse-tunnel'
8
+ include ReverseTunnel
9
+
10
+ Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+
14
+
15
+ end
@@ -0,0 +1,9 @@
1
+ FileUtils.mkdir_p "log"
2
+
3
+ def ReverseTunnel.default_logger
4
+ Logger.new("log/test.log")
5
+ end
6
+
7
+ ReverseTunnel.reset_logger!
8
+
9
+
data/tasks/rspec.rake ADDED
@@ -0,0 +1,2 @@
1
+ require 'rspec/core/rake_task'
2
+ RSpec::Core::RakeTask.new('spec')
metadata ADDED
@@ -0,0 +1,280 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reverse-tunnel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alban Peignier
9
+ - Florent Peyraud
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-12-27 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: eventmachine
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: msgpack
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: eventmachine_httpserver
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: json
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: trollop
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: SyslogLogger
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rspec
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: guard
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: guard-rspec
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: rake
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: rest-client
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ description: Create easily a tunnel to forward connection (like a ssh) to the client
208
+ host
209
+ email:
210
+ - alban@tryphon.eu
211
+ - florent@tryphon.eu
212
+ executables:
213
+ - reverse-tunnel
214
+ extensions: []
215
+ extra_rdoc_files: []
216
+ files:
217
+ - .gitignore
218
+ - Gemfile
219
+ - Guardfile
220
+ - LICENSE.txt
221
+ - README.md
222
+ - Rakefile
223
+ - bin/reverse-tunnel
224
+ - lib/reverse-tunnel.rb
225
+ - lib/reverse-tunnel/cli.rb
226
+ - lib/reverse-tunnel/client.rb
227
+ - lib/reverse-tunnel/message.rb
228
+ - lib/reverse-tunnel/server.rb
229
+ - lib/reverse-tunnel/version.rb
230
+ - reverse-tunnel.gemspec
231
+ - spec/reverse-tunnel/cli_spec.rb
232
+ - spec/reverse-tunnel/client/api_server_spec.rb
233
+ - spec/reverse-tunnel/client_spec.rb
234
+ - spec/reverse-tunnel/message_spec.rb
235
+ - spec/reverse-tunnel/server/api_server_spec.rb
236
+ - spec/reverse-tunnel/server/tunnels_spec.rb
237
+ - spec/reverse-tunnel/server_spec.rb
238
+ - spec/spec_helper.rb
239
+ - spec/support/log.rb
240
+ - tasks/rspec.rake
241
+ homepage: http://projects.tryphon.eu/projects/reverse-tunnel
242
+ licenses: []
243
+ post_install_message:
244
+ rdoc_options: []
245
+ require_paths:
246
+ - lib
247
+ required_ruby_version: !ruby/object:Gem::Requirement
248
+ none: false
249
+ requirements:
250
+ - - ! '>='
251
+ - !ruby/object:Gem::Version
252
+ version: '0'
253
+ segments:
254
+ - 0
255
+ hash: -1765288854633900914
256
+ required_rubygems_version: !ruby/object:Gem::Requirement
257
+ none: false
258
+ requirements:
259
+ - - ! '>='
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ segments:
263
+ - 0
264
+ hash: -1765288854633900914
265
+ requirements: []
266
+ rubyforge_project:
267
+ rubygems_version: 1.8.23
268
+ signing_key:
269
+ specification_version: 3
270
+ summary: Forward a tcp connection to client host
271
+ test_files:
272
+ - spec/reverse-tunnel/cli_spec.rb
273
+ - spec/reverse-tunnel/client/api_server_spec.rb
274
+ - spec/reverse-tunnel/client_spec.rb
275
+ - spec/reverse-tunnel/message_spec.rb
276
+ - spec/reverse-tunnel/server/api_server_spec.rb
277
+ - spec/reverse-tunnel/server/tunnels_spec.rb
278
+ - spec/reverse-tunnel/server_spec.rb
279
+ - spec/spec_helper.rb
280
+ - spec/support/log.rb