test/ruby-saml_test.rb in ruby-saml-0.0.8 vs test/ruby-saml_test.rb in ruby-saml-0.2.1

- old
+ new

@@ -1,7 +1,82 @@ require 'test_helper' class RubySamlTest < Test::Unit::TestCase - should "probably rename this file and start testing for real" do - flunk "hey buddy, you should probably rename this file and start testing for real" + + context "Settings" do + setup do + @settings = Onelogin::Saml::Settings.new + end + should "should provide getters and settings" do + accessors = [ + :assertion_consumer_service_url, :issuer, :sp_name_qualifier, :sp_name_qualifier, + :idp_sso_target_url, :idp_cert_fingerprint, :name_identifier_format + ] + + accessors.each do |accessor| + value = Kernel.rand + @settings.send("#{accessor}=".to_sym, value) + assert_equal value, @settings.send(accessor) + end + end end + + context "Response" do + should "provide setter for a logger" do + response = Onelogin::Saml::Response.new('') + assert response.logger = 'hello' + end + + should "raise an exception when response is initialized with nil" do + assert_raises(ArgumentError) { Onelogin::Saml::Response.new(nil) } + end + + context "#is_valid?" do + should "return false when response is initialized with blank data" do + response = Onelogin::Saml::Response.new('') + assert !response.is_valid? + end + + should "return false if settings have not been set" do + response = Onelogin::Saml::Response.new(response_document) + assert !response.is_valid? + end + + should "return true when the response is initialized with valid data" do + response = Onelogin::Saml::Response.new(response_document) + settings = Onelogin::Saml::Settings.new + settings.idp_cert_fingerprint = 'hello' + response.settings = settings + assert !response.is_valid? + document = stub() + document.stubs(:validate).returns(true) + response.document = document + assert response.is_valid? + end + end + + context "#name_id" do + should "extract the value of the name id element" do + response = Onelogin::Saml::Response.new(response_document) + assert_equal "support@onelogin.com", response.name_id + end + end + + context "#session_expires_at" do + should "extract the value of the SessionNotOnOrAfter attribute" do + response = Onelogin::Saml::Response.new(response_document) + assert response.session_expires_at.is_a?(Time) + end + end + end + + context "Authrequest" do + should "create the SAMLRequest URL parameter" do + settings = Onelogin::Saml::Settings.new + settings.idp_sso_target_url = "http://stuff.com" + auth_url = Onelogin::Saml::Authrequest.new.create(settings) + assert auth_url =~ /^http:\/\/stuff\.com\?SAMLRequest=/ + payload = CGI.unescape(auth_url.split("=").last) + end + end + end