require File.dirname(__FILE__) + '/test_helper.rb' class FacebookAdminTest < Test::Unit::TestCase def setup @session = Facebooker::Session.create('apikey', 'secretkey') Facebooker.use_curl=false end def test_can_ask_facebook_to_set_app_properties expect_http_posts_with_responses(example_set_properties_xml) properties = { :application_name => "Video Jukebox", :dev_mode => 0 } assert(@session.admin.set_app_properties(properties)) end def test_set_app_properties_json_conversion properties = { :application_name => "Video Jukebox", :dev_mode => 0 } flexmock(@session).should_receive(:post).with('facebook.admin.setAppProperties', :properties => properties.to_json).and_return('1').once assert(@session.admin.set_app_properties(properties)) end def test_can_ask_facebook_to_get_app_properties expect_http_posts_with_responses(example_get_properties_xml) properties = [ :application_name, :dev_mode ] assert(@session.admin.get_app_properties(properties)) end def test_can_get_properties mock_http = establish_session mock_http.should_receive(:post_form).and_return(example_get_properties_xml).once.ordered(:posts) p = @session.admin.get_app_properties(:application_name, :dev_mode, :canvas_name) assert_equal 'Video Jukebox', p.application_name assert_equal 0, p.dev_mode assert_equal 'my_canvas', p.canvas_name end def test_can_get_allocation mock_http = establish_session mock_http.should_receive(:post_form).and_return(example_get_allocation_xml).once.ordered(:posts) alloc = @session.admin.get_allocation(:notifications_per_day) assert_equal 40, alloc end private def example_set_properties_xml <<-XML 1 XML end def example_get_properties_xml <<-XML {"application_name":"Video Jukebox","callback_url":"http:\/\/67.207.144.245\/","dev_mode":0,"canvas_name":"my_canvas"} XML end def example_get_allocation_xml <<-XML 40 XML end end