picasa 0.5.4 → 0.6.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.
Files changed (89) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +4 -9
  3. data/Gemfile +4 -4
  4. data/README.md +4 -12
  5. data/extra/Thorfile +0 -3
  6. data/lib/picasa.rb +1 -8
  7. data/lib/picasa/api/album.rb +11 -11
  8. data/lib/picasa/api/base.rb +0 -3
  9. data/lib/picasa/api/comment.rb +6 -8
  10. data/lib/picasa/api/photo.rb +9 -9
  11. data/lib/picasa/api/tag.rb +6 -8
  12. data/lib/picasa/client.rb +2 -2
  13. data/lib/picasa/connection.rb +14 -51
  14. data/lib/picasa/exceptions.rb +1 -0
  15. data/lib/picasa/file.rb +8 -0
  16. data/lib/picasa/http.rb +28 -0
  17. data/lib/picasa/presenter/album.rb +15 -15
  18. data/lib/picasa/presenter/album_list.rb +10 -10
  19. data/lib/picasa/presenter/comment.rb +6 -6
  20. data/lib/picasa/presenter/comment_list.rb +10 -10
  21. data/lib/picasa/presenter/media.rb +5 -5
  22. data/lib/picasa/presenter/photo.rb +15 -15
  23. data/lib/picasa/presenter/tag.rb +3 -3
  24. data/lib/picasa/presenter/tag_list.rb +10 -10
  25. data/lib/picasa/utils.rb +11 -13
  26. data/lib/picasa/version.rb +1 -1
  27. data/picasa.gemspec +2 -1
  28. data/test/api/album_test.rb +163 -20
  29. data/test/api/comment_test.rb +95 -10
  30. data/test/api/photo_test.rb +27 -11
  31. data/test/api/tag_test.rb +84 -13
  32. data/test/cassettes/album-404.yml +52 -0
  33. data/test/cassettes/album-create.yml +107 -0
  34. data/test/cassettes/album-destroy.yml +55 -0
  35. data/test/cassettes/album-list.yml +85 -0
  36. data/test/cassettes/album-show.yml +123 -0
  37. data/test/cassettes/auth-failed.yml +50 -0
  38. data/test/cassettes/auth-success.yml +64 -0
  39. data/test/cassettes/comment-400.yml +56 -0
  40. data/test/cassettes/comment-create.yml +88 -0
  41. data/test/cassettes/comment-destroy.yml +53 -0
  42. data/test/cassettes/comment-list.yml +87 -0
  43. data/test/cassettes/photo-412.yml +58 -0
  44. data/test/cassettes/photo-create.yml +1908 -0
  45. data/test/cassettes/photo-destroy.yml +55 -0
  46. data/test/cassettes/tag-create.yml +85 -0
  47. data/test/cassettes/tag-destroy.yml +53 -0
  48. data/test/cassettes/tag-list.yml +79 -0
  49. data/test/client_test.rb +10 -10
  50. data/test/connection_test.rb +0 -35
  51. data/test/helper.rb +21 -7
  52. data/test/utils_test.rb +0 -6
  53. metadata +37 -40
  54. data/test/fixtures/album/album-create.txt +0 -21
  55. data/test/fixtures/album/album-list-with-tag.txt +0 -105
  56. data/test/fixtures/album/album-list.txt +0 -105
  57. data/test/fixtures/album/album-show-with-max-results.txt +0 -131
  58. data/test/fixtures/album/album-show-with-tag-and-many-photos.txt +0 -156
  59. data/test/fixtures/album/album-show-with-tag-and-one-photo.txt +0 -105
  60. data/test/fixtures/album/album-show.txt +0 -169
  61. data/test/fixtures/auth/success.txt +0 -14
  62. data/test/fixtures/comment/comment-list.txt +0 -65
  63. data/test/fixtures/exceptions/forbidden.txt +0 -12
  64. data/test/fixtures/exceptions/not_found.txt +0 -14
  65. data/test/fixtures/exceptions/precondition_failed.txt +0 -14
  66. data/test/fixtures/json.txt +0 -435
  67. data/test/fixtures/photo/photo-created.txt +0 -21
  68. data/test/fixtures/photo/photo-list-all-with-q.txt +0 -556
  69. data/test/fixtures/photo/photo-list-all.txt +0 -623
  70. data/test/fixtures/photo/photo-list-user.txt +0 -388
  71. data/test/fixtures/presenters/album_list.xml +0 -88
  72. data/test/fixtures/presenters/album_show.xml +0 -152
  73. data/test/fixtures/presenters/album_show_with_one_photo.xml +0 -88
  74. data/test/fixtures/presenters/comment_list.xml +0 -48
  75. data/test/fixtures/presenters/tag_list.xml +0 -51
  76. data/test/fixtures/tag/tag-list.txt +0 -68
  77. data/test/presenter/album_list_test.rb +0 -67
  78. data/test/presenter/album_test.rb +0 -189
  79. data/test/presenter/author_test.rb +0 -17
  80. data/test/presenter/base_test.rb +0 -50
  81. data/test/presenter/comment_list_test.rb +0 -67
  82. data/test/presenter/comment_test.rb +0 -56
  83. data/test/presenter/content_test.rb +0 -18
  84. data/test/presenter/link_test.rb +0 -21
  85. data/test/presenter/media_test.rb +0 -29
  86. data/test/presenter/photo_test.rb +0 -90
  87. data/test/presenter/tag_list_test.rb +0 -67
  88. data/test/presenter/tag_test.rb +0 -48
  89. data/test/presenter/thumbnail_test.rb +0 -24
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://picasaweb.google.com/data/entry/api/user/w.wnetrzak@gmail.com/albumid/5793892606777564353/photoid/5806295577614146146?alt=json
6
+ body:
7
+ encoding: US-ASCII
8
+ base64_string: ""
9
+ headers:
10
+ User-Agent:
11
+ - ruby-gem-picasa-v0.5.4 (gzip)
12
+ Gdata-Version:
13
+ - "2"
14
+ Content-Type:
15
+ - application/atom+xml
16
+ Accept-Encoding:
17
+ - gzip, deflate
18
+ Authorization:
19
+ - <FILTERED>
20
+ If-Match:
21
+ - "*"
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Expires:
28
+ - Fri, 02 Nov 2012 23:12:10 GMT
29
+ Date:
30
+ - Fri, 02 Nov 2012 23:12:10 GMT
31
+ Cache-Control:
32
+ - private, max-age=0, must-revalidate
33
+ Set-Cookie:
34
+ - S=photos_html=tC03KtdPGN2r7-aSZe3qSA; Domain=.google.com; Path=/; Secure; HttpOnly
35
+ - _rtok=aD7_4rBeOlyy; Path=/; Secure; HttpOnly
36
+ Gdata-Version:
37
+ - "2.0"
38
+ X-Content-Type-Options:
39
+ - nosniff
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Content-Length:
45
+ - "0"
46
+ Server:
47
+ - GSE
48
+ Content-Type:
49
+ - text/html; charset=UTF-8
50
+ body:
51
+ encoding: US-ASCII
52
+ base64_string: ""
53
+ http_version:
54
+ recorded_at: Fri, 02 Nov 2012 23:12:10 GMT
55
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,85 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://picasaweb.google.com/data/feed/api/user/w.wnetrzak@gmail.com/albumid/5793892606777564353/photoid/5806295577614146146?alt=json
6
+ body:
7
+ encoding: UTF-8
8
+ base64_string: |
9
+ PGVudHJ5IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iPgog
10
+ IDx0aXRsZT5iZWF1dHk8L3RpdGxlPgogIDxjYXRlZ29yeSBzY2hlbWU9Imh0
11
+ dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQiIHRlcm09Imh0
12
+ dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjdGFnIi8+Cjwv
13
+ ZW50cnk+Cg==
14
+
15
+ headers:
16
+ User-Agent:
17
+ - ruby-gem-picasa-v0.5.4 (gzip)
18
+ Gdata-Version:
19
+ - "2"
20
+ Content-Type:
21
+ - application/atom+xml
22
+ Accept-Encoding:
23
+ - gzip, deflate
24
+ Authorization:
25
+ - <FILTERED>
26
+ response:
27
+ status:
28
+ code: 201
29
+ message: Created
30
+ headers:
31
+ Expires:
32
+ - Fri, 02 Nov 2012 19:26:13 GMT
33
+ Date:
34
+ - Fri, 02 Nov 2012 19:26:13 GMT
35
+ Cache-Control:
36
+ - private, max-age=0, must-revalidate, no-transform
37
+ Set-Cookie:
38
+ - S=photos_html=jhp6pSG9D6LFu7OtMckIQQ; Domain=.google.com; Path=/; Secure; HttpOnly
39
+ - _rtok=_YeYgDBM1shW; Path=/; Secure; HttpOnly
40
+ Content-Type:
41
+ - application/json; charset=UTF-8
42
+ Access-Control-Allow-Origin:
43
+ - "*"
44
+ Vary:
45
+ - Accept, X-GData-Authorization, GData-Version
46
+ Gdata-Version:
47
+ - "2.0"
48
+ Etag:
49
+ - W/"DkQDQ3Y_cCp7ImA9WhNSGEU."
50
+ Location:
51
+ - https://picasaweb.google.com/data/entry/api/user/106136347770555028022/albumid/5793892606777564353/photoid/5806295577614146146/tag/beauty?alt=json&authkey=Gv1sRgCNmigd3KrbOHLA
52
+ Content-Location:
53
+ - https://picasaweb.google.com/data/entry/api/user/106136347770555028022/albumid/5793892606777564353/photoid/5806295577614146146/tag/beauty?alt=json&authkey=Gv1sRgCNmigd3KrbOHLA
54
+ Content-Encoding:
55
+ - gzip
56
+ Transfer-Encoding:
57
+ - chunked
58
+ X-Content-Type-Options:
59
+ - nosniff
60
+ X-Frame-Options:
61
+ - SAMEORIGIN
62
+ X-Xss-Protection:
63
+ - 1; mode=block
64
+ Server:
65
+ - GSE
66
+ body:
67
+ encoding: ASCII-8BIT
68
+ base64_string: |
69
+ H4sIAAAAAAAAAN1UXW/TMBT9K8ir+sIa56P5aKVoqjYoCDQ02FQBm5CbuInX
70
+ OM5sZ2mp8kP4P/wwrlO2VmhAX3jhJZLvPb733HuOs0H3VComSjRGjmWjY0TL
71
+ RKSszCBwdflyEHUhLddovEErXpSqR6oKkrnW1RjjpmmsxrOEzLBr2yE2yeMt
72
+ 8HcgH0+04A+oXpbugCrJKSfKyoTICmolguPtFUBnaY9qYnjN8DU6W16cXXgf
73
+ vySnVfiaT0az/PzD9MWVdY0AylLDtqd/FlZQuWIJUaSh8/3aKdEEd9PhWlGJ
74
+ HTtwvMAbhmFo+75vu5HtupgU85qzFPvhyItGbmAHkPeDoed7uMqFFiYX2YE7
75
+ 8v0wDJyhM4RPgIEsnlNS6zVqj1FdQTe6I+bajjtwnIHtXjqjsRuMHdeKhtEn
76
+ g4Ul9mjKDoUnUDgTRqLPG9StkB6w0qMlK1NYlqaS/xHezag6eY+MAO0NXGK6
77
+ oI/kdlOqmnOyNcsvmYKVy46gpAUkSAF9SyBuGKwrQ1jTlca55gWEckkXf1Ov
78
+ yLGiRCb5XIpG0ZO7eNutX6kknvbrknAaPylpf8FM+9gGYg+EFC0WOy6gQAE9
79
+ NbwMTMCtz1cH09ozFanYvzXWCawxvlWi7MMpX9J1PL131Pvs9JyzLPXeyPm7
80
+ V28ne1MaV/23U4IvDUDIzmdG/kcfzsRtwmiSP5uV379p+ZUsuzcp2WE/iicn
81
+ Q21707Y/AMkZlQRCBQAA
82
+
83
+ http_version:
84
+ recorded_at: Fri, 02 Nov 2012 19:26:13 GMT
85
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://picasaweb.google.com/data/entry/api/user/w.wnetrzak@gmail.com/albumid/5793892606777564353/photoid/5806295577614146146/tag/beauty?alt=json
6
+ body:
7
+ encoding: US-ASCII
8
+ base64_string: ""
9
+ headers:
10
+ User-Agent:
11
+ - ruby-gem-picasa-v0.5.4 (gzip)
12
+ Gdata-Version:
13
+ - "2"
14
+ Content-Type:
15
+ - application/atom+xml
16
+ Accept-Encoding:
17
+ - gzip, deflate
18
+ Authorization:
19
+ - <FILTERED>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Expires:
26
+ - Fri, 02 Nov 2012 22:44:01 GMT
27
+ Date:
28
+ - Fri, 02 Nov 2012 22:44:01 GMT
29
+ Cache-Control:
30
+ - private, max-age=0, must-revalidate
31
+ Set-Cookie:
32
+ - S=photos_html=75VosCHo5p-jdB_YfBYF2Q; Domain=.google.com; Path=/; Secure; HttpOnly
33
+ - _rtok=BEt5sjzfzGGd; Path=/; Secure; HttpOnly
34
+ Gdata-Version:
35
+ - "2.0"
36
+ X-Content-Type-Options:
37
+ - nosniff
38
+ X-Frame-Options:
39
+ - SAMEORIGIN
40
+ X-Xss-Protection:
41
+ - 1; mode=block
42
+ Content-Length:
43
+ - "0"
44
+ Server:
45
+ - GSE
46
+ Content-Type:
47
+ - text/html; charset=UTF-8
48
+ body:
49
+ encoding: US-ASCII
50
+ base64_string: ""
51
+ http_version:
52
+ recorded_at: Fri, 02 Nov 2012 22:44:03 GMT
53
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,79 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://picasaweb.google.com/data/feed/api/user/w.wnetrzak?alt=json&kind=tag
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ User-Agent:
11
+ - ruby-gem-picasa-v0.5.4 (gzip)
12
+ Gdata-Version:
13
+ - "2"
14
+ Accept-Encoding:
15
+ - gzip, deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Expires:
22
+ - Thu, 01 Nov 2012 17:26:25 GMT
23
+ Date:
24
+ - Thu, 01 Nov 2012 17:26:25 GMT
25
+ Cache-Control:
26
+ - private, max-age=0, must-revalidate, no-transform
27
+ Set-Cookie:
28
+ - S=photos_html=8eaxzVvcRG3MoQYx2wnWQg; Domain=.google.com; Path=/; Secure; HttpOnly
29
+ - _rtok=511JCZCLo4RP; Path=/; Secure; HttpOnly
30
+ Content-Type:
31
+ - application/json; charset=UTF-8
32
+ Access-Control-Allow-Origin:
33
+ - "*"
34
+ Vary:
35
+ - Accept, X-GData-Authorization, GData-Version, Cookie
36
+ Gdata-Version:
37
+ - "2.0"
38
+ Etag:
39
+ - W/"D0UGSHg5fCp7ImA9WhNSF0k."
40
+ Last-Modified:
41
+ - Thu, 01 Nov 2012 04:47:09 GMT
42
+ Content-Encoding:
43
+ - gzip
44
+ Transfer-Encoding:
45
+ - chunked
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ X-Frame-Options:
49
+ - SAMEORIGIN
50
+ X-Xss-Protection:
51
+ - 1; mode=block
52
+ Server:
53
+ - GSE
54
+ body:
55
+ encoding: ASCII-8BIT
56
+ string: !binary |
57
+ H4sIAAAAAAAAAM1W227aQBD9lcohvDT2rrkmSFZEmutLhXIRUps+LGawN9he
58
+ d3cdk0R8SP+nH9ZZczGkJOGhUWqQjdZn58ycmZ3hyboHqbhIrI7lOtTasyDx
59
+ xZAnAS7cXJ/a+7g0AhhanSdrEkeJwvVQ67RDSJ7nTl53hAxIjdIm6WoRI7pA
60
+ VYI0FFqUYOWHEDPlBEIEETi+iEmBUGZve7lNpJBcAZN+WG5lBwXcJioFnxiE
61
+ KhDEdVxSEg5fJZv5iOhgWAHNTHh9cmsd05uzq/OgOfqSti/i7kE//Hp1SsfO
62
+ rYVQXkRd0XPDCi2n3GeK5TBYtT1kmhEjEskUSOLSlltv1Rvtdps2m01a26e1
63
+ mjXds7IUkVAarVG3ZruuTd1r2ug02h164LRqjW8G6yMyEPLB6nx/sop4YIv4
64
+ dsY8GaLnGmS8rfY7xmlr+gN3cR3B0rsXw1DZYB1pFrlvauiZWlFYn5MaDkRo
65
+ SPQsmS14PPebjZv9CSXd5XWx8rtLekfZJG6fhEnrhKhWw/Y3S+vcpYFxIeLJ
66
+ uJBLQrSNVkVZY9QPqZGWpWmEydV4FgjDSv6MZYVvQwmj7fPPUv5KDRyySHt3
67
+ CoWa7i28xCWQCSa79ETDRJNQb03/UqLeFmK1ClTEh6BCkW+WZGLjO3+cs3uw
68
+ RxFT4ZbOKeKTAU/I0ryj8tFhKJT2NuGrl2dHHp3Q4qoaTb3C/G69u1s7xe+m
69
+ TbhsUoAPswEfmAa8m0TgY6M8u/VTVH63fiyVWpFKQTT6mJKoKs2ktvH4wsRz
70
+ qzGb2BJUFmnlNVEJc64907bMOWWZDoUsSj1hcXkO++LO5+CHn/rJ719aPrJx
71
+ 0XUk366NvVBHhjGABCRKIJeWegsLKMjaCDEzpKBc1N1GLuNY2esrWmgWXc7i
72
+ XVC465BCnwsjzwsAriFWPZA9FiwlQekQNJtFlaLPvdnd5uCE++MtxJ2jdZjF
73
+ g4Tx6INbINqej4z3GnMFwysFTZCUYD/LJPzHI29xktbnWOm2yuKYGU/+evNs
74
+ yPyD9h2FZPZ/ZiBFruDwpzdjq6bK986qmalCb6PW1RE39B59tw42y/brLWwl
75
+ 4ysD7gPaFH6mfwCS2xOI0AoAAA==
76
+
77
+ http_version:
78
+ recorded_at: Thu, 01 Nov 2012 17:26:25 GMT
79
+ recorded_with: VCR 2.3.0
data/test/client_test.rb CHANGED
@@ -14,21 +14,21 @@ describe Picasa::Client do
14
14
 
