Commit bdf53d0ec87af3cf7f912414744d7ba9ef241d78

Authored by AntonioTerceiro
1 parent 5281e384

ActionItem68: renaming files

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@513 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/environment.rb 0 → 100644
@@ -0,0 +1,132 @@ @@ -0,0 +1,132 @@
  1 +# A Environment is like a website to be hosted in the platform. It may
  2 +# contain multiple Profile's and can be identified by several different
  3 +# domains.
  4 +class Environment < ActiveRecord::Base
  5 +
  6 + # returns the available features for a Environment, in the form of a
  7 + # hash, with pairs in the form <tt>'feature_name' => 'Feature name'</tt>.
  8 + def self.available_features
  9 + {
  10 + 'some_feature' => _('Some feature'),
  11 + 'other_feature' => _('Other feature'),
  12 + }
  13 + end
  14 +
  15 + # #################################################
  16 + # Relationships and applied behaviour
  17 + # #################################################
  18 +
  19 + acts_as_design
  20 +
  21 + # One Environment can be reached by many domains
  22 + has_many :domains, :as => :owner
  23 + has_many :profiles
  24 +
  25 + # #################################################
  26 + # Attributes
  27 + # #################################################
  28 +
  29 + # store the Environment settings as YAML-serialized Hash.
  30 + serialize :settings
  31 +
  32 + # returns a Hash containing the Environment configuration
  33 + def settings
  34 + self[:settings] ||= {}
  35 + end
  36 +
  37 + # Enables a feature identified by its name
  38 + def enable(feature)
  39 + self.settings["#{feature}_enabled"] = true
  40 + end
  41 +
  42 + # Disables a feature identified by its name
  43 + def disable(feature)
  44 + self.settings["#{feature}_enabled"] = false
  45 + end
  46 +
  47 + # Tells if a feature, identified by its name, is enabled
  48 + def enabled?(feature)
  49 + self.settings["#{feature}_enabled"] == true
  50 + end
  51 +
  52 + # enables the features identified by <tt>features</tt>, which is expected to
  53 + # be an Enumarable object containing the identifiers of the desired features.
  54 + # Passing <tt>nil</tt> is the same as passing an empty Array.
  55 + def enabled_features=(features)
  56 + features ||= []
  57 + self.class.available_features.keys.each do |feature|
  58 + if features.include? feature
  59 + self.enable(feature)
  60 + else
  61 + self.disable(feature)
  62 + end
  63 + end
  64 + end
  65 +
  66 + # the virtual community's terms of use: every user must accept them before
  67 + # registering.
  68 + def terms_of_use
  69 + self.settings['terms_of_use']
  70 + end
  71 +
  72 + # sets the virtual community's terms of use.
  73 + def terms_of_use=(value)
  74 + self.settings['terms_of_use'] = value
  75 + end
  76 +
  77 + # returns <tt>true</tt> if this Environment has terms of use to be
  78 + # accepted by users before registration.
  79 + def has_terms_of_use?
  80 + ! self.settings['terms_of_use'].nil?
  81 + end
  82 +
  83 + # Returns the template used by +flexible_template+ plugin.
  84 + def flexible_template_template
  85 + self.settings['flexible_template_template']
  86 + end
  87 +
  88 + # Sets the template used by +flexible_template+ plugin.
  89 + def flexible_template_template=(value)
  90 + self.settings['flexible_template_template'] = value
  91 + end
  92 +
  93 + # Returns the theme used by +flexible_template+ plugin
  94 + def flexible_template_theme
  95 + self.settings['flexible_template_theme']
  96 + end
  97 +
  98 + # Sets the theme used by +flexible_template+ plugin
  99 + def flexible_template_theme=(value)
  100 + self.settings['flexible_template_theme'] = value
  101 + end
  102 +
  103 + # Returns the icon theme used by +flexible_template+ plugin
  104 + def flexible_template_icon_theme
  105 + self.settings['flexible_template_icon_theme']
  106 + end
  107 +
  108 + # Sets the icon theme used by +flexible_template+ plugin
  109 + def flexible_template_icon_theme=(value)
  110 + self.settings['flexible_template_icon_theme'] = value
  111 + end
  112 +
  113 + # #################################################
  114 + # Validations
  115 + # #################################################
  116 +
  117 + # <tt>name</tt> is mandatory
  118 + validates_presence_of :name
  119 +
  120 + # only one virtual community can be the default one
  121 + validates_uniqueness_of :is_default, :if => (lambda do |environment| environment.is_default? end), :message => _('Only one Virtual Community can be the default one')
  122 +
  123 + # #################################################
  124 + # Business logic in general
  125 + # #################################################
  126 +
  127 + # the default Environment.
  128 + def self.default
  129 + self.find(:first, :conditions => [ 'is_default = ?', true ] )
  130 + end
  131 +
  132 +end
