ruby-trello 0.4.4.3 → 0.5.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.
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
- include Trello::Authorization
4
3
  include Trello
4
+ include Trello::Authorization
5
5
 
6
6
  describe OAuthPolicy do
7
7
  before do
@@ -9,19 +9,65 @@ describe OAuthPolicy do
9
9
  OAuthPolicy.token = nil
10
10
  end
11
11
 
12
+ describe "#consumer_credential" do
13
+ it "uses class setting if available" do
14
+ policy = OAuthPolicy.new
15
+ policy.consumer_credential.key.should eq('xxx')
16
+ policy.consumer_credential.secret.should eq('xxx')
17
+ end
18
+
19
+ it "is built from given consumer_key and consumer_secret" do
20
+ policy = OAuthPolicy.new(
21
+ :consumer_key => 'consumer_key',
22
+ :consumer_secret => 'consumer_secret'
23
+ )
24
+ policy.consumer_credential.key.should eq('consumer_key')
25
+ policy.consumer_credential.secret.should eq('consumer_secret')
26
+ end
27
+
28
+ it "is nil if none supplied to class" do
29
+ OAuthPolicy.consumer_credential = nil
30
+ policy = OAuthPolicy.new
31
+ policy.consumer_credential.should be_nil
32
+ end
33
+ end
34
+
35
+ describe "#token" do
36
+ it "uses class setting if available" do
37
+ OAuthPolicy.token = OAuthCredential.new "xxx", "xxx"
38
+ policy = OAuthPolicy.new
39
+ policy.token.key.should eq('xxx')
40
+ policy.token.secret.should eq('xxx')
41
+ end
42
+
43
+ it "is built from given oauth_token and oauth_token_secret" do
44
+ policy = OAuthPolicy.new(
45
+ :oauth_token => 'oauth_token',
46
+ :oauth_token_secret => 'oauth_token_secret'
47
+ )
48
+ policy.token.key.should eq('oauth_token')
49
+ policy.token.secret.should eq('oauth_token_secret')
50
+ end
51
+
52
+ it "is an empty token if no oauth credentials supplied" do
53
+ policy = OAuthPolicy.new
54
+ policy.token.should be_nil
55
+ end
56
+ end
57
+
12
58
  context "2-legged" do
13
- it "adds an authorization header" do
59
+ it "adds an authorization header" do
14
60
  uri = Addressable::URI.parse("https://xxx/")
15
61
 
16
62
  request = Request.new :get, uri
17
63
 
18
- OAuthPolicy.token = OAuthCredential.new "token", nil
64
+ OAuthPolicy.token = OAuthCredential.new "token", nil
19
65
 
20
66
  authorized_request = OAuthPolicy.authorize request
21
-
67
+
22
68
  authorized_request.headers.keys.should include "Authorization"
23
69
  end
24
-
70
+
25
71
  it "preserves query parameters" do
26
72
  uri = Addressable::URI.parse("https://xxx/?name=Riccardo")
27
73
  request = Request.new :get, uri
@@ -32,12 +78,12 @@ describe OAuthPolicy do
32
78
  OAuthPolicy.token = OAuthCredential.new "token", nil
33
79
 
34
80
  authorized_request = OAuthPolicy.authorize request
35
-
81
+
36
82
  the_query_parameters = Addressable::URI.parse(authorized_request.uri).query_values
37
83
  the_query_parameters.should == {"name" => "Riccardo"}
38
84
  end
39
85
 
40
- it "adds the correct signature as part of authorization header" do
86
+ it "adds the correct signature as part of authorization header" do
41
87
  Clock.stub(:timestamp).and_return "1327048592"
42
88
  Nonce.stub(:next).and_return "b94ff2bf7f0a5e87a326064ae1dbb18f"
43
89
 
@@ -47,7 +93,7 @@ describe OAuthPolicy do
47
93
  request = Request.new :get, Addressable::URI.parse("http://xxx/")
48
94
 
49
95
  authorized_request = OAuthPolicy.authorize request
50
-
96
+
51
97
  authorized_request.headers["Authorization"].should =~ /oauth_signature="TVNk%2FCs03FHqutDUqn05%2FDkvVek%3D"/
52
98
  end
53
99
 
@@ -61,7 +107,7 @@ describe OAuthPolicy do
61
107
  request = Request.new :get, Addressable::URI.parse("http://xxx/?a=b")
62
108
 
63
109
  authorized_request = OAuthPolicy.authorize request
64
-
110
+
65
111
  authorized_request.headers["Authorization"].should =~ /oauth_signature="DprU1bdbNdJQ40UhD4n7wRR9jts%3D"/
66
112
  end
67
113
 
@@ -5,22 +5,33 @@ module Trello
5
5
  describe Organization do
6
6
  include Helpers
