fleakr 0.4.1 → 0.4.2

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.
@@ -10,6 +10,17 @@ module Fleakr::Api
10
10
  Fleakr.stubs(:shared_secret).with().returns(@secret)
11
11
  end
12
12
 
13
+ it "should have a collection of upload_options" do
14
+ request = UploadRequest.new('foo', :create, {:title => 'foo', :tags => %w(a b)})
15
+
16
+ option_1, option_2 = [stub(:to_hash => {:one => 'value_1'}), stub(:to_hash => {:two => 'value_2'})]
17
+
18
+ Option.expects(:for).with(:title, 'foo').returns(option_1)
19
+ Option.expects(:for).with(:tags, %w(a b)).returns(option_2)
20
+
21
+ request.upload_options.should == {:one => 'value_1', :two => 'value_2'}
22
+ end
23
+
13
24
  it "should create a file parameter on initialization" do
14
25
  filename = '/path/to/image.jpg'
15
26
 
@@ -17,17 +28,18 @@ module Fleakr::Api
17
28
  FileParameter.expects(:new).with('photo', filename).returns(parameter)
18
29
 
19
30
  parameter_list = mock() {|m| m.expects(:<<).with(parameter) }
20
- ParameterList.expects(:new).with(:authenticate? => true).returns(parameter_list)
31
+ ParameterList.expects(:new).with({}).returns(parameter_list)
21
32
 
22
33
  UploadRequest.new(filename)
23
34
  end
24
35
 
25
- it "should allow setting additional parameters on initialization" do
26
- params = {:is_public => 1}
36
+ it "should allow setting options on initialization" do
37
+ option = stub {|s| s.stubs(:to_hash).with().returns({:title => 'foo'})}
38
+ Option.expects(:for).with(:title, 'foo').returns(option)
27
39
 
28
- ParameterList.expects(:new).with({:is_public => 1, :authenticate? => true}).returns(stub(:<<))
40
+ ParameterList.expects(:new).with({:title => 'foo'}).returns(stub(:<<))
29
41
 
30
- UploadRequest.new('filename', params)
42
+ UploadRequest.new('filename', :create, {:title => 'foo'})
31
43
  end
32
44
 
33
45
  context "after initialization" do
@@ -40,7 +52,7 @@ module Fleakr::Api
40
52
  end
41
53
 
42
54
  it "should allow setting the type to :update" do
43
- request = UploadRequest.new('file', :type => :update)
55
+ request = UploadRequest.new('file', :update)
44
56
  request.type.should == :update
45
57
  end
46
58
 
@@ -50,7 +62,7 @@ module Fleakr::Api
50
62
  end
51
63
 
52
64
  it "should know the endpoint_uri for an :update request" do
53
- request = UploadRequest.new('filename', :type => :update)
65
+ request = UploadRequest.new('filename', :update)
54
66
  request.__send__(:endpoint_uri).should == URI.parse('http://api.flickr.com/services/replace/')
55
67
  end
56
68
 
@@ -110,7 +122,7 @@ module Fleakr::Api
110
122
  filename = 'filename'
111
123
  response = stub(:error? => false)
112
124
 
113
- UploadRequest.expects(:new).with(filename, {}).returns(stub(:send => response))
125
+ UploadRequest.expects(:new).with(filename, :create, {}).returns(stub(:send => response))
114
126
  UploadRequest.with_response!(filename).should == response
115
127
  end
116
128
 
@@ -118,7 +130,7 @@ module Fleakr::Api
118
130
  filename = 'filename'
119
131
  response = stub(:error? => true, :error => stub(:code => '1', :message => 'User not found'))
120
132
 
121
- UploadRequest.expects(:new).with(filename, {}).returns(stub(:send => response))
133
+ UploadRequest.expects(:new).with(filename, :create, {}).returns(stub(:send => response))
122
134
 
123
135
  lambda do
124
136
  UploadRequest.with_response!(filename)
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ class FalseClassTest < Test::Unit::TestCase
4
+
5
+ describe "An instance of the FalseClass class" do
6
+
7
+ it "should have 0 as its integer value" do
8
+ false.to_i.should == 0
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ class TrueClassTest < Test::Unit::TestCase
4
+
5
+ describe "An instance of the TrueClass class" do
6
+
7
+ it "should have 1 as its integer value" do
8
+ true.to_i.should == 1
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -9,7 +9,7 @@ module Fleakr::Objects
9
9
  token = '123-123-123'