15
15
  describe "#authenticate" do
16
16
  it "successfully authenticates" do
17
- client = Picasa::Client.new(:user_id => "john.doe@domain.com", :password => "secret")
18
-
19
- stub_request(:post, "https://www.google.com/accounts/ClientLogin").to_return(fixture("auth/success.txt"))
17
+ VCR.use_cassette("auth-success") do
18
+ client = Picasa::Client.new(:user_id => "w.wnetrzak@gmail.com", :password => Password)
19
+ client.authenticate
20
20
 
21
- client.authenticate
22
- refute_nil client.authorization_header
21
+ refute_nil client.authorization_header
22
+ end
23
23
  end
24
24
 
25
25
  it "raises an ForbiddenError when authentication failed" do
26
- client = Picasa::Client.new(:user_id => "john.doe@domain.com", :password => "invalid")
26
+ VCR.use_cassette("auth-failed") do
27
+ client = Picasa::Client.new(:user_id => "w.wnetrzak@gmail.com", :password => "invalid")
27
28
 
28
- stub_request(:post, "https://www.google.com/accounts/ClientLogin").to_return(fixture("exceptions/forbidden.txt"))
29
-
30
- assert_raises(Picasa::ForbiddenError) do
31
- client.authenticate
29
+ assert_raises(Picasa::ForbiddenError) do
30
+ client.authenticate
31
+ end
32
32
  end