7
7
 
8
+ let(:organization) { client.find(:organization, "4ee7e59ae582acdec8000291") }
9
+ let(:client) { Client.new }
10
+
8
11
  before(:each) do
9
- Client.stub(:get).with("/organizations/4ee7e59ae582acdec8000291").
12
+ client.stub(:get).with("/organizations/4ee7e59ae582acdec8000291").
10
13
  and_return organization_payload
14
+ end
15
+
16
+ context "finding" do
17
+ let(:client) { Trello.client }
18
+
19
+ it "delegates to Trello.client#find" do
20
+ client.should_receive(:find).with(:organization, '4ee7e59ae582acdec8000291')
21
+ Organization.find('4ee7e59ae582acdec8000291')
22
+ end
11
23
 
12
- @organization = Organization.find('4ee7e59ae582acdec8000291')
24
+ it "is equivalent to client#find" do
25
+ Organization.find('4ee7e59ae582acdec8000291').should eq(organization)
26
+ end
13
27
  end
14
28
 
15
29
  context "actions" do
16
30
  it "retrieves actions" do
17
- Client.stub(:get).with("/organizations/4ee7e59ae582acdec8000291/actions", { :filter => :all }).and_return actions_payload
18
- @organization.actions.count.should be > 0
31
+ client.stub(:get).with("/organizations/4ee7e59ae582acdec8000291/actions", { :filter => :all }).and_return actions_payload
32
+ organization.actions.count.should be > 0
19
33
  end
20
-
21
34
  end
22
-
23
35
  end
24
-
25
36
  end
26
37
 
data/spec/spec_helper.rb CHANGED
@@ -26,6 +26,10 @@ Trello.logger = Logger.new($strio)
26
26
 
27
27
  RSpec.configure do |c|
28
28
  c.filter_run_excluding :broken => true
29
+
30
+ c.before :each do
31
+ Trello.reset!
32
+ end
29
33
  end
30
34
 
31
35
  module Helpers
@@ -67,6 +71,7 @@ module Helpers
67
71
  "closed" => false,
68
72
  "url" => "https://trello.com/blah/blah",
69
73
  "idBoard" => "abcdef123456789123456789",
74
+ "idList" => "abcdef123456789123456789",
70
75
  "idMembers" => ["abcdef123456789123456789"],
71
76
  "checkItems" => {}
72
77
  }]
data/spec/token_spec.rb CHANGED
@@ -4,30 +4,47 @@ module Trello
4
4
  describe Token do
5
5
  include Helpers
6
6
 
7
+ let(:token) { client.find(:token, "1234") }
8
+ let(:client) { Client.new }
9
+
7
10
  before(:each) do
8
- Client.stub(:get).with("/tokens/1234").and_return token_payload
9
- @token = Token.find("1234")
11
+ client.stub(:get).with("/tokens/1234").and_return token_payload
12
+ end
13
+
14
+ context "finding" do
15
+ let(:client) { Trello.client }
16
+
17
+ it "delegates to Trello.client#find" do
18
+ client.should_receive(:find).with(:token, '1234')
19
+ Token.find('1234')
20
+ end
21
+
22
+ it "is equivalent to client#find" do
23
+ Token.find('1234').should eq(token)
24
+ end
10
25
  end
11
26
 
12
27
  context "attributes" do
13
28
  it "has an id" do
14
- @token.id.should == "4f2c10c7b3eb95a45b294cd5"
29
+ token.id.should == "4f2c10c7b3eb95a45b294cd5"
15
30
  end
16
31
 
17
32
  it "gets its created_at date" do
18
- @token.created_at.should == Time.iso8601("2012-02-03T16:52:23.661Z")
33
+ token.created_at.should == Time.iso8601("2012-02-03T16:52:23.661Z")
19
34
  end
20
35
 
21
36
  it "has a permission grant" do
22
- @token.permissions.count.should be 3
37
+ token.permissions.count.should be 3
23
38
  end
24
39
  end
25
40
 
26
41
  context "members" do
27
42
  it "retrieves the member who authorized the token" do
28
- Client.stub(:get).with("/members/abcdef123456789123456789").and_return user_payload
29
- @token.member.should == Member.find("abcdef123456789123456789")
43
+ client.stub(:get).with("/members/abcdef123456789123456789").and_return user_payload
44
+ Trello.client.stub(:get).with("/members/abcdef123456789123456789").and_return user_payload
45
+ client.stub(:get).with("/tokens/1234").and_return token_payload
46
+ token.member.should == Member.find("abcdef123456789123456789")
30
47
  end
31
48
  end
32
49
  end
33
- end
50
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+
3
+ include Trello
4
+ include Trello::Authorization
5
+
6
+ describe Trello do
7
+
8
+ describe "self.configure" do
9
+ it "builds auth policy client uses to make requests" do
10
+ Trello.configure do |config|
11
+ config.developer_public_key = 'developer_public_key'
12
+ config.member_token = 'member_token'
13
+ end
14
+
15
+ TInternet.stub(:execute)
16
+ Trello.auth_policy.should_receive(:authorize)
17
+ Trello.client.get(:member, params = {})
18
+ end
19
+
20
+ it "configures basic auth policy" do
21
+ Trello.configure do |config|
22
+ config.developer_public_key = 'developer_public_key'
23
+ config.member_token = 'member_token'
24
+ end
25
+
26
+ auth_policy = Trello.auth_policy
27
+ auth_policy.should be_a(BasicAuthPolicy)
28
+ auth_policy.developer_public_key.should eq('developer_public_key')
29
+ auth_policy.member_token.should eq('member_token')
30
+ end
31
+
32
+ context "oauth" do
33
+ before do
34
+ Trello.configure do |config|
35
+ config.consumer_key = 'consumer_key'
36
+ config.consumer_secret = 'consumer_secret'
37
+ config.oauth_token = 'oauth_token'
38
+ config.oauth_token_secret = 'oauth_token_secret'
39
+ end
40
+ end
41
+
42
+ it "configures oauth policy" do
43
+ auth_policy = Trello.auth_policy
44
+
45
+ auth_policy.should be_a(OAuthPolicy)
46
+ auth_policy.consumer_key.should eq('consumer_key')
47
+ auth_policy.consumer_secret.should eq('consumer_secret')
48
+ auth_policy.oauth_token.should eq('oauth_token')
49
+ auth_policy.oauth_token_secret.should eq('oauth_token_secret')
50
+ end
51
+
52
+ it "updates auth policy configuration" do
53
+ auth_policy = Trello.auth_policy
54
+ auth_policy.consumer_key.should eq('consumer_key')
55
+
56
+ Trello.configure do |config|
57
+ config.consumer_key = 'new_consumer_key'
58
+ config.consumer_secret = 'new_consumer_secret'
59
+ config.oauth_token = 'new_oauth_token'
60
+ config.oauth_token_secret = nil
61
+ end
62
+
63
+ auth_policy = Trello.auth_policy
64
+
65
+ auth_policy.should be_a(OAuthPolicy)
66
+ auth_policy.consumer_key.should eq('new_consumer_key')
67
+ auth_policy.consumer_secret.should eq('new_consumer_secret')
68
+ auth_policy.oauth_token.should eq('new_oauth_token')
69
+ auth_policy.oauth_token_secret.should be_nil
70
+ end
71
+ end
72
+ end
73
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-trello
3
3
  version: !ruby/object:Gem::Version
4
- hash: 121
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 4
10
- - 3
11
- version: 0.4.4.3
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
12
11
  platform: ruby
13
12
  authors:
14
13
  - Jeremy Tregunna
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2012-12-29 00:00:00 Z
18
+ date: 2013-01-26 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: activemodel
@@ -112,6 +111,7 @@ files:
112
111
  - lib/trello/card.rb
113
112
  - lib/trello/checklist.rb
114
113
  - lib/trello/client.rb
114
+ - lib/trello/configuration.rb
115
115
  - lib/trello/has_actions.rb
116
116
  - lib/trello/item.rb
117
117
  - lib/trello/item_state.rb
@@ -132,6 +132,7 @@ files:
132
132
  - spec/card_spec.rb
133
133
  - spec/checklist_spec.rb
134
134
  - spec/client_spec.rb
135
+ - spec/configuration_spec.rb
135
136
  - spec/integration/how_to_authorize_spec.rb
136
137
  - spec/integration/how_to_use_boards_spec.rb
137
138
  - spec/integration/integration_test.rb
@@ -145,6 +146,7 @@ files:
145
146
  - spec/spec_helper.rb
146
147
  - spec/string_spec.rb
147
148
  - spec/token_spec.rb
149
+ - spec/trello_spec.rb
148
150
  homepage: https://github.com/jeremytregunna/ruby-trello
149
151
  licenses: []
150
152
 
@@ -187,6 +189,7 @@ test_files:
187
189
  - spec/card_spec.rb
188
190
  - spec/checklist_spec.rb
189
191
  - spec/client_spec.rb
192
+ - spec/configuration_spec.rb
190
193
  - spec/integration/how_to_authorize_spec.rb
191
194
  - spec/integration/how_to_use_boards_spec.rb
192
195
  - spec/integration/integration_test.rb
@@ -200,3 +203,4 @@ test_files:
200
203
  - spec/spec_helper.rb
201
204
  - spec/string_spec.rb
202
205
  - spec/token_spec.rb
206
+ - spec/trello_spec.rb