Osem::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # Use letter_opener_web (launchy won't work in headless environments)
  config.action_mailer.delivery_method = :letter_opener_web

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Raise exception on mass assignment protection for Active Record models
  # config.active_record.mass_assignment_sanitizer = :strict

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true

  # Do not eager load code on boot.
  config.eager_load = false

  # Do not log asset requests
  config.assets.quiet = true

  # Provide a default origin for absolute URLs (Pending rails/rails#39566)
  Rails.application.routes.default_url_options[:host] = ENV['OSEM_HOSTNAME'] || 'localhost:3000'
  config.action_controller.default_url_options = Rails.application.routes.default_url_options
  config.action_mailer.default_url_options = Rails.application.routes.default_url_options

  # Set the secret key base if it's not set via other means
  config.secret_key_base ||= 'f4be765bc98e516de82ac01daa8f8aa11c5ca13cb6c911887851ac89457b6c0b056b2361a21b5c08926c9386e0f91eef84fc0b103d522bf00bc0c78ea8ce7c58'

  # Use omniauth mock credentials
  OmniAuth.config.test_mode = true

  OmniAuth.config.mock_auth[:facebook] =
      OmniAuth::AuthHash.new(
                              provider: 'facebook',
                              uid: 'facebook-test-uid-1',
                              info: {
                                name: 'facebook user',
                                email: 'user-facebook@example.com',
                                username: 'user_facebook'
                              },
                              credentials: {
                                token: 'fb_mock_token',
                                secret: 'fb_mock_secret'
                              }
                            )

  OmniAuth.config.mock_auth[:google] =
      OmniAuth::AuthHash.new(
                              provider: 'google',
                              uid: 'google-test-uid-1',
                              info: {
                                name: 'google user',
                                email: 'user-google@example.com',
                                username: 'user_google'
                              },
                              credentials: {
                                token: 'google_mock_token',
                                secret: 'google_mock_secret'
                              }
                            )

  OmniAuth.config.mock_auth[:suse] =
      OmniAuth::AuthHash.new(
                              provider: 'suse',
                              uid: 'suse-test-uid-1',
                              info: {
                                name: 'suse user',
                                email: 'user-suse@example.com',
                                username: 'user_suse'
                              },
                              credentials: {
                                token: 'suse_mock_token',
                                secret: 'suse_mock_secret'
                              }
                            )

  OmniAuth.config.mock_auth[:github] =
      OmniAuth::AuthHash.new(
                              provider: 'github',
                              uid: 'github-test-uid-1',
                              info: {
                                name: 'github user',
                                email: 'user-github@example.com',
                                username: 'user_github'
                              },
                              credentials: {
                                token: 'github_mock_token',
                                secret: 'github_mock_secret'
                              }
                            )

  config.after_initialize do
    Devise.setup do |devise_config|
      # Enable ichain test mode
      devise_config.ichain_test_mode = true
    end
  end

end