33
33
  end
34
34
  end
@@ -4,39 +4,4 @@ describe Picasa::Connection do
4
4
  before do
5
5
  @connection = Picasa::Connection.new
6
6
  end
7
-
8
- describe "#path_with_query" do
9
- it "returns path when no params provided" do
10
- path = @connection.path_with_query("/data/feed/api")
11
- assert_equal "/data/feed/api", path
12
- end
13
-
14
- it "adds params to path" do
15
- path = @connection.path_with_query("/data/feed/api", {:q => "bomb"})
16
- assert_equal "/data/feed/api?q=bomb", path
17
- end
18
- end
19
-
20
- it "raises NotFound exception when 404 returned" do
21
- connection = Picasa::Connection.new
22
- uri = URI.parse("/data/feed/api/user/some.user/albumid/non-existing")
23
-
24
- stub_request(:get, "https://picasaweb.google.com" + uri.path).to_return(fixture("exceptions/not_found.txt"))
25
-
26
- assert_raises Picasa::NotFoundError, "Invalid entity id: non-existing" do
27
- connection.get(:path => uri.path)
28
- end
29
- end
30
-
31
- it "raises PreconditionFailed exception when 412 returned" do
32
- connection = Picasa::Connection.new
33
- uri = URI.parse("/data/feed/api/user/some.user/albumid/123")
34
-
35
- stub_request(:post, "https://www.google.com/accounts/ClientLogin").to_return(fixture("auth/success.txt"))
36
- stub_request(:delete, "https://picasaweb.google.com" + uri.path).to_return(fixture("exceptions/precondition_failed.txt"))
37
-
38
- assert_raises Picasa::PreconditionFailedError, "Mismatch: etags = [oldetag], version = [7]" do
39
- connection.delete(:path => uri.path, :headers => {"If-Match" => "oldetag"})
40
- end
41
- end
42
7
  end
