eventmachine-win32 0.5.3 → 0.7.0

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,94 @@
1
+ # $Id: test_httpclient.rb 226 2006-08-10 08:55:49Z blackhedd $
2
+ #
3
+ # Author:: blackhedd (gmail address: garbagecat10).
4
+ # Date:: 8 Apr 2006
5
+ #
6
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
7
+ #
8
+ # This program is made available under the terms of the GPL version 2.
9
+ #
10
+ # See EventMachine and EventMachine::Connection for documentation and
11
+ # usage examples.
12
+ #
13
+ #----------------------------------------------------------------------------
14
+ #
15
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
16
+ #
17
+ # Gmail: garbagecat10
18
+ #
19
+ # This program is free software; you can redistribute it and/or modify
20
+ # it under the terms of the GNU General Public License as published by
21
+ # the Free Software Foundation; either version 2 of the License, or
22
+ # (at your option) any later version.
23
+ #
24
+ # This program is distributed in the hope that it will be useful,
25
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
+ # GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program; if not, write to the Free Software
31
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
32
+ #
33
+ #---------------------------------------------------------------------------
34
+ #
35
+ #
36
+
37
+ $:.unshift "../lib"
38
+ require 'eventmachine'
39
+
40
+ class TestHttpClient < Test::Unit::TestCase
41
+
42
+ def setup
43
+ end
44
+
45
+ def teardown
46
+ end
47
+
48
+ #-------------------------------------
49
+
50
+ def test_http_client
51
+ ok = false
52
+ EventMachine.run {
53
+ c = EventMachine::Protocols::HttpClient.send :request, :host => "www.bayshorenetworks.com", :port => 80
54
+ c.callback {
55
+ ok = true
56
+ EventMachine.stop
57
+ }
58
+ c.errback {EventMachine.stop} # necessary, otherwise a failure blocks the test suite forever.
59
+ }
60
+ assert ok
61
+ end
62
+
63
+ #-------------------------------------
64
+
65
+ def test_http_client_1
66
+ ok = false
67
+ EventMachine.run {
68
+ c = EventMachine::Protocols::HttpClient.send :request, :host => "www.bayshorenetworks.com", :port => 80
69
+ c.callback {ok = true; EventMachine.stop}
70
+ c.errback {EventMachine.stop}
71
+ }
72
+ assert ok
73
+ end
74
+
75
+ #-------------------------------------
76
+
77
+ def test_http_client_2
78
+ ok = false
79
+ EventMachine.run {
80
+ c = EventMachine::Protocols::HttpClient.send :request, :host => "www.bayshorenetworks.com", :port => 80
81
+ c.callback {|result|
82
+ p result
83
+ ok = true;
84
+ EventMachine.stop
85
+ }
86
+ c.errback {EventMachine.stop}
87
+ }
88
+ assert ok
89
+ end
90
+
91
+
92
+ end
93
+
94
+
data/tests/test_ltp.rb ADDED
@@ -0,0 +1,192 @@
1
+ # $Id: test_ltp.rb 278 2006-11-16 15:54:52Z blackhedd $
2
+ #
3
+ # Author:: blackhedd (gmail address: garbagecat10).
4
+ # Date:: 8 Apr 2006
5
+ #
6
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
7
+ #
8
+ # This program is made available under the terms of the GPL version 2.
9
+ #
10
+ # See EventMachine and EventMachine::Connection for documentation and
11
+ # usage examples.
12
+ #
13
+ #----------------------------------------------------------------------------
14
+ #
15
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
16
+ #
17
+ # Gmail: garbagecat10
18
+ #
19
+ # This program is free software; you can redistribute it and/or modify
20
+ # it under the terms of the GNU General Public License as published by
21
+ # the Free Software Foundation; either version 2 of the License, or
22
+ # (at your option) any later version.
23
+ #
24
+ # This program is distributed in the hope that it will be useful,
25
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
+ # GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program; if not, write to the Free Software
31
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
32
+ #
33
+ #---------------------------------------------------------------------------
34
+ #
35
+ #
36
+
37
+ $:.unshift "../lib"
38
+ require 'eventmachine'
39
+
40
+ class TestLineAndTextProtocol < Test::Unit::TestCase
41
+
42
+ TestHost = "127.0.0.1"
43
+ TestPort = 8905
44
+
45
+
46
+ #--------------------------------------------------------------------
47
+
48
+ class SimpleLineTest < EventMachine::Protocols::LineAndTextProtocol
49
+ def receive_line line
50
+ @line_buffer << line
51
+ end
52
+ end
53
+
54
+ def test_simple_lines
55
+ lines_received = []
56
+ Thread.abort_on_exception = true
57
+ EventMachine.run {
58
+ EventMachine.start_server( TestHost, TestPort, SimpleLineTest ) do |conn|
59
+ conn.instance_eval "@line_buffer = lines_received"
60
+ end
61
+ EventMachine.add_timer(4) {raise "test timed out"}
62
+ EventMachine.defer proc {
63
+ t = TCPSocket.new TestHost, TestPort
64
+ t.write [
65
+ "aaa\n", "bbb\r\n", "ccc\n"
66
+ ].join
67
+ t.close
68
+ }, proc {
69
+ EventMachine.stop
70
+ }
71
+ }
72
+ assert_equal( %w(aaa bbb ccc), lines_received )
73
+ end
74
+
75
+ #--------------------------------------------------------------------
76
+
77
+ class SimpleLineTest < EventMachine::Protocols::LineAndTextProtocol
78
+ def receive_error text
79
+ @error_message << text
80
+ end
81
+ end
82
+
83
+ def test_overlength_lines
84
+ lines_received = []
85
+ Thread.abort_on_exception = true
86
+ EventMachine.run {
87
+ EventMachine.start_server( TestHost, TestPort, SimpleLineTest ) do |conn|
88
+ conn.instance_eval "@error_message = lines_received"
89
+ end
90
+ EventMachine.add_timer(4) {raise "test timed out"}
91
+ EventMachine.defer proc {
92
+ t = TCPSocket.new TestHost, TestPort
93
+ t.write "a" * (16*1024 + 1)
94
+ t.write "\n"
95
+ t.close
96
+ }, proc {
97
+ EventMachine.stop
98
+ }
99
+ }
100
+ assert_equal( ["overlength line"], lines_received )
101
+ end
102
+
103
+
104
+ #--------------------------------------------------------------------
105
+
106
+ class LineAndTextTest < EventMachine::Protocols::LineAndTextProtocol
107
+ def post_init
108
+ end
109
+ def receive_line line
110
+ if line =~ /content-length:\s*(\d+)/i
111
+ @content_lenth = $1.to_i
112
+ elsif line.length == 0
113
+ set_binary_mode @content_length
114
+ end
115
+ end
116
+ def receive_binary_data text
117
+ send_data "received #{text.length} bytes"
118
+ close_connection_after_writing
119
+ end
120
+ end
121
+
122
+ def test_lines_and_text
123
+ output = nil
124
+ lines_received = []
125
+ text_received = []
126
+ Thread.abort_on_exception = true
127
+ EventMachine.run {
128
+ EventMachine.start_server( TestHost, TestPort, LineAndTextTest ) do |conn|
129
+ conn.instance_eval "@lines = lines_received; @text = text_received"
130
+ end
131
+ EventMachine.add_timer(4) {raise "test timed out"}
132
+ EventMachine.defer proc {
133
+ t = TCPSocket.new TestHost, TestPort
134
+ t.puts "Content-length: 400"
135
+ t.puts
136
+ t.write "A" * 400
137
+ output = t.read
138
+ t.close
139
+ }, proc {
140
+ EventMachine.stop
141
+ }
142
+ }
143
+ assert_equal( "received 400 bytes", output )
144
+ end
145
+
146
+ #--------------------------------------------------------------------
147
+
148
+
149
+ class BinaryTextTest < EventMachine::Protocols::LineAndTextProtocol
150
+ def post_init
151
+ end
152
+ def receive_line line
153
+ if line =~ /content-length:\s*(\d+)/i
154
+ set_binary_mode $1.to_i
155
+ else
156
+ raise "protocol error"
157
+ end
158
+ end
159
+ def receive_binary_data text
160
+ send_data "received #{text.length} bytes"
161
+ close_connection_after_writing
162
+ end
163
+ end
164
+
165
+ def test_binary_text
166
+ output = nil
167
+ lines_received = []
168
+ text_received = []
169
+ Thread.abort_on_exception = true
170
+ EventMachine.run {
171
+ EventMachine.start_server( TestHost, TestPort, BinaryTextTest ) do |conn|
172
+ conn.instance_eval "@lines = lines_received; @text = text_received"
173
+ end
174
+ EventMachine.add_timer(4) {raise "test timed out"}
175
+ EventMachine.defer proc {
176
+ t = TCPSocket.new TestHost, TestPort
177
+ t.puts "Content-length: 10000"
178
+ t.write "A" * 10000
179
+ output = t.read
180
+ t.close
181
+ }, proc {
182
+ EventMachine.stop
183
+ }
184
+ }
185
+ assert_equal( "received 10000 bytes", output )
186
+ end
187
+
188
+ #--------------------------------------------------------------------
189
+
190
+ end
191
+
192
+
data/tests/test_ud.rb ADDED
@@ -0,0 +1,52 @@
1
+ # $Id: test_ud.rb 269 2006-10-25 23:31:15Z blackhedd $
2
+ #
3
+ # Author:: blackhedd (gmail address: garbagecat10).
4
+ # Date:: 8 Apr 2006
5
+ #
6
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
7
+ #
8
+ # This program is made available under the terms of the GPL version 2.
9
+ #
10
+ # See EventMachine and EventMachine::Connection for documentation and
11
+ # usage examples.
12
+ #
13
+ #----------------------------------------------------------------------------
14
+ #
15
+ # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
16
+ #
17
+ # Gmail: garbagecat10
18
+ #
19
+ # This program is free software; you can redistribute it and/or modify
20
+ # it under the terms of the GNU General Public License as published by
21
+ # the Free Software Foundation; either version 2 of the License, or
22
+ # (at your option) any later version.
23
+ #
24
+ # This program is distributed in the hope that it will be useful,
25
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
+ # GNU General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program; if not, write to the Free Software
31
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
32
+ #
33
+ #---------------------------------------------------------------------------
34
+ #
35
+ #
36
+
37
+ $:.unshift "../lib"
38
+ require 'eventmachine'
39
+
40
+ class TestUserDefinedEvents < Test::Unit::TestCase
41
+
42
+ def setup
43
+ end
44
+
45
+ def teardown
46
+ end
47
+
48
+ def test_a
49
+ end
50
+
51
+ end
52
+
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: eventmachine-win32
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.3
7
- date: 2006-05-18 00:00:00 -04:00
6
+ version: 0.7.0
7
+ date: 2006-11-22 00:00:00 -05:00
8
8
  summary: Ruby/EventMachine socket engine library- binary gem for Win32
