activeresource 2.3.0 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeresource might be problematic. Click here for more details.
- data/CHANGELOG +2 -2
- data/Rakefile +3 -1
- data/lib/active_resource/base.rb +6 -6
- data/lib/active_resource/http_mock.rb +24 -42
- data/lib/active_resource/validations.rb +1 -1
- data/lib/active_resource/version.rb +1 -1
- data/test/abstract_unit.rb +5 -8
- data/test/authorization_test.rb +4 -4
- data/test/base_test.rb +11 -11
- data/test/connection_test.rb +13 -15
- data/test/setter_trap.rb +2 -3
- metadata +3 -4
- data/test/debug.log +0 -274
data/CHANGELOG
CHANGED
data/Rakefile
CHANGED
@@ -28,6 +28,8 @@ task :default => [ :test ]
|
|
28
28
|
# Run the unit tests
|
29
29
|
|
30
30
|
Rake::TestTask.new { |t|
|
31
|
+
activesupport_path = "#{File.dirname(__FILE__)}/../activesupport/lib"
|
32
|
+
t.libs << activesupport_path if File.directory?(activesupport_path)
|
31
33
|
t.libs << "test"
|
32
34
|
t.pattern = 'test/**/*_test.rb'
|
33
35
|
t.verbose = true
|
@@ -65,7 +67,7 @@ spec = Gem::Specification.new do |s|
|
|
65
67
|
s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
66
68
|
end
|
67
69
|
|
68
|
-
s.add_dependency('activesupport', '= 2.3.
|
70
|
+
s.add_dependency('activesupport', '= 2.3.2' + PKG_BUILD)
|
69
71
|
|
70
72
|
s.require_path = 'lib'
|
71
73
|
s.autorequire = 'active_resource'
|
data/lib/active_resource/base.rb
CHANGED
@@ -462,7 +462,7 @@ module ActiveResource
|
|
462
462
|
# that_guy.valid? # => false
|
463
463
|
# that_guy.new? # => true
|
464
464
|
def create(attributes = {})
|
465
|
-
|
465
|
+
self.new(attributes).tap { |resource| resource.save }
|
466
466
|
end
|
467
467
|
|
468
468
|
# Core method for finding resources. Used similarly to Active Record's +find+ method.
|
@@ -600,7 +600,7 @@ module ActiveResource
|
|
600
600
|
end
|
601
601
|
|
602
602
|
def instantiate_record(record, prefix_options = {})
|
603
|
-
|
603
|
+
new(record).tap do |resource|
|
604
604
|
resource.prefix_options = prefix_options
|
605
605
|
end
|
606
606
|
end
|
@@ -747,7 +747,7 @@ module ActiveResource
|
|
747
747
|
#
|
748
748
|
def ==(other)
|
749
749
|
other.equal?(self) || (other.instance_of?(self.class) && other.id == id && other.prefix_options == prefix_options)
|
750
|
-
|
750
|
+
end
|
751
751
|
|
752
752
|
# Tests for equality (delegates to ==).
|
753
753
|
def eql?(other)
|
@@ -773,7 +773,7 @@ module ActiveResource
|
|
773
773
|
# my_invoice.customer # => That Company
|
774
774
|
# next_invoice.customer # => That Company
|
775
775
|
def dup
|
776
|
-
|
776
|
+
self.class.new.tap do |resource|
|
777
777
|
resource.attributes = @attributes
|
778
778
|
resource.prefix_options = @prefix_options
|
779
779
|
end
|
@@ -985,14 +985,14 @@ module ActiveResource
|
|
985
985
|
|
986
986
|
# Update the resource on the remote service.
|
987
987
|
def update
|
988
|
-
|
988
|
+
connection.put(element_path(prefix_options), encode, self.class.headers).tap do |response|
|
989
989
|
load_attributes_from_response(response)
|
990
990
|
end
|
991
991
|
end
|
992
992
|
|
993
993
|
# Create (i.e., \save to the remote service) the \new resource.
|
994
994
|
def create
|
995
|
-
|
995
|
+
connection.post(collection_path, encode, self.class.headers).tap do |response|
|
996
996
|
self.id = id_from_response(response)
|
997
997
|
load_attributes_from_response(response)
|
998
998
|
end
|
@@ -59,7 +59,7 @@ module ActiveResource
|
|
59
59
|
# end
|
60
60
|
module_eval <<-EOE, __FILE__, __LINE__
|
61
61
|
def #{method}(path, request_headers = {}, body = nil, status = 200, response_headers = {})
|
62
|
-
@responses[Request.new(:#{method}, path, nil, request_headers)
|
62
|
+
@responses << [Request.new(:#{method}, path, nil, request_headers), Response.new(body || "", status, response_headers)]
|
63
63
|
end
|
64
64
|
EOE
|
65
65
|
end
|
@@ -91,21 +91,17 @@ module ActiveResource
|
|
91
91
|
@@requests ||= []
|
92
92
|
end
|
93
93
|
|
94
|
-
# Returns
|
95
|
-
#
|
96
|
-
# ActiveResource::Response.
|
94
|
+
# Returns the list of requests and their mocked responses. Look up a
|
95
|
+
# response for a request using responses.assoc(request).
|
97
96
|
def responses
|
98
|
-
@@responses ||=
|
97
|
+
@@responses ||= []
|
99
98
|
end
|
100
99
|
|
101
100
|
# Accepts a block which declares a set of requests and responses for the HttpMock to respond to. See the main
|
102
101
|
# ActiveResource::HttpMock description for a more detailed explanation.
|
103
102
|
def respond_to(pairs = {}) #:yields: mock
|
104
103
|
reset!
|
105
|
-
pairs.
|
106
|
-
responses[path] = response
|
107
|
-
end
|
108
|
-
|
104
|
+
responses.concat pairs.to_a
|
109
105
|
if block_given?
|
110
106
|
yield Responder.new(responses)
|
111
107
|
else
|
@@ -120,29 +116,23 @@ module ActiveResource
|
|
120
116
|
end
|
121
117
|
end
|
122
118
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
def #{method}(path, headers)
|
141
|
-
request = ActiveResource::Request.new(:#{method}, path, nil, headers)
|
142
|
-
self.class.requests << request
|
143
|
-
self.class.responses[request] || raise(InvalidRequestError.new("No response recorded for \#{request}"))
|
144
|
-
end
|
145
|
-
EOE
|
119
|
+
# body? methods
|
120
|
+
{ true => %w(post put),
|
121
|
+
false => %w(get delete head) }.each do |has_body, methods|
|
122
|
+
methods.each do |method|
|
123
|
+
# def post(path, body, headers)
|
124
|
+
# request = ActiveResource::Request.new(:post, path, body, headers)
|
125
|
+
# self.class.requests << request
|
126
|
+
# self.class.responses.assoc(request).try(:second) || raise(InvalidRequestError.new("No response recorded for #{request}"))
|
127
|
+
# end
|
128
|
+
module_eval <<-EOE, __FILE__, __LINE__
|
129
|
+
def #{method}(path, #{'body, ' if has_body}headers)
|
130
|
+
request = ActiveResource::Request.new(:#{method}, path, #{has_body ? 'body, ' : 'nil, '}headers)
|
131
|
+
self.class.requests << request
|
132
|
+
self.class.responses.assoc(request).try(:second) || raise(InvalidRequestError.new("No response recorded for \#{request}"))
|
133
|
+
end
|
134
|
+
EOE
|
135
|
+
end
|
146
136
|
end
|
147
137
|
|
148
138
|
def initialize(site) #:nodoc:
|
@@ -157,21 +147,13 @@ module ActiveResource
|
|
157
147
|
@method, @path, @body, @headers = method, path, body, headers.merge(ActiveResource::Connection::HTTP_FORMAT_HEADER_NAMES[method] => 'application/xml')
|
158
148
|
end
|
159
149
|
|
160
|
-
def ==(
|
161
|
-
|
162
|
-
end
|
163
|
-
|
164
|
-
def eql?(other_request)
|
165
|
-
self == other_request
|
150
|
+
def ==(req)
|
151
|
+
path == req.path && method == req.method && headers == req.headers
|
166
152
|
end
|
167
153
|
|
168
154
|
def to_s
|
169
155
|
"<#{method.to_s.upcase}: #{path} [#{headers}] (#{body})>"
|
170
156
|
end
|
171
|
-
|
172
|
-
def hash
|
173
|
-
"#{path}#{method}#{headers}".hash
|
174
|
-
end
|
175
157
|
end
|
176
158
|
|
177
159
|
class Response
|
@@ -203,7 +203,7 @@ module ActiveResource
|
|
203
203
|
def from_xml(xml)
|
204
204
|
clear
|
205
205
|
humanized_attributes = @base.attributes.keys.inject({}) { |h, attr_name| h.update(attr_name.humanize => attr_name) }
|
206
|
-
messages = Hash.from_xml(xml)['errors']['error'] rescue []
|
206
|
+
messages = Array.wrap(Hash.from_xml(xml)['errors']['error']) rescue []
|
207
207
|
messages.each do |message|
|
208
208
|
attr_message = humanized_attributes.keys.detect do |attr_name|
|
209
209
|
if message[0, attr_name.size + 1] == "#{attr_name} "
|
data/test/abstract_unit.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'test/unit'
|
2
3
|
|
4
|
+
gem 'mocha', '>= 0.9.5'
|
5
|
+
require 'mocha'
|
6
|
+
|
3
7
|
$:.unshift "#{File.dirname(__FILE__)}/../lib"
|
8
|
+
$:.unshift "#{File.dirname(__FILE__)}/../../activesupport/lib"
|
4
9
|
require 'active_resource'
|
5
10
|
require 'active_resource/http_mock'
|
6
11
|
|
@@ -10,17 +15,9 @@ require 'setter_trap'
|
|
10
15
|
ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/debug.log")
|
11
16
|
|
12
17
|
def uses_gem(gem_name, test_name, version = '> 0')
|
13
|
-
require 'rubygems'
|
14
18
|
gem gem_name.to_s, version
|
15
19
|
require gem_name.to_s
|
16
20
|
yield
|
17
21
|
rescue LoadError
|
18
22
|
$stderr.puts "Skipping #{test_name} tests. `gem install #{gem_name}` and try again."
|
19
23
|
end
|
20
|
-
|
21
|
-
# Wrap tests that use Mocha and skip if unavailable.
|
22
|
-
unless defined? uses_mocha
|
23
|
-
def uses_mocha(test_name, &block)
|
24
|
-
uses_gem('mocha', test_name, '>= 0.5.5', &block)
|
25
|
-
end
|
26
|
-
end
|
data/test/authorization_test.rb
CHANGED
@@ -107,10 +107,10 @@ class AuthorizationTest < Test::Unit::TestCase
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def test_raises_invalid_request_on_unauthorized_requests
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
assert_raise(ActiveResource::InvalidRequestError) { @conn.post("/people/2.xml") }
|
111
|
+
assert_raise(ActiveResource::InvalidRequestError) { @conn.post("/people/2/addresses.xml") }
|
112
|
+
assert_raise(ActiveResource::InvalidRequestError) { @conn.put("/people/2.xml") }
|
113
|
+
assert_raise(ActiveResource::InvalidRequestError) { @conn.delete("/people/2.xml") }
|
114
114
|
end
|
115
115
|
|
116
116
|
protected
|
data/test/base_test.rb
CHANGED
@@ -47,7 +47,7 @@ class BaseTest < Test::Unit::TestCase
|
|
47
47
|
{:name => 'Milena',
|
48
48
|
:children => []}]}]}.to_xml(:root => 'customer')
|
49
49
|
# - resource with yaml array of strings; for ActiveRecords using serialize :bar, Array
|
50
|
-
@marty = <<-eof
|
50
|
+
@marty = <<-eof.strip
|
51
51
|
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
52
52
|
<person>
|
53
53
|
<id type=\"integer\">5</id>
|
@@ -564,14 +564,14 @@ class BaseTest < Test::Unit::TestCase
|
|
564
564
|
|
565
565
|
def test_custom_header
|
566
566
|
Person.headers['key'] = 'value'
|
567
|
-
|
567
|
+
assert_raise(ActiveResource::ResourceNotFound) { Person.find(4) }
|
568
568
|
ensure
|
569
569
|
Person.headers.delete('key')
|
570
570
|
end
|
571
571
|
|
572
572
|
def test_find_by_id_not_found
|
573
|
-
|
574
|
-
|
573
|
+
assert_raise(ActiveResource::ResourceNotFound) { Person.find(99) }
|
574
|
+
assert_raise(ActiveResource::ResourceNotFound) { StreetAddress.find(1) }
|
575
575
|
end
|
576
576
|
|
577
577
|
def test_find_all_by_from
|
@@ -689,7 +689,7 @@ class BaseTest < Test::Unit::TestCase
|
|
689
689
|
ActiveResource::HttpMock.respond_to do |mock|
|
690
690
|
mock.post "/people.xml", {}, nil, 409
|
691
691
|
end
|
692
|
-
|
692
|
+
assert_raise(ActiveResource::ResourceConflict) { Person.create(:name => 'Rick') }
|
693
693
|
end
|
694
694
|
|
695
695
|
def test_create_without_location
|
@@ -726,7 +726,7 @@ class BaseTest < Test::Unit::TestCase
|
|
726
726
|
matz.non_ar_arr = ["not", "ARes"]
|
727
727
|
matz_c = matz.clone
|
728
728
|
assert matz_c.new?
|
729
|
-
|
729
|
+
assert_raise(NoMethodError) {matz_c.address}
|
730
730
|
assert_equal matz.non_ar_hash, matz_c.non_ar_hash
|
731
731
|
assert_equal matz.non_ar_arr, matz_c.non_ar_arr
|
732
732
|
|
@@ -764,7 +764,7 @@ class BaseTest < Test::Unit::TestCase
|
|
764
764
|
mock.get "/people/2.xml", {}, @david
|
765
765
|
mock.put "/people/2.xml", @default_request_headers, nil, 409
|
766
766
|
end
|
767
|
-
|
767
|
+
assert_raise(ActiveResource::ResourceConflict) { Person.find(2).save }
|
768
768
|
end
|
769
769
|
|
770
770
|
def test_destroy
|
@@ -772,7 +772,7 @@ class BaseTest < Test::Unit::TestCase
|
|
772
772
|
ActiveResource::HttpMock.respond_to do |mock|
|
773
773
|
mock.get "/people/1.xml", {}, nil, 404
|
774
774
|
end
|
775
|
-
|
775
|
+
assert_raise(ActiveResource::ResourceNotFound) { Person.find(1).destroy }
|
776
776
|
end
|
777
777
|
|
778
778
|
def test_destroy_with_custom_prefix
|
@@ -780,7 +780,7 @@ class BaseTest < Test::Unit::TestCase
|
|
780
780
|
ActiveResource::HttpMock.respond_to do |mock|
|
781
781
|
mock.get "/people/1/addresses/1.xml", {}, nil, 404
|
782
782
|
end
|
783
|
-
|
783
|
+
assert_raise(ActiveResource::ResourceNotFound) { StreetAddress.find(1, :params => { :person_id => 1 }) }
|
784
784
|
end
|
785
785
|
|
786
786
|
def test_delete
|
@@ -788,7 +788,7 @@ class BaseTest < Test::Unit::TestCase
|
|
788
788
|
ActiveResource::HttpMock.respond_to do |mock|
|
789
789
|
mock.get "/people/1.xml", {}, nil, 404
|
790
790
|
end
|
791
|
-
|
791
|
+
assert_raise(ActiveResource::ResourceNotFound) { Person.find(1) }
|
792
792
|
end
|
793
793
|
|
794
794
|
def test_delete_with_custom_prefix
|
@@ -796,7 +796,7 @@ class BaseTest < Test::Unit::TestCase
|
|
796
796
|
ActiveResource::HttpMock.respond_to do |mock|
|
797
797
|
mock.get "/people/1/addresses/1.xml", {}, nil, 404
|
798
798
|
end
|
799
|
-
|
799
|
+
assert_raise(ActiveResource::ResourceNotFound) { StreetAddress.find(1, :params => { :person_id => 1 }) }
|
800
800
|
end
|
801
801
|
|
802
802
|
def test_exists
|
data/test/connection_test.rb
CHANGED
@@ -168,21 +168,19 @@ class ConnectionTest < Test::Unit::TestCase
|
|
168
168
|
assert_equal 200, response.code
|
169
169
|
end
|
170
170
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
assert_nothing_raised(Mocha::ExpectationError) { @conn.get(path, {'Accept' => 'application/xhtml+xml'}) }
|
185
|
-
end
|
171
|
+
def test_timeout
|
172
|
+
@http = mock('new Net::HTTP')
|
173
|
+
@conn.expects(:http).returns(@http)
|
174
|
+
@http.expects(:get).raises(Timeout::Error, 'execution expired')
|
175
|
+
assert_raise(ActiveResource::TimeoutError) { @conn.get('/people_timeout.xml') }
|
176
|
+
end
|
177
|
+
|
178
|
+
def test_accept_http_header
|
179
|
+
@http = mock('new Net::HTTP')
|
180
|
+
@conn.expects(:http).returns(@http)
|
181
|
+
path = '/people/1.xml'
|
182
|
+
@http.expects(:get).with(path, {'Accept' => 'application/xhtml+xml'}).returns(ActiveResource::Response.new(@matz, 200, {'Content-Type' => 'text/xhtml'}))
|
183
|
+
assert_nothing_raised(Mocha::ExpectationError) { @conn.get(path, {'Accept' => 'application/xhtml+xml'}) }
|
186
184
|
end
|
187
185
|
|
188
186
|
protected
|
data/test/setter_trap.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeresource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -9,7 +9,7 @@ autorequire: active_resource
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-03-15 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.3.
|
23
|
+
version: 2.3.2
|
24
24
|
version:
|
25
25
|
description: Wraps web resources in model classes that can be manipulated through XML over REST.
|
26
26
|
email: david@loudthinking.com
|
@@ -56,7 +56,6 @@ files:
|
|
56
56
|
- test/base_errors_test.rb
|
57
57
|
- test/base_test.rb
|
58
58
|
- test/connection_test.rb
|
59
|
-
- test/debug.log
|
60
59
|
- test/fixtures
|
61
60
|
- test/fixtures/beast.rb
|
62
61
|
- test/fixtures/customer.rb
|
data/test/debug.log
DELETED
@@ -1,274 +0,0 @@
|
|
1
|
-
# Logfile created on Sun Feb 01 22:17:52 +0100 2009 by /
|
2
|
-
DELETE http://localhost:80/people/2.xml
|
3
|
-
--> 200 200 (0 0ms)
|
4
|
-
GET http://localhost:80/people/2.xml
|
5
|
-
--> 200 200 (107 0ms)
|
6
|
-
POST http://localhost:80/people/2/addresses.xml
|
7
|
-
--> 201 201 (0 0ms)
|
8
|
-
PUT http://localhost:80/people/2.xml
|
9
|
-
--> 204 204 (0 0ms)
|
10
|
-
POST http://localhost:80/people/2.xml
|
11
|
-
POST http://localhost:80/people/2/addresses.xml
|
12
|
-
PUT http://localhost:80/people/2.xml
|
13
|
-
DELETE http://localhost:80/people/2.xml
|
14
|
-
POST http://37s.sunrise.i:3000/people.xml
|
15
|
-
--> 422 422 (209 0ms)
|
16
|
-
POST http://37s.sunrise.i:3000/people.xml
|
17
|
-
--> 422 422 (209 0ms)
|
18
|
-
POST http://37s.sunrise.i:3000/people.xml
|
19
|
-
--> 422 422 (209 0ms)
|
20
|
-
POST http://37s.sunrise.i:3000/people.xml
|
21
|
-
--> 422 422 (209 0ms)
|
22
|
-
POST http://37s.sunrise.i:3000/people.xml
|
23
|
-
--> 422 422 (209 0ms)
|
24
|
-
POST http://37s.sunrise.i:3000/people.xml
|
25
|
-
--> 422 422 (209 0ms)
|
26
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
27
|
-
--> 200 200 (106 0ms)
|
28
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
29
|
-
--> 200 200 (106 0ms)
|
30
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
31
|
-
--> 200 200 (120 0ms)
|
32
|
-
POST http://37s.sunrise.i:3000/people.xml
|
33
|
-
--> 201 201 (109 0ms)
|
34
|
-
POST http://37s.sunrise.i:3000/people.xml
|
35
|
-
--> 409 409 (0 0ms)
|
36
|
-
POST http://37s.sunrise.i:3000/people/1/addresses.xml
|
37
|
-
--> 201 201 (0 0ms)
|
38
|
-
POST http://37s.sunrise.i:3000/people.xml
|
39
|
-
--> 201 201 (0 0ms)
|
40
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
41
|
-
--> 200 200 (106 0ms)
|
42
|
-
GET http://37s.sunrise.i:3000/people/4.xml
|
43
|
-
--> 404 404 (0 0ms)
|
44
|
-
DELETE http://37s.sunrise.i:3000/people/1.xml
|
45
|
-
--> 200 200 (0 0ms)
|
46
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
47
|
-
--> 404 404 (0 0ms)
|
48
|
-
DELETE http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
49
|
-
--> 200 200 (0 0ms)
|
50
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
51
|
-
--> 404 404 (0 0ms)
|
52
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
53
|
-
--> 200 200 (106 0ms)
|
54
|
-
DELETE http://37s.sunrise.i:3000/people/1.xml
|
55
|
-
--> 200 200 (0 0ms)
|
56
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
57
|
-
--> 404 404 (0 0ms)
|
58
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
59
|
-
--> 200 200 (120 0ms)
|
60
|
-
DELETE http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
61
|
-
--> 200 200 (0 0ms)
|
62
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
63
|
-
--> 404 404 (0 0ms)
|
64
|
-
HEAD http://37s.sunrise.i:3000/people/1.xml
|
65
|
-
--> 200 200 (0 0ms)
|
66
|
-
HEAD http://37s.sunrise.i:3000/people/99.xml
|
67
|
-
--> 404 404 (0 0ms)
|
68
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
69
|
-
--> 200 200 (106 0ms)
|
70
|
-
HEAD http://37s.sunrise.i:3000/people/1.xml
|
71
|
-
--> 200 200 (0 0ms)
|
72
|
-
HEAD http://37s.sunrise.i:3000/people/99.xml
|
73
|
-
--> 404 404 (0 0ms)
|
74
|
-
HEAD http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
75
|
-
--> 200 200 (0 0ms)
|
76
|
-
HEAD http://37s.sunrise.i:3000/people/2/addresses/1.xml
|
77
|
-
--> 404 404 (0 0ms)
|
78
|
-
HEAD http://37s.sunrise.i:3000/people/1/addresses/2.xml
|
79
|
-
--> 404 404 (0 0ms)
|
80
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
81
|
-
--> 200 200 (120 0ms)
|
82
|
-
HEAD http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
83
|
-
--> 200 200 (0 0ms)
|
84
|
-
HEAD http://37s.sunrise.i:3000/people/2/addresses/1.xml
|
85
|
-
--> 404 404 (0 0ms)
|
86
|
-
HEAD http://37s.sunrise.i:3000/people/1/addresses/2.xml
|
87
|
-
--> 404 404 (0 0ms)
|
88
|
-
HEAD http://37s.sunrise.i:3000/people/Greg.xml
|
89
|
-
--> 200 200 (0 0ms)
|
90
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
91
|
-
--> 200 200 (106 0ms)
|
92
|
-
HEAD http://37s.sunrise.i:3000/people/Greg.xml
|
93
|
-
--> 200 200 (0 0ms)
|
94
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
95
|
-
--> 200 200 (106 0ms)
|
96
|
-
HEAD http://37s.sunrise.i:3000/people/Greg/addresses/1.xml
|
97
|
-
--> 200 200 (0 0ms)
|
98
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
99
|
-
--> 200 200 (106 0ms)
|
100
|
-
GET http://37s.sunrise.i:3000/people/Greg/addresses/1.xml
|
101
|
-
--> 200 200 (120 0ms)
|
102
|
-
HEAD http://37s.sunrise.i:3000/people/Greg/addresses/1.xml
|
103
|
-
--> 200 200 (0 0ms)
|
104
|
-
GET http://37s.sunrise.i:3000/people.xml
|
105
|
-
--> 200 200 (222 0ms)
|
106
|
-
GET http://37s.sunrise.i:3000/companies/1/people.xml
|
107
|
-
--> 200 200 (147 0ms)
|
108
|
-
GET http://37s.sunrise.i:3000/companies/1/people.xml
|
109
|
-
--> 200 200 (147 0ms)
|
110
|
-
GET http://37s.sunrise.i:3000/people/managers.xml
|
111
|
-
--> 200 200 (147 0ms)
|
112
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
113
|
-
--> 200 200 (106 0ms)
|
114
|
-
GET http://37s.sunrise.i:3000/people/99.xml
|
115
|
-
--> 404 404 (0 0ms)
|
116
|
-
GET http://37s.sunrise.i:3000/people//addresses/1.xml
|
117
|
-
--> 404 404 (0 0ms)
|
118
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
119
|
-
--> 200 200 (120 0ms)
|
120
|
-
GET http://37s.sunrise.i:3000/people.xml
|
121
|
-
--> 200 200 (222 0ms)
|
122
|
-
GET http://37s.sunrise.i:3000/people.xml
|
123
|
-
--> 200 200 (222 0ms)
|
124
|
-
GET http://37s.sunrise.i:3000/companies/1/manager.xml
|
125
|
-
--> 200 200 (107 0ms)
|
126
|
-
GET http://37s.sunrise.i:3000/people/leader.xml
|
127
|
-
--> 200 200 (107 0ms)
|
128
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
129
|
-
--> 200 200 (120 0ms)
|
130
|
-
GET http://37s.sunrise.i:3000/people/5.xml
|
131
|
-
--> 200 200 (230 0ms)
|
132
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
133
|
-
--> 200 200 (120 0ms)
|
134
|
-
GET http://37s.sunrise.i:3000/customers/1.xml
|
135
|
-
--> 200 200 (1458 0ms)
|
136
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
137
|
-
--> 200 200 (106 0ms)
|
138
|
-
GET http://37s.sunrise.i:3000/people/Greg.xml
|
139
|
-
--> 200 200 (106 0ms)
|
140
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
141
|
-
--> 200 200 (120 0ms)
|
142
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
143
|
-
--> 200 200 (120 0ms)
|
144
|
-
GET http://37s.sunrise.i:3000/people.xml
|
145
|
-
--> 200 200 (222 0ms)
|
146
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
147
|
-
--> 200 200 (106 0ms)
|
148
|
-
GET http://37s.sunrise.i:3000/people/1.xml
|
149
|
-
--> 200 200 (106 0ms)
|
150
|
-
POST http://37s.sunrise.i:3000/people.xml
|
151
|
-
--> 201 201 (109 0ms)
|
152
|
-
GET http://somewhere.else:80/people/1.xml
|
153
|
-
--> 200 200 (106 0ms)
|
154
|
-
GET http://somewhere.else:80/people/1.xml
|
155
|
-
--> 200 200 (106 0ms)
|
156
|
-
GET http://somewhere.else:80/people.xml
|
157
|
-
--> 200 200 (222 0ms)
|
158
|
-
PUT http://somewhere.else:80/people/1.xml
|
159
|
-
--> 204 204 (0 0ms)
|
160
|
-
GET http://somewhere.else:80/people/2.xml
|
161
|
-
--> 200 200 (107 0ms)
|
162
|
-
PUT http://somewhere.else:80/people/2.xml
|
163
|
-
--> 409 409 (0 0ms)
|
164
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
165
|
-
--> 200 200 (120 0ms)
|
166
|
-
PUT http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
167
|
-
--> 204 204 (0 0ms)
|
168
|
-
GET http://37s.sunrise.i:3000/people/1/addresses.xml
|
169
|
-
--> 200 200 (166 0ms)
|
170
|
-
PUT http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
171
|
-
--> 204 204 (0 0ms)
|
172
|
-
GET http://localhost:80/people/1.xml
|
173
|
-
--> 200 200 (106 0ms)
|
174
|
-
DELETE http://localhost:80/people/1.xml
|
175
|
-
--> 200 200 (0 0ms)
|
176
|
-
DELETE http://localhost:80/people/2.xml
|
177
|
-
--> 200 200 (0 0ms)
|
178
|
-
GET http://localhost:80/people/1.xml
|
179
|
-
--> 200 200 (106 0ms)
|
180
|
-
GET http://localhost:80/people.xml
|
181
|
-
--> 200 200 (222 0ms)
|
182
|
-
GET http://localhost:80/people_empty_elements.xml
|
183
|
-
--> 200 200 (77 0ms)
|
184
|
-
GET http://localhost:80/people_single_elements.xml
|
185
|
-
--> 200 200 (208 0ms)
|
186
|
-
GET http://localhost:80/people/2.xml
|
187
|
-
--> 200 200 (107 0ms)
|
188
|
-
HEAD http://localhost:80/people/1.xml
|
189
|
-
--> 200 200 (0 0ms)
|
190
|
-
POST http://localhost:80/people.xml
|
191
|
-
--> 201 201 (0 0ms)
|
192
|
-
POST http://localhost:80/members.xml
|
193
|
-
--> 201 201 (1 0ms)
|
194
|
-
PUT http://localhost:80/people/1.xml
|
195
|
-
--> 204 204 (0 0ms)
|
196
|
-
PUT http://localhost:80/people/2.xml
|
197
|
-
--> 204 204 (0 0ms)
|
198
|
-
GET http://localhost:80/people_timeout.xml
|
199
|
-
GET http://somewhere.else:80/people/retrieve.xml?name=Matz
|
200
|
-
--> 200 200 (146 0ms)
|
201
|
-
POST http://somewhere.else:80/people/hire.xml?name=Matz
|
202
|
-
--> 201 201 (0 0ms)
|
203
|
-
PUT http://somewhere.else:80/people/promote.xml?name=Matz
|
204
|
-
--> 204 204 (0 0ms)
|
205
|
-
PUT http://somewhere.else:80/people/sort.xml?by=name
|
206
|
-
--> 204 204 (0 0ms)
|
207
|
-
DELETE http://somewhere.else:80/people/deactivate.xml?name=Matz
|
208
|
-
--> 200 200 (0 0ms)
|
209
|
-
PUT http://37s.sunrise.i:3000/people/1/addresses/sort.xml?by=name
|
210
|
-
--> 204 204 (0 0ms)
|
211
|
-
GET http://somewhere.else:80/people/1.xml
|
212
|
-
--> 200 200 (106 0ms)
|
213
|
-
GET http://somewhere.else:80/people/1/shallow.xml
|
214
|
-
--> 200 200 (106 0ms)
|
215
|
-
GET http://somewhere.else:80/people/1.xml
|
216
|
-
--> 200 200 (106 0ms)
|
217
|
-
GET http://somewhere.else:80/people/1/deep.xml
|
218
|
-
--> 200 200 (129 0ms)
|
219
|
-
GET http://somewhere.else:80/people/1.xml
|
220
|
-
--> 200 200 (106 0ms)
|
221
|
-
PUT http://somewhere.else:80/people/1/promote.xml?position=Manager
|
222
|
-
--> 204 204 (0 0ms)
|
223
|
-
GET http://somewhere.else:80/people/1.xml
|
224
|
-
--> 200 200 (106 0ms)
|
225
|
-
DELETE http://somewhere.else:80/people/1/deactivate.xml
|
226
|
-
--> 200 200 (0 0ms)
|
227
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
228
|
-
--> 200 200 (120 0ms)
|
229
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1/deep.xml
|
230
|
-
--> 200 200 (139 0ms)
|
231
|
-
GET http://37s.sunrise.i:3000/people/1/addresses/1.xml
|
232
|
-
--> 200 200 (120 0ms)
|
233
|
-
PUT http://37s.sunrise.i:3000/people/1/addresses/1/normalize_phone.xml?locale=US
|
234
|
-
--> 204 204 (0 0ms)
|
235
|
-
POST http://somewhere.else:80/people/new/register.xml
|
236
|
-
--> 201 201 (78 0ms)
|
237
|
-
POST http://37s.sunrise.i:3000/people/1/addresses/new/link.xml
|
238
|
-
--> 201 201 (92 0ms)
|
239
|
-
POST http://somewhere.else:80/people/1/register.xml
|
240
|
-
--> 201 201 (106 0ms)
|
241
|
-
GET http://somewhere.else:80/people/managers.xml
|
242
|
-
--> 200 200 (146 0ms)
|
243
|
-
GET http://somewhere.else:80/people.json
|
244
|
-
--> 200 200 (55 0ms)
|
245
|
-
GET http://somewhere.else:80/people.xml
|
246
|
-
--> 200 200 (224 0ms)
|
247
|
-
GET http://somewhere.else:80/people/retrieve.json?name=David
|
248
|
-
--> 200 200 (28 0ms)
|
249
|
-
GET http://somewhere.else:80/people/retrieve.xml?name=David
|
250
|
-
--> 200 200 (149 0ms)
|
251
|
-
GET http://somewhere.else:80/people/2.json
|
252
|
-
--> 200 200 (26 0ms)
|
253
|
-
GET http://somewhere.else:80/people/2/shallow.json
|
254
|
-
--> 200 200 (26 0ms)
|
255
|
-
GET http://somewhere.else:80/people/2.xml
|
256
|
-
--> 200 200 (103 0ms)
|
257
|
-
GET http://somewhere.else:80/people/2/shallow.xml
|
258
|
-
--> 200 200 (103 0ms)
|
259
|
-
POST http://somewhere.else:80/people.json
|
260
|
-
--> 201 201 (16 0ms)
|
261
|
-
POST http://somewhere.else:80/people/new/register.json
|
262
|
-
--> 201 201 (16 0ms)
|
263
|
-
POST http://somewhere.else:80/people.xml
|
264
|
-
--> 201 201 (74 0ms)
|
265
|
-
POST http://somewhere.else:80/people/new/register.xml
|
266
|
-
--> 201 201 (74 0ms)
|
267
|
-
GET http://somewhere.else:80/people/1.json
|
268
|
-
--> 200 200 (26 0ms)
|
269
|
-
GET http://somewhere.else:80/people/1.xml
|
270
|
-
--> 200 200 (103 0ms)
|
271
|
-
POST http://somewhere.else:80/people.json
|
272
|
-
--> 201 201 (54 0ms)
|
273
|
-
POST http://somewhere.else:80/people.xml
|
274
|
-
--> 201 201 (132 0ms)
|