facebook-stub 0.0.1.13 → 0.0.1.14

Sign up to get free protection for your applications and to get access to all the features.
data/bin/facebook-stub.js CHANGED
@@ -56,10 +56,11 @@
56
56
  }
57
57
 
58
58
  // simulate prompt to login
59
- function promptToLogin(options, callback) {
59
+ function promptToLogin(options, callback, skipConnection) {
60
60
  FBWorld.beingPromptedToLogin = true;
61
61
  FBWorld.beingPromptedToLoginOptions = options;
62
62
  FBWorld.beingPromptedToLoginCallback = callback;
63
+ FBWorld.beingPromptedToLoginSkipConnection = skipConnection
63
64
  }
64
65
 
65
66
  // simulates resolving a login prompt in one of three ways
@@ -78,12 +79,13 @@
78
79
  FBWorld.setUid(facebook_uid);
79
80
  FBWorld.loggedIn();
80
81
 
81
- if (!FBWorld.state('connected')) {
82
+ if (!FBWorld.beingPromptedToLoginSkipConnection && !FBWorld.state('connected')) {
82
83
  promptToConnect(options, callback);
83
84
  } else {
84
85
  setPermissions(options.scope);
85
86
  callback(getStatus());
86
87
  }
88
+ FBWorld.beingPromptedToLoginSkipConnection = false;
87
89
 
88
90
  } else {
89
91
  FBWorld.notLoggedIn();
@@ -368,11 +370,19 @@
368
370
  // sharing
369
371
 
370
372
  function ui(options, callback) {
371
- if (options.method === 'feed'){
372
- FBWorld.beingPromptedToShare = true;
373
- FBWorld.beingPromptedToShareOptions = options;
374
- FBWorld.beingPromptedToShareCallback = callback;
373
+ if (FBWorld.state('loggedIn')) {
374
+ if (options.method === 'feed'){
375
+ FBWorld.beingPromptedToShare = true;
376
+ FBWorld.beingPromptedToShareOptions = options;
377
+ FBWorld.beingPromptedToShareCallback = callback;
378
+ }
379
+ }else{
380
+ // if not logged in, prompt to login without connecting to app
381
+ promptToLogin(options, function() {
382
+ FB.ui(options, callback);
383
+ }, true);
375
384
  }
385
+
376
386
  }
377
387
 
378
388
  // simulate closing the share prompt by either sharing or canceling
@@ -401,6 +411,7 @@
401
411
  FBWorld.beingPromptedToLogin = false;
402
412
  FBWorld.beingPromptedToLoginOptions = undefined;
403
413
  FBWorld.beingPromptedToLoginCallback = undefined;
414
+ FBWorld.beingPromptedToLoginSkipConnection = false;
404
415
  FBWorld.beingPromptedToConnect = false;
405
416
  FBWorld.beingPromptedToConnectOptions = undefined;
406
417
  FBWorld.beingPromptedToConnectCallback = undefined;
@@ -459,6 +470,7 @@
459
470
  beingPromptedToLogin : false,
460
471
  beingPromptedToLoginOptions : undefined,
461
472
  beingPromptedToLoginCallback : undefined,
473
+ beingPromptedToLoginSkipConnection : false,
462
474
  successfullyLogin : successfullyLogin,
463
475
  failToLogin : failToLogin,
464
476
  cancelLogin : cancelLogin,
@@ -56,10 +56,11 @@
56
56
  }
57
57
 
58
58
  // simulate prompt to login
59
- function promptToLogin(options, callback) {
59
+ function promptToLogin(options, callback, skipConnection) {
60
60
  FBWorld.beingPromptedToLogin = true;
61
61
  FBWorld.beingPromptedToLoginOptions = options;
62
62
  FBWorld.beingPromptedToLoginCallback = callback;
63
+ FBWorld.beingPromptedToLoginSkipConnection = skipConnection
63
64
  }
64
65
 
65
66
  // simulates resolving a login prompt in one of three ways
@@ -78,12 +79,13 @@
78
79
  FBWorld.setUid(facebook_uid);
79
80
  FBWorld.loggedIn();
80
81
 
81
- if (!FBWorld.state('connected')) {
82
+ if (!FBWorld.beingPromptedToLoginSkipConnection && !FBWorld.state('connected')) {
82
83
  promptToConnect(options, callback);
83
84
  } else {
84
85
  setPermissions(options.scope);
85
86
  callback(getStatus());
86
87
  }
88
+ FBWorld.beingPromptedToLoginSkipConnection = false;
87
89
 
88
90
  } else {
89
91
  FBWorld.notLoggedIn();
@@ -368,11 +370,19 @@
368
370
  // sharing
369
371
 
370
372
  function ui(options, callback) {
371
- if (options.method === 'feed'){
372
- FBWorld.beingPromptedToShare = true;
373
- FBWorld.beingPromptedToShareOptions = options;
374
- FBWorld.beingPromptedToShareCallback = callback;
373
+ if (FBWorld.state('loggedIn')) {
374
+ if (options.method === 'feed'){
375
+ FBWorld.beingPromptedToShare = true;
376
+ FBWorld.beingPromptedToShareOptions = options;
377
+ FBWorld.beingPromptedToShareCallback = callback;
378
+ }
379
+ }else{
380
+ // if not logged in, prompt to login without connecting to app
381
+ promptToLogin(options, function() {
382
+ FB.ui(options, callback);
383
+ }, true);
375
384
  }
385
+
376
386
  }
377
387
 
378
388
  // simulate closing the share prompt by either sharing or canceling
@@ -401,6 +411,7 @@
401
411
  FBWorld.beingPromptedToLogin = false;
402
412
  FBWorld.beingPromptedToLoginOptions = undefined;
403
413
  FBWorld.beingPromptedToLoginCallback = undefined;
414
+ FBWorld.beingPromptedToLoginSkipConnection = false;
404
415
  FBWorld.beingPromptedToConnect = false;
405
416
  FBWorld.beingPromptedToConnectOptions = undefined;
406
417
  FBWorld.beingPromptedToConnectCallback = undefined;
@@ -459,6 +470,7 @@
459
470
  beingPromptedToLogin : false,
460
471
  beingPromptedToLoginOptions : undefined,
461
472
  beingPromptedToLoginCallback : undefined,
473
+ beingPromptedToLoginSkipConnection : false,
462
474
  successfullyLogin : successfullyLogin,
463
475
  failToLogin : failToLogin,
464
476
  cancelLogin : cancelLogin,
@@ -1,3 +1,3 @@
1
1
  module FacebookStub
2
- VERSION = "0.0.1.13"
2
+ VERSION = "0.0.1.14"
3
3
  end
@@ -0,0 +1,37 @@
1
+ describe("FB.ui", function() {
2
+ beforeEach(function() {
3
+ setup();
4
+ });
5
+
6
+ afterEach(function() {
7
+ FBWorld.reset();
8
+ });
9
+
10
+ describe("when calling with {method: 'feed'}", function() {
11
+ describe("when loggedIn", function() {
12
+
13
+ beforeEach(function() {
14
+ FBWorld.loggedIn();
15
+ });
16
+
17
+ it("should set me to beingPromptedToShare", function() {
18
+ FB.ui({method: 'feed'});
19
+ expect(FBWorld.beingPromptedToShare).toBeTruthy();
20
+ });
21
+ });
22
+
23
+ describe("when not loggedIn", function () {
24
+ it("should set me to beingPromptedToLogin", function() {
25
+ FB.ui({method: 'feed'});
26
+ expect(FBWorld.beingPromptedToLogin).toBeTruthy();
27
+ expect(FBWorld.beingPromptedToShare).toBeFalsy();
28
+
29
+ FBWorld.successfullyLogin(Math.floor(Math.random() * 100000));
30
+
31
+ expect(FBWorld.beingPromptedToShare).toBeTruthy();
32
+
33
+ });
34
+ });
35
+ });
36
+
37
+ });
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebook-stub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.13
4
+ version: 0.0.1.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: debugger
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70104358544640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *70104358544640
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: sprockets
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70104358547960 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :development
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *70104358547960
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: rake
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70104358533100 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :development
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *70104358533100
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: sinatra
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &70104358371960 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: '0'
70
55
  type: :development
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
57
+ version_requirements: *70104358371960
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: shotgun
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &70104358326520 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ! '>='
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: '0'
86
66
  type: :development
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
68
+ version_requirements: *70104358326520
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: haml
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &70104358302360 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,15 +76,10 @@ dependencies:
101
76
  version: '0'
102
77
  type: :development
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *70104358302360
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: rspec
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &70104358205460 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
85
  - - ! '>='
@@ -117,15 +87,10 @@ dependencies:
117
87
  version: '0'
118
88
  type: :development
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
90
+ version_requirements: *70104358205460
126
91
  - !ruby/object:Gem::Dependency
127
92
  name: capybara
128
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &70104352096940 !ruby/object:Gem::Requirement
129
94
  none: false
130
95
  requirements:
131
96
  - - ! '>='
@@ -133,15 +98,10 @@ dependencies:
133
98
  version: '0'
134
99
  type: :development
135
100
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
101
+ version_requirements: *70104352096940
142
102
  - !ruby/object:Gem::Dependency
143
103
  name: jasmine
144
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &70104352096080 !ruby/object:Gem::Requirement
145
105
  none: false
146
106
  requirements:
147
107
  - - ! '>='
@@ -149,12 +109,7 @@ dependencies:
149
109
  version: '0'
150
110
  type: :development
151
111
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
112
+ version_requirements: *70104352096080
158
113
  description: facebook-stub is a gem for stubbing out the Facebook JavaScript API in
159
114
  acceptance and integration tests.
160
115
  email:
@@ -181,7 +136,8 @@ files:
181
136
  - lib/facebook_stub/utf8_encode.js
182
137
  - lib/facebook_stub/version.rb
183
138
  - spec/acceptance/facebook-stub_spec.rb
184
- - spec/javascripts/FacebookStubSpec.js
139
+ - spec/javascripts/FBApiSpec.js
140
+ - spec/javascripts/FBUiSpec.js
185
141
  - spec/javascripts/helpers/SpecHelper.js
186
142
  - spec/javascripts/support/jasmine.yml
187
143
  - spec/javascripts/support/jasmine_config.rb
@@ -204,7 +160,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
160
  version: '0'
205
161
  segments:
206
162
  - 0
207
- hash: -3282262625462427927
163
+ hash: 2190103251761564407
208
164
  required_rubygems_version: !ruby/object:Gem::Requirement
209
165
  none: false
210
166
  requirements:
@@ -213,16 +169,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
213
169
  version: '0'
214
170
  segments:
215
171
  - 0
216
- hash: -3282262625462427927
172
+ hash: 2190103251761564407
217
173
  requirements: []
218
174
  rubyforge_project: facebook-stub
219
- rubygems_version: 1.8.21
175
+ rubygems_version: 1.8.11
220
176
  signing_key:
221
177
  specification_version: 3
222
178
  summary: Stub out the FB JS API
223
179
  test_files:
224
180
  - spec/acceptance/facebook-stub_spec.rb
225
- - spec/javascripts/FacebookStubSpec.js
181
+ - spec/javascripts/FBApiSpec.js
182
+ - spec/javascripts/FBUiSpec.js
226
183
  - spec/javascripts/helpers/SpecHelper.js
227
184
  - spec/javascripts/support/jasmine.yml
228
185
  - spec/javascripts/support/jasmine_config.rb