data/test/helper.rb CHANGED
@@ -1,13 +1,25 @@
1
+ require "yaml"
2
+ require "zlib"
3
+
1
4
  require "minitest/autorun"
2
5
  require "webmock/minitest"
6
+ require "vcr"
3
7
  require "mocha"
4
8
 
5
9
  require "picasa"
6
10
 
7
- xml_parser = ENV["XML_PARSER"] || "libxml"
11
+ AuthHeader = ENV["PICASA_AUTH_HEADER"] || "GoogleLogin auth=token"
12
+ Password = ENV["PICASA_PASSWORD"] || "secret"
13
+
14
+ MultiJson.adapter = ENV["JSON_PARSER"] || "oj"
8
15
 
9
- require xml_parser if ["nokogiri", "libxml", "ox"].include?(xml_parser)
10
- MultiXml.parser = xml_parser
16
+ VCR.configure do |c|
17
+ c.cassette_library_dir = "test/cassettes"
18
+ c.hook_into :webmock
19
+ c.default_cassette_options = {:serialize_with => :syck, :preserve_exact_body_bytes => true} # Avoid stroing headers as binary
20
+ c.filter_sensitive_data("<FILTERED>") { AuthHeader }
21
+ c.filter_sensitive_data("<FILTERED>") { Password }
22
+ end
11
23
 
