sndacs 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/service_test.rb DELETED
@@ -1,111 +0,0 @@
1
- require "test_helper"
2
-
3
- class ServiceTest < Test::Unit::TestCase
4
- def setup
5
- @buckets_list_body = <<-EOBuckets
6
- <?xml version="1.0" encoding="UTF-8"?>\n<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>123u1odhkhfoadf</ID> <DisplayName>JohnDoe</DisplayName> </Owner> <Buckets> <Bucket> <Name>data.example.com</Name> <CreationDate>2009-07-02T11:56:58.000Z</CreationDate> </Bucket> <Bucket> <Name>images</Name> <CreationDate>2009-06-05T12:26:33.000Z</CreationDate> </Bucket> </Buckets> </ListAllMyBucketsResult>
7
- EOBuckets
8
-
9
- @bucket_not_exists = <<-EOBucketNoexists
10
- <?xml version="1.0" encoding="UTF-8"?>\n<Error> <Code>NoSuchBucket</Code> <Message>The specified bucket does not exists</Message> <BucketName>data2.example.com</BucketName> <RequestId>8D7519AAE74E9E99</RequestId> <HostId>DvKnnNSMnPHd1oXukyRaFNv8Lg/bpwhuUtY8Kj7eDLbaIrIT8JebSnHwi89AK1P+</HostId> </Error>
11
- EOBucketNoexists
12
-
13
- @bucket_exists = <<-EOBucketexists
14
- <?xml version="1.0" encoding="UTF-8"?>\n<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>data.synergypeople.net</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> </ListBucketResult>
15
- EOBucketexists
16
-
17
- @service_empty_buckets_list = S3::Service.new(
18
- :access_key_id => "12345678901234567890",
19
- :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF"
20
- )
21
- @response_empty_buckets_list = Net::HTTPOK.new("1.1", "200", "OK")
22
- @service_empty_buckets_list.stubs(:service_request).returns(@response_empty_buckets_list)
23
- @response_empty_buckets_list.stubs(:body).returns(@buckets_empty_list_body)
24
-
25
- @service_buckets_list = S3::Service.new(
26
- :access_key_id => "12345678901234567890",
27
- :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF"
28
- )
29
- @response_buckets_list = Net::HTTPOK.new("1.1", "200", "OK")
30
- @service_buckets_list.stubs(:service_request).returns(@response_buckets_list)
31
- @response_buckets_list.stubs(:body).returns(@buckets_list_body)
32
-
33
- @service_bucket_exists = S3::Service.new(
34
- :access_key_id => "12345678901234567890",
35
- :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF"
36
- )
37
- @response_bucket_exists = Net::HTTPNotFound.new("1.1", "200", "OK")
38
- @service_bucket_exists.stubs(:service_request).returns(@response_bucket_exists)
39
- @response_bucket_exists.stubs(:body).returns(@bucket_exists)
40
-
41
- @service_bucket_not_exists = S3::Service.new(
42
- :access_key_id => "12345678901234567890",
43
- :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF"
44
- )
45
- @response_bucket_not_exists = Net::HTTPNotFound.new("1.1", "404", "Not Found")
46
- @service_bucket_not_exists.stubs(:service_request).raises(S3::Error::NoSuchBucket.new(404, @response_bucket_not_exists))
47
- @response_bucket_not_exists.stubs(:body).returns(@bucket_not_exists)
48
-
49
- @buckets_empty_list = []
50
- @buckets_empty_list_body = <<-EOEmptyBuckets
51
- <?xml version="1.0" encoding="UTF-8"?>\n<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>123u1odhkhfoadf</ID> <DisplayName>JohnDoe</DisplayName> </Owner> <Buckets> </Buckets> </ListAllMyBucketsResult>
52
- EOEmptyBuckets
53
-
54
- @buckets_list = [
55
- S3::Bucket.send(:new, @service_buckets_list, "data.example.com"),
56
- S3::Bucket.send(:new, @service_buckets_list, "images")
57
- ]
58
- end
59
-
60
- test "buckets and parse buckets empty" do
61
- expected = @buckets_empty_list
62
- actual = @service_empty_buckets_list.buckets
63
- assert_equal expected.length, actual.length
64
- assert_equal expected, actual
65
- end
66
-
67
- test "buckets and parse buckets" do
68
- expected = @buckets_list
69
- # ugly hack
70
- actual = @service_buckets_list.buckets.map { |obj| obj }
71
- assert_equal expected, actual
72
- end
73
-
74
- test "buckets build" do
75
- @service_empty_buckets_list.stubs(:service_request)
76
-
77
- expected = "bucket_name"
78
- actual = @service_empty_buckets_list.buckets.build("bucket_name")
79
- assert_kind_of S3::Bucket, actual
80
- assert_equal expected, actual.name
81
- end
82
-
83
- test "buckets find first" do
84
- assert_nothing_raised do
85
- actual = @service_buckets_list.buckets.find_first("data.example.com")
86
- assert_equal "data.example.com", actual.name
87
- end
88
- end
89
-
90
- test "buckets find first fail" do
91
- assert_raise S3::Error::NoSuchBucket do
92
- @service_bucket_not_exists.buckets.find_first("data2.example.com")
93
- end
94
- end
95
-
96
- test "buckets find all on empty list" do
97
- assert_nothing_raised do
98
- expected = @buckets_empty_list
99
- actual = @service_empty_buckets_list.buckets.find_all
100
- assert_equal expected, actual
101
- end
102
- end
103
-
104
- test "buckets find all" do
105
- assert_nothing_raised do
106
- expected = @buckets_list
107
- actual = @service_buckets_list.buckets.find_all
108
- assert_equal expected, actual
109
- end
110
- end
111
- end
@@ -1,205 +0,0 @@
1
- require "test_helper"
2
-
3
- class SignatureTest < Test::Unit::TestCase
4
- # from http://docs.amazonwebservices.com/AmazonS3/latest/RESTAuthentication.html
5
- test "signature for object get" do
6
- request = Net::HTTP::Get.new("/photos/puppy.jpg")
7
- request["host"] = "johnsmith.s3.amazonaws.com"
8
- request["date"] = "Tue, 27 Mar 2007 19:36:42 +0000"
9
-
10
- actual = S3::Signature.generate(
11
- :host => request["host"],
12
- :request => request,
13
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
14
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
15
- )
16
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbA="
17
- assert_equal expected, actual
18
- end
19
-
20
- test "signature for object put" do
21
- request = Net::HTTP::Put.new("/photos/puppy.jpg");
22
- request["content-type"] = "image/jpeg"
23
- request["content-length"] = "94328"
24
- request["host"] = "johnsmith.s3.amazonaws.com"
25
- request["date"] = "Tue, 27 Mar 2007 21:15:45 +0000"
26
-
27
- actual = S3::Signature.generate(
28
- :host => request["host"],
29
- :request => request,
30
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
31
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
32
- )
33
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:hcicpDDvL9SsO6AkvxqmIWkmOuQ="
34
- assert_equal expected, actual
35
- end
36
-
37
- test "signature for list" do
38
- request = Net::HTTP::Get.new("/?prefix=photos&max-keys=50&marker=puppy");
39
- request["user-agent"] = "Mozilla/5.0"
40
- request["host"] = "johnsmith.s3.amazonaws.com"
41
- request["date"] = "Tue, 27 Mar 2007 19:42:41 +0000"
42
-
43
- actual = S3::Signature.generate(
44
- :host => request["host"],
45
- :request => request,
46
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
47
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
48
- )
49
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:jsRt/rhG+Vtp88HrYL706QhE4w4="
50
- assert_equal expected, actual
51
- end
52
-
53
- test "signature for fetch" do
54
- request = Net::HTTP::Get.new("/?acl");
55
- request["host"] = "johnsmith.s3.amazonaws.com"
56
- request["date"] = "Tue, 27 Mar 2007 19:44:46 +0000"
57
-
58
- actual = S3::Signature.generate(
59
- :host => request["host"],
60
- :request => request,
61
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
62
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
63
- )
64
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:thdUi9VAkzhkniLj96JIrOPGi0g="
65
- assert_equal expected, actual
66
- end
67
-
68
- test "signature for delete" do
69
- request = Net::HTTP::Delete.new("/johnsmith/photos/puppy.jpg");
70
- request["user-agent"] = "dotnet"
71
- request["host"] = "s3.amazonaws.com"
72
- request["date"] = "Tue, 27 Mar 2007 21:20:27 +0000"
73
- request["x-amz-date"] = "Tue, 27 Mar 2007 21:20:26 +0000"
74
-
75
- actual = S3::Signature.generate(
76
- :host => request["host"],
77
- :request => request,
78
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
79
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
80
- )
81
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:k3nL7gH3+PadhTEVn5Ip83xlYzk="
82
- assert_equal expected, actual
83
- end
84
-
85
- test "signature for upload" do
86
- request = Net::HTTP::Put.new("/db-backup.dat.gz");
87
- request["user-agent"] = "curl/7.15.5"
88
- request["host"] = "static.johnsmith.net:8080"
89
- request["date"] = "Tue, 27 Mar 2007 21:06:08 +0000"
90
- request["x-amz-acl"] = "public-read"
91
- request["content-type"] = "application/x-download"
92
- request["content-md5"] = "4gJE4saaMU4BqNR0kLY+lw=="
93
- # FIXME: Net::HTTP doesn't allow to have multiple headers with the same name
94
- # request.add_field add additional spaces (breaks signature)
95
- #request["x-amz-meta-reviewedby"] = "joe@johnsmith.net"
96
- #request["x-amz-meta-reviewedby"] = "jane@johnsmith.net"
97
- request["x-amz-meta-reviewedby"] = "joe@johnsmith.net,jane@johnsmith.net"
98
- request["x-amz-meta-filechecksum"] = "0x02661779"
99
- request["x-amz-meta-checksumalgorithm"] = "crc32"
100
- request["content-disposition"] = "attachment; filename=database.dat"
101
- request["content-encoding"] = "gzip"
102
- request["content-length"] = "5913339"
103
-
104
- actual = S3::Signature.generate(
105
- :host => "static.johnsmith.net",
106
- :request => request,
107
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
108
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
109
- )
110
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:C0FlOtU8Ylb9KDTpZqYkZPX91iI="
111
- assert_equal expected, actual
112
- end
113
-
114
- test "signature for list all my buckets" do
115
- request = Net::HTTP::Get.new("/");
116
- request["host"] = "s3.amazonaws.com"
117
- request["date"] = "Wed, 28 Mar 2007 01:29:59 +0000"
118
-
119
- actual = S3::Signature.generate(
120
- :host => request["host"],
121
- :request => request,
122
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
123
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
124
- )
125
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:Db+gepJSUbZKwpx1FR0DLtEYoZA="
126
- assert_equal expected, actual
127
- end
128
-
129
- test "signature for unicode keys" do
130
- request = Net::HTTP::Get.new("/dictionary/fran%C3%A7ais/pr%c3%a9f%c3%a8re");
131
- request["host"] = "s3.amazonaws.com"
132
- request["date"] = "Wed, 28 Mar 2007 01:49:49 +0000"
133
-
134
- actual = S3::Signature.generate(
135
- :host => request["host"],
136
- :request => request,
137
- :access_key_id => "0PN5J17HBGZHT7JJ3X82",
138
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
139
- )
140
- expected = "AWS 0PN5J17HBGZHT7JJ3X82:dxhSBHoI6eVSPcXJqEghlUzZMnY="
141
- assert_equal expected, actual
142
- end
143
-
144
- test "temporary signature for object get" do
145
- actual = S3::Signature.generate_temporary_url_signature(
146
- :bucket => "johnsmith",
147
- :resource => "photos/puppy.jpg",
148
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
149
- :expires_at => 1175046589
150
- )
151
- expected = "gs6xNznrLJ4Bd%2B1y9pcy2HOSVeg%3D"
152
- assert_equal expected, actual
153
- end
154
-
155
- test "temporary signature for object post" do
156
- actual = S3::Signature.generate_temporary_url_signature(
157
- :bucket => "johnsmith",
158
- :resource => "photos/puppy.jpg",
159
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
160
- :expires_at => 1175046589,
161
- :method => :post
162
- )
163
- expected = "duIzwO2KTEMIlbSYbFFS86Wj0LI%3D"
164
- assert_equal expected, actual
165
- end
166
-
167
- test "temporary signature for object put with headers" do
168
- actual = S3::Signature.generate_temporary_url_signature(
169
- :bucket => "johnsmith",
170
- :resource => "photos/puppy.jpg",
171
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
172
- :expires_at => 1175046589,
173
- :method => :put,
174
- :headers => {'x-amz-acl' => 'public-read'}
175
- )
176
- expected = "SDMxjIkOKIVR47nWfJ57UNPXxFM%3D"
177
- assert_equal expected, actual
178
- end
179
-
180
- test "temporary signature for object delete" do
181
- actual = S3::Signature.generate_temporary_url_signature(
182
- :bucket => "johnsmith",
183
- :resource => "photos/puppy.jpg",
184
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
185
- :expires_at => 1175046589,
186
- :method => :delete
187
- )
188
- expected = "5Vg7A4HxgS6tVCYzBx%2BkMR8sztY%3D"
189
- assert_equal expected, actual
190
- end
191
-
192
- test "temporary url for object put with headers" do
193
- actual = S3::Signature.generate_temporary_url(
194
- :bucket => "johnsmith",
195
- :resource => "photos/puppy.jpg",
196
- :access_key => '0PN5J17HBGZHT7JJ3X82',
197
- :secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
198
- :expires_at => 1175046589,
199
- :method => :put,
200
- :headers => {'x-amz-acl' => 'public-read'}
201
- )
202
- expected = "http://s3.amazonaws.com/johnsmith/photos/puppy.jpg?AWSAccessKeyId=0PN5J17HBGZHT7JJ3X82&Expires=1175046589&Signature=SDMxjIkOKIVR47nWfJ57UNPXxFM%3D"
203
- assert_equal expected, actual
204
- end
205
- end
data/test/test_helper.rb DELETED
@@ -1,3 +0,0 @@
1
- require "test/unit"
2
- require "mocha"
3
- require "s3"