facebooker 1.0.43 → 1.0.44

Sign up to get free protection for your applications and to get access to all the features.
data/facebooker.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{facebooker}
5
- s.version = "1.0.43"
5
+ s.version = "1.0.44"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Chad Fowler", "Patrick Ewing", "Mike Mangino", "Shane Vitarana", "Corey Innis"]
9
- s.date = %q{2009-07-16}
9
+ s.date = %q{2009-07-23}
10
10
  s.description = %q{Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]. Its goals are:
11
11
 
12
12
  * Idiomatic Ruby
@@ -15,14 +15,14 @@ Gem::Specification.new do |s|
15
15
  * Well tested}
16
16
  s.email = %q{mmangino@elevatedrails.com}
17
17
  s.extra_rdoc_files = ["Manifest.txt", "CHANGELOG.rdoc", "COPYING.rdoc", "README.rdoc", "TODO.rdoc"]
18
- s.files = [".autotest", "CHANGELOG.rdoc", "COPYING.rdoc", "Manifest.txt", "README.rdoc", "Rakefile", "TODO.rdoc", "examples/desktop_login.rb", "facebooker.gemspec", "generators/facebook/facebook_generator.rb", "generators/facebook/templates/config/facebooker.yml", "generators/facebook/templates/public/javascripts/facebooker.js", "generators/facebook_controller/USAGE", "generators/facebook_controller/facebook_controller_generator.rb", "generators/facebook_controller/templates/controller.rb", "generators/facebook_controller/templates/functional_test.rb", "generators/facebook_controller/templates/helper.rb", "generators/facebook_controller/templates/view.fbml.erb", "generators/facebook_controller/templates/view.html.erb", "generators/facebook_publisher/facebook_publisher_generator.rb", "generators/facebook_publisher/templates/create_facebook_templates.rb", "generators/facebook_publisher/templates/publisher.rb", "generators/facebook_scaffold/USAGE", "generators/facebook_scaffold/facebook_scaffold_generator.rb", "generators/facebook_scaffold/templates/controller.rb", "generators/facebook_scaffold/templates/facebook_style.css", "generators/facebook_scaffold/templates/functional_test.rb", "generators/facebook_scaffold/templates/helper.rb", "generators/facebook_scaffold/templates/layout.fbml.erb", "generators/facebook_scaffold/templates/layout.html.erb", "generators/facebook_scaffold/templates/style.css", "generators/facebook_scaffold/templates/view_edit.fbml.erb", "generators/facebook_scaffold/templates/view_edit.html.erb", "generators/facebook_scaffold/templates/view_index.fbml.erb", "generators/facebook_scaffold/templates/view_index.html.erb", "generators/facebook_scaffold/templates/view_new.fbml.erb", "generators/facebook_scaffold/templates/view_new.html.erb", "generators/facebook_scaffold/templates/view_show.fbml.erb", "generators/facebook_scaffold/templates/view_show.html.erb", "generators/publisher/publisher_generator.rb", "generators/xd_receiver/templates/xd_receiver.html", "generators/xd_receiver/xd_receiver_generator.rb", "init.rb", "install.rb", "lib/facebooker.rb", "lib/facebooker/adapters/adapter_base.rb", "lib/facebooker/adapters/bebo_adapter.rb", "lib/facebooker/adapters/facebook_adapter.rb", "lib/facebooker/admin.rb", "lib/facebooker/batch_request.rb", "lib/facebooker/data.rb", "lib/facebooker/feed.rb", "lib/facebooker/logging.rb", "lib/facebooker/mobile.rb", "lib/facebooker/mock/service.rb", "lib/facebooker/mock/session.rb", "lib/facebooker/model.rb", "lib/facebooker/models/affiliation.rb", "lib/facebooker/models/album.rb", "lib/facebooker/models/applicationproperties.rb", "lib/facebooker/models/applicationrestrictions.rb", "lib/facebooker/models/cookie.rb", "lib/facebooker/models/education_info.rb", "lib/facebooker/models/event.rb", "lib/facebooker/models/friend_list.rb", "lib/facebooker/models/group.rb", "lib/facebooker/models/info_item.rb", "lib/facebooker/models/info_section.rb", "lib/facebooker/models/location.rb", "lib/facebooker/models/notifications.rb", "lib/facebooker/models/page.rb", "lib/facebooker/models/photo.rb", "lib/facebooker/models/tag.rb", "lib/facebooker/models/user.rb", "lib/facebooker/models/video.rb", "lib/facebooker/models/work_info.rb", "lib/facebooker/parser.rb", "lib/facebooker/rails/backwards_compatible_param_checks.rb", "lib/facebooker/rails/controller.rb", "lib/facebooker/rails/cucumber.rb", "lib/facebooker/rails/cucumber/world.rb", "lib/facebooker/rails/extensions/action_controller.rb", "lib/facebooker/rails/extensions/rack_setup.rb", "lib/facebooker/rails/extensions/routing.rb", "lib/facebooker/rails/facebook_form_builder.rb", "lib/facebooker/rails/facebook_pretty_errors.rb", "lib/facebooker/rails/facebook_request_fix.rb", "lib/facebooker/rails/facebook_request_fix_2-3.rb", "lib/facebooker/rails/facebook_session_handling.rb", "lib/facebooker/rails/facebook_url_helper.rb", "lib/facebooker/rails/facebook_url_rewriting.rb", "lib/facebooker/rails/helpers.rb", "lib/facebooker/rails/helpers/fb_connect.rb", "lib/facebooker/rails/integration_session.rb", "lib/facebooker/rails/profile_publisher_extensions.rb", "lib/facebooker/rails/publisher.rb", "lib/facebooker/rails/routing.rb", "lib/facebooker/rails/test_helpers.rb", "lib/facebooker/rails/utilities.rb", "lib/facebooker/server_cache.rb", "lib/facebooker/service.rb", "lib/facebooker/service/base_service.rb", "lib/facebooker/service/curl_service.rb", "lib/facebooker/service/net_http_service.rb", "lib/facebooker/service/typhoeus_service.rb", "lib/facebooker/service/typhoeus_multi_service.rb", "lib/facebooker/session.rb", "lib/facebooker/version.rb", "lib/net/http_multipart_post.rb", "lib/rack/facebook.rb", "lib/tasks/facebooker.rake", "lib/tasks/tunnel.rake", "rails/init.rb", "setup.rb", "templates/layout.erb", "test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/page_test.rb", "test/facebooker/models/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/fixtures/multipart_post_body_with_only_parameters.txt", "test/fixtures/multipart_post_body_with_single_file.txt", "test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb", "test/rails_test_helper.rb", "test/test_helper.rb", "test/facebooker/rails/facebook_url_rewriting_test.rb", "test/facebooker/service_test.rb"]
18
+ s.files = [".autotest", "CHANGELOG.rdoc", "COPYING.rdoc", "Manifest.txt", "README.rdoc", "Rakefile", "TODO.rdoc", "examples/desktop_login.rb", "facebooker.gemspec", "generators/facebook/facebook_generator.rb", "generators/facebook/templates/config/facebooker.yml", "generators/facebook/templates/public/javascripts/facebooker.js", "generators/facebook_controller/USAGE", "generators/facebook_controller/facebook_controller_generator.rb", "generators/facebook_controller/templates/controller.rb", "generators/facebook_controller/templates/functional_test.rb", "generators/facebook_controller/templates/helper.rb", "generators/facebook_controller/templates/view.fbml.erb", "generators/facebook_controller/templates/view.html.erb", "generators/facebook_publisher/facebook_publisher_generator.rb", "generators/facebook_publisher/templates/create_facebook_templates.rb", "generators/facebook_publisher/templates/publisher.rb", "generators/facebook_scaffold/USAGE", "generators/facebook_scaffold/facebook_scaffold_generator.rb", "generators/facebook_scaffold/templates/controller.rb", "generators/facebook_scaffold/templates/facebook_style.css", "generators/facebook_scaffold/templates/functional_test.rb", "generators/facebook_scaffold/templates/helper.rb", "generators/facebook_scaffold/templates/layout.fbml.erb", "generators/facebook_scaffold/templates/layout.html.erb", "generators/facebook_scaffold/templates/style.css", "generators/facebook_scaffold/templates/view_edit.fbml.erb", "generators/facebook_scaffold/templates/view_edit.html.erb", "generators/facebook_scaffold/templates/view_index.fbml.erb", "generators/facebook_scaffold/templates/view_index.html.erb", "generators/facebook_scaffold/templates/view_new.fbml.erb", "generators/facebook_scaffold/templates/view_new.html.erb", "generators/facebook_scaffold/templates/view_show.fbml.erb", "generators/facebook_scaffold/templates/view_show.html.erb", "generators/publisher/publisher_generator.rb", "generators/xd_receiver/templates/xd_receiver.html", "generators/xd_receiver/xd_receiver_generator.rb", "init.rb", "install.rb", "lib/facebooker.rb", "lib/facebooker/adapters/adapter_base.rb", "lib/facebooker/adapters/bebo_adapter.rb", "lib/facebooker/adapters/facebook_adapter.rb", "lib/facebooker/admin.rb", "lib/facebooker/batch_request.rb", "lib/facebooker/data.rb", "lib/facebooker/feed.rb", "lib/facebooker/logging.rb", "lib/facebooker/mobile.rb", "lib/facebooker/mock/service.rb", "lib/facebooker/mock/session.rb", "lib/facebooker/model.rb", "lib/facebooker/models/affiliation.rb", "lib/facebooker/models/album.rb", "lib/facebooker/models/applicationproperties.rb", "lib/facebooker/models/applicationrestrictions.rb", "lib/facebooker/models/cookie.rb", "lib/facebooker/models/education_info.rb", "lib/facebooker/models/event.rb", "lib/facebooker/models/friend_list.rb", "lib/facebooker/models/group.rb", "lib/facebooker/models/info_item.rb", "lib/facebooker/models/info_section.rb", "lib/facebooker/models/location.rb", "lib/facebooker/models/notifications.rb", "lib/facebooker/models/page.rb", "lib/facebooker/models/photo.rb", "lib/facebooker/models/tag.rb", "lib/facebooker/models/user.rb", "lib/facebooker/models/video.rb", "lib/facebooker/models/work_info.rb", "lib/facebooker/parser.rb", "lib/facebooker/rails/backwards_compatible_param_checks.rb", "lib/facebooker/rails/controller.rb", "lib/facebooker/rails/cucumber.rb", "lib/facebooker/rails/cucumber/world.rb", "lib/facebooker/rails/extensions/action_controller.rb", "lib/facebooker/rails/extensions/rack_setup.rb", "lib/facebooker/rails/extensions/routing.rb", "lib/facebooker/rails/facebook_form_builder.rb", "lib/facebooker/rails/facebook_pretty_errors.rb", "lib/facebooker/rails/facebook_request_fix.rb", "lib/facebooker/rails/facebook_request_fix_2-3.rb", "lib/facebooker/rails/facebook_session_handling.rb", "lib/facebooker/rails/facebook_url_helper.rb", "lib/facebooker/rails/facebook_url_rewriting.rb", "lib/facebooker/rails/helpers.rb", "lib/facebooker/rails/helpers/fb_connect.rb", "lib/facebooker/rails/integration_session.rb", "lib/facebooker/rails/profile_publisher_extensions.rb", "lib/facebooker/rails/publisher.rb", "lib/facebooker/rails/routing.rb", "lib/facebooker/rails/test_helpers.rb", "lib/facebooker/rails/utilities.rb", "lib/facebooker/server_cache.rb", "lib/facebooker/service.rb", "lib/facebooker/service/base_service.rb", "lib/facebooker/service/curl_service.rb", "lib/facebooker/service/net_http_service.rb", "lib/facebooker/service/typhoeus_service.rb", "lib/facebooker/service/typhoeus_multi_service.rb", "lib/facebooker/session.rb", "lib/facebooker/version.rb", "lib/net/http_multipart_post.rb", "lib/rack/facebook.rb", "lib/tasks/facebooker.rake", "lib/tasks/tunnel.rake", "rails/init.rb", "setup.rb", "templates/layout.erb", "test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/page_test.rb", "test/facebooker/models/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/fixtures/multipart_post_body_with_only_parameters.txt", "test/fixtures/multipart_post_body_with_single_file.txt", "test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb", "test/rails_test_helper.rb", "test/test_helper.rb", "test/facebooker/rails/facebook_url_rewriting_test.rb", "test/facebooker/rails/integration_session_test.rb", "test/facebooker/service_test.rb"]
19
19
  s.homepage = %q{http://facebooker.rubyforge.org}
20
20
  s.rdoc_options = ["--main", "README.rdoc"]
21
21
  s.require_paths = ["lib"]
22
22
  s.rubyforge_project = %q{facebooker}
23
23
  s.rubygems_version = %q{1.3.4}
24
24
  s.summary = %q{Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]}