app/models/virtual_community.rb
@@ -1,132 +0,0 @@ @@ -1,132 +0,0 @@
1 -# A Environment is like a website to be hosted in the platform. It may  
2 -# contain multiple Profile's and can be identified by several different  
3 -# domains.  
4 -class Environment < ActiveRecord::Base  
5 -  
6 - # returns the available features for a Environment, in the form of a  
7 - # hash, with pairs in the form <tt>'feature_name' => 'Feature name'</tt>.  
8 - def self.available_features  
9 - {  
10 - 'some_feature' => _('Some feature'),  
11 - 'other_feature' => _('Other feature'),  
12 - }  
13 - end  
14 -  
15 - # #################################################  
16 - # Relationships and applied behaviour  
17 - # #################################################  
18 -  
19 - acts_as_design  
20 -  
21 - # One Environment can be reached by many domains  
22 - has_many :domains, :as => :owner  
23 - has_many :profiles  
24 -  
25 - # #################################################  
26 - # Attributes  
27 - # #################################################  
28 -  
29 - # store the Environment settings as YAML-serialized Hash.  
30 - serialize :settings  
31 -  
32 - # returns a Hash containing the Environment configuration  
33 - def settings  
34 - self[:settings] ||= {}  
35 - end  
36 -  
37 - # Enables a feature identified by its name  
38 - def enable(feature)  
39 - self.settings["#{feature}_enabled"] = true  
40 - end  
41 -  
42 - # Disables a feature identified by its name  
43 - def disable(feature)  
44 - self.settings["#{feature}_enabled"] = false  
45 - end  
46 -  
47 - # Tells if a feature, identified by its name, is enabled  
48 - def enabled?(feature)  
49 - self.settings["#{feature}_enabled"] == true  
50 - end  
51 -  
52 - # enables the features identified by <tt>features</tt>, which is expected to  
53 - # be an Enumarable object containing the identifiers of the desired features.  
54 - # Passing <tt>nil</tt> is the same as passing an empty Array.  
55 - def enabled_features=(features)  
56 - features ||= []  
57 - self.class.available_features.keys.each do |feature|  
58 - if features.include? feature  
59 - self.enable(feature)  
60 - else  
61 - self.disable(feature)  
62 - end  
63 - end  
64 - end  
65 -  
66 - # the virtual community's terms of use: every user must accept them before  
67 - # registering.  
68 - def terms_of_use  
69 - self.settings['terms_of_use']  
70 - end  
71 -  
72 - # sets the virtual community's terms of use.  
73 - def terms_of_use=(value)  
74 - self.settings['terms_of_use'] = value  
75 - end  
76 -  
77 - # returns <tt>true</tt> if this Environment has terms of use to be  
78 - # accepted by users before registration.  
79 - def has_terms_of_use?  
80 - ! self.settings['terms_of_use'].nil?  
81 - end  
82 -  
83 - # Returns the template used by +flexible_template+ plugin.  
84 - def flexible_template_template  
85 - self.settings['flexible_template_template']  
86 - end  
87 -  
88 - # Sets the template used by +flexible_template+ plugin.  
89 - def flexible_template_template=(value)  
90 - self.settings['flexible_template_template'] = value  
91 - end  
92 -  
93 - # Returns the theme used by +flexible_template+ plugin  
94 - def flexible_template_theme  
95 - self.settings['flexible_template_theme']  
96 - end  
97 -  
98 - # Sets the theme used by +flexible_template+ plugin  
99 - def flexible_template_theme=(value)  
100 - self.settings['flexible_template_theme'] = value  
101 - end  
102 -  
103 - # Returns the icon theme used by +flexible_template+ plugin  
104 - def flexible_template_icon_theme  
105 - self.settings['flexible_template_icon_theme']  
106 - end  
107 -  
108 - # Sets the icon theme used by +flexible_template+ plugin  
109 - def flexible_template_icon_theme=(value)  
110 - self.settings['flexible_template_icon_theme'] = value  
111 - end  
112 -  
113 - # #################################################  
114 - # Validations  
115 - # #################################################  
116 -  
117 - # <tt>name</tt> is mandatory  
118 - validates_presence_of :name  
119 -  
120 - # only one virtual community can be the default one  
121 - validates_uniqueness_of :is_default, :if => (lambda do |environment| environment.is_default? end), :message => _('Only one Virtual Community can be the default one')  
122 -  
123 - # #################################################  
124 - # Business logic in general  
125 - # #################################################  
126 -  
127 - # the default Environment.  
128 - def self.default  
129 - self.find(:first, :conditions => [ 'is_default = ?', true ] )  
130 - end  
131 -  
132 -end  
test/fixtures/environments.yml 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
  2 +colivre_net:
  3 + id: 1
  4 + name: 'Colivre.net'
  5 + is_default: true
  6 +anhetegua_net:
  7 + id: 2
  8 + name: 'Anheteguá'
  9 + is_default: false
