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