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 @@
  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   -# 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 @@
  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   -# 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 @@
  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   -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 @@
  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   -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