celluloid-http 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,14 @@
1
+ class TcpSocketStub
2
+ extend Forwardable
3
+
4
+ def_delegators :@file, :readpartial, :read, :close
5
+
6
+ def initialize(file)
7
+ @file = file
8
+ end
9
+
10
+ def write(*args)
11
+ # stub
12
+ end
13
+
14
+ end
@@ -0,0 +1,20 @@
1
+ require 'bundler/setup'
2
+ Bundler.require
3
+
4
+ require 'minitest/autorun'
5
+ require "mocha/setup"
6
+
7
+ Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
8
+
9
+ class TestCase < MiniTest::Unit::TestCase
10
+
11
+ def fixture_file(name)
12
+ File.open("test/fixtures/#{name}")
13
+ end
14
+
15
+ def stub_connection_with_fixture(name)
16
+ socket = TcpSocketStub.new fixture_file(name)
17
+ Celluloid::IO::TCPSocket.stubs(:new).returns(socket)
18
+ end
19
+
20
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class HttpTest < TestCase
4
+
5
+ def test_get_http_request
6
+ stub_connection_with_fixture("en.wikipedia.org")
7
+
8
+ request = Celluloid::Http::Request.new 'http://en.wikipedia.org/wiki/Http'
9
+ response = Celluloid::Http.send_requst request
10
+
11
+ assert_match /Wikipedia, the free encyclopedia/, response.body
12
+ end
13
+
14
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class RequestTest < TestCase
4
+
5
+ def test_create_http_request
6
+ url = 'http://en.wikipedia.org/wiki/Http?param=value'
7
+
8
+ request = Celluloid::Http::Request.new url
9
+
10
+ assert_equal url, request.url
11
+ assert_equal :get, request.method
12
+ assert_equal 80, request.port
13
+ assert_equal "http", request.scheme
14
+ assert_equal "en.wikipedia.org", request.host
15
+ assert_equal "/wiki/Http", request.path
16
+ assert_equal "param=value", request.query
17
+ end
18
+
19
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ class ResponseTest < TestCase
4
+
5
+ def test_create_http_response
6
+ body = '<!DOCTYPE html><html><head><heed><body>BODY</body></html>'
7
+ headers = {"Content-Length" => '172911'}
8
+ response = Celluloid::Http::Response.new :ok, headers, body
9
+
10
+ assert_equal :ok, response.status
11
+ assert_equal headers, response.headers
12
+ assert_equal body, response.body
13
+ end
14
+
15
+ def test_parse_http_response
16
+ fixture_response = fixture_file("en.wikipedia.org")
17
+
18
+ response = Celluloid::Http::Response.new
19
+
20
+ while chunk = fixture_response.read(128)
21
+ response << chunk
22
+ end
23
+
24
+ assert response.finished?
25
+ assert_equal 200, response.status
26
+ assert_equal "172911", response.headers["Content-Length"]
27
+ assert_equal "en", response.headers["Content-Language"]
28
+ end
29
+
30
+
31
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: celluloid-http
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rozhnov Alexandr
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: celluloid-io
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: http_parser.rb
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: turn
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
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: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
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'
78
+ - !ruby/object:Gem::Dependency
79
+ name: mocha
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Http requests for celluloid.
95
+ email:
96
+ - gnox73@gmail.com
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files: []
100
+ files:
101
+ - .gitignore
102
+ - Gemfile
103
+ - LICENSE.txt
104
+ - README.md
105
+ - Rakefile
106
+ - celluloid-http.gemspec
107
+ - lib/celluloid-http.rb
108
+ - lib/celluloid-http/connection.rb
109
+ - lib/celluloid-http/http.rb
110
+ - lib/celluloid-http/request.rb
111
+ - lib/celluloid-http/response.rb
112
+ - lib/celluloid-http/version.rb
113
+ - test/fixtures/en.wikipedia.org
114
+ - test/support/tcp_socket_stub.rb
115
+ - test/test_helper.rb
116
+ - test/unit/http_test.rb
117
+ - test/unit/request_test.rb
118
+ - test/unit/response_test.rb
119
+ homepage: ''
120
+ licenses: []
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 1.8.24
140
+ signing_key:
141
+ specification_version: 3
142
+ summary: Http requests for celluloid. Based on Celluloid::IO.
143
+ test_files:
144
+ - test/fixtures/en.wikipedia.org
145
+ - test/support/tcp_socket_stub.rb
146
+ - test/test_helper.rb
147
+ - test/unit/http_test.rb
148
+ - test/unit/request_test.rb
149
+ - test/unit/response_test.rb