Navigation Menu

Skip to content

Commit

Permalink
Fix a bug with signing escaped strings. Thanks to Antonin Hildebrand
Browse files Browse the repository at this point in the history
  • Loading branch information
Mael Clerambault committed Apr 24, 2008
1 parent 5ce6331 commit e6ee1ef
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/flickraw.rb
Expand Up @@ -201,8 +201,9 @@ def build_args(args={}, req = nil)
full_args = {:api_key => FlickRaw.api_key, :format => 'json', :nojsoncallback => 1}
full_args[:method] = req if req
full_args[:auth_token] = @token if @token
args.each {|k, v| full_args[k.to_sym] = CGI.escape(v.to_s) }
args.each {|k, v| full_args[k.to_sym] = v.to_s }
full_args[:api_sig] = FlickRaw.api_sig(full_args) if FlickRaw.shared_secret
args.each {|k, v| full_args[k.to_sym] = CGI.escape(v.to_s) }
full_args
end

Expand Down
13 changes: 13 additions & 0 deletions test/test.rb
@@ -1,6 +1,11 @@
require 'test/unit'
require 'lib/flickraw'

# utf8 hack
def u(str)
str.gsub(/\\+u([0-9a-fA-F]{4,4})/u){["#$1".hex ].pack('U*')}
end

class Basic < Test::Unit::TestCase
def test_known
known_methods = ["flickr.activity.userComments", "flickr.activity.userPhotos", "flickr.auth.checkToken", "flickr.auth.getFrob", "flickr.auth.getFullToken", "flickr.auth.getToken", "flickr.blogs.getList", "flickr.blogs.postPhoto", "flickr.contacts.getList", "flickr.contacts.getPublicList", "flickr.favorites.add", "flickr.favorites.getList", "flickr.favorites.getPublicList", "flickr.favorites.remove", "flickr.groups.browse", "flickr.groups.getInfo", "flickr.groups.pools.add", "flickr.groups.pools.getContext", "flickr.groups.pools.getGroups", "flickr.groups.pools.getPhotos", "flickr.groups.pools.remove", "flickr.groups.search", "flickr.interestingness.getList", "flickr.people.findByEmail", "flickr.people.findByUsername", "flickr.people.getInfo", "flickr.people.getPublicGroups", "flickr.people.getPublicPhotos", "flickr.people.getUploadStatus", "flickr.photos.addTags", "flickr.photos.comments.addComment", "flickr.photos.comments.deleteComment", "flickr.photos.comments.editComment", "flickr.photos.comments.getList", "flickr.photos.delete", "flickr.photos.geo.getLocation", "flickr.photos.geo.getPerms", "flickr.photos.geo.removeLocation", "flickr.photos.geo.setLocation", "flickr.photos.geo.setPerms", "flickr.photos.getAllContexts", "flickr.photos.getContactsPhotos", "flickr.photos.getContactsPublicPhotos", "flickr.photos.getContext", "flickr.photos.getCounts", "flickr.photos.getExif", "flickr.photos.getFavorites", "flickr.photos.getInfo", "flickr.photos.getNotInSet", "flickr.photos.getPerms", "flickr.photos.getRecent", "flickr.photos.getSizes", "flickr.photos.getUntagged", "flickr.photos.getWithGeoData", "flickr.photos.getWithoutGeoData", "flickr.photos.licenses.getInfo", "flickr.photos.licenses.setLicense", "flickr.photos.notes.add", "flickr.photos.notes.delete", "flickr.photos.notes.edit", "flickr.photos.recentlyUpdated", "flickr.photos.removeTag", "flickr.photos.search", "flickr.photos.setDates", "flickr.photos.setMeta", "flickr.photos.setPerms", "flickr.photos.setTags", "flickr.photos.transform.rotate", "flickr.photos.upload.checkTickets", "flickr.photosets.addPhoto", "flickr.photosets.comments.addComment", "flickr.photosets.comments.deleteComment", "flickr.photosets.comments.editComment", "flickr.photosets.comments.getList", "flickr.photosets.create", "flickr.photosets.delete", "flickr.photosets.editMeta", "flickr.photosets.editPhotos", "flickr.photosets.getContext", "flickr.photosets.getInfo", "flickr.photosets.getList", "flickr.photosets.getPhotos", "flickr.photosets.orderSets", "flickr.photosets.removePhoto", "flickr.reflection.getMethodInfo", "flickr.reflection.getMethods", "flickr.tags.getHotList", "flickr.tags.getListPhoto", "flickr.tags.getListUser", "flickr.tags.getListUserPopular", "flickr.tags.getListUserRaw", "flickr.tags.getRelated", "flickr.test.echo", "flickr.test.login", "flickr.test.null", "flickr.urls.getGroup", "flickr.urls.getUserPhotos", "flickr.urls.getUserProfile", "flickr.urls.lookupGroup", "flickr.urls.lookupUser"]
Expand Down Expand Up @@ -50,5 +55,13 @@ def test_url_escape
result_set = flickr.photos.search :text => "family vacation"
}
assert_operator result_set.total.to_i, :>=, 0

# Unicode tests
echo = nil
utf8_text = "Hélène François, €uro"
assert_nothing_raised {
echo = flickr.test.echo :utf8_text => utf8_text
}
assert_equal u(echo.utf8_text), utf8_text
end
end

0 comments on commit e6ee1ef

Please sign in to comment.