10
10
  auth_token = stub()
11
11
 
12
- response = mock_request_cycle :for => 'auth.getFullToken', :with => {:mini_token => token, :sign? => true}
12
+ response = mock_request_cycle :for => 'auth.getFullToken', :with => {:mini_token => token, :authenticate? => false}
13
13
 
14
14
  AuthenticationToken.expects(:new).with(response.body).returns(auth_token)
15
15
 
@@ -20,12 +20,23 @@ module Fleakr::Objects
20
20
  token = 'abc123'
21
21
  auth_token = stub()
22
22
 
23
- response = mock_request_cycle :for => 'auth.checkToken', :with => {:auth_token => token, :sign? => true}
23
+ response = mock_request_cycle :for => 'auth.checkToken', :with => {:auth_token => token, :authenticate? => false}
24
24
 
25
25
  AuthenticationToken.expects(:new).with(response.body).returns(auth_token)
26
26
  AuthenticationToken.from_auth_token(token).should == auth_token
27
27
  end
28
28
 
29
+
30
+ it "should be able to create an instance from a frob" do
31
+ frob = '12345678901234567-abcde89012fg3456-7890123'
32
+ auth_token = stub()
33
+
34
+ response = mock_request_cycle :for => 'auth.getToken', :with => {:frob => frob, :authenticate? => false}
35
+
36
+ AuthenticationToken.expects(:new).with(response.body).returns(auth_token)
37
+ AuthenticationToken.from_frob(frob).should == auth_token
38
+ end
39
+
29
40
  end
30
41
 
31
42
  describe "An instance of the AuthenticationToken class" do
@@ -38,6 +49,9 @@ module Fleakr::Objects
38
49
 
39
50
  should_have_a_value_for :value => 'abc-123'
40
51
  should_have_a_value_for :permissions => 'delete'
52
+ should_have_a_value_for :user_id => '31066442@N69'
53
+ should_have_a_value_for :full_name => 'Sir Froot Pants'
54
+ should_have_a_value_for :user_name => 'frootpantz'
41
55
 
42
56
  end
43
57
 
@@ -16,7 +16,7 @@ module Fleakr::Objects
16
16
 
17
17
  should_find_one :photo, :by => :id, :with => :photo_id, :call => 'photos.getInfo'
18
18
 
19
-
19
+ # TODO: refactor these 2 tests
20
20
  it "should be able to upload a photo and return the new photo information" do
21
21
  filename = '/path/to/mugshot.jpg'
22
22
  photo = stub()
@@ -25,11 +25,25 @@ module Fleakr::Objects
25
25
  s.stubs(:body).with().returns(Hpricot.XML('<photoid>123</photoid>'))
26
26
  end
27
27
 
28
- Fleakr::Api::UploadRequest.expects(:with_response!).with(filename).returns(response)
29
- Photo.expects(:find_by_id).with('123', :authenticate? => true).returns(photo)
28
+ Fleakr::Api::UploadRequest.expects(:with_response!).with(filename, :create, {}).returns(response)
29
+ Photo.expects(:find_by_id).with('123').returns(photo)
30
30
 
31
31
  Photo.upload(filename).should == photo
32
32
  end
33
+
34
+ it "should be able to pass additional options when uploading a new file" do
35
+ filename = '/path/to/mugshot.jpg'
36
+ photo = stub()
37
+
38
+ response = stub do |s|
39
+ s.stubs(:body).with().returns(Hpricot.XML('<photoid>123</photoid>'))
40
+ end
41
+
42
+ Fleakr::Api::UploadRequest.expects(:with_response!).with(filename, :create, {:title => 'foo'}).returns(response)
43
+ Photo.expects(:find_by_id).with('123').returns(photo)
44
+
45
+ Photo.upload(filename, :title => 'foo').should == photo
46
+ end
33
47
 
34
48
  end
35
49
 
@@ -39,9 +53,9 @@ module Fleakr::Objects
39
53
  filename = '/path/to/file.jpg'
40
54
  response = stub(:body => 'body')
41
55
 
42
- params = {:type => :update, :photo_id => '1'}
56
+ params = {:photo_id => '1'}
43
57
 
