facebook_test_users 0.0.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,7 @@ require 'pp'
2
2
  require 'stringio'
3
3
  require 'tempfile'
4
4
  require 'digest/md5'
5
+ require 'json'
5
6
 
6
7
  require 'facebook_test_users'
7
8
  require 'facebook_test_users/cli'
@@ -27,12 +28,13 @@ module FBTU
27
28
  begin
28
29
  capture_stdout_into(@out) do
29
30
  capture_stderr_into(@err) do
30
- FacebookTestUsers::CLI.start(argv_ish)
31
+ FacebookTestUsers::CLI::Main.start(argv_ish)
31
32
  end
32
33
  end
33
34
  rescue Exception => e
34
35
  unless options[:quiet]
35
- puts "Something failed.\nArgs:%s\nstdout:\n%s\n\nstderr:\n%s\n" % [
36
+ puts "Something failed whilst executing fbtu script.\n" \
37
+ "Args:%s\nstdout:\n%s\n\nstderr:\n%s\n" % [
36
38
  argv_ish.inspect,
37
39
  @out.string,
38
40
  @err.string
@@ -87,7 +89,7 @@ module FBTU
87
89
 
88
90
  end # UserList
89
91
 
90
- def add_app(name, opts={})
92
+ def register_app(name, opts={})
91
93
  appinfo = {
92
94
  :name => name,
93
95
  :app_id => opts[:app_id] || 123456,
@@ -100,7 +102,7 @@ module FBTU
100
102
  "https://graph.facebook.com/oauth/access_token?client_id=#{appinfo[:app_id]}&client_secret=#{appinfo[:app_secret]}&grant_type=client_credentials",
101
103
  :body => "access_token=#{appinfo[:access_token]}")
102
104
 
103
- fbtu (%w[apps add --name] << name <<
105
+ fbtu (%w[apps register --name] << name <<
104
106
  '--app-id' << appinfo[:app_id] <<
105
107
  '--app-secret' << appinfo[:app_secret])
106
108
 
@@ -109,7 +111,7 @@ module FBTU
109
111
  app
110
112
  end
111
113
 
112
- def add_user_to(app)
114
+ def create_user_for(app)
113
115
  # real FB test users all have IDs starting with 10000 (or at
114
116
  # least the ones that I've seen; N=20 or so)
115
117
  user_id = "10000" + rand(9999999999).to_s
@@ -153,6 +155,20 @@ module FBTU
153
155
  :body => {"data" => user_data}.to_json)
154
156
  end
155
157
 
158
+ def fakeweb_register_bad_request(method, url, code, error)
159
+ response = {
160
+ "error" => {
161
+ "message" => "(#{code}) " + error,
162
+ "type" => "OAuthException",
163
+ "code" => code
164
+ }
165
+ }
166
+
167
+ FakeWeb.register_uri(method, url,
168
+ :status => [ '400', 'Bad Request' ],
169
+ :body => response.to_json)
170
+ end
171
+
156
172
  end # SetupHelpers
157
173
 
158
174
  end
@@ -0,0 +1,112 @@
1
+ #!/bin/bash
2
+
3
+ # Integration test script for testing various operations against live
4
+ # facebook API. Before running, register two separate facebook
5
+ # applications, and provide their registered names as command-line
6
+ # arguments.
7
+
8
+ fbtu='ruby -I./lib ./bin/fbtu'
9
+
10
+ fatal () {
11
+ echo >&2 "ERROR: $*"
12
+ exit 1
13
+ }
14
+
15
+ fail () {
16
+ tput bold
17
+ tput setaf 1
18
+ echo >&2 "not ok - $*"
19
+ tput sgr0
20
+ exit 1
21
+ }
22
+
23
+ ok () {
24
+ tput setaf 2
25
+ echo "ok - $*"
26
+ tput sgr0
27
+ }
28
+
29
+ should_succeed () {
30
+ name="$1"
31
+ shift
32
+ if "$@"; then
33
+ ok "$name"
34
+ else
35
+ fail "$name"
36
+ fi
37
+ }
38
+
39
+ should_fail () {
40
+ name="should fail: $1"
41
+ shift
42
+ if ! "$@"; then
43
+ ok "$name"
44
+ else
45
+ fail "$name"
46
+ fi
47
+ }
48
+
49
+ if [ $# != 2 ]; then
50
+ echo >&2 "Usage: $0 APP-A APP-B"
51
+ exit 1
52
+ fi
53
+
54
+ appA="$1"
55
+ appB="$2"
56
+
57
+ for app in "$appA" "$appB"; do
58
+ if ! $fbtu users list -a "$app"; then
59
+ echo >&2 "$app doesn't appear to be a valid app; aborting."
60
+ exit 1
61
+ fi
62
+ ok "$appA is a valid app"
63
+ done
64
+
65
+ if uid=$(
66
+ $fbtu users create --app "$appA" |
67
+ awk '/^User ID/ { print $3 }'
68
+ )
69
+ then
70
+ ok "created user with ID $uid"
71
+ else
72
+ fail "create user"
73
+ fi
74
+
75
+ should_succeed "change user name via $appA" \
76
+ $fbtu users change \
77
+ --app "$appA" \
78
+ --user "$uid" \
79
+ --name "Joe"
80
+
81
+ should_fail "change user name via $appB" \
82
+ $fbtu users change \
83
+ --app "$appB" \
84
+ --user "$uid" \
85
+ --name "Sir Joe"
86
+
87
+ should_fail "add user from $appB to $appA" \
88
+ $fbtu apps add-user \
89
+ --from-app "$appB" \
90
+ --to-app "$appA" \
91
+ --user "$uid"
92
+
93
+ should_succeed "add user from $appA to $appB" \
94
+ $fbtu apps add-user \
95
+ --from-app "$appA" \
96
+ --to-app "$appB" \
97
+ --user "$uid"
98
+
99
+ should_fail "rm user via $appA" \
100
+ $fbtu user rm --app "$appA" --user "$uid"
101
+
102
+ should_fail "rm user via $appB" \
103
+ $fbtu user rm --app "$appB" --user "$uid"
104
+
105
+ should_succeed "disassociate user from $appB" \
106
+ $fbtu apps rm-user --app "$appB" --user "$uid"
107
+
108
+ should_fail "disassociate user from $appA" \
109
+ $fbtu apps rm-user --app "$appA" --user "$uid"
110
+
111
+ should_succeed "rm user via $appA" \
112
+ $fbtu user rm --app "$appA" --user "$uid"
metadata CHANGED
@@ -1,129 +1,114 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: facebook_test_users
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Sam Merritt
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-14 00:00:00 -08:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-03-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rest-client
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70343335701160 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 1
32
- - 6
33
- - 1
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
34
21
  version: 1.6.1
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: thor
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70343335701160
25
+ - !ruby/object:Gem::Dependency
26
+ name: thor
27
+ requirement: &70343335699880 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 43
46
- segments:
47
- - 0
48
- - 14
49
- - 6
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
50
32
  version: 0.14.6
51
33
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: json_pure
55
34
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70343335699880
36
+ - !ruby/object:Gem::Dependency
37
+ name: multi_json
38
+ requirement: &70343335699300 !ruby/object:Gem::Requirement
57
39
  none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 3
62
- segments:
63
- - 1
64
- - 5
65
- - 0
66
- version: 1.5.0
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
67
44
  type: :runtime
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: fakeweb
71
45
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70343335699300
47
+ - !ruby/object:Gem::Dependency
48
+ name: heredoc_unindent
49
+ requirement: &70343335698260 !ruby/object:Gem::Requirement
73
50
  none: false
74
- requirements:
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70343335698260
58
+ - !ruby/object:Gem::Dependency
59
+ name: fakeweb
60
+ requirement: &70343335697460 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
75
63
  - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 27
78
- segments:
79
- - 1
80
- - 3
81
- - 0
64
+ - !ruby/object:Gem::Version
82
65
  version: 1.3.0
83
66
  type: :development
84
- version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
- name: fakeweb-matcher
87
67
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
68
+ version_requirements: *70343335697460
69
+ - !ruby/object:Gem::Dependency
70
+ name: fakeweb-matcher
71
+ requirement: &70343335696560 !ruby/object:Gem::Requirement
89
72
  none: false
90
- requirements:
73
+ requirements:
91
74
  - - ~>
92
- - !ruby/object:Gem::Version
93
- hash: 27
94
- segments:
95
- - 1
96
- - 2
97
- - 2
75
+ - !ruby/object:Gem::Version
98
76
  version: 1.2.2
99
77
  type: :development
100
- version_requirements: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: rspec
103
78
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
79
+ version_requirements: *70343335696560
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ requirement: &70343335695800 !ruby/object:Gem::Requirement
105
83
  none: false
106
- requirements:
107
- - - ~>
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 2
112
- - 3
113
- - 0
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
114
87
  version: 2.3.0
115
88
  type: :development
116
- version_requirements: *id006
117
- description: Test users are extremely handy for testing your Facebook applications. This gem lets you create and delete users and make them befriend one another. It is intended to make testing your Facebook applications slightly less painful.
118
- email:
89
+ prerelease: false
90
+ version_requirements: *70343335695800
91
+ - !ruby/object:Gem::Dependency
92
+ name: json
93
+ requirement: &70343335695200 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70343335695200
102
+ description: Test users are extremely handy for testing your Facebook applications.
103
+ This gem lets you create and delete users and make them befriend one another. It
104
+ is intended to make testing your Facebook applications slightly less painful.
105
+ email:
119
106
  - spam@andcheese.org
120
- executables:
107
+ executables:
121
108
  - fbtu
122
109
  extensions: []
123
-
124
110
  extra_rdoc_files: []
125
-
126
- files:
111
+ files:
127
112
  - .gitignore
128
113
  - Gemfile
129
114
  - LICENSE
@@ -138,56 +123,56 @@ files:
138
123
  - lib/facebook_test_users/db.rb
139
124
  - lib/facebook_test_users/user.rb
140
125
  - lib/facebook_test_users/version.rb
141
- - spec/fbtu/apps/add_spec.rb
126
+ - spec/fbtu/apps/add_user_spec.rb
142
127
  - spec/fbtu/apps/list_spec.rb
128
+ - spec/fbtu/apps/register_spec.rb
129
+ - spec/fbtu/apps/rm_user_spec.rb
143
130
  - spec/fbtu/apps_spec.rb
144
- - spec/fbtu/users/add_spec.rb
131
+ - spec/fbtu/users/change_spec.rb
132
+ - spec/fbtu/users/create_spec.rb
145
133
  - spec/fbtu/users/friend_spec.rb
134
+ - spec/fbtu/users/list_apps_spec.rb
146
135
  - spec/fbtu/users/list_spec.rb
147
136
  - spec/fbtu/users/nuke_spec.rb
148
137
  - spec/fbtu/users/rm_spec.rb
149
138
  - spec/spec_helper.rb
150
- has_rdoc: true
139
+ - test/real-add-rm-user-test.sh
151
140
  homepage: https://github.com/smerritt/facebook_test_users
152
141
  licenses: []
153
-
154
142
  post_install_message:
155
143
  rdoc_options: []
156
-
157
- require_paths:
144
+ require_paths:
158
145
  - lib
159
- required_ruby_version: !ruby/object:Gem::Requirement
146
+ required_ruby_version: !ruby/object:Gem::Requirement
160
147
  none: false
161
- requirements:
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- hash: 3
165
- segments:
166
- - 0
167
- version: "0"
168
- required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
153
  none: false
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- hash: 3
174
- segments:
175
- - 0
176
- version: "0"
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
177
158
  requirements: []
178
-
179
159
  rubyforge_project: facebook_test_users
180
- rubygems_version: 1.3.7
160
+ rubygems_version: 1.8.10
181
161
  signing_key:
182
162
  specification_version: 3
183
163
  summary: A CLI tool + library for manipulating Facebook test users
184
- test_files:
185
- - spec/fbtu/apps/add_spec.rb
164
+ test_files:
165
+ - spec/fbtu/apps/add_user_spec.rb
186
166
  - spec/fbtu/apps/list_spec.rb
167
+ - spec/fbtu/apps/register_spec.rb
168
+ - spec/fbtu/apps/rm_user_spec.rb
187
169
  - spec/fbtu/apps_spec.rb
188
- - spec/fbtu/users/add_spec.rb
170
+ - spec/fbtu/users/change_spec.rb
171
+ - spec/fbtu/users/create_spec.rb
189
172
  - spec/fbtu/users/friend_spec.rb
173
+ - spec/fbtu/users/list_apps_spec.rb
190
174
  - spec/fbtu/users/list_spec.rb
191
175
  - spec/fbtu/users/nuke_spec.rb
192
176
  - spec/fbtu/users/rm_spec.rb
193
177
  - spec/spec_helper.rb
178
+ - test/real-add-rm-user-test.sh