25
- s.test_files = ["test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/page_test.rb", "test/facebooker/models/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_test.rb", "test/facebooker/rails/facebook_url_rewriting_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/service_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb"]
25
+ s.test_files = ["test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/page_test.rb", "test/facebooker/models/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_test.rb", "test/facebooker/rails/facebook_url_rewriting_test.rb", "test/facebooker/rails/integration_session_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/service_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb"]
26
26
 
27
27
  if s.respond_to? :specification_version then
28
28
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -10,7 +10,7 @@ module Facebooker
10
10
  include Model
11
11
  attr_accessor :message, :time, :status_id
12
12
  end
13
- FIELDS = [:status, :political, :pic_small, :name, :quotes, :is_app_user, :tv, :profile_update_time, :meeting_sex, :hs_info, :timezone, :relationship_status, :hometown_location, :about_me, :wall_count, :significant_other_id, :pic_big, :music, :work_history, :sex, :religion, :notes_count, :activities, :pic_square, :movies, :has_added_app, :education_history, :birthday, :first_name, :meeting_for, :last_name, :interests, :current_location, :pic, :books, :affiliations, :locale, :profile_url, :proxied_email, :email_hashes, :allowed_restrictions, :pic_with_logo, :pic_big_with_logo, :pic_small_with_logo, :pic_square_with_logo]
13
+ FIELDS = [:status, :political, :pic_small, :name, :quotes, :is_app_user, :tv, :profile_update_time, :meeting_sex, :hs_info, :timezone, :relationship_status, :hometown_location, :about_me, :wall_count, :significant_other_id, :pic_big, :music, :work_history, :sex, :religion, :notes_count, :activities, :pic_square, :movies, :has_added_app, :education_history, :birthday, :birthday_date, :first_name, :meeting_for, :last_name, :interests, :current_location, :pic, :books, :affiliations, :locale, :profile_url, :proxied_email, :email_hashes, :allowed_restrictions, :pic_with_logo, :pic_big_with_logo, :pic_small_with_logo, :pic_square_with_logo]
14
14
  STANDARD_FIELDS = [:uid, :first_name, :last_name, :name, :timezone, :birthday, :sex, :affiliations, :locale, :profile_url, :pic_square]
