diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 597ec89..5525dda 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -30,17 +30,6 @@ module ApplicationHelper (@page && !@page.language.blank?) ? @page.language : FastGettext.locale end - def load_web2_conf - if File.exists?( RAILS_ROOT + '/config/web2.0.yml') - YAML.load_file( RAILS_ROOT + '/config/web2.0.yml' ) - else - {} - end - end - def web2_conf - @web_conf ||= load_web2_conf - end - # Displays context help. You can pass the content of the help message as the # first parameter or using template code inside a block passed to this # method. *Note*: the block is ignored if content is not @@ -570,12 +559,12 @@ module ApplicationHelper :protocol => 'http://', :only_path => false, :controller => 'avatar.php', - :d => web2_conf['gravatar'] ? web2_conf['gravatar']['default'] : nil + :d => NOOSFERO_CONF['gravatar'] ? NOOSFERO_CONF['gravatar'] : nil }.merge(options) ) end def str_gravatar_url_for(email, options = {}) - default = web2_conf['gravatar'] ? web2_conf['gravatar']['default'] : nil + default = NOOSFERO_CONF['gravatar'] ? NOOSFERO_CONF['gravatar'] : nil url = 'http://www.gravatar.com/avatar.php?gravatar_id=' + Digest::MD5.hexdigest(email) { diff --git a/app/models/google_maps.rb b/app/models/google_maps.rb index 3f7fc3e..5fce0bb 100644 --- a/app/models/google_maps.rb +++ b/app/models/google_maps.rb @@ -6,14 +6,6 @@ class GoogleMaps include ApplicationHelper - def erase_config - @config = nil - end - - def config - @config ||= (web2_conf['googlemaps'] || {}) - end - def enabled?(domain) domain = Domain.find_by_name(domain) domain ? !domain.google_maps_key.nil? : false @@ -25,7 +17,7 @@ class GoogleMaps end def initial_zoom - config['initial_zoom'] || 4 + NOOSFERO_CONF['googlemaps_initial_zoom'] || 4 end def api_url(domain) diff --git a/app/models/mail_conf.rb b/app/models/mail_conf.rb index 9dee5f9..d79b57b 100644 --- a/app/models/mail_conf.rb +++ b/app/models/mail_conf.rb @@ -1,24 +1,16 @@ class MailConf class << self - def config_file - File.join(RAILS_ROOT, 'config', 'mail.yml') - end - - def config - if File.exists?(config_file) - YAML.load_file(config_file) - else - { 'webmail_url' => 'http://webmail.example.com' } - end + def default_webmail_url + 'http://webmail.example.com' end def enabled? - config['enabled'] || false + NOOSFERO_CONF['mail_enabled'] || false end def webmail_url(username, domain) - config['webmail_url'] % [username, domain] + (NOOSFERO_CONF['webmail_url'] || default_webmail_url) % [username, domain] end end diff --git a/app/views/content_viewer/view_page.rhtml b/app/views/content_viewer/view_page.rhtml index 3d19459..2a8bc2d 100644 --- a/app/views/content_viewer/view_page.rhtml +++ b/app/views/content_viewer/view_page.rhtml @@ -101,21 +101,14 @@ <%= display_source_info(@page) %> -<% - # AddThis Button - if block_given? && web2_conf['addthis'] - opts = web2_conf['addthis'] -%> +<% if NOOSFERO_CONF['addthis_enabled'] %>
+ addthis_pub = '<%= escape_javascript( NOOSFERO_CONF['addthis_pub'] ) %>'; + addthis_logo = '<%= escape_javascript( NOOSFERO_CONF['addthis_logo'] ) %>'; + addthis_options = '<%= escape_javascript( NOOSFERO_CONF['addthis_options'] ) %>'; +
<% end %> diff --git a/config/initializers/load_config.rb b/config/initializers/load_config.rb new file mode 100644 index 0000000..1b43709 --- /dev/null +++ b/config/initializers/load_config.rb @@ -0,0 +1 @@ +NOOSFERO_CONF = YAML.load_file("#{RAILS_ROOT}/config/noosfero.yml")[RAILS_ENV] diff --git a/config/mail.yml.dist b/config/mail.yml.dist deleted file mode 100644 index ebc364f..0000000 --- a/config/mail.yml.dist +++ /dev/null @@ -1,2 +0,0 @@ -enabled: true -webmail_url: "http://mail.yourdomain.net/" diff --git a/config/noosfero.yml b/config/noosfero.yml new file mode 100644 index 0000000..9480bc6 --- /dev/null +++ b/config/noosfero.yml @@ -0,0 +1,14 @@ +development: &DEVELOPMENT + mail_enabled: true + webmail_url: "http://localhost.localdomain/" + addthis_enabled: true + addthis_pub: your-user-name + addthis_logo: http://localhost:3000/images/logo-200x50.png + addthis_options: favorites, email, digg, delicious, technorati, slashdot, twitter, more + gravatar: wavatar + googlemaps_initial_zoom: 4 + +test: &TEST + <<: *DEVELOPMENT + +production: diff --git a/config/web2.0.yml.dist b/config/web2.0.yml.dist deleted file mode 100644 index a2764c6..0000000 --- a/config/web2.0.yml.dist +++ /dev/null @@ -1,12 +0,0 @@ -# This file configures all Web 2.0 services used by this noosfero instalation - -# You can add (or remove) any addthis option here. -# Know more: http://www.addthis.com/customization.php -addthis: - pub: your-user-name - logo: http://localhost:3000/images/logo-200x50.png - options: favorites, email, digg, delicious, technorati, slashdot, twitter, more -googlemaps: - key: -gravatar: - default: wavatar diff --git a/gitignore.example b/gitignore.example index 935f690..23d4b2d 100644 --- a/gitignore.example +++ b/gitignore.example @@ -5,7 +5,7 @@ doc/plugins tmp config/database.yml config/session.secret -config/mail.yml +config/noosfero.yml config/ferret_server.yml config/mongrel_cluster.yml index diff --git a/test/test_helper.rb b/test/test_helper.rb index 3660859..29f669a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -250,4 +250,16 @@ class ActionController::IntegrationTest end +def with_constants(constants, &block) + old_constants = Hash.new + constants.each do |constant, val| + old_constants[constant] = Object.const_get(constant) + silence_stderr{ Object.const_set(constant, val) } + end + block.call + old_constants.each do |constant, val| + silence_stderr{ Object.const_set(constant, val) } + end +end + Profile diff --git a/test/unit/application_helper_test.rb b/test/unit/application_helper_test.rb index 2a768f5..2f455be 100644 --- a/test/unit/application_helper_test.rb +++ b/test/unit/application_helper_test.rb @@ -8,17 +8,6 @@ class ApplicationHelperTest < Test::Unit::TestCase self.stubs(:session).returns({}) end - should 'retrieve conf from "web2.0" config file' do - yml = RAILS_ROOT + '/config/web2.0.yml' - conf = { - 'addthis'=>{'pub'=>'mylogin', 'options'=>'favorites, email'}, - 'gravatar'=>{'default'=>'wavatar'} - } - File.expects(:exists?).with(yml).returns(true) - YAML.expects(:load_file).with(yml).returns(conf) - assert_equal conf, web2_conf - end - should 'calculate correctly partial for object' do self.stubs(:params).returns({:controller => 'test'}) @@ -436,12 +425,13 @@ class ApplicationHelperTest < Test::Unit::TestCase end should 'generate a gravatar url' do - stubs(:web2_conf).returns({"gravatar" => {"default" => "wavatar"}}) - url = str_gravatar_url_for( 'rms@gnu.org', :size => 50 ) - assert_match(/^http:\/\/www\.gravatar\.com\/avatar\.php\?/, url) - assert_match(/(\?|&)gravatar_id=ed5214d4b49154ba0dc397a28ee90eb7(&|$)/, url) - assert_match(/(\?|&)d=wavatar(&|$)/, url) - assert_match(/(\?|&)size=50(&|$)/, url) + with_constants :NOOSFERO_CONF => {'gravatar' => 'crazyvatar'} do + url = str_gravatar_url_for( 'rms@gnu.org', :size => 50 ) + assert_match(/^http:\/\/www\.gravatar\.com\/avatar\.php\?/, url) + assert_match(/(\?|&)gravatar_id=ed5214d4b49154ba0dc397a28ee90eb7(&|$)/, url) + assert_match(/(\?|&)d=crazyvatar(&|$)/, url) + assert_match(/(\?|&)size=50(&|$)/, url) + end end should 'use theme passed via param when in development mode' do diff --git a/test/unit/google_maps_test.rb b/test/unit/google_maps_test.rb index fb57401..04ca877 100644 --- a/test/unit/google_maps_test.rb +++ b/test/unit/google_maps_test.rb @@ -4,8 +4,6 @@ class GoogleMapsTest < Test::Unit::TestCase def setup @domain = fast_create(Domain, :name => 'example-domain', :google_maps_key => 'DOMAIN_KEY') - # force loading of config at every test - GoogleMaps.erase_config end attr_reader :domain @@ -19,18 +17,14 @@ class GoogleMapsTest < Test::Unit::TestCase assert !GoogleMaps.enabled?('domain-without-key') end - should 'not crash if config not informed' do - GoogleMaps.stubs(:config).returns({}) - assert_equal({}, GoogleMaps.config) - end - should 'point correctly to google maps' do assert_equal 'http://maps.google.com/maps?file=api&v=2&key=DOMAIN_KEY', GoogleMaps.api_url(domain.name) end should 'provide initial_zoom setting' do - GoogleMaps.stubs(:config).returns({'initial_zoom' => 2}) - assert_equal 2, GoogleMaps.initial_zoom + with_constants :NOOSFERO_CONF => {'googlemaps_initial_zoom' => 2} do + assert_equal 2, GoogleMaps.initial_zoom + end end should 'use 4 as default initial_zoom' do diff --git a/test/unit/load_config_test.rb b/test/unit/load_config_test.rb new file mode 100644 index 0000000..27b6c4f --- /dev/null +++ b/test/unit/load_config_test.rb @@ -0,0 +1,14 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class LoadConfigTest < Test::Unit::TestCase + + should 'ensure YAML file exists' do + assert File.exists?("#{RAILS_ROOT}/config/noosfero.yml") + end + + should 'ensure YAML file was loaded' do + assert NOOSFERO_CONF + assert_kind_of Hash, NOOSFERO_CONF + end + +end diff --git a/test/unit/mail_conf_test.rb b/test/unit/mail_conf_test.rb index ba3c95b..08596cd 100644 --- a/test/unit/mail_conf_test.rb +++ b/test/unit/mail_conf_test.rb @@ -2,36 +2,23 @@ require File.dirname(__FILE__) + '/../test_helper' class MailConfTest < ActiveSupport::TestCase - CONFIG_FILE = '/not/existing.yml' - - should 'use config/mail.yml as config' do - assert_equal RAILS_ROOT + '/config/mail.yml', MailConf.config_file - end - should 'enable if told to' do - MailConf.stubs(:config_file).returns(CONFIG_FILE) - File.expects(:exists?).with(CONFIG_FILE).returns(true) - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => true}) + NOOSFERO_CONF['mail_enabled'] = true assert_equal true, MailConf.enabled? end should 'disable if told to' do - MailConf.stubs(:config_file).returns(CONFIG_FILE) - File.expects(:exists?).with(CONFIG_FILE).returns(true) - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => false }) + NOOSFERO_CONF['mail_enabled'] = false assert_equal false, MailConf.enabled? end - should 'disable if config file not present' do - MailConf.stubs(:config_file).returns(CONFIG_FILE) - File.expects(:exists?).with(CONFIG_FILE).returns(false) + should 'disable by default' do + NOOSFERO_CONF['mail_enabled'] = nil assert_equal false, MailConf.enabled? end should 'provide webmail url preference' do - MailConf.stubs(:config_file).returns(CONFIG_FILE) - File.expects(:exists?).with(CONFIG_FILE).returns(true) - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => false, 'webmail_url' => 'http://some.url/webmail/%s/%s' }) + NOOSFERO_CONF['webmail_url'] = 'http://some.url/webmail/%s/%s' assert_equal 'http://some.url/webmail/login/example.com', MailConf.webmail_url('login', 'example.com') end -- libgit2 0.21.2