test/api/comment_test.rb in picasa-0.5.4 vs test/api/comment_test.rb in picasa-0.6.0
- old
+ new
@@ -1,28 +1,98 @@
# -*- encoding: utf-8 -*-
require "helper"
describe Picasa::API::Comment do
describe "#list" do
+ before do
+ VCR.use_cassette("comment-list") do
+ @comment_list = Picasa::API::Comment.new(:user_id => "w.wnetrzak").list(:album_id => "5239555770355467953")
+ end
+ end
+
it "throws ArgumentError when photo_id provided without album_id" do
comment = Picasa::API::Comment.new(:user_id => "w.wnetrzak")
assert_raises Picasa::ArgumentError, /album_id/ do
comment.list(:photo_id => "12343")
end
end
- it "gives correct parsed body fragment" do
- stub_request(:get, "https://picasaweb.google.com/data/feed/api/user/w.wnetrzak?kind=comment").to_return(fixture("comment/comment-list.txt"))
+ it "has author name" do
+ assert_equal "Wojciech Wnętrzak", @comment_list.author.name
+ end
- comment_list = Picasa::API::Comment.new(:user_id => "w.wnetrzak").list
+ it "has author uri" do
+ assert_equal "https://picasaweb.google.com/106136347770555028022", @comment_list.author.uri
+ end
- assert_equal 1, comment_list.entries.size
+ it "has links" do
+ assert_equal 5, @comment_list.links.size
end
+
+ it "has title" do
+ assert_equal "test", @comment_list.title
+ end
+
+ it "has updated" do
+ assert_equal "2012-10-25T00:32:51+00:00", @comment_list.updated.to_s
+ end
+
+ it "has icon" do
+ expected = "https://lh6.googleusercontent.com/-ZqXRf3HicvI/SLakNnjixrE/AAAAAAAAAkc/3EAZ0eF3-CQ/s160-c/Test.jpg"
+ assert_equal expected, @comment_list.icon
+ end
+
+ it "has generator" do
+ assert_equal "Picasaweb", @comment_list.generator
+ end
+
+ it "has total_results" do
+ assert_equal 1, @comment_list.total_results
+ end
+
+ it "has start_index" do
+ assert_equal 1, @comment_list.start_index
+ end
+
+ it "has items_per_page" do
+ assert_equal 500, @comment_list.items_per_page
+ end
+
+ it "has user" do
+ assert_equal "106136347770555028022", @comment_list.user
+ end
+
+ it "has nickname" do
+ assert_equal "Wojciech Wnętrzak", @comment_list.nickname
+ end
+
+ it "has entries" do
+ assert_equal 1, @comment_list.entries.size
+ end
+
+ it "has content" do
+ assert_equal "beautiful place", @comment_list.entries.first.content
+ end
+
+ it "has id" do
+ expected = "z13fufdr3znxifia004cgjbgjkmwyr5ot4g-1351125171797000"
+ assert_equal expected, @comment_list.entries.first.id
+ end
end
describe "#create" do
+ it "creates comment" do
+ VCR.use_cassette("comment-create") do
+ attributes = {:album_id => "5793892606777564353", :photo_id => "5806295577614146146", :content => "żółć"}
+
+ comment = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :authorization_header => AuthHeader).create(attributes)
+
+ assert_equal "żółć", comment.content
+ end
+ end
+
it "raises ArgumentError when no album_id" do
comment = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :password => "secret")
assert_raises Picasa::ArgumentError, /album_id/ do
comment.create(:photo_id => "455", :content => "content")
end
@@ -42,10 +112,21 @@
end
end
end
describe "#destroy" do
+ it "destroys comment" do
+ VCR.use_cassette("comment-destroy") do
+ comment_id = "z13aebo5hvi5gjtj004cgjbgjkmwyr5ot4g-1351896079590000"
+ attributes = {:album_id => "5793892606777564353", :photo_id => "5806295577614146146"}
+
+ result = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :authorization_header => AuthHeader).destroy(comment_id, attributes)
+
+ assert_equal true, result
+ end
+ end
+
it "raises ArgumentError when no photo_id" do
comment = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :password => "secret")
assert_raises Picasa::ArgumentError, /photo_id/ do
comment.destroy("wtf", :album_id => "123")
end
@@ -55,16 +136,20 @@
comment = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :password => "secret")
assert_raises Picasa::ArgumentError, /album_id/ do
comment.destroy("wtf", :photo_id => "455")
end
end
+ end
- it "gives true when success" do
- stub_request(:post, "https://www.google.com/accounts/ClientLogin").to_return(fixture("auth/success.txt"))
- stub_request(:delete, "https://picasaweb.google.com/data/entry/api/user/w.wnetrzak@gmail.com/albumid/123/photoid/456/commentid/987").to_return(:status => 200, :body => "")
+ describe "exceptions" do
+ it "raises BadRequest exception when bad comment id given" do
+ VCR.use_cassette("comment-400") do
+ comment_id = "13fufdr3znxifia004cgjbgjkmwyr5ot4g-1351125171797000"
+ attributes = {:album_id => "5793892606777564353", :photo_id => "5806295577614146146"}
- result = Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :password => "secret").destroy("987", :album_id => "123", :photo_id => "456")
-
- assert_equal true, result
+ assert_raises Picasa::BadRequestError, "Invalid entity id: non-existing" do
+ Picasa::API::Comment.new(:user_id => "w.wnetrzak@gmail.com", :authorization_header => AuthHeader).destroy(comment_id, attributes)
+ end
+ end
end
end
end