15
15
  populating_attr_accessor(*FIELDS)
16
16
  attr_reader :affiliations
@@ -180,7 +180,11 @@ module Facebooker
180
180
  end
181
181
 
182
182
  def default_after_facebook_login_url
183
- url_for(:only_path => false, :overwrite_params => {})
183
+ omit_keys = ["_method", "format"]
184
+ options = (params||{}).clone
185
+ options = options.reject{|k,v| k.to_s.match(/^fb_sig/) or omit_keys.include?(k.to_s)}
186
+ options = options.merge({:only_path => false})
187
+ url_for(options)
184
188
  end
185
189
 
186
190
  def create_new_facebook_session_and_redirect!
@@ -4,43 +4,37 @@ require 'facebooker/rails/integration_session'
4
4
  module Facebooker
5
5
  module Rails
6
6
  module Cucumber
7
- class World < ::Cucumber::Rails::World
8
- def open_session
9
- session = Facebooker::Rails::IntegrationSession.new
7
+ def open_session
8
+ session = Facebooker::Rails::IntegrationSession.new
10
9
 
11
- # delegate the fixture accessors back to the test instance
12
- extras = Module.new { attr_accessor :delegate, :test_result }
13
- if self.class.respond_to?(:fixture_table_names)
14
- self.class.fixture_table_names.each do |table_name|
15
- name = table_name.tr(".", "_")
16
- next unless respond_to?(name)
17
- extras.__send__(:define_method, name) { |*args| delegate.send(name, *args) }
18
- end
10
+ # delegate the fixture accessors back to the test instance
11
+ extras = Module.new { attr_accessor :delegate, :test_result }
12
+ if self.class.respond_to?(:fixture_table_names)
13
+ self.class.fixture_table_names.each do |table_name|
14
+ name = table_name.tr(".", "_")
15
+ next unless respond_to?(name)
16
+ extras.__send__(:define_method, name) { |*args| delegate.send(name, *args) }
19
17
  end
