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