facemock 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/facemock/config.rb +1 -1
- data/lib/facemock/database/application.rb +2 -1
- data/lib/facemock/database/table.rb +4 -0
- data/lib/facemock/fb_graph/application.rb +72 -16
- data/lib/facemock/fb_graph.rb +1 -0
- data/lib/facemock/version.rb +1 -1
- data/spec/facemock/database/application_spec.rb +1 -1
- data/spec/facemock/database/tables_spec.rb +10 -0
- data/spec/facemock/database/user_spec.rb +1 -1
- data/spec/facemock/fb_graph/application/test_users_spec.rb +3 -0
- data/spec/facemock/fb_graph/application_spec.rb +226 -63
- data/spec/facemock/fb_graph/user_spec.rb +3 -0
- data/spec/facemock/fb_graph_spec.rb +2 -1
- data/spec/facemock_spec.rb +1 -1
- data/spec/support/application_create_helper.rb +5 -0
- metadata +6 -4
data/lib/facemock/config.rb
CHANGED
@@ -38,7 +38,7 @@ module Facemock
|
|
38
38
|
raise Facemock::Errors::IncorrectDataFormat.new "users format is incorrect" unless validate_users(users)
|
39
39
|
|
40
40
|
# Create application and user record
|
41
|
-
|
41
|
+
Facemock::Database::Application.new({ id: app_id, secret: app_secret }).save!
|
42
42
|
app = Facemock::FbGraph::Application.new(app_id, secret: app_secret)
|
43
43
|
users.each do |options|
|
44
44
|
app.test_user!(options)
|
@@ -9,10 +9,11 @@ module Facemock
|
|
9
9
|
TABLE_NAME = :applications
|
10
10
|
COLUMN_NAMES = [:id, :secret, :created_at]
|
11
11
|
|
12
|
+
# WANT : DBに登録済みの値と重複しないようにする(id, secret)
|
12
13
|
def initialize(options={})
|
13
14
|
opts = Hashie::Mash.new(options)
|
14
15
|
@id = ( opts.id.to_i > 0 ) ? opts.id.to_i : (0..9).to_a.shuffle[0..15].join.to_i
|
15
|
-
@secret = opts.secret
|
16
|
+
@secret = opts.secret || rand(36**32).to_s(36)
|
16
17
|
@created_at = opts.created_at
|
17
18
|
end
|
18
19
|
end
|
@@ -209,6 +209,8 @@ module Facemock
|
|
209
209
|
def self.define_find_by_column(column_name)
|
210
210
|
self.class_eval <<-EOF
|
211
211
|
def self.find_by_#{column_name}(value)
|
212
|
+
return nil if value.nil?
|
213
|
+
|
212
214
|
column_value = case value
|
213
215
|
when String then "'" + value + "'"
|
214
216
|
when Time then "'" + value.to_s + "'"
|
@@ -227,6 +229,8 @@ module Facemock
|
|
227
229
|
def self.define_find_all_by_column(column_name)
|
228
230
|
self.class_eval <<-EOF
|
229
231
|
def self.find_all_by_#{column_name}(value)
|
232
|
+
return [] if value.nil?
|
233
|
+
|
230
234
|
column_value = case value
|
231
235
|
when String then "'" + value + "'"
|
232
236
|
when Time then "'" + value.to_s + "'"
|
@@ -7,33 +7,42 @@ require 'facemock/database/application'
|
|
7
7
|
module Facemock
|
8
8
|
module FbGraph
|
9
9
|
class Application
|
10
|
-
|
11
|
-
|
10
|
+
attr_accessor :identifier
|
11
|
+
attr_accessor :secret
|
12
|
+
attr_accessor :access_token # user access token
|
12
13
|
|
13
14
|
def initialize(identifier, options={})
|
14
15
|
opts = Hashie::Mash.new(options)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
else
|
19
|
-
secret = opts.secret || rand(36**32).to_s(36)
|
20
|
-
end
|
21
|
-
|
22
|
-
@record = Facemock::Database::Application.new({id: identifier, secret: secret})
|
23
|
-
@record.save! unless Facemock::Database::Application.find_by_id(identifier)
|
24
|
-
@identifier = identifier.to_i
|
25
|
-
@secret = secret
|
16
|
+
@identifier = identifier
|
17
|
+
@secret = opts.secret
|
18
|
+
@access_token = opts.access_token
|
26
19
|
end
|
27
20
|
|
28
21
|
def fetch
|
29
|
-
|
30
|
-
|
31
|
-
|
22
|
+
@record = if @identifier == :app
|
23
|
+
unless validate_access_token
|
24
|
+
raise Facemock::FbGraph::InvalidToken.new "Invalid OAuth access token."
|
25
|
+
end
|
26
|
+
find_by_access_token
|
27
|
+
else
|
28
|
+
if @access_token && !validate_access_token
|
29
|
+
raise Facemock::FbGraph::InvalidToken.new "Invalid OAuth access token."
|
30
|
+
elsif !validate_identifier_and_secret
|
31
|
+
raise Facemock::FbGraph::InvalidRequest.new "Unsupported get request."
|
32
|
+
end
|
33
|
+
Facemock::Database::Application.find_by_id(@identifier)
|
34
|
+
end
|
35
|
+
|
36
|
+
if @record
|
37
|
+
@identifier = @record.id
|
38
|
+
@secret = @record.secret
|
39
|
+
@access_token = nil
|
32
40
|
end
|
33
41
|
self
|
34
42
|
end
|
35
43
|
|
36
44
|
def test_user!(options={})
|
45
|
+
validate_and_raise_error
|
37
46
|
options.merge!({application_id: self.identifier})
|
38
47
|
user = User.new(options)
|
39
48
|
user.save!
|
@@ -41,8 +50,55 @@ module Facemock
|
|
41
50
|
end
|
42
51
|
|
43
52
|
def test_users(options={})
|
53
|
+
validate_and_raise_error
|
44
54
|
TestUsers.new(self.identifier, options)
|
45
55
|
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def validate_and_raise_error()
|
60
|
+
if @access_token && !validate_access_token
|
61
|
+
raise Facemock::FbGraph::InvalidToken.new "Invalid OAuth access token."
|
62
|
+
elsif !validate_identifier_and_secret
|
63
|
+
raise Facemock::FbGraph::InvalidRequest.new "Unsupported get request."
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def validate_identifier_and_secret
|
68
|
+
if validate_identifier && validate_secret
|
69
|
+
# WANT : find_by_**_and_**(**, **)の実装
|
70
|
+
app_by_id = Facemock::Database::Application.find_by_id(@identifier)
|
71
|
+
app_by_secret = Facemock::Database::Application.find_by_secret(@secret)
|
72
|
+
!!(app_by_id && app_by_secret && app_by_id.identifier == app_by_secret.identifier)
|
73
|
+
else
|
74
|
+
false
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def validate_identifier
|
79
|
+
return false if @identifier.nil? || @identifier == ""
|
80
|
+
return false unless [Fixnum, String].include?(@identifier.class)
|
81
|
+
return false unless Facemock::Database::Application.find_by_id(@identifier)
|
82
|
+
true
|
83
|
+
end
|
84
|
+
|
85
|
+
def validate_secret
|
86
|
+
return false if @secret.nil? || @secret == ""
|
87
|
+
return false unless Facemock::Database::Application.find_by_secret(@secret)
|
88
|
+
true
|
89
|
+
end
|
90
|
+
|
91
|
+
def validate_access_token
|
92
|
+
!!(Facemock::Database::User.find_by_access_token(@access_token))
|
93
|
+
end
|
94
|
+
|
95
|
+
def find_by_access_token
|
96
|
+
if user = Facemock::Database::User.find_by_access_token(@access_token)
|
97
|
+
Facemock::Database::Application.find_by_id(user.application_id)
|
98
|
+
else
|
99
|
+
nil
|
100
|
+
end
|
101
|
+
end
|
46
102
|
end
|
47
103
|
end
|
48
104
|
end
|
data/lib/facemock/fb_graph.rb
CHANGED
data/lib/facemock/version.rb
CHANGED
@@ -451,6 +451,11 @@ describe Facemock::Database::Table do
|
|
451
451
|
end
|
452
452
|
|
453
453
|
describe '.find_by_id' do
|
454
|
+
context 'with nil' do
|
455
|
+
subject { Facemock::Database::Table.find_by_id(nil) }
|
456
|
+
it { is_expected.to be_nil }
|
457
|
+
end
|
458
|
+
|
454
459
|
context 'with not id' do
|
455
460
|
subject { Facemock::Database::Table.find_by_id("hoge") }
|
456
461
|
it { is_expected.to be_nil }
|
@@ -512,6 +517,11 @@ describe Facemock::Database::Table do
|
|
512
517
|
end
|
513
518
|
|
514
519
|
describe '.find_all_by_id' do
|
520
|
+
context 'with nil' do
|
521
|
+
subject { Facemock::Database::Table.find_all_by_id(nil) }
|
522
|
+
it { is_expected.to be_empty }
|
523
|
+
end
|
524
|
+
|
515
525
|
context 'with not id' do
|
516
526
|
subject { Facemock::Database::Table.find_all_by_id("hoge") }
|
517
527
|
it { is_expected.to be_empty }
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Facemock::FbGraph::Application::TestUsers do
|
4
|
+
include ApplicationCreateHelper
|
5
|
+
|
4
6
|
let(:db_name) { ".test" }
|
5
7
|
|
6
8
|
let(:facebook_app_id) { "100000000000000" }
|
@@ -133,6 +135,7 @@ describe Facemock::FbGraph::Application::TestUsers do
|
|
133
135
|
|
134
136
|
describe '#next' do
|
135
137
|
before do
|
138
|
+
create_application({ id: facebook_app_id, secret: "test_secret" })
|
136
139
|
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: "test_secret")
|
137
140
|
3.times { @app.test_user! }
|
138
141
|
end
|
@@ -1,12 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Facemock::FbGraph::Application do
|
4
|
+
include ApplicationCreateHelper
|
5
|
+
|
4
6
|
let(:db_name) { ".test" }
|
5
7
|
|
6
8
|
let(:facebook_app_id) { 100000000000000 }
|
7
9
|
let(:facebook_app_secret) { "test_secret" }
|
8
10
|
let(:access_token) { "access_token" }
|
9
11
|
|
12
|
+
before do
|
13
|
+
stub_const("Facemock::Database::DEFAULT_DB_NAME", db_name)
|
14
|
+
@database = Facemock::Database.new
|
15
|
+
end
|
16
|
+
after { @database.drop }
|
17
|
+
|
10
18
|
it 'should have a user class' do
|
11
19
|
expect(Facemock::FbGraph::Application::User).to be_truthy
|
12
20
|
expect(Facemock::FbGraph::Application::User.ancestors).to include Facemock::Database::User
|
@@ -17,115 +25,270 @@ describe Facemock::FbGraph::Application do
|
|
17
25
|
expect(Facemock::FbGraph::Application::TestUsers.ancestors).to include Array
|
18
26
|
end
|
19
27
|
|
20
|
-
before do
|
21
|
-
stub_const("Facemock::Database::DEFAULT_DB_NAME", db_name)
|
22
|
-
@database = Facemock::Database.new
|
23
|
-
end
|
24
|
-
after { @database.drop }
|
25
|
-
|
26
28
|
describe '#new' do
|
29
|
+
before { @default_record_size = Facemock::Database::Application.all.size }
|
30
|
+
|
27
31
|
context 'without argument' do
|
28
32
|
subject { lambda { Facemock::FbGraph::Application.new } }
|
29
33
|
it { is_expected.to raise_error ArgumentError }
|
30
34
|
end
|
31
35
|
|
32
|
-
context 'with facebook app id
|
33
|
-
|
36
|
+
context 'with facebook app id' do
|
37
|
+
shared_context 'new is success and record creates', assert: :attributes_and_created_record do
|
38
|
+
it 'should set only identifier specified value by argument and record create' do
|
39
|
+
expect(@app.identifier).to eq @id
|
40
|
+
expect(@app.secret).to be_nil
|
41
|
+
expect(@app.access_token).to be_nil
|
42
|
+
expect(Facemock::Database::Application.all.size).to eq @default_record_size
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when facebook app id is integer', assert: :attributes_and_created_record do
|
47
|
+
before do
|
48
|
+
@id = facebook_app_id
|
49
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id)
|
50
|
+
end
|
51
|
+
end
|
34
52
|
|
35
|
-
|
36
|
-
|
37
|
-
|
53
|
+
context 'when facebook app id is numerical string', assert: :attributes_and_created_record do
|
54
|
+
before do
|
55
|
+
@id = facebook_app_id.to_s
|
56
|
+
@app = Facemock::FbGraph::Application.new(@id)
|
57
|
+
end
|
38
58
|
end
|
39
59
|
|
40
|
-
|
41
|
-
|
42
|
-
|
60
|
+
context 'when facebook app id is :app' do
|
61
|
+
before do
|
62
|
+
@id = :app
|
63
|
+
@app = Facemock::FbGraph::Application.new(@id)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should set only identifier specified value by argument and record does not create' do
|
67
|
+
expect(@app.identifier).to eq @id
|
68
|
+
expect(@app.secret).to be_nil
|
69
|
+
expect(@app.access_token).to be_nil
|
70
|
+
expect(Facemock::Database::Application.all.size).to eq @default_record_size
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'and all options' do
|
75
|
+
before do
|
76
|
+
@options = { secret: facebook_app_secret, access_token: access_token }
|
77
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, @options)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should set all attributes specified value by argument' do
|
81
|
+
expect(@app.identifier).to eq facebook_app_id
|
82
|
+
expect(@app.secret).to eq @options[:secret]
|
83
|
+
expect(@app.access_token).to eq @options[:access_token]
|
84
|
+
expect(Facemock::Database::Application.all.size).to eq @default_record_size
|
85
|
+
end
|
43
86
|
end
|
44
87
|
end
|
88
|
+
end
|
45
89
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
90
|
+
describe '#fetch' do
|
91
|
+
context 'when instance identifier is nil' do
|
92
|
+
before { @app = Facemock::FbGraph::Application.new(nil) }
|
93
|
+
subject { lambda { @app.fetch } }
|
94
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidRequest }
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'when instance identifier is empty string' do
|
98
|
+
before { @app = Facemock::FbGraph::Application.new("") }
|
99
|
+
subject { lambda { @app.fetch } }
|
100
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidRequest }
|
101
|
+
end
|
102
|
+
|
103
|
+
context 'when instance identifier is integer' do
|
104
|
+
context 'and secret is not specified' do
|
105
|
+
before { @app = Facemock::FbGraph::Application.new(facebook_app_id) }
|
106
|
+
subject { lambda { @app.fetch } }
|
107
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidRequest }
|
50
108
|
end
|
51
109
|
|
52
|
-
|
53
|
-
|
54
|
-
|
110
|
+
context 'and incorrect secret is specified' do
|
111
|
+
before do
|
112
|
+
Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
113
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id)
|
114
|
+
@app.secret = "incorrect_secret"
|
115
|
+
end
|
116
|
+
subject { lambda { @app.fetch } }
|
117
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidRequest }
|
55
118
|
end
|
56
119
|
|
57
|
-
|
58
|
-
|
59
|
-
|
120
|
+
context 'and the other application secret is specified' do
|
121
|
+
before do
|
122
|
+
secret = "other_secret"
|
123
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
124
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id + 1, secret: secret)
|
125
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: secret)
|
126
|
+
end
|
127
|
+
subject { lambda { @app.fetch } }
|
128
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidRequest }
|
129
|
+
end
|
130
|
+
|
131
|
+
context 'and correct secret is specified' do
|
132
|
+
before do
|
133
|
+
create_application({ id: facebook_app_id, secret: facebook_app_secret })
|
134
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
135
|
+
end
|
136
|
+
|
137
|
+
subject { @app.fetch }
|
138
|
+
it { is_expected.to be_kind_of Facemock::FbGraph::Application }
|
139
|
+
|
140
|
+
it 'should not change identifier and secret' do
|
141
|
+
identifier = @app.identifier
|
142
|
+
secret = @app.secret
|
143
|
+
@app.fetch
|
144
|
+
expect(@app.identifier).to eq identifier
|
145
|
+
expect(@app.secret).to eq secret
|
146
|
+
expect(@app.access_token).to be_nil
|
147
|
+
end
|
148
|
+
|
149
|
+
context 'and incorrect access_token is specified' do
|
150
|
+
before do
|
151
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
152
|
+
@app.access_token = "incorrect_token"
|
153
|
+
end
|
154
|
+
subject { lambda { @app.fetch } }
|
155
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidToken }
|
156
|
+
end
|
60
157
|
end
|
61
158
|
end
|
62
159
|
|
63
|
-
context '
|
64
|
-
|
160
|
+
context 'when instance identifier is :app' do
|
161
|
+
context 'and access token is not specified' do
|
162
|
+
before { @app = Facemock::FbGraph::Application.new(:app) }
|
163
|
+
subject { lambda { @app.fetch } }
|
164
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidToken }
|
165
|
+
end
|
65
166
|
|
66
|
-
|
67
|
-
|
68
|
-
|
167
|
+
context 'and access token is incorrect' do
|
168
|
+
before { @app = Facemock::FbGraph::Application.new(:app, access_token: "incorrect_token") }
|
169
|
+
subject { lambda { @app.fetch } }
|
170
|
+
it { is_expected.to raise_error Facemock::FbGraph::InvalidToken }
|
69
171
|
end
|
70
172
|
|
71
|
-
|
72
|
-
|
73
|
-
|
173
|
+
context 'and access token is correct' do
|
174
|
+
before do
|
175
|
+
create_application({ id: facebook_app_id, secret: facebook_app_secret})
|
176
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
177
|
+
user = app.test_user!
|
178
|
+
@access_token = user.access_token
|
179
|
+
end
|
180
|
+
|
181
|
+
it 'should set all attributes specified value by argument' do
|
182
|
+
app = Facemock::FbGraph::Application.new(:app, access_token: @access_token)
|
183
|
+
app.fetch
|
184
|
+
expect(app.identifier).to eq facebook_app_id
|
185
|
+
expect(app.secret).to eq facebook_app_secret
|
186
|
+
expect(app.access_token).to be_nil
|
187
|
+
end
|
74
188
|
end
|
75
189
|
end
|
76
190
|
end
|
77
191
|
|
78
|
-
describe '#
|
79
|
-
|
192
|
+
describe '#test_user!' do
|
193
|
+
context 'when incorrect access token is specified' do
|
80
194
|
|
81
|
-
|
82
|
-
|
83
|
-
|
195
|
+
it 'should raise error Facemoc::FbGraph::InvalidToken' do
|
196
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
197
|
+
app.access_token = "incorrect_token"
|
198
|
+
expect(lambda { app.test_user! }).to raise_error Facemock::FbGraph::InvalidToken
|
199
|
+
end
|
84
200
|
end
|
85
201
|
|
86
|
-
|
87
|
-
|
88
|
-
|
202
|
+
context 'when identifier or secret is incorrect' do
|
203
|
+
before { Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret) }
|
204
|
+
|
205
|
+
it 'should raise error Facemoc::FbGraph::InvalidRequest' do
|
206
|
+
app = Facemock::FbGraph::Application.new(nil)
|
207
|
+
[nil, "", "hoge", facebook_app_id].each do |id|
|
208
|
+
app.identifier = id
|
209
|
+
[nil, "", "hoge"].each do |secret|
|
210
|
+
app.secret = secret
|
211
|
+
expect(lambda { app.test_user! }).to raise_error Facemock::FbGraph::InvalidRequest
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
89
215
|
end
|
90
|
-
end
|
91
216
|
|
92
|
-
|
93
|
-
|
217
|
+
context 'when identifier and secret is correct' do
|
218
|
+
before do
|
219
|
+
create_application({ id: facebook_app_id, secret: facebook_app_secret })
|
220
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
221
|
+
end
|
94
222
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
223
|
+
it 'should created user' do
|
224
|
+
expect(Facemock::FbGraph::Application::User.all).to be_empty
|
225
|
+
created_user = @app.test_user!
|
226
|
+
finded_user = Facemock::FbGraph::Application::User.find_by_id(created_user.id)
|
227
|
+
Facemock::FbGraph::Application::User.column_names.each do |column_name|
|
228
|
+
expect(created_user.send(column_name)).to eq finded_user.send(column_name)
|
229
|
+
end
|
101
230
|
end
|
102
231
|
end
|
103
232
|
end
|
104
233
|
|
105
234
|
describe '#test_users' do
|
106
|
-
|
107
|
-
|
235
|
+
context 'when identifier is invalid' do
|
236
|
+
before { Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret) }
|
237
|
+
|
238
|
+
it 'should raise error Facemock::FbGraph::InvalidRequest' do
|
239
|
+
[nil, "", facebook_app_id + 1].each do |id|
|
240
|
+
app = Facemock::FbGraph::Application.new(id)
|
241
|
+
expect(lambda{ app.test_users }).to raise_error Facemock::FbGraph::InvalidRequest
|
242
|
+
end
|
243
|
+
end
|
108
244
|
end
|
109
245
|
|
110
|
-
context 'when
|
111
|
-
|
246
|
+
context 'when secret is invalid' do
|
247
|
+
before { Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret) }
|
248
|
+
|
249
|
+
it 'should raise error Facemock::FbGraph::InvalidRequest' do
|
250
|
+
[nil, "", "incorrect_secret"].each do |secret|
|
251
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id)
|
252
|
+
app.secret = secret
|
253
|
+
expect(lambda{ app.test_users }).to raise_error Facemock::FbGraph::InvalidRequest
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
112
257
|
|
113
|
-
|
114
|
-
it
|
258
|
+
context 'when access_token is invalid' do
|
259
|
+
it 'should raise error Facemock::FbGraph::InvalidToken' do
|
260
|
+
app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
261
|
+
app.access_token = "incorrect_token"
|
262
|
+
expect(lambda{ app.test_users }).to raise_error Facemock::FbGraph::InvalidToken
|
263
|
+
end
|
115
264
|
end
|
116
265
|
|
117
|
-
context 'when
|
266
|
+
context 'when identifier and secret is correct' do
|
118
267
|
before do
|
119
|
-
|
268
|
+
create_application({ id: facebook_app_id, secret: facebook_app_secret })
|
269
|
+
@app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
120
270
|
end
|
121
271
|
|
122
|
-
|
123
|
-
|
124
|
-
|
272
|
+
context 'when test_user is not created' do
|
273
|
+
subject { @app.test_users }
|
274
|
+
|
275
|
+
it { is_expected.to be_kind_of Facemock::FbGraph::Application::TestUsers }
|
276
|
+
it { is_expected.to be_empty }
|
277
|
+
end
|
278
|
+
|
279
|
+
context 'when test_user is created' do
|
280
|
+
before do
|
281
|
+
@user = @app.test_user!
|
282
|
+
end
|
283
|
+
|
284
|
+
subject { @app.test_users }
|
285
|
+
it { is_expected.to be_kind_of Facemock::FbGraph::Application::TestUsers }
|
286
|
+
it { is_expected.not_to be_empty }
|
125
287
|
|
126
|
-
|
127
|
-
|
128
|
-
|
288
|
+
describe '.first.id' do
|
289
|
+
subject { @app.test_users.first.id }
|
290
|
+
it { is_expected.to eq @user.id }
|
291
|
+
end
|
129
292
|
end
|
130
293
|
end
|
131
294
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Facemock::FbGraph::User do
|
4
|
+
include ApplicationCreateHelper
|
5
|
+
|
4
6
|
let(:db_name) { ".test" }
|
5
7
|
|
6
8
|
let(:facebook_app_id) { "100000000000000" }
|
@@ -15,6 +17,7 @@ describe Facemock::FbGraph::User do
|
|
15
17
|
describe '.me' do
|
16
18
|
context 'when access_token is correct' do
|
17
19
|
before do
|
20
|
+
create_application({ id: facebook_app_id, secret: "test_secret" })
|
18
21
|
app = Facemock::FbGraph::Application.new(facebook_app_id, secret: facebook_app_secret)
|
19
22
|
@user = app.test_user!
|
20
23
|
@access_token = @user.access_token
|
@@ -9,8 +9,9 @@ describe Facemock::FbGraph do
|
|
9
9
|
expect(Facemock::FbGraph::User).to be_truthy
|
10
10
|
end
|
11
11
|
|
12
|
-
it 'should have a
|
12
|
+
it 'should have a error class' do
|
13
13
|
expect(Facemock::FbGraph::InvalidToken).to be_truthy
|
14
|
+
expect(Facemock::FbGraph::InvalidRequest).to be_truthy
|
14
15
|
end
|
15
16
|
|
16
17
|
describe '#on' do
|
data/spec/facemock_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facemock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sqlite3
|
@@ -202,6 +202,7 @@ files:
|
|
202
202
|
- spec/facemock/fb_graph_spec.rb
|
203
203
|
- spec/facemock_spec.rb
|
204
204
|
- spec/spec_helper.rb
|
205
|
+
- spec/support/application_create_helper.rb
|
205
206
|
- spec/support/tables_helper.rb
|
206
207
|
homepage: https://github.com/ogawatti/facemock
|
207
208
|
licenses:
|
@@ -218,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
219
|
version: '0'
|
219
220
|
segments:
|
220
221
|
- 0
|
221
|
-
hash:
|
222
|
+
hash: -2374315487424674791
|
222
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
224
|
none: false
|
224
225
|
requirements:
|
@@ -227,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
228
|
version: '0'
|
228
229
|
segments:
|
229
230
|
- 0
|
230
|
-
hash:
|
231
|
+
hash: -2374315487424674791
|
231
232
|
requirements: []
|
232
233
|
rubyforge_project:
|
233
234
|
rubygems_version: 1.8.25
|
@@ -249,4 +250,5 @@ test_files:
|
|
249
250
|
- spec/facemock/fb_graph_spec.rb
|
250
251
|
- spec/facemock_spec.rb
|
251
252
|
- spec/spec_helper.rb
|
253
|
+
- spec/support/application_create_helper.rb
|
252
254
|
- spec/support/tables_helper.rb
|