18
+ end
20
19
 
21
- # delegate add_assertion to the test case
22
- extras.__send__(:define_method, :add_assertion) { test_result.add_assertion }
23
- session.extend(extras)
24
- session.delegate = self
25
- session.test_result = @_result
20
+ # delegate add_assertion to the test case
21
+ extras.__send__(:define_method, :add_assertion) { test_result.add_assertion }
22
+ session.extend(extras)
23
+ session.delegate = self
24
+ session.test_result = @_result
26
25
 
27
- yield session if block_given?
28
- session
29
- end
30
-
31
- def without_canvas
32
- in_canvas = @integration_session.canvas
33
- @integration_session.canvas = false
34
- yield
35
- @integration_session.canvas = in_canvas
36
- end
26
+ yield session if block_given?
27
+ session
28
+ end
29
+
30
+ def without_canvas
31
+ in_canvas = @integration_session.canvas
32
+ @integration_session.canvas = false
33
+ yield
34
+ @integration_session.canvas = in_canvas
37
35
  end
38
36
  end
39
37
  end
40
38
  end
41
39
 
42
- World do
43
- w = Facebooker::Rails::Cucumber::World.new
44
- w.reset!
45
- w
46
- end
40
+ World(Facebooker::Rails::Cucumber)
@@ -107,8 +107,9 @@ module Facebooker
107
107
  end
