view test/mocks/open_id_authentication_mock.rb @ 1082:997f6d7738f7 bug_531

In repo controller entry action, show the page for the file even if it's binary (so user still has access to history etc links). This makes it possible to use the entry action as the default when a file is clicked on
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 22 Nov 2012 18:04:17 +0000
parents cbb26bc654de
children 433d4f72a19b
line wrap: on
line source
# Mocks out OpenID
#
# http://www.northpub.com/articles/2007/04/02/testing-openid-support
module OpenIdAuthentication

  EXTENSION_FIELDS = {'email'    => 'user@somedomain.com',
                      'nickname' => 'cool_user',
                      'country'  => 'US',
                      'postcode' => '12345',
                      'fullname' => 'Cool User',
                      'dob'      => '1970-04-01',
                      'language' => 'en',
                      'timezone' => 'America/New_York'}

  protected

    def authenticate_with_open_id(identity_url = params[:openid_url], options = {}) #:doc:
      if User.find_by_identity_url(identity_url) || identity_url.include?('good')
        # Don't process registration fields unless it is requested.
        unless identity_url.include?('blank') || (options[:required].nil? && options[:optional].nil?)
          extension_response_fields = {}

          options[:required].each do |field|
            extension_response_fields[field.to_s] = EXTENSION_FIELDS[field.to_s]
          end unless options[:required].nil?

          options[:optional].each do |field|
            extension_response_fields[field.to_s] = EXTENSION_FIELDS[field.to_s]
          end unless options[:optional].nil?
        end

        yield Result[:successful], identity_url , extension_response_fields
      else
        logger.info "OpenID authentication failed: #{identity_url}"
        yield Result[:failed], identity_url, nil
      end
    end

  private

    def add_simple_registration_fields(open_id_response, fields)
      open_id_response.add_extension_arg('sreg', 'required', [ fields[:required] ].flatten * ',') if fields[:required]
      open_id_response.add_extension_arg('sreg', 'optional', [ fields[:optional] ].flatten * ',') if fields[:optional]
    end
end