12
24
  class MiniTest::Unit::TestCase
13
25
  def setup
@@ -18,9 +30,11 @@ class MiniTest::Unit::TestCase
18
30
  File.join("test", "fixtures", filename)
19
31
  end
20
32
 
21
- # Recording response is as simple as writing in terminal:
22
- # curl -is -H "GData-Version: 2" "https://picasaweb.google.com/data/feed/api/user/username?prettyprint=true" -X GET > test/fixtures/albums.txt
23
- def fixture(filename)
24
- File.read(File.join("test", "fixtures", filename))
33
+ # Retrieves gzipped body
34
+ def decode(cassette_name)
35
+ cassette = YAML.load_file(File.join("test", "cassettes", cassette_name))
36
+ gzipped_body = cassette["http_interactions"][0]["response"]["body"]["string"]
37
+ body_io = StringIO.new(gzipped_body)
38
+ Zlib::GzipReader.new(body_io).read
25
39
  end
26
40
  end
data/test/utils_test.rb CHANGED
@@ -43,12 +43,6 @@ describe Picasa::Utils do
43
43
  end
44
44
  end
45
45
 
46
- describe "#array_wrap" do
47
- it "wraps hash into array" do
48
- assert_equal [{:wt => :f}], Picasa::Utils.array_wrap({:wt => :f})
49
- end
50
- end
51
-
52
46
  describe "#map_to_integer" do
