Sha256: 93419cbaac00de5afcf6a09ea258caf541e79cee0fc4ebc37a89074a3cb7d14d
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
require 'spec_helper' describe 'Heroku SSO API', :type => :request do let(:timestamp) { Time.now.to_i } let(:nav_data) { 'heroku-nav-data-goes-here' } let(:token) { pre_token = "789:#{MaitreD::Heroku.sso_salt}:#{timestamp.to_s}" Digest::SHA1.hexdigest(pre_token).to_s } it "renders a 403 if the token is incorrect" do post '/heroku/resources/sso', :params => { :resource_id => '789', :resource_token => 'foo', :timestamp => timestamp, 'nav-data' => nav_data } expect(response.status).to eq(403) end it "renders a 403 if the timestamp is older than 5 minutes" do timestamp = 5.minutes.ago.to_i - 1 pre_token = "789:#{MaitreD::Heroku.sso_salt}:#{timestamp.to_s}" token = Digest::SHA1.hexdigest(pre_token).to_s post '/heroku/resources/sso', :params => { :resource_id => '789', :resource_token => token, :timestamp => timestamp, 'nav-data' => nav_data } expect(response.status).to eq(403) end it "sets the heroku nav data cookie" do post '/heroku/resources/sso', :params => { :resource_id => '789', :resource_token => token, :timestamp => timestamp, 'nav-data' => nav_data } expect(cookies['heroku-nav-data']).to eq(nav_data) end it "redirects to the appropriate URL" do post '/heroku/resources/sso', :params => { :resource_id => '789', :resource_token => token, :timestamp => timestamp, 'nav-data' => nav_data } expect(response).to redirect_to('/my/dashboard') end it "should set the provided session variables" do post '/heroku/resources/sso', :params => { :resource_id => '789', :resource_token => token, :timestamp => timestamp, 'nav-data' => nav_data } expect(session[:app_id]).to eq('789') end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
maitre_d-0.7.1 | spec/api/heroku/single_sign_on_spec.rb |
maitre_d-0.7.0 | spec/api/heroku/single_sign_on_spec.rb |