44
- Fleakr::Api::UploadRequest.expects(:with_response!).with(filename, params).returns(response)
58
+ Fleakr::Api::UploadRequest.expects(:with_response!).with(filename, :update, params).returns(response)
45
59
 
46
60
  photo = Photo.new
47
61
  photo.stubs(:id).returns('1')
@@ -110,17 +124,17 @@ module Fleakr::Objects
110
124
 
111
125
  it "should have a value for :posted_at" do
112
126
  @photo.expects(:posted).with().returns("#{@time.to_i}")
113
- @photo.posted_at.should == @time
127
+ @photo.posted_at.to_s.should == @time.to_s
114
128
  end
115
129
 
116
130
  it "should have a value for :taken_at" do
117
131
  @photo.expects(:taken).with().returns(@time.strftime('%Y-%m-%d %H:%M:%S'))
118
- @photo.taken_at.should == @time
132
+ @photo.taken_at.to_s.should == @time.to_s
119
133
  end
120
134
 
121
135
  it "should have a value for :updated_at" do
122
136
  @photo.expects(:updated).with().returns("#{@time.to_i}")
123
- @photo.updated_at.should == @time
137
+ @photo.updated_at.to_s.should == @time.to_s
124
138
  end
125
139
 
126
140
  it "should have a collection of images by size" do
@@ -41,18 +41,63 @@ class FleakrTest < Test::Unit::TestCase
41
41
  Fleakr.search(:tags => %w(one two))
42
42
  end
43
43
 
44
+ # TODO: refactor uploading tests?
44
45
  it "should be able to upload a collection of images" do
45
46
  glob = '*.jpg'
46
47
  filenames = %w(one.jpg two.jpg)
47
48
 
48
49
  Dir.expects(:[]).with(glob).returns(filenames)
49
50
 
50
- Fleakr::Objects::Photo.expects(:upload).with('one.jpg')
51
- Fleakr::Objects::Photo.expects(:upload).with('two.jpg')
51
+ Fleakr::Objects::Photo.expects(:upload).with('one.jpg', {})
52
+ Fleakr::Objects::Photo.expects(:upload).with('two.jpg', {})
52
53
 
53
54
  Fleakr.upload(glob)
54
55
  end
55
56
 
57
+ it "should return recently uploaded photos" do
58
+ filename = '/path/to/image.jpg'
59
+ new_image = stub()
60
+
61
+ Dir.expects(:[]).with(filename).returns([filename])
62
+ Fleakr::Objects::Photo.expects(:upload).with(filename, {}).returns(new_image)
63
+
64
+ Fleakr.upload(filename).should == [new_image]
65
+ end
66
+
67
+ it "should be able to pass options for the uploaded files" do
68
+ filename = '/path/to/image.jpg'
69
+ new_image = stub()
70
+
71
+ Dir.expects(:[]).with(filename).returns([filename])
72
+ Fleakr::Objects::Photo.expects(:upload).with(filename, :title => 'bop bip').returns(new_image)
73
+
74
+ Fleakr.upload(filename, :title => 'bop bip').should == [new_image]
75
+ end
76
+
77
+ it "should be able to reset the cached token" do
78
+ @token = stub()
79
+ Fleakr.expects(:auth_token).with().at_least_once.returns('abc123')
80
+ Fleakr::Objects::AuthenticationToken.expects(:from_auth_token).with('abc123').times(2).returns(@token)
81
+ Fleakr.token # once
82
+ Fleakr.reset_token
83
+ Fleakr.token # twice
84
+ end
85
+
86
+ it "should not have a token by default" do
87
+ Fleakr.expects(:mini_token).with().returns(nil)
88
+ Fleakr.expects(:auth_token).with().returns(nil)
89
+ Fleakr.expects(:frob).with().returns(nil)
90
+
91
+ Fleakr.token.should be(nil)
92
+ end
93
+
94
+ [:mini_token, :auth_token, :frob].each do |attribute|
95
+ it "should reset_token when :#{attribute} is set" do
96
+ Fleakr.expects(:reset_token).with().at_least_once
97
+ Fleakr.send("#{attribute}=".to_sym, 'value')
98
+ end
99
+ end
100
+
56
101
  context "when generating an AuthenticationToken from an auth_token string" do
