require File.dirname(__FILE__) + '/../spec_helper' describe OmniAuth::Strategies::Myfcid do before(:each) do @access_token_mock = mock("AccessToken") @myfc_id = OmniAuth::Strategies::Myfcid.new("my_sample_app", "my_consumer_key", "my_consumer_secret") @myfc_id.instance_variable_set(:@access_token, @access_token_mock) end it "should set consumer options" do @myfc_id.instance_variable_get(:@consumer).options.should == {:request_token_path=>"/sso/initiate", :proxy=>nil, :http_method=>:post, :signature_method=>"PLAINTEXT", :authorize_path=>"/sso/authorize", :oauth_version=>"1.0", :access_token_path=>"/sso/token", :scheme=>:header, :site=>"https://id.myfreecomm.com.br"} end describe ".auth_hash" do it "should return auth_hash using server" do @access_token_mock.should_receive(:token).and_return("token") @access_token_mock.should_receive(:secret).and_return("secret") @access_token_mock.should_receive(:post).with("/sso/fetchuserdata", nil).once.and_return(mock(:body => "{\"nickname\":\"nick\",\"last_name\":\"Tapajos\",\"email\":\"mail\",\"first_name\":\"Marcos\"}")) @myfc_id.auth_hash.should == { "user_info"=>{"name"=>"Marcos Tapajos", "nickname"=>"nick", "last_name"=>"Tapajos", "first_name"=>"Marcos", "email"=>"mail"}, "uid"=>nil, "credentials"=>{"token"=>"token", "secret"=>"secret"}, "extra"=>{"user_hash"=>{"nickname"=>"nick", "last_name"=>"Tapajos", "first_name"=>"Marcos", "email"=>"mail"}, "access_token"=>@access_token_mock}, "provider"=>"myfcid" } end end end