test/fixtures/virtual_communities.yml
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html  
2 -colivre_net:  
3 - id: 1  
4 - name: 'Colivre.net'  
5 - is_default: true  
6 -anhetegua_net:  
7 - id: 2  
8 - name: 'Anheteguá'  
9 - is_default: false  
test/mocks/test/environment.rb 0 → 100644
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
  1 +require File.expand_path(File.dirname(__FILE__) + "/../../../app/models/environment")
  2 +
  3 +class Environment < ActiveRecord::Base
  4 + def self.available_features
  5 + {
  6 + 'feature1' => 'Enable Feature 1',
  7 + 'feature2' => 'Enable Feature 2',
  8 + 'feature3' => 'Enable Feature 3',
  9 + }
  10 + end
  11 +end
test/mocks/test/virtual_community.rb
@@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
1 -require File.expand_path(File.dirname(__FILE__) + "/../../../app/models/environment")  
2 -  
3 -class Environment < ActiveRecord::Base  
4 - def self.available_features  
5 - {  
6 - 'feature1' => 'Enable Feature 1',  
7 - 'feature2' => 'Enable Feature 2',  
8 - 'feature3' => 'Enable Feature 3',  
9 - }  
10 - end  
11 -end  
test/unit/environment_test.rb 0 → 100644
@@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +class EnvironmentTest < Test::Unit::TestCase
  4 + fixtures :virtual_communities
  5 +
  6 + def test_exists_default_and_it_is_unique
  7 + Environment.delete_all
  8 + vc = Environment.new(:name => 'Test Community')
  9 + vc.is_default = true
  10 + assert vc.save
  11 +
  12 + vc2 = Environment.new(:name => 'Another Test Community')
  13 + vc2.is_default = true
  14 + assert !vc2.valid?
  15 + assert vc2.errors.invalid?(:is_default)
  16 +
  17 + assert_equal vc, Environment.default
  18 + end
  19 +
  20 + def test_acts_as_configurable
  21 + vc = Environment.new(:name => 'Testing Environment')
  22 + assert_kind_of Hash, vc.settings
  23 + vc.settings[:some_setting] = 1
  24 + assert vc.save
  25 + assert_equal 1, vc.settings[:some_setting]
  26 + end
  27 +
  28 + def test_available_features
  29 + assert_kind_of Hash, Environment.available_features
  30 + end
  31 +
  32 + def test_mock
  33 + assert_equal ['feature1', 'feature2', 'feature3'], Environment.available_features.keys.sort
  34 + end
  35 +
  36 + def test_features
  37 + v = virtual_communities(:colivre_net)
  38 + v.enable('feature1')
  39 + assert v.enabled?('feature1')
  40 + v.disable('feature1')
  41 + assert !v.enabled?('feature1')
  42 + end
  43 +
  44 + def test_enabled_features
  45 + v = virtual_communities(:colivre_net)
  46 + v.enabled_features = [ 'feature1', 'feature2' ]
  47 + assert v.enabled?('feature1') && v.enabled?('feature2') && !v.enabled?('feature3')
  48 + end
  49 +
  50 + def test_enabled_features_no_features_enabled
  51 + v = virtual_communities(:colivre_net)
  52 + v.enabled_features = nil
  53 + assert !v.enabled?('feature1') && !v.enabled?('feature2') && !v.enabled?('feature3')
  54 + end
  55 +
  56 + def test_name_is_mandatory
  57 + v = Environment.new
  58 + v.valid?
  59 + assert v.errors.invalid?(:name)
  60 + v.name = 'blablabla'
  61 + v.valid?
  62 + assert !v.errors.invalid?(:name)
  63 + end
  64 +
  65 + def test_terms_of_use
  66 + v = Environment.new(:name => 'My test virtual community')
  67 + assert_nil v.terms_of_use
  68 + v.terms_of_use = 'To be part of this virtual community, you must accept the following terms: ...'
  69 + assert v.save
  70 + id = v.id
  71 + assert_equal 'To be part of this virtual community, you must accept the following terms: ...', Environment.find(id).terms_of_use
  72 + end
  73 +
  74 + def test_has_terms_of_use
  75 + v = Environment.new
  76 + assert !v.has_terms_of_use?
  77 + v.terms_of_use = 'some terms of use'
  78 + assert v.has_terms_of_use?
  79 + end
  80 +
  81 + def test_should_profive_flexible_template_stuff
  82 + v = Environment.new
  83 +
  84 + # template
  85 + assert_nil v.flexible_template_template
  86 + v.flexible_template_template = 'bli'
  87 + assert_equal 'bli', v.flexible_template_template
  88 +
  89 + # theme
  90 + assert_nil v.flexible_template_theme
  91 + v.flexible_template_theme = 'bli'
  92 + assert_equal 'bli', v.flexible_template_theme
  93 +
  94 + # icon theme
  95 + assert_nil v.flexible_template_icon_theme
  96 + v.flexible_template_icon_theme = 'bli'
  97 + assert_equal 'bli', v.flexible_template_icon_theme
  98 + end
  99 +
  100 +end