57
102
 
58
103
  before do
@@ -63,7 +108,30 @@ class FleakrTest < Test::Unit::TestCase
63
108
  end
64
109
 
65
110
  # Make sure to clear the cache
66
- after { Fleakr.instance_variable_set(:@token, nil) }
111
+ after { Fleakr.auth_token = nil }
112
+
113
+ it "should return the token" do
114
+ Fleakr.token.should == @token
115
+ end
116
+
117
+ it "should cache the result" do
118
+ 2.times { Fleakr.token }
119
+ end
120
+
121
+ end
122
+
123
+ context "when generating an AuthenticationToken from a frob string" do
124
+
125
+ before do
126
+ @token = stub()
127
+
128
+ Fleakr.expects(:auth_token).with().at_least_once.returns(nil)
129
+ Fleakr.expects(:frob).with().at_least_once.returns('abc123')
130
+ Fleakr::Objects::AuthenticationToken.expects(:from_frob).with('abc123').returns(@token)
131
+ end
132
+
133
+ # Make sure to clear the cache
134
+ after { Fleakr.frob = nil }
67
135
 
68
136
  it "should return the token" do
69
137
  Fleakr.token.should == @token
@@ -86,7 +154,7 @@ class FleakrTest < Test::Unit::TestCase
86
154
  end
87
155
 
88
156
  # Make sure to clear the cache
89
- after { Fleakr.instance_variable_set(:@token, nil) }
157
+ after { Fleakr.mini_token = nil }
90
158
 
91
159
  it "should return the token" do
92
160
  Fleakr.token.should == @token
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fleakr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Reagan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-21 00:00:00 -05:00
12
+ date: 2009-03-03 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 2.2.0
33
+ version: "2.0"
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: loggable
@@ -57,6 +57,7 @@ files:
57
57
  - lib/fleakr/api
58
58
  - lib/fleakr/api/file_parameter.rb
59
59
  - lib/fleakr/api/method_request.rb
60
+ - lib/fleakr/api/option.rb
60
61
  - lib/fleakr/api/parameter.rb
61
62
  - lib/fleakr/api/parameter_list.rb
62
63
  - lib/fleakr/api/response.rb
@@ -64,7 +65,9 @@ files:
64
65
  - lib/fleakr/api/value_parameter.rb
65
66
  - lib/fleakr/api.rb
66
67
  - lib/fleakr/core_ext
68
+ - lib/fleakr/core_ext/false_class.rb
67
69
  - lib/fleakr/core_ext/hash.rb
70
+ - lib/fleakr/core_ext/true_class.rb
68
71
  - lib/fleakr/core_ext.rb
69
72
  - lib/fleakr/objects
70
73
  - lib/fleakr/objects/authentication_token.rb
@@ -86,6 +89,7 @@ files:
86
89
  - test/fixtures
87
90
  - test/fixtures/auth.checkToken.xml
88
91
  - test/fixtures/auth.getFullToken.xml
92
+ - test/fixtures/auth.getToken.xml
89
93
  - test/fixtures/contacts.getPublicList.xml
90
94
  - test/fixtures/groups.pools.getPhotos.xml
91
95
  - test/fixtures/people.findByEmail.xml
@@ -104,13 +108,16 @@ files:
104
108
  - test/unit/fleakr/api
105
109
  - test/unit/fleakr/api/file_parameter_test.rb
106
110
  - test/unit/fleakr/api/method_request_test.rb
111
+ - test/unit/fleakr/api/option_test.rb
107
112
  - test/unit/fleakr/api/parameter_list_test.rb
108
113
  - test/unit/fleakr/api/parameter_test.rb
109
114
  - test/unit/fleakr/api/response_test.rb
110
115
  - test/unit/fleakr/api/upload_request_test.rb
111
116
  - test/unit/fleakr/api/value_parameter_test.rb
112
117
  - test/unit/fleakr/core_ext
118
+ - test/unit/fleakr/core_ext/false_class_test.rb
113
119
  - test/unit/fleakr/core_ext/hash_test.rb
120
+ - test/unit/fleakr/core_ext/true_class_test.rb
114
121
  - test/unit/fleakr/objects
115
122
  - test/unit/fleakr/objects/authentication_token_test.rb
116
123
  - test/unit/fleakr/objects/contact_test.rb