objectiveflickr 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,13 @@
1
+ 2007-01-08 (0.9.4):
2
+ * Fixed a serious defect where API parameters, such as search text,
3
+ must be URL-escaped. There's a catch if you tried previously to use
4
+ CGI.escape to work around, though: Flickr's API signature string must
5
+ not be *escaped* before the string is MD5-checksummed.
6
+
7
+ Now everything should work fine. Pass a few CJKV or HTML entity
8
+ characters to see how it goes!
9
+
10
+
1
11
  2007-01-04 (0.9.3):
2
12
  * These methods from FlickrPhoto are deprecated:
3
13
 
@@ -11,6 +11,7 @@ require 'rubygems'
11
11
  require 'net/http'
12
12
  require 'jcode'
13
13
  require 'digest/md5'
14
+ require 'cgi'
14
15
 
15
16
  $KCODE = 'UTF8'
16
17
 
@@ -117,7 +118,7 @@ class FlickrInvocation
117
118
  p["api_sig"] = api_sig(sigp)
118
119
  end
119
120
 
120
- p.keys.each { |k| url += "&#{k.to_s}=#{p[k]}" }
121
+ p.keys.each { |k| url += "&#{k.to_s}=#{CGI.escape(p[k].to_s)}" }
121
122
  url
122
123
  end
123
124
 
@@ -2,7 +2,7 @@ module ObjectiveFlickr #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 9
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -3,7 +3,10 @@ require 'yaml'
3
3
 
4
4
  class ObjectiveFlickrTest < Test::Unit::TestCase
5
5
 
6
+ TEST_API_KEY = 'bf67a649fffb210651334a09b92df02e'
7
+
6
8
  def setup
9
+ @f = FlickrInvocation.new(TEST_API_KEY)
7
10
  end
8
11
 
9
12
  def test_truth
@@ -12,12 +15,18 @@ class ObjectiveFlickrTest < Test::Unit::TestCase
12
15
 
13
16
  # we use a unit test API key for this purpose
14
17
  def test_echo
15
- f = FlickrInvocation.new('bf67a649fffb210651334a09b92df02e')
16
- r = f.call("flickr.test.echo")
18
+ r = @f.call("flickr.test.echo")
17
19
  assert(r.ok?, "response should be ok")
18
20
  assert_equal(r["method"]["_content"], "flickr.test.echo", "method name should echo")
19
21
  end
20
22
 
23
+ def test_echo_escaped_characters
24
+ r = @f.call("flickr.test.echo", :text=>"漢字 @ < > lorem ipsum")
25
+ assert(r.ok?, "response should be ok")
26
+ assert_equal(r["text"]["_content"], "漢字 @ < > lorem ipsum", "CJKV, HTML entities and other characters should be properly URL-escaped")
27
+ end
28
+
29
+
21
30
  def test_default_settings
22
31
  FlickrInvocation.default_api_key 'bf67a649fffb210651334a09b92df02e'
23
32
  f = FlickrInvocation.new
@@ -41,10 +50,9 @@ class ObjectiveFlickrTest < Test::Unit::TestCase
41
50
  end
42
51
 
43
52
  def test_deprecated_photo_helpers
44
- f = FlickrInvocation.new
45
53
  params = {:server=>1234, :id=>5678, :secret=>90, :farm=>321}
46
- assert_equal(f.photo_url(params), "http://farm321.static.flickr.com/1234/5678_90.jpg", "URL helper failed")
47
- uid = f.photo_div_id(params)
54
+ assert_equal(@f.photo_url(params), "http://farm321.static.flickr.com/1234/5678_90.jpg", "URL helper failed")
55
+ uid = @f.photo_div_id(params)
48
56
  assert_equal(uid, "photo-1234-5678-90-321--jpg", "UID failed")
49
57
  end
50
58
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: objectiveflickr
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.9.3
7
- date: 2007-01-05 00:00:00 +08:00
6
+ version: 0.9.4
7
+ date: 2007-01-09 00:00:00 +08:00
8
8
  summary: objectiveflickr is a minimalistic Flickr API library that uses REST-style calls and receives JSON response blocks, resulting in very concise code. Named so in order to echo another Flickr library of mine, under the same name, developed for Objective-C.
9
9
  require_paths:
10
10
  - lib