rufus-jig 0.1.23 → 1.0.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.
- data/.rspec +1 -0
- data/CHANGELOG.txt +8 -0
- data/README.rdoc +41 -11
- data/Rakefile +37 -12
- data/TODO.txt +6 -3
- data/lib/rufus/jig/adapters/em.rb +21 -24
- data/lib/rufus/jig/adapters/net.rb +3 -4
- data/lib/rufus/jig/adapters/net_persistent.rb +26 -7
- data/lib/rufus/jig/adapters/patron.rb +25 -10
- data/lib/rufus/jig/couch.rb +199 -36
- data/lib/rufus/jig/http.rb +183 -90
- data/lib/rufus/jig/path.rb +4 -4
- data/lib/rufus/jig/version.rb +1 -1
- data/rufus-jig.gemspec +55 -34
- data/spec/couch/attachements_spec.rb +113 -0
- data/spec/couch/basic_auth_spec.rb +75 -0
- data/spec/couch/conditional_spec.rb +178 -0
- data/spec/couch/continuous.rb +97 -0
- data/spec/couch/couch_spec.rb +64 -0
- data/spec/couch/db_spec.rb +366 -0
- data/{test → spec/couch}/tweet.png +0 -0
- data/spec/couch/views_spec.rb +326 -0
- data/spec/couch_url.txt +2 -0
- data/spec/jig/basic_auth_spec.rb +51 -0
- data/spec/jig/conditional_spec.rb +76 -0
- data/spec/jig/delete_spec.rb +32 -0
- data/spec/jig/get_spec.rb +116 -0
- data/spec/jig/misc_spec.rb +120 -0
- data/spec/jig/new_spec.rb +95 -0
- data/spec/jig/parse_uri_spec.rb +139 -0
- data/spec/jig/post_spec.rb +79 -0
- data/spec/jig/prefix_spec.rb +51 -0
- data/spec/jig/put_spec.rb +68 -0
- data/spec/jig/timeout_spec.rb +94 -0
- data/{test → spec}/server.rb +14 -4
- data/spec/spec_helper.rb +61 -0
- data/spec/support/couch_helper.rb +14 -0
- data/spec/support/server_helper.rb +32 -0
- metadata +98 -43
- data/lib/rufus/jig/adapters/net_response.rb +0 -42
- data/test/base.rb +0 -53
- data/test/bm/bm0.rb +0 -49
- data/test/bm/bm1.rb +0 -43
- data/test/conc/put_vs_delete.rb +0 -28
- data/test/couch_base.rb +0 -52
- data/test/couch_url.txt +0 -1
- data/test/ct_0_couch.rb +0 -64
- data/test/ct_1_couchdb.rb +0 -204
- data/test/ct_2_couchdb_options.rb +0 -50
- data/test/ct_3_couchdb_views.rb +0 -106
- data/test/ct_4_attachments.rb +0 -126
- data/test/ct_5_couchdb_continuous.rb +0 -92
- data/test/cut_0_auth_couch.rb +0 -62
- data/test/test.rb +0 -28
- data/test/to.sh +0 -25
- data/test/tt_0_get_timeout.rb +0 -92
- data/test/ut_0_http_get.rb +0 -191
- data/test/ut_1_http_post.rb +0 -81
- data/test/ut_2_http_delete.rb +0 -42
- data/test/ut_3_http_put.rb +0 -105
- data/test/ut_4_http_prefix.rb +0 -50
- data/test/ut_5_http_misc.rb +0 -65
- data/test/ut_6_args.rb +0 -98
- data/test/ut_7_parse_uri.rb +0 -79
- data/test/ut_8_auth.rb +0 -37
data/test/ct_4_attachments.rb
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# testing rufus-jig
|
4
|
-
#
|
5
|
-
# Wed Feb 24 17:29:39 JST 2010
|
6
|
-
#
|
7
|
-
|
8
|
-
require File.join(File.dirname(__FILE__), 'couch_base')
|
9
|
-
|
10
|
-
|
11
|
-
class CtAttachmentsTest < Test::Unit::TestCase
|
12
|
-
|
13
|
-
def setup
|
14
|
-
|
15
|
-
h = Rufus::Jig::Http.new(couch_url)
|
16
|
-
begin
|
17
|
-
h.delete('/rufus_jig_test')
|
18
|
-
rescue Exception => e
|
19
|
-
#p e
|
20
|
-
end
|
21
|
-
|
22
|
-
h.put('/rufus_jig_test', '')
|
23
|
-
h.close
|
24
|
-
|
25
|
-
@c = Rufus::Jig::Couch.new(couch_url, 'rufus_jig_test')
|
26
|
-
|
27
|
-
@c.put('_id' => 'thedoc', 'function' => 'recipient for attachements')
|
28
|
-
@d = @c.get('thedoc')
|
29
|
-
end
|
30
|
-
|
31
|
-
def teardown
|
32
|
-
|
33
|
-
@c.close
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_missing_content_type
|
37
|
-
|
38
|
-
assert_raise ArgumentError do
|
39
|
-
|
40
|
-
@c.attach(
|
41
|
-
'thedoc/message', 'this is a message', :content_type => 'text/plain')
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_attach
|
46
|
-
|
47
|
-
r = @c.attach(
|
48
|
-
'thedoc', @d['_rev'], 'message', 'this is a message',
|
49
|
-
:content_type => 'text/plain')
|
50
|
-
|
51
|
-
#assert_not_equal @d['_rev'], r['_rev']
|
52
|
-
|
53
|
-
assert_equal 'this is a message', @c.get('thedoc/message')
|
54
|
-
|
55
|
-
assert_not_equal @d['_rev'], @c.get('thedoc')['_rev']
|
56
|
-
|
57
|
-
r = @c.http.get('/rufus_jig_test/thedoc/message', :raw => true)
|
58
|
-
|
59
|
-
assert_equal 200, r.status
|
60
|
-
assert_equal 'text/plain', r.headers['Content-Type']
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_attach_with_doc
|
64
|
-
|
65
|
-
@c.attach(
|
66
|
-
@d, 'message', 'this is a message', :content_type => 'text/plain')
|
67
|
-
|
68
|
-
assert_equal 'this is a message', @c.get('thedoc/message')
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_wrong_rev_on_attach
|
72
|
-
|
73
|
-
assert_raise Rufus::Jig::HttpError do
|
74
|
-
@c.attach(
|
75
|
-
'thedoc', '1-745aeb1d8eccafa88e635b813507608c',
|
76
|
-
'message', 'this is a message',
|
77
|
-
:content_type => 'text/plain')
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_attach_image
|
82
|
-
|
83
|
-
image = File.read(File.join(File.dirname(__FILE__), 'tweet.png'))
|
84
|
-
|
85
|
-
@c.attach(
|
86
|
-
'thedoc', @d['_rev'], 'image', image, :content_type => 'image/png')
|
87
|
-
|
88
|
-
r = @c.http.get('/rufus_jig_test/thedoc/image', :raw => true)
|
89
|
-
|
90
|
-
assert_equal 200, r.status
|
91
|
-
assert_equal 'image/png', r.headers['Content-Type']
|
92
|
-
|
93
|
-
#File.open('out.png', 'wb') { |f| f.write(r.body) }
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_detach
|
97
|
-
|
98
|
-
attach_image
|
99
|
-
|
100
|
-
d = @c.get('thedoc')
|
101
|
-
|
102
|
-
r = @c.detach('thedoc', d['_rev'], 'image')
|
103
|
-
|
104
|
-
assert_not_equal d['_rev'], r['_rev']
|
105
|
-
|
106
|
-
assert_nil @c.get('thedoc/image')
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_detach_fail
|
110
|
-
|
111
|
-
attach_image
|
112
|
-
|
113
|
-
assert_equal true, @c.detach(@d, 'image')
|
114
|
-
end
|
115
|
-
|
116
|
-
protected
|
117
|
-
|
118
|
-
def attach_image
|
119
|
-
|
120
|
-
image = File.read(File.join(File.dirname(__FILE__), 'tweet.png'))
|
121
|
-
|
122
|
-
@c.attach(
|
123
|
-
'thedoc', @d['_rev'], 'image', image, :content_type => 'image/png')
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
@@ -1,92 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
#
|
4
|
-
# testing rufus-jig
|
5
|
-
#
|
6
|
-
# Tue May 11 09:52:37 JST 2010
|
7
|
-
#
|
8
|
-
|
9
|
-
require File.join(File.dirname(__FILE__), 'couch_base')
|
10
|
-
|
11
|
-
|
12
|
-
class CtCouchDbContinuousTest < Test::Unit::TestCase
|
13
|
-
|
14
|
-
def setup
|
15
|
-
|
16
|
-
h = Rufus::Jig::Http.new(couch_url)
|
17
|
-
|
18
|
-
begin
|
19
|
-
h.delete('/rufus_jig_test')
|
20
|
-
rescue Exception => e
|
21
|
-
#p e
|
22
|
-
end
|
23
|
-
h.put('/rufus_jig_test', '')
|
24
|
-
h.close
|
25
|
-
|
26
|
-
@c = Rufus::Jig::Couch.new(couch_url, 'rufus_jig_test')
|
27
|
-
end
|
28
|
-
|
29
|
-
def teardown
|
30
|
-
|
31
|
-
@c.close
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_on_change
|
35
|
-
|
36
|
-
stack = []
|
37
|
-
|
38
|
-
t = Thread.new do
|
39
|
-
@c.on_change { |doc_id, deleted| stack << doc_id }
|
40
|
-
end
|
41
|
-
|
42
|
-
@c.put('_id' => 'angel0', 'name' => 'samael')
|
43
|
-
@c.put('_id' => 'angel1', 'name' => 'raphael')
|
44
|
-
|
45
|
-
sleep 0.150
|
46
|
-
t.kill
|
47
|
-
|
48
|
-
assert_equal 2, stack.size
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_on_change_include_docs
|
52
|
-
|
53
|
-
stack = []
|
54
|
-
|
55
|
-
Thread.abort_on_exception = true
|
56
|
-
|
57
|
-
t = Thread.new do
|
58
|
-
@c.on_change { |doc_id, deleted, doc| stack << doc }
|
59
|
-
end
|
60
|
-
|
61
|
-
@c.put('_id' => 'angel2', 'name' => 'samael')
|
62
|
-
@c.put('_id' => 'angel3', 'name' => 'ゆきひろ')
|
63
|
-
|
64
|
-
sleep 0.150
|
65
|
-
t.kill
|
66
|
-
|
67
|
-
assert_equal 'ゆきひろ', stack[1]['name']
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_on_change_include_docs_with_deleted
|
71
|
-
|
72
|
-
stack = []
|
73
|
-
|
74
|
-
Thread.abort_on_exception = true
|
75
|
-
|
76
|
-
t = Thread.new do
|
77
|
-
@c.on_change { |doc_id, deleted, doc| stack << [ doc_id, deleted ] }
|
78
|
-
end
|
79
|
-
|
80
|
-
@c.put('_id' => 'angel4', 'name' => 'samael')
|
81
|
-
sleep 0.077
|
82
|
-
@c.delete(@c.get('angel4'))
|
83
|
-
|
84
|
-
sleep 0.154
|
85
|
-
t.kill
|
86
|
-
|
87
|
-
assert(
|
88
|
-
[["angel4", false], ["angel4", true]] == stack ||
|
89
|
-
[["angel4", true]] == stack)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
data/test/cut_0_auth_couch.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# testing rufus-jig
|
4
|
-
#
|
5
|
-
# Sun Sep 26 18:26:15 JST 2010
|
6
|
-
#
|
7
|
-
|
8
|
-
require File.join(File.dirname(__FILE__), 'base')
|
9
|
-
|
10
|
-
|
11
|
-
class UtAuthTest < Test::Unit::TestCase
|
12
|
-
|
13
|
-
def setup
|
14
|
-
@c = Rufus::Jig::Couch.new(
|
15
|
-
'127.0.0.1', 4567, 'tcouch', :basic_auth => %w[ admin nimda ])
|
16
|
-
end
|
17
|
-
def teardown
|
18
|
-
@c.close
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_denied
|
22
|
-
|
23
|
-
c = Rufus::Jig::Couch.new('127.0.0.1', 4567, 'tcouch')
|
24
|
-
|
25
|
-
assert_raise Rufus::Jig::HttpError do
|
26
|
-
c.get('.')
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_authorized
|
31
|
-
|
32
|
-
assert_equal({ 'id' => 'nada' }, @c.get('.'))
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_on_change
|
36
|
-
|
37
|
-
res = nil
|
38
|
-
|
39
|
-
t = Thread.new {
|
40
|
-
@c.on_change do |id, deleted, doc|
|
41
|
-
res = [ id, deleted, doc ]
|
42
|
-
end
|
43
|
-
}
|
44
|
-
|
45
|
-
sleep 0.200
|
46
|
-
|
47
|
-
t.kill
|
48
|
-
|
49
|
-
assert_equal [ 'x', false, { 'hello' => 'world' } ], res
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_on_change_denied
|
53
|
-
|
54
|
-
c = Rufus::Jig::Couch.new('127.0.0.1', 4567, 'tcouch')
|
55
|
-
|
56
|
-
assert_raise Rufus::Jig::HttpError do
|
57
|
-
c.on_change do |id, deleted, doc|
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
data/test/test.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# testing rufus-jig
|
4
|
-
#
|
5
|
-
# Sat Oct 31 22:44:08 JST 2009
|
6
|
-
#
|
7
|
-
|
8
|
-
def load_tests (prefix)
|
9
|
-
|
10
|
-
dp = File.dirname(__FILE__)
|
11
|
-
|
12
|
-
Dir.new(dp).entries.select { |e|
|
13
|
-
e.match(/^#{prefix}\_.*\.rb$/)
|
14
|
-
}.sort.each { |e|
|
15
|
-
load("#{dp}/#{e}")
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
set = if ARGV.include?('--all')
|
20
|
-
%w[ ut ct ]
|
21
|
-
elsif ARGV.include?('--couch')
|
22
|
-
%w[ ct ]
|
23
|
-
else
|
24
|
-
%w[ ut cut ]
|
25
|
-
end
|
26
|
-
|
27
|
-
set.each { |prefix| load_tests(prefix) }
|
28
|
-
|
data/test/to.sh
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
echo
|
4
|
-
echo "================================================================================"
|
5
|
-
echo "ruby test/ut_7_http_get_timeout.rb -- --patron"
|
6
|
-
ruby -v
|
7
|
-
echo
|
8
|
-
ruby test/ut_7_http_get_timeout.rb -- --patron
|
9
|
-
|
10
|
-
echo
|
11
|
-
echo "================================================================================"
|
12
|
-
echo "ruby test/ut_7_http_get_timeout.rb -- --net"
|
13
|
-
ruby -v
|
14
|
-
echo
|
15
|
-
ruby test/ut_7_http_get_timeout.rb -- --net
|
16
|
-
|
17
|
-
echo
|
18
|
-
echo "================================================================================"
|
19
|
-
echo "ruby test/ut_7_http_get_timeout.rb -- --em"
|
20
|
-
ruby -v
|
21
|
-
echo
|
22
|
-
ruby test/ut_7_http_get_timeout.rb -- --em
|
23
|
-
|
24
|
-
echo
|
25
|
-
|
data/test/tt_0_get_timeout.rb
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# testing rufus-jig
|
4
|
-
#
|
5
|
-
# Tue Mar 9 11:09:43 JST 2010
|
6
|
-
#
|
7
|
-
|
8
|
-
require File.join(File.dirname(__FILE__), 'base')
|
9
|
-
|
10
|
-
|
11
|
-
class UtHttpGetTimeoutTest < Test::Unit::TestCase
|
12
|
-
|
13
|
-
#def setup
|
14
|
-
#end
|
15
|
-
def teardown
|
16
|
-
@h.close
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_timeout_after_1
|
20
|
-
|
21
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567, :timeout => 1)
|
22
|
-
|
23
|
-
t = nil
|
24
|
-
|
25
|
-
assert_raise Rufus::Jig::TimeoutError do
|
26
|
-
t = Time.now
|
27
|
-
@h.get('/later')
|
28
|
-
end
|
29
|
-
|
30
|
-
d = Time.now - t; dd = 4.0; assert d < dd, "after #{d} seconds (#{dd})"
|
31
|
-
# grr, em-http-request forces me to use 4.0 (2.0 for the others)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_timeout_after_5
|
35
|
-
|
36
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567)
|
37
|
-
|
38
|
-
t = nil
|
39
|
-
|
40
|
-
assert_raise Rufus::Jig::TimeoutError do
|
41
|
-
t = Time.now
|
42
|
-
@h.get('/later')
|
43
|
-
end
|
44
|
-
|
45
|
-
d = Time.now - t; dd = 6.0; assert d < dd, "after #{d} seconds (#{dd})"
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_timeout_after_15
|
49
|
-
|
50
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567, :timeout => 15)
|
51
|
-
|
52
|
-
t = Time.now
|
53
|
-
|
54
|
-
r = begin
|
55
|
-
@h.get('/later')
|
56
|
-
rescue Rufus::Jig::TimeoutError => e
|
57
|
-
puts " :( timed out after #{Time.now - t} seconds"
|
58
|
-
flunk
|
59
|
-
end
|
60
|
-
|
61
|
-
assert_equal 'later', r
|
62
|
-
d = Time.now - t; dd = 8.0; assert d < dd, "after #{d} seconds (#{dd})"
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_never_timeout
|
66
|
-
|
67
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567, :timeout => -1)
|
68
|
-
|
69
|
-
t = Time.now
|
70
|
-
|
71
|
-
r = @h.get('/later')
|
72
|
-
|
73
|
-
assert_equal 'later', r
|
74
|
-
d = Time.now - t; dd = 8.0; assert d < dd, "after #{d} seconds (#{dd})"
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_request_timeout_after_1
|
78
|
-
|
79
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567, :timeout => 15)
|
80
|
-
|
81
|
-
t = nil
|
82
|
-
|
83
|
-
assert_raise Rufus::Jig::TimeoutError do
|
84
|
-
t = Time.now
|
85
|
-
@h.get('/later', :timeout => 1)
|
86
|
-
end
|
87
|
-
|
88
|
-
d = Time.now - t; dd = 4.0; assert d < dd, "after #{d} seconds (#{dd})"
|
89
|
-
# grr, em-http-request forces me to use 4.0 (2.0 for the others)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
data/test/ut_0_http_get.rb
DELETED
@@ -1,191 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
#
|
4
|
-
# testing rufus-jig
|
5
|
-
#
|
6
|
-
# Fri Oct 30 17:57:15 JST 2009
|
7
|
-
#
|
8
|
-
|
9
|
-
require File.join(File.dirname(__FILE__), 'base')
|
10
|
-
|
11
|
-
|
12
|
-
class UtHttpGetTest < Test::Unit::TestCase
|
13
|
-
|
14
|
-
def setup
|
15
|
-
@h = Rufus::Jig::Http.new('127.0.0.1', 4567)
|
16
|
-
end
|
17
|
-
def teardown
|
18
|
-
@h.close
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_get_root
|
22
|
-
|
23
|
-
r = @h.get('/')
|
24
|
-
|
25
|
-
assert_equal 'hello', r
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_get
|
29
|
-
|
30
|
-
r = @h.get('/document')
|
31
|
-
|
32
|
-
assert_equal Hash, r.class
|
33
|
-
assert_equal 'Mercedes-Benz', r['car']
|
34
|
-
|
35
|
-
assert_equal 0, @h.cache.size
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_get_raw
|
39
|
-
|
40
|
-
r = @h.get('/document', :raw => true)
|
41
|
-
|
42
|
-
assert_equal 200, r.status
|
43
|
-
assert_equal "{\"car\":\"Mercedes-Benz\"}", r.body
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_get_404
|
47
|
-
|
48
|
-
r = @h.get('/missing')
|
49
|
-
|
50
|
-
assert_nil r
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_get_404_raw
|
54
|
-
|
55
|
-
r = @h.get('/missing', :raw => true)
|
56
|
-
|
57
|
-
assert_equal 404, r.status
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_get_500
|
61
|
-
|
62
|
-
assert_raise Rufus::Jig::HttpError do
|
63
|
-
@h.get('/server_error')
|
64
|
-
end
|
65
|
-
|
66
|
-
assert_equal 500, @h.last_response.status
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_get_500_raw
|
70
|
-
|
71
|
-
r = @h.get('/server_error', :raw => true)
|
72
|
-
|
73
|
-
assert_equal 500, r.status
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_get_with_accept
|
77
|
-
|
78
|
-
r = @h.get('/document_accept', :accept => 'text/plain')
|
79
|
-
|
80
|
-
assert_equal '{"car":"Saab"}', r
|
81
|
-
|
82
|
-
r = @h.get('/document_accept', :accept => 'application/json')
|
83
|
-
|
84
|
-
assert_equal Hash, r.class
|
85
|
-
assert_equal 'Saab', r['car']
|
86
|
-
|
87
|
-
assert_equal 0, @h.cache.size
|
88
|
-
|
89
|
-
r = @h.get('/document_accept', :accept => :json)
|
90
|
-
|
91
|
-
assert_equal Hash, r.class
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_get_force_json
|
95
|
-
|
96
|
-
r = @h.get('/document_json_plain', :accept => :json)
|
97
|
-
|
98
|
-
assert_equal('{"car":"Peugeot"}', r)
|
99
|
-
|
100
|
-
r = @h.get('/document_json_plain', :force_json => true)
|
101
|
-
|
102
|
-
assert_equal({ 'car' => 'Peugeot' }, r)
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_conditional_get
|
106
|
-
|
107
|
-
b = @h.get('/document_with_etag')
|
108
|
-
|
109
|
-
etag = @h.last_response.headers['Etag']
|
110
|
-
|
111
|
-
assert_equal Hash, b.class
|
112
|
-
assert_equal 'Peugeot', b['car']
|
113
|
-
|
114
|
-
assert_equal 200, @h.last_response.status
|
115
|
-
|
116
|
-
assert_equal({"/document_with_etag"=>["\"123456123456\"", {"car"=>"Peugeot"}]}, @h.cache)
|
117
|
-
|
118
|
-
r = @h.get('/document_with_etag', :etag => etag)
|
119
|
-
|
120
|
-
assert_equal Hash, r.class
|
121
|
-
assert_equal 'Peugeot', r['car']
|
122
|
-
|
123
|
-
assert_equal 304, @h.last_response.status
|
124
|
-
|
125
|
-
assert_equal 1, @h.cache.size
|
126
|
-
|
127
|
-
r = @h.get('/document_with_etag', :etag => etag, :raw => true)
|
128
|
-
|
129
|
-
assert_equal 304, r.status
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_cget_dup_body
|
133
|
-
|
134
|
-
b = @h.get('/document_with_etag')
|
135
|
-
etag = @h.last_response.headers['Etag']
|
136
|
-
b['year'] = 1977
|
137
|
-
|
138
|
-
assert_equal({"/document_with_etag"=>["\"123456123456\"", {"car"=>"Peugeot"}]}, @h.cache)
|
139
|
-
|
140
|
-
b = @h.get('/document_with_etag', :etag => etag)
|
141
|
-
|
142
|
-
assert_equal 304, @h.last_response.status
|
143
|
-
|
144
|
-
b['year'] = 1977
|
145
|
-
|
146
|
-
assert_equal({"/document_with_etag"=>["\"123456123456\"", {"car"=>"Peugeot"}]}, @h.cache)
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_cget_dont_cache
|
150
|
-
|
151
|
-
b = @h.get('/document_with_etag', :cache => false)
|
152
|
-
|
153
|
-
assert_equal 0, @h.cache.size
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_get_params
|
157
|
-
|
158
|
-
assert_equal(
|
159
|
-
{},
|
160
|
-
@h.get('/params'))
|
161
|
-
assert_equal(
|
162
|
-
{ 'a' => 'b' },
|
163
|
-
@h.get('/params?a=b'))
|
164
|
-
assert_equal(
|
165
|
-
{ 'a' => 'b', 'c' => 'd' },
|
166
|
-
@h.get('/params?a=b', :params => { :c => 'd' }))
|
167
|
-
assert_equal(
|
168
|
-
{ 'a' => 'b', 'c' => 'd' },
|
169
|
-
@h.get('/params', :params => { 'a' => :b, :c => 'd' }))
|
170
|
-
assert_equal(
|
171
|
-
{},
|
172
|
-
@h.get('/params', :params => {}))
|
173
|
-
end
|
174
|
-
|
175
|
-
def test_etag_but_missing
|
176
|
-
|
177
|
-
b = @h.get('/document_with_etag', :etag => '"123456123456"')
|
178
|
-
|
179
|
-
assert_equal 'Peugeot', b['car']
|
180
|
-
assert_equal 200, @h.last_response.status
|
181
|
-
end
|
182
|
-
|
183
|
-
def test_get_utf8_uri
|
184
|
-
|
185
|
-
b = @h.get('/川崎')
|
186
|
-
|
187
|
-
assert_nil b
|
188
|
-
assert_equal 404, @h.last_response.status
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|