53
47
  it "does not convert nil value" do
54
48
  assert_nil Picasa::Utils.map_to_integer(nil)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picasa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2012-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: multi_xml
15
+ name: httparty
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: vcr
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'
62
78
  description: Simple Google Picasa managment
63
79
  email:
64
80
  - w.wnetrzak@gmail.com
@@ -91,6 +107,7 @@ files:
91
107
  - lib/picasa/connection.rb
92
108
  - lib/picasa/exceptions.rb
93
109
  - lib/picasa/file.rb
110
+ - lib/picasa/http.rb
94
111
  - lib/picasa/presenter/album.rb
95
112
  - lib/picasa/presenter/album_list.rb
96
113
  - lib/picasa/presenter/author.rb
@@ -116,47 +133,28 @@ files:
116
133
  - test/api/comment_test.rb
117
134
  - test/api/photo_test.rb
118
135
  - test/api/tag_test.rb
136
+ - test/cassettes/album-404.yml
137
+ - test/cassettes/album-create.yml
138
+ - test/cassettes/album-destroy.yml
139
+ - test/cassettes/album-list.yml
140
+ - test/cassettes/album-show.yml
141
+ - test/cassettes/auth-failed.yml
142
+ - test/cassettes/auth-success.yml
143
+ - test/cassettes/comment-400.yml
144
+ - test/cassettes/comment-create.yml
145
+ - test/cassettes/comment-destroy.yml
146
+ - test/cassettes/comment-list.yml
147
+ - test/cassettes/photo-412.yml
148
+ - test/cassettes/photo-create.yml
149
+ - test/cassettes/photo-destroy.yml
150
+ - test/cassettes/tag-create.yml
151
+ - test/cassettes/tag-destroy.yml
152
+ - test/cassettes/tag-list.yml
119
153
  - test/client_test.rb