108
108
 
109
109
  def fb_user_action(action, user_message = nil, prompt = "", callback = nil)
110
+ defaulted_callback = callback || "null"
110
111
  update_page do |page|
111
- page.call("FB.Connect.showFeedDialog",action.template_id,action.data,action.target_ids,action.body_general,nil,page.literal("FB.RequireConnect.promptConnect"),callback,prompt,user_message.nil? ? nil : {:value=>user_message})
112
+ page.call("FB.Connect.showFeedDialog",action.template_id,action.data,action.target_ids,action.body_general,nil,page.literal("FB.RequireConnect.promptConnect"),page.literal(defaulted_callback),prompt,user_message.nil? ? nil : {:value=>user_message})
112
113
  end
113
114
  end
114
115
 
@@ -12,7 +12,7 @@ class Facebooker::Rails::IntegrationSession < ActionController::Integration::Ses
12
12
  end
13
13
 
14
14
  def reset!
15
- self.default_request_params = {:fb_sig_in_canvas => '1'}.with_indifferent_access
15
+ self.default_request_params = {:fb_sig_in_canvas => '1', :fb_sig_api_key => Facebooker::Session.api_key}.with_indifferent_access
16
16
  self.canvas = true
17
17
  super
18
18
  end
@@ -562,7 +562,7 @@ module Facebooker
562
562
  end
