diff --git a/lib/onelogin/ruby-saml/idp_metadata_parser.rb b/lib/onelogin/ruby-saml/idp_metadata_parser.rb index 8a2e4ca2..7e463626 100644 --- a/lib/onelogin/ruby-saml/idp_metadata_parser.rb +++ b/lib/onelogin/ruby-saml/idp_metadata_parser.rb @@ -3,6 +3,7 @@ require "net/https" require "rexml/document" require "rexml/xpath" +require "onelogin/ruby-saml/setting_error" # Only supports SAML 2.0 module OneLogin @@ -180,7 +181,7 @@ def parse_to_idp_metadata_array(idp_metadata, options = {}) idpsso_descriptors = self.class.get_idps(@document, options[:entity_id]) if !idpsso_descriptors.any? - raise ArgumentError.new("idp_metadata must contain an IDPSSODescriptor element") + raise SettingError.new("idp_metadata must contain an IDPSSODescriptor element") end idpsso_descriptors.map {|id| IdpMetadata.new(id, id.parent.attributes["entityID"])} diff --git a/test/idp_metadata_parser_test.rb b/test/idp_metadata_parser_test.rb index cb6d1f4d..5f254534 100644 --- a/test/idp_metadata_parser_test.rb +++ b/test/idp_metadata_parser_test.rb @@ -495,7 +495,7 @@ def initialize; end end it "raise due no IDPSSODescriptor element" do - assert_raises(ArgumentError) { @idp_metadata_parser.parse(@idp_metadata) } + assert_raises(OneLogin::RubySaml::SettingError) { @idp_metadata_parser.parse(@idp_metadata) } end end