test/unit/virtual_community_test.rb
@@ -1,100 +0,0 @@ @@ -1,100 +0,0 @@
1 -require File.dirname(__FILE__) + '/../test_helper'  
2 -  
3 -class EnvironmentTest < Test::Unit::TestCase  
4 - fixtures :virtual_communities  
5 -  
6 - def test_exists_default_and_it_is_unique  
7 - Environment.delete_all  
8 - vc = Environment.new(:name => 'Test Community')  
9 - vc.is_default = true  
10 - assert vc.save  
11 -  
12 - vc2 = Environment.new(:name => 'Another Test Community')  
13 - vc2.is_default = true  
14 - assert !vc2.valid?  
15 - assert vc2.errors.invalid?(:is_default)  
16 -  
17 - assert_equal vc, Environment.default  
18 - end  
19 -  
20 - def test_acts_as_configurable  
21 - vc = Environment.new(:name => 'Testing Environment')  
22 - assert_kind_of Hash, vc.settings  
23 - vc.settings[:some_setting] = 1  
24 - assert vc.save  
25 - assert_equal 1, vc.settings[:some_setting]  
26 - end  
27 -  
28 - def test_available_features  
29 - assert_kind_of Hash, Environment.available_features  
30 - end  
31 -  
32 - def test_mock  
33 - assert_equal ['feature1', 'feature2', 'feature3'], Environment.available_features.keys.sort  
34 - end  
35 -  
36 - def test_features  
37 - v = virtual_communities(:colivre_net)  
38 - v.enable('feature1')  
39 - assert v.enabled?('feature1')  
40 - v.disable('feature1')  
41 - assert !v.enabled?('feature1')  
42 - end  
43 -  
44 - def test_enabled_features  
45 - v = virtual_communities(:colivre_net)  
46 - v.enabled_features = [ 'feature1', 'feature2' ]  
47 - assert v.enabled?('feature1') && v.enabled?('feature2') && !v.enabled?('feature3')  
48 - end  
49 -  
50 - def test_enabled_features_no_features_enabled  
51 - v = virtual_communities(:colivre_net)  
52 - v.enabled_features = nil  
53 - assert !v.enabled?('feature1') && !v.enabled?('feature2') && !v.enabled?('feature3')  
54 - end  
55 -  
56 - def test_name_is_mandatory  
57 - v = Environment.new  
58 - v.valid?  
59 - assert v.errors.invalid?(:name)  
60 - v.name = 'blablabla'  
61 - v.valid?  
62 - assert !v.errors.invalid?(:name)  
63 - end  
64 -  
65 - def test_terms_of_use  
66 - v = Environment.new(:name => 'My test virtual community')  
67 - assert_nil v.terms_of_use  
68 - v.terms_of_use = 'To be part of this virtual community, you must accept the following terms: ...'  
69 - assert v.save  
70 - id = v.id  
71 - assert_equal 'To be part of this virtual community, you must accept the following terms: ...', Environment.find(id).terms_of_use  
72 - end  
73 -  
74 - def test_has_terms_of_use  
75 - v = Environment.new  
76 - assert !v.has_terms_of_use?  
77 - v.terms_of_use = 'some terms of use'  
78 - assert v.has_terms_of_use?  
79 - end  
80 -  
81 - def test_should_profive_flexible_template_stuff  
82 - v = Environment.new  
83 -  
84 - # template  
85 - assert_nil v.flexible_template_template  
86 - v.flexible_template_template = 'bli'  
87 - assert_equal 'bli', v.flexible_template_template  
88 -  
89 - # theme  
90 - assert_nil v.flexible_template_theme  
91 - v.flexible_template_theme = 'bli'  
92 - assert_equal 'bli', v.flexible_template_theme  
93 -  
94 - # icon theme  
95 - assert_nil v.flexible_template_icon_theme  
96 - v.flexible_template_icon_theme = 'bli'  
97 - assert_equal 'bli', v.flexible_template_icon_theme  
98 - end  
99 -  
100 -end