563
563
 
564
564
  def post(method, params = {}, use_session_key = true, &proc)
565
- if batch_request?
565
+ if batch_request? or Facebooker::Logging.skip_api_logging
566
566
  post_without_logging(method, params, use_session_key, &proc)
567
567
  else
568
568
  Logging.log_fb_api(method, params) do
@@ -2,7 +2,7 @@ module Facebooker #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 43
5
+ TINY = 44
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../../../lib/facebooker/rails/integration_session')
3
+ class Facebooker::Rails::IntegrationSessionTest < Test::Unit::TestCase
4
+ def test_include_api_key_in_default_request_params
5
+ ENV['FACEBOOK_API_KEY'] = 'a key'
6
+ integration_session = Facebooker::Rails::IntegrationSession.new
7
+ integration_session.reset!
8
+ assert_equal 'a key', integration_session.default_request_params[ :fb_sig_api_key ]
9
+ end
10
+ end
@@ -476,6 +476,11 @@ class RailsIntegrationTest < Test::Unit::TestCase
476
476
  get :link_test,facebook_params(:fb_sig_in_canvas=>0,:canvas=>false)
477
477
  assert !@response.body.match(/root/)
478
478
  end
479
+
480
+ def test_default_url_omits_fb_params
481
+ get :index,facebook_params(:fb_sig_friends=>"overwriteme",:get_param=>"yes")
482
+ assert_equal "http://apps.facebook.com/root/require_auth?get_param=yes", @controller.send(:default_after_facebook_login_url)
483
+ end
479
484
 
480
485
  def test_url_for_links_to_canvas_if_canvas_is_not_set
481
486
  get :link_test,facebook_params
@@ -1052,7 +1057,11 @@ class RailsHelperTest < Test::Unit::TestCase
1052
1057
  def test_fb_logout_link
1053
1058
  assert_equal @h.fb_logout_link("Logout","My URL"),"<a href=\"#\" onclick=\"FB.Connect.logoutAndRedirect(&quot;My URL&quot;);; return false;\">Logout</a>"
1054
1059
  end
1055
- def test_fb_user_action
1060
+ def test_fb_user_action_with_literal_callback
1061
+ action = Facebooker::Rails::Publisher::UserAction.new
1062
+ assert_equal @h.fb_user_action(action,"message","prompt","function() {alert('hi')}"),"FB.Connect.showFeedDialog(null, null, null, null, null, FB.RequireConnect.promptConnect, function() {alert('hi')}, \"prompt\", {\"value\": \"message\"});"
1063
+ end
1064
+ def test_fb_user_action_with_nil_callback
1056
1065
  action = Facebooker::Rails::Publisher::UserAction.new
1057
1066
  assert_equal @h.fb_user_action(action,"message","prompt"),"FB.Connect.showFeedDialog(null, null, null, null, null, FB.RequireConnect.promptConnect, null, \"prompt\", {\"value\": \"message\"});"
1058
1067
  end
@@ -204,6 +204,47 @@ class Facebooker::SessionTest < Test::Unit::TestCase
204
204
  @session = Facebooker::Session.create(ENV['FACEBOOK_API_KEY'], ENV['FACEBOOK_SECRET_KEY'])
205
205
  assert_equal 17876842716, @session.register_template_bundle("{*actor*} did something",nil,nil,[{:text=>"text",:href=>"href"}])
206
206
  end