120
154
  - test/connection_test.rb
121
155
  - test/file_test.rb
122
- - test/fixtures/album/album-create.txt
123
- - test/fixtures/album/album-list-with-tag.txt
124
- - test/fixtures/album/album-list.txt
125
- - test/fixtures/album/album-show-with-max-results.txt
126
- - test/fixtures/album/album-show-with-tag-and-many-photos.txt
127
- - test/fixtures/album/album-show-with-tag-and-one-photo.txt
128
- - test/fixtures/album/album-show.txt
129
- - test/fixtures/auth/success.txt
130
- - test/fixtures/comment/comment-list.txt
131
- - test/fixtures/exceptions/forbidden.txt
132
- - test/fixtures/exceptions/not_found.txt
133
- - test/fixtures/exceptions/precondition_failed.txt
134
- - test/fixtures/json.txt
135
156
  - test/fixtures/lena.jpg
136
- - test/fixtures/photo/photo-created.txt
137
- - test/fixtures/photo/photo-list-all-with-q.txt
138
- - test/fixtures/photo/photo-list-all.txt
139
- - test/fixtures/photo/photo-list-user.txt
140
- - test/fixtures/presenters/album_list.xml
141
- - test/fixtures/presenters/album_show.xml
142
- - test/fixtures/presenters/album_show_with_one_photo.xml
143
- - test/fixtures/presenters/comment_list.xml
144
- - test/fixtures/presenters/tag_list.xml
145
- - test/fixtures/tag/tag-list.txt
146
157
  - test/helper.rb
147
- - test/presenter/album_list_test.rb
148
- - test/presenter/album_test.rb
149
- - test/presenter/author_test.rb
150
- - test/presenter/base_test.rb
151
- - test/presenter/comment_list_test.rb
152
- - test/presenter/comment_test.rb
153
- - test/presenter/content_test.rb
154
- - test/presenter/link_test.rb
155
- - test/presenter/media_test.rb
156
- - test/presenter/photo_test.rb
157
- - test/presenter/tag_list_test.rb
158
- - test/presenter/tag_test.rb
159
- - test/presenter/thumbnail_test.rb
160
158
  - test/template_test.rb
161
159
  - test/utils_test.rb
162
160
  homepage: https://github.com/morgoth/picasa
@@ -184,4 +182,3 @@ signing_key:
184
182
  specification_version: 3
185
183
  summary: simple google picasa managment
186
184
  test_files: []
187
- has_rdoc: