ruby-trello 1.0.4 → 1.1.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.
- checksums.yaml +7 -0
- data/lib/trello/association.rb +2 -2
- data/lib/trello/authorization.rb +15 -4
- data/lib/trello/basic_data.rb +1 -1
- data/lib/trello/card.rb +4 -3
- data/spec/action_spec.rb +21 -21
- data/spec/association_spec.rb +6 -6
- data/spec/basic_auth_policy_spec.rb +17 -17
- data/spec/board_spec.rb +2 -2
- data/spec/card_spec.rb +15 -9
- data/spec/checklist_spec.rb +1 -2
- data/spec/client_spec.rb +8 -10
- data/spec/configuration_spec.rb +18 -18
- data/spec/integration/how_to_authorize_spec.rb +1 -1
- data/spec/item_spec.rb +10 -10
- data/spec/list_spec.rb +33 -33
- data/spec/member_spec.rb +35 -35
- data/spec/oauth_policy_spec.rb +49 -49
- data/spec/organization_spec.rb +8 -8
- data/spec/spec_helper.rb +129 -130
- data/spec/string_spec.rb +7 -7
- data/spec/token_spec.rb +17 -17
- data/spec/trello_spec.rb +7 -7
- data/spec/webhook_spec.rb +1 -4
- metadata +13 -25
@@ -47,7 +47,7 @@ describe "OAuth", :broken => true do
|
|
47
47
|
OAuthPolicy.token = OAuthCredential.new @access_token_key, nil
|
48
48
|
|
49
49
|
pending "I would expect this to fail because I have signed with nil secrets" do
|
50
|
-
|
50
|
+
-> { Client.get("/boards/#{@welcome_board}/") }.should raise_error
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
data/spec/item_spec.rb
CHANGED
@@ -4,34 +4,34 @@ module Trello
|
|
4
4
|
describe Item do
|
5
5
|
before(:all) do
|
6
6
|
@detail = {
|
7
|
-
'id' =>
|
8
|
-
'name' =>
|
9
|
-
'type' =>
|
10
|
-
'state' =>
|
7
|
+
'id' => 'abcdef123456789123456789',
|
8
|
+
'name' => 'test item',
|
9
|
+
'type' => 'check',
|
10
|
+
'state' => 'complete',
|
11
11
|
'pos' => 0
|
12
12
|
}
|
13
13
|
|
14
14
|
@item = Item.new(@detail)
|
15
15
|
end
|
16
16
|
|
17
|
-
it
|
17
|
+
it 'gets its id' do
|
18
18
|
@item.id.should == @detail['id']
|
19
19
|
end
|
20
20
|
|
21
|
-
it
|
21
|
+
it 'gets its name' do
|
22
22
|
@item.name.should == @detail['name']
|
23
23
|
end
|
24
24
|
|
25
|
-
it
|
25
|
+
it 'knows its type' do
|
26
26
|
@item.type.should == @detail['type']
|
27
27
|
end
|
28
28
|
|
29
|
-
it
|
29
|
+
it 'knows its state' do
|
30
30
|
@item.state.should == @detail['state']
|
31
31
|
end
|
32
32
|
|
33
|
-
it
|
33
|
+
it 'knows its pos' do
|
34
34
|
@item.pos.should == @detail['pos']
|
35
35
|
end
|
36
36
|
end
|
37
|
-
end
|
37
|
+
end
|
data/spec/list_spec.rb
CHANGED
@@ -4,31 +4,31 @@ module Trello
|
|
4
4
|
describe List do
|
5
5
|
include Helpers
|
6
6
|
|
7
|
-
let(:list) { client.find(:list,
|
7
|
+
let(:list) { client.find(:list, 'abcdef123456789123456789') }
|
8
8
|
let(:client) { Client.new }
|
9
9
|
|
10
10
|
before(:each) do
|
11
|
-
client.stub(:get).with(
|
12
|
-
client.stub(:get).with(
|
11
|
+
client.stub(:get).with('/lists/abcdef123456789123456789', {}).and_return JSON.generate(lists_details.first)
|
12
|
+
client.stub(:get).with('/boards/abcdef123456789123456789', {}).and_return JSON.generate(boards_details.first)
|
13
13
|
end
|
14
14
|
|
15
|
-
context
|
15
|
+
context 'finding' do
|
16
16
|
let(:client) { Trello.client }
|
17
17
|
|
18
|
-
it
|
18
|
+
it 'delegates to client#find' do
|
19
19
|
client.should_receive(:find).with(:list, 'abcdef123456789123456789', {})
|
20
20
|
List.find('abcdef123456789123456789')
|
21
21
|
end
|
22
22
|
|
23
|
-
it
|
23
|
+
it 'is equivalent to client#find' do
|
24
24
|
List.find('abcdef123456789123456789').should eq(list)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
context
|
28
|
+
context 'creating' do
|
29
29
|
let(:client) { Trello.client }
|
30
30
|
|
31
|
-
it
|
31
|
+
it 'creates a new record' do
|
32
32
|
list = List.new(lists_details.first)
|
33
33
|
list.should be_valid
|
34
34
|
end
|
@@ -51,9 +51,9 @@ module Trello
|
|
51
51
|
|
52
52
|
result = JSON.generate(payload)
|
53
53
|
|
54
|
-
expected_payload = {:name =>
|
54
|
+
expected_payload = {:name => 'Test List', :closed => false, :idBoard => 'abcdef123456789123456789'}
|
55
55
|
|
56
|
-
client.should_receive(:post).with(
|
56
|
+
client.should_receive(:post).with('/lists', expected_payload).and_return result
|
57
57
|
|
58
58
|
list = List.create(payload)
|
59
59
|
|
@@ -61,73 +61,73 @@ module Trello
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
context
|
65
|
-
it
|
66
|
-
expected_new_name =
|
64
|
+
context 'updating' do
|
65
|
+
it 'updating name does a put on the correct resource with the correct value' do
|
66
|
+
expected_new_name = 'xxx'
|
67
67
|
|
68
68
|
payload = {
|
69
69
|
:name => expected_new_name,
|
70
70
|
:closed => false
|
71
71
|
}
|
72
72
|
|
73
|
-
client.should_receive(:put).once.with(
|
73
|
+
client.should_receive(:put).once.with('/lists/abcdef123456789123456789', payload)
|
74
74
|
list.name = expected_new_name
|
75
75
|
list.save
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
context
|
80
|
-
it
|
79
|
+
context 'fields' do
|
80
|
+
it 'gets its id' do
|
81
81
|
list.id.should == lists_details.first['id']
|
82
82
|
end
|
83
83
|
|
84
|
-
it
|
84
|
+
it 'gets its name' do
|
85
85
|
list.name.should == lists_details.first['name']
|
86
86
|
end
|
87
87
|
|
88
|
-
it
|
88
|
+
it 'knows if it is open or closed' do
|
89
89
|
list.closed.should == lists_details.first['closed']
|
90
90
|
end
|
91
91
|
|
92
|
-
it
|
92
|
+
it 'has a board' do
|
93
93
|
list.board.should == Board.new(boards_details.first)
|
94
94
|
end
|
95
95
|
|
96
|
-
it
|
96
|
+
it 'gets its position' do
|
97
97
|
list.pos.should == lists_details.first['pos']
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
-
context
|
102
|
-
it
|
103
|
-
client.stub(:get).with(
|
101
|
+
context 'actions' do
|
102
|
+
it 'has a list of actions' do
|
103
|
+
client.stub(:get).with('/lists/abcdef123456789123456789/actions', { :filter => :all }).and_return actions_payload
|
104
104
|
list.actions.count.should be > 0
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
-
context
|
109
|
-
it
|
110
|
-
client.stub(:get).with(
|
108
|
+
context 'cards' do
|
109
|
+
it 'has a list of cards' do
|
110
|
+
client.stub(:get).with('/lists/abcdef123456789123456789/cards', { :filter => :open }).and_return cards_payload
|
111
111
|
list.cards.count.should be > 0
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
-
describe
|
116
|
-
it
|
115
|
+
describe '#closed?' do
|
116
|
+
it 'returns the closed attribute' do
|
117
117
|
list.closed?.should_not be_true
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
-
describe
|
122
|
-
it
|
121
|
+
describe '#close' do
|
122
|
+
it 'updates the close attribute to true' do
|
123
123
|
list.close
|
124
124
|
list.closed.should be_true
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
describe
|
129
|
-
it
|
130
|
-
client.should_receive(:put).once.with(
|
128
|
+
describe '#close!' do
|
129
|
+
it 'updates the close attribute to true and saves the list' do
|
130
|
+
client.should_receive(:put).once.with('/lists/abcdef123456789123456789', {
|
131
131
|
:name => list.name,
|
132
132
|
:closed => true
|
133
133
|
})
|
data/spec/member_spec.rb
CHANGED
@@ -10,104 +10,104 @@ module Trello
|
|
10
10
|
let(:client) { Client.new }
|
11
11
|
|
12
12
|
before(:each) do
|
13
|
-
client.stub(:get).with(
|
13
|
+
client.stub(:get).with('/members/abcdef123456789012345678', {}).and_return user_payload
|
14
14
|
end
|
15
15
|
|
16
|
-
context
|
16
|
+
context 'finding' do
|
17
17
|
let(:client) { Trello.client }
|
18
18
|
|
19
|
-
it
|
19
|
+
it 'delegates to Trello.client#find' do
|
20
20
|
client.should_receive(:find).with(:member, 'abcdef123456789012345678', {})
|
21
21
|
Member.find('abcdef123456789012345678')
|
22
22
|
end
|
23
23
|
|
24
|
-
it
|
24
|
+
it 'is equivalent to client#find' do
|
25
25
|
Member.find('abcdef123456789012345678').should eq(member)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
context
|
30
|
-
it
|
31
|
-
client.stub(:get).with(
|
29
|
+
context 'actions' do
|
30
|
+
it 'retrieves a list of actions', :refactor => true do
|
31
|
+
client.stub(:get).with('/members/abcdef123456789012345678/actions', { :filter => :all }).and_return actions_payload
|
32
32
|
member.actions.count.should be > 0
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
context
|
37
|
-
it
|
38
|
-
client.stub(:get).with(
|
36
|
+
context 'boards' do
|
37
|
+
it 'has a list of boards' do
|
38
|
+
client.stub(:get).with('/members/abcdef123456789012345678/boards', { :filter => :all }).and_return boards_payload
|
39
39
|
boards = member.boards
|
40
40
|
boards.count.should be > 0
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
context
|
45
|
-
it
|
46
|
-
client.stub(:get).with(
|
44
|
+
context 'cards' do
|
45
|
+
it 'has a list of cards' do
|
46
|
+
client.stub(:get).with('/members/abcdef123456789012345678/cards', { :filter => :open }).and_return cards_payload
|
47
47
|
cards = member.cards
|
48
48
|
cards.count.should be > 0
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
context
|
53
|
-
it
|
54
|
-
client.stub(:get).with(
|
52
|
+
context 'organizations' do
|
53
|
+
it 'has a list of organizations' do
|
54
|
+
client.stub(:get).with('/members/abcdef123456789012345678/organizations', { :filter => :all }).and_return orgs_payload
|
55
55
|
orgs = member.organizations
|
56
56
|
orgs.count.should be > 0
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
context
|
61
|
-
it
|
62
|
-
client.stub(:get).with(
|
60
|
+
context 'notifications' do
|
61
|
+
it 'has a list of notifications' do
|
62
|
+
client.stub(:get).with('/members/abcdef123456789012345678/notifications', {}).and_return '[' << notification_payload << ']'
|
63
63
|
member.notifications.count.should be 1
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
context
|
68
|
-
it
|
67
|
+
context 'personal' do
|
68
|
+
it 'gets the members bio' do
|
69
69
|
member.bio.should == user_details['bio']
|
70
70
|
end
|
71
71
|
|
72
|
-
it
|
72
|
+
it 'gets the full name' do
|
73
73
|
member.full_name.should == user_details['fullName']
|
74
74
|
end
|
75
75
|
|
76
|
-
it
|
76
|
+
it 'gets the avatar id' do
|
77
77
|
member.avatar_id.should == user_details['avatarHash']
|
78
78
|
end
|
79
79
|
|
80
|
-
it
|
81
|
-
member.avatar_url(:size => :large).should ==
|
82
|
-
member.avatar_url(:size => :small).should ==
|
80
|
+
it 'returns a valid url for the avatar' do
|
81
|
+
member.avatar_url(:size => :large).should == 'https://trello-avatars.s3.amazonaws.com/abcdef1234567890abcdef1234567890/170.png'
|
82
|
+
member.avatar_url(:size => :small).should == 'https://trello-avatars.s3.amazonaws.com/abcdef1234567890abcdef1234567890/30.png'
|
83
83
|
end
|
84
84
|
|
85
|
-
it
|
85
|
+
it 'gets the url' do
|
86
86
|
member.url.should == user_details['url']
|
87
87
|
end
|
88
88
|
|
89
|
-
it
|
89
|
+
it 'gets the username' do
|
90
90
|
member.username.should == user_details['username']
|
91
91
|
end
|
92
92
|
|
93
|
-
it
|
93
|
+
it 'gets the email' do
|
94
94
|
member.email.should == user_details['email']
|
95
95
|
end
|
96
96
|
|
97
|
-
it
|
97
|
+
it 'gets the initials' do
|
98
98
|
member.initials.should == user_details['initials']
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
-
context
|
103
|
-
it
|
102
|
+
context 'modification' do
|
103
|
+
it 'lets us know a field has changed without committing it' do
|
104
104
|
member.changed?.should be_false
|
105
|
-
member.bio =
|
105
|
+
member.bio = 'New and amazing'
|
106
106
|
member.changed?.should be_true
|
107
107
|
end
|
108
108
|
|
109
|
-
it
|
110
|
-
|
109
|
+
it 'does not understand the #id= method' do
|
110
|
+
-> { member.id = '42' }.should raise_error NoMethodError
|
111
111
|
end
|
112
112
|
end
|
113
113
|
end
|
data/spec/oauth_policy_spec.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
include Trello
|
4
4
|
include Trello::Authorization
|
5
5
|
|
6
6
|
describe OAuthPolicy do
|
7
7
|
before do
|
8
|
-
OAuthPolicy.consumer_credential = OAuthCredential.new
|
8
|
+
OAuthPolicy.consumer_credential = OAuthCredential.new 'xxx', 'xxx'
|
9
9
|
OAuthPolicy.token = nil
|
10
10
|
end
|
11
11
|
|
12
|
-
describe
|
13
|
-
it
|
12
|
+
describe '#consumer_credential' do
|
13
|
+
it 'uses class setting if available' do
|
14
14
|
policy = OAuthPolicy.new
|
15
15
|
policy.consumer_credential.key.should eq('xxx')
|
16
16
|
policy.consumer_credential.secret.should eq('xxx')
|
17
17
|
end
|
18
18
|
|
19
|
-
it
|
19
|
+
it 'is built from given consumer_key and consumer_secret' do
|
20
20
|
policy = OAuthPolicy.new(
|
21
21
|
:consumer_key => 'consumer_key',
|
22
22
|
:consumer_secret => 'consumer_secret'
|
@@ -25,22 +25,22 @@ describe OAuthPolicy do
|
|
25
25
|
policy.consumer_credential.secret.should eq('consumer_secret')
|
26
26
|
end
|
27
27
|
|
28
|
-
it
|
28
|
+
it 'is nil if none supplied to class' do
|
29
29
|
OAuthPolicy.consumer_credential = nil
|
30
30
|
policy = OAuthPolicy.new
|
31
31
|
policy.consumer_credential.should be_nil
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
describe
|
36
|
-
it
|
37
|
-
OAuthPolicy.token = OAuthCredential.new
|
35
|
+
describe '#token' do
|
36
|
+
it 'uses class setting if available' do
|
37
|
+
OAuthPolicy.token = OAuthCredential.new 'xxx', 'xxx'
|
38
38
|
policy = OAuthPolicy.new
|
39
39
|
policy.token.key.should eq('xxx')
|
40
40
|
policy.token.secret.should eq('xxx')
|
41
41
|
end
|
42
42
|
|
43
|
-
it
|
43
|
+
it 'is built from given oauth_token and oauth_token_secret' do
|
44
44
|
policy = OAuthPolicy.new(
|
45
45
|
:oauth_token => 'oauth_token',
|
46
46
|
:oauth_token_secret => 'oauth_token_secret'
|
@@ -49,91 +49,91 @@ describe OAuthPolicy do
|
|
49
49
|
policy.token.secret.should eq('oauth_token_secret')
|
50
50
|
end
|
51
51
|
|
52
|
-
it
|
52
|
+
it 'is an empty token if no oauth credentials supplied' do
|
53
53
|
policy = OAuthPolicy.new
|
54
54
|
policy.token.should be_nil
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
context
|
59
|
-
it
|
60
|
-
uri = Addressable::URI.parse(
|
58
|
+
context '2-legged' do
|
59
|
+
it 'adds an authorization header' do
|
60
|
+
uri = Addressable::URI.parse('https://xxx/')
|
61
61
|
|
62
62
|
request = Request.new :get, uri
|
63
63
|
|
64
|
-
OAuthPolicy.token = OAuthCredential.new
|
64
|
+
OAuthPolicy.token = OAuthCredential.new 'token', nil
|
65
65
|
|
66
66
|
authorized_request = OAuthPolicy.authorize request
|
67
67
|
|
68
|
-
authorized_request.headers.keys.should include
|
68
|
+
authorized_request.headers.keys.should include 'Authorization'
|
69
69
|
end
|
70
70
|
|
71
|
-
it
|
72
|
-
uri = Addressable::URI.parse(
|
71
|
+
it 'preserves query parameters' do
|
72
|
+
uri = Addressable::URI.parse('https://xxx/?name=Riccardo')
|
73
73
|
request = Request.new :get, uri
|
74
74
|
|
75
|
-
Clock.stub(:timestamp).and_return
|
76
|
-
Nonce.stub(:next).and_return
|
77
|
-
OAuthPolicy.consumer_credential = OAuthCredential.new
|
78
|
-
OAuthPolicy.token = OAuthCredential.new
|
75
|
+
Clock.stub(:timestamp).and_return '1327048592'
|
76
|
+
Nonce.stub(:next).and_return 'b94ff2bf7f0a5e87a326064ae1dbb18f'
|
77
|
+
OAuthPolicy.consumer_credential = OAuthCredential.new 'consumer_key', 'consumer_secret'
|
78
|
+
OAuthPolicy.token = OAuthCredential.new 'token', nil
|
79
79
|
|
80
80
|
authorized_request = OAuthPolicy.authorize request
|
81
81
|
|
82
82
|
the_query_parameters = Addressable::URI.parse(authorized_request.uri).query_values
|
83
|
-
the_query_parameters.should == {
|
83
|
+
the_query_parameters.should == {'name' => 'Riccardo'}
|
84
84
|
end
|
85
85
|
|
86
|
-
it
|
87
|
-
Clock.stub(:timestamp).and_return
|
88
|
-
Nonce.stub(:next).and_return
|
86
|
+
it 'adds the correct signature as part of authorization header' do
|
87
|
+
Clock.stub(:timestamp).and_return '1327048592'
|
88
|
+
Nonce.stub(:next).and_return 'b94ff2bf7f0a5e87a326064ae1dbb18f'
|
89
89
|
|
90
|
-
OAuthPolicy.consumer_credential = OAuthCredential.new
|
91
|
-
OAuthPolicy.token = OAuthCredential.new
|
90
|
+
OAuthPolicy.consumer_credential = OAuthCredential.new 'consumer_key', 'consumer_secret'
|
91
|
+
OAuthPolicy.token = OAuthCredential.new 'token', nil
|
92
92
|
|
93
|
-
request = Request.new :get, Addressable::URI.parse(
|
93
|
+
request = Request.new :get, Addressable::URI.parse('http://xxx/')
|
94
94
|
|
95
95
|
authorized_request = OAuthPolicy.authorize request
|
96
96
|
|
97
|
-
authorized_request.headers[
|
97
|
+
authorized_request.headers['Authorization'].should =~ /oauth_signature="TVNk%2FCs03FHqutDUqn05%2FDkvVek%3D"/
|
98
98
|
end
|
99
99
|
|
100
|
-
it
|
101
|
-
Clock.stub(:timestamp).and_return
|
102
|
-
Nonce.stub(:next).and_return
|
100
|
+
it 'adds correct signature for uri with parameters' do
|
101
|
+
Clock.stub(:timestamp).and_return '1327351010'
|
102
|
+
Nonce.stub(:next).and_return 'f5474aaf44ca84df0b09870044f91c69'
|
103
103
|
|
104
|
-
OAuthPolicy.consumer_credential = OAuthCredential.new
|
105
|
-
OAuthPolicy.token = OAuthCredential.new
|
104
|
+
OAuthPolicy.consumer_credential = OAuthCredential.new 'consumer_key', 'consumer_secret'
|
105
|
+
OAuthPolicy.token = OAuthCredential.new 'token', nil
|
106
106
|
|
107
|
-
request = Request.new :get, Addressable::URI.parse(
|
107
|
+
request = Request.new :get, Addressable::URI.parse('http://xxx/?a=b')
|
108
108
|
|
109
109
|
authorized_request = OAuthPolicy.authorize request
|
110
110
|
|
111
|
-
authorized_request.headers[
|
111
|
+
authorized_request.headers['Authorization'].should =~ /oauth_signature="DprU1bdbNdJQ40UhD4n7wRR9jts%3D"/
|
112
112
|
end
|
113
113
|
|
114
|
-
it
|
114
|
+
it 'fails if consumer_credential is unset' do
|
115
115
|
OAuthPolicy.consumer_credential = nil
|
116
116
|
|
117
|
-
request = Request.new :get, Addressable::URI.parse(
|
117
|
+
request = Request.new :get, Addressable::URI.parse('http://xxx/')
|
118
118
|
|
119
|
-
|
119
|
+
-> { OAuthPolicy.authorize request }.should raise_error 'The consumer_credential has not been supplied.'
|
120
120
|
end
|
121
121
|
|
122
|
-
it
|
123
|
-
Clock.stub(:timestamp).and_return
|
124
|
-
Nonce.stub(:next).and_return
|
122
|
+
it 'can sign with token' do
|
123
|
+
Clock.stub(:timestamp).and_return '1327360530'
|
124
|
+
Nonce.stub(:next).and_return '4f610cb28e7aa8711558de5234af1f0e'
|
125
125
|
|
126
|
-
OAuthPolicy.consumer_credential = OAuthCredential.new
|
127
|
-
OAuthPolicy.token = OAuthCredential.new
|
126
|
+
OAuthPolicy.consumer_credential = OAuthCredential.new 'consumer_key', 'consumer_secret'
|
127
|
+
OAuthPolicy.token = OAuthCredential.new 'token_key', 'token_secret'
|
128
128
|
|
129
|
-
request = Request.new :get, Addressable::URI.parse(
|
129
|
+
request = Request.new :get, Addressable::URI.parse('http://xxx/')
|
130
130
|
|
131
131
|
authorized_request = OAuthPolicy.authorize request
|
132
132
|
|
133
|
-
authorized_request.headers[
|
133
|
+
authorized_request.headers['Authorization'].should =~ /oauth_signature="1Boj4fo6KiXA4xGD%2BKF5QOD36PI%3D"/
|
134
134
|
end
|
135
135
|
|
136
|
-
it
|
137
|
-
it
|
136
|
+
it 'adds correct signature for https uri'
|
137
|
+
it 'adds correct signature for verbs other than get'
|
138
138
|
end
|
139
139
|
end
|