9
9
  require_paths:
10
10
  - lib
@@ -25,15 +25,40 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Francis Cianfrocca
30
31
  files:
31
32
  - tests/testem.rb
33
+ - tests/test_basic.rb
34
+ - tests/test_eventables.rb
35
+ - tests/test_hc.rb
36
+ - tests/test_httpclient.rb
37
+ - tests/test_ltp.rb
38
+ - tests/test_ud.rb
39
+ - lib/em
32
40
  - lib/eventmachine.rb
41
+ - lib/eventmachine_version.rb
42
+ - lib/evma
43
+ - lib/evma.rb
44
+ - lib/protocols
45
+ - lib/pr_eventmachine.rb
33
46
  - lib/rubyeventmachine.so
47
+ - lib/em/deferrable.rb
48
+ - lib/em/eventable.rb
49
+ - lib/evma/callback.rb
50
+ - lib/evma/container.rb
51
+ - lib/evma/factory.rb
52
+ - lib/evma/protocol.rb
53
+ - lib/evma/reactor.rb
54
+ - lib/protocols/header_and_content.rb
55
+ - lib/protocols/httpclient.rb
56
+ - lib/protocols/line_and_text.rb
57
+ - lib/protocols/tcptest.rb
34
58
  - README
35
59
  - RELEASE_NOTES
36
60
  - COPYING
61
+ - TODO
37
62
  test_files:
38
63
  - tests/testem.rb
39
64
  rdoc_options:
@@ -46,6 +71,7 @@ extra_rdoc_files:
46
71
  - README
47
72
  - RELEASE_NOTES
48
73
  - COPYING
74
+ - TODO
49
75
  executables: []
50
76
 
51
77
  extensions: []