207
+
208
+ def test_can_register_template_bundle_with_short_story
209
+ one_line = "{*actor*} did something"
210
+ short_story = { :title => 'title', :body => 'body' }
211
+
212
+ @session = Facebooker::Session.create(ENV['FACEBOOK_API_KEY'], ENV['FACEBOOK_SECRET_KEY'])
213
+ @session.expects(:post).with(
214
+ 'facebook.feed.registerTemplateBundle',
215
+ {:one_line_story_templates => [one_line].to_json, :short_story_templates => [short_story].to_json},
216
+ false
217
+ )
218
+ @session.register_template_bundle(one_line, short_story)
219
+ end
220
+
221
+ def test_can_register_template_bundle_with_short_story_for_several_templates
222
+ one_line = ["{*actor*} did something", "{*actor*} did something again"]
223
+ short_story = [{ :title => 'title', :body => 'body' }, { :title => 'title2', :body => 'body2' }]
224
+
225
+ @session = Facebooker::Session.create(ENV['FACEBOOK_API_KEY'], ENV['FACEBOOK_SECRET_KEY'])
226
+ @session.expects(:post).with(
227
+ 'facebook.feed.registerTemplateBundle',
228
+ {:one_line_story_templates => one_line.to_json, :short_story_templates => short_story.to_json},
229
+ false
230
+ )
231
+ @session.register_template_bundle(one_line, short_story)
232
+ end
233
+
234
+ def test_can_register_template_bundle_with_full_story_for_several_templates
235
+ one_line = ["{*actor*} did something", "{*actor*} did something again"]
236
+ short_story = [{ :title => 'title', :body => 'body' }, { :title => 'title2', :body => 'body2' }]
237
+ full_story = { :title => 'title', :body => 'body' }
238
+
239
+ @session = Facebooker::Session.create(ENV['FACEBOOK_API_KEY'], ENV['FACEBOOK_SECRET_KEY'])
240
+ @session.expects(:post).with(
241
+ 'facebook.feed.registerTemplateBundle',
242
+ {:one_line_story_templates => one_line.to_json, :short_story_templates => short_story.to_json, :full_story_template => full_story.to_json},
243
+ false
244
+ )
245
+ @session.register_template_bundle(one_line, short_story, full_story)
246
+ end
247
+
207
248
  def test_can_publish_user_action
208
249
  expect_http_posts_with_responses(publish_user_action_return_xml)
209
250
  @session = Facebooker::Session.create(ENV['FACEBOOK_API_KEY'], ENV['FACEBOOK_SECRET_KEY'])
@@ -52,10 +52,15 @@ class Rack::FacebookTest < Test::Unit::TestCase
52
52
  assert_equal 200, response.status
53
53
  end
54
54
 
55
- def test_verifies_with_true_condition
55
+ def test_skips_with_true_condition_without_fb_sig
56
56
  @facebook = Rack::Facebook.new(@app) { true }
57
57
  response = app.post("/", :input => params(:fb_sig_user => 'ignored'))
58
+ assert_equal 200, response.status
59
+ end
60
+
61
+ def test_verifies_with_true_condition_with_fb_sig
62
+ @facebook = Rack::Facebook.new(@app) { true }
63
+ response = app.post("/", :input => params(:fb_sig => 'wrong', :fb_sig_user => 'ignored'))
58
64
  assert_equal 400, response.status
59
65
  end
60
-
61
66
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebooker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.43
4
+ version: 1.0.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Fowler
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2009-07-16 00:00:00 -04:00
16
+ date: 2009-07-23 00:00:00 -04:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
@@ -237,6 +237,7 @@ test_files:
237
237
  - test/facebooker/models/user_test.rb
238
238
  - test/facebooker/rails/facebook_request_fix_2-3_test.rb
239
239
  - test/facebooker/rails/facebook_url_rewriting_test.rb
240
+ - test/facebooker/rails/integration_session_test.rb
240
241
  - test/facebooker/rails/publisher_test.rb
241
242
  - test/facebooker/rails_integration_test.rb
242
243
  - test/facebooker/server_cache_test.rb