muck-engine 0.2.13 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/muck_engine/tasks.rb +7 -0
- data/lib/muck_test_helper.rb +43 -0
- data/lib/test/muck_factories.rb +208 -0
- data/lib/test/muck_test_definitions.rb +2 -0
- data/lib/test/muck_test_methods.rb +50 -0
- data/{test/rails_root → lib}/test/shoulda_macros/controller.rb +7 -1
- data/{test/rails_root → lib}/test/shoulda_macros/forms.rb +6 -6
- data/{test/rails_root → lib}/test/shoulda_macros/models.rb +8 -7
- data/{test/rails_root → lib}/test/shoulda_macros/pagination.rb +8 -9
- data/{test/rails_root → lib}/test/shoulda_macros/plugins.rb +6 -6
- data/muck-engine.gemspec +23 -18
- data/test/rails_root/config/environment.rb +1 -1
- data/test/rails_root/config/environments/test.rb +0 -9
- data/test/rails_root/test/test_helper.rb +5 -14
- metadata +14 -17
- data/test/rails_root/Capfile +0 -3
- data/test/rails_root/test/factories.rb +0 -56
data/Rakefile
CHANGED
@@ -49,10 +49,10 @@ begin
|
|
49
49
|
Jeweler::Tasks.new do |gemspec|
|
50
50
|
gemspec.name = "muck-engine"
|
51
51
|
gemspec.summary = "The base engine for the muck system."
|
52
|
-
gemspec.email = "
|
53
|
-
gemspec.homepage = "http://github.com/
|
52
|
+
gemspec.email = "justin@tatemae.com"
|
53
|
+
gemspec.homepage = "http://github.com/tatemae/muck_engine"
|
54
54
|
gemspec.description = "The base engine for the muck system. Contains common tables, custom for, css and javascript."
|
55
|
-
gemspec.authors = ["Justin Ball"]
|
55
|
+
gemspec.authors = ["Justin Ball", "Joel Duffin"]
|
56
56
|
gemspec.rubyforge_project = 'muck-engine'
|
57
57
|
gemspec.add_dependency "validation_reflection"
|
58
58
|
gemspec.add_dependency "will_paginate"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.15
|
data/lib/muck_engine/tasks.rb
CHANGED
@@ -263,6 +263,12 @@ class MuckEngine
|
|
263
263
|
end
|
264
264
|
end
|
265
265
|
|
266
|
+
desc 'Translate app into all languages supported by Google'
|
267
|
+
task :translate_app => :environment do
|
268
|
+
puts 'translating app'
|
269
|
+
system("babelphish -o -y #{RAILS_ROOT}/config/locales/en.yml")
|
270
|
+
end
|
271
|
+
|
266
272
|
desc "write specs into muck gems"
|
267
273
|
task :specs do
|
268
274
|
muck_write_specs
|
@@ -302,6 +308,7 @@ class MuckEngine
|
|
302
308
|
task :sync do
|
303
309
|
puts 'syncronizing engines and gems'
|
304
310
|
muck_gems.each do |gem_name|
|
311
|
+
puts "syncronizing assets and code from #{gem_name}"
|
305
312
|
if gem_name.include?('muck')
|
306
313
|
task = "muck:#{gem_name.gsub('muck-', '')}:sync"
|
307
314
|
else
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test_help'
|
2
|
+
gem 'factory_girl'
|
3
|
+
gem 'mocha'
|
4
|
+
gem 'shoulda'
|
5
|
+
# gem 'rspec', :lib => 'spec'
|
6
|
+
# gem 'rspec-rails', :lib => 'spec/rails'
|
7
|
+
gem 'treetop'
|
8
|
+
gem 'term-ansicolor'
|
9
|
+
gem 'cucumber', :version => '>=0.1.13', :lib => 'cucumber'
|
10
|
+
gem 'polyglot', :version => '>=0.2.4'
|
11
|
+
gem "rcov", :version => '>=0.8.1.2.0'
|
12
|
+
gem "webrat", :version => '>=0.4.4'
|
13
|
+
|
14
|
+
# only required if you want to use selenium for testing
|
15
|
+
#gem 'selenium-client', :lib => 'selenium/client'
|
16
|
+
#gem 'bmabey-database_cleaner', :lib => 'database_cleaner', :source => 'http://gems.github.com'
|
17
|
+
|
18
|
+
require 'shoulda'
|
19
|
+
require 'factory_girl'
|
20
|
+
require 'mocha'
|
21
|
+
require 'ruby-debug'
|
22
|
+
|
23
|
+
require 'redgreen' rescue LoadError
|
24
|
+
require File.join(File.dirname(__FILE__), 'test', 'muck_factories')
|
25
|
+
require File.join(File.dirname(__FILE__), 'test', 'muck_test_methods')
|
26
|
+
require File.join(File.dirname(__FILE__), 'test', 'muck_test_definitions')
|
27
|
+
require File.join(File.dirname(__FILE__), 'test', 'shoulda_macros', 'controller')
|
28
|
+
require File.join(File.dirname(__FILE__), 'test', 'shoulda_macros', 'forms')
|
29
|
+
require File.join(File.dirname(__FILE__), 'test', 'shoulda_macros', 'models')
|
30
|
+
require File.join(File.dirname(__FILE__), 'test', 'shoulda_macros', 'pagination')
|
31
|
+
require File.join(File.dirname(__FILE__), 'test', 'shoulda_macros', 'plugins')
|
32
|
+
|
33
|
+
begin
|
34
|
+
# turn off solr for tests
|
35
|
+
class ActsAsSolr::Post
|
36
|
+
def self.execute(request)
|
37
|
+
true
|
38
|
+
end
|
39
|
+
end
|
40
|
+
rescue NameError => ex
|
41
|
+
puts "Solr not loaded. Skipping ActsAsSolr mock"
|
42
|
+
# solr isn't loaded. Just throw out the error
|
43
|
+
end
|
@@ -0,0 +1,208 @@
|
|
1
|
+
# This file defines factories for all muck related models. You must have the
|
2
|
+
# muck gem installed and the related migrations run for all of these to work.
|
3
|
+
Factory.sequence :email do |n|
|
4
|
+
"somebody#{n}@example.com"
|
5
|
+
end
|
6
|
+
|
7
|
+
Factory.sequence :login do |n|
|
8
|
+
"inquire#{n}"
|
9
|
+
end
|
10
|
+
|
11
|
+
Factory.sequence :name do |n|
|
12
|
+
"a_name#{n}"
|
13
|
+
end
|
14
|
+
|
15
|
+
Factory.sequence :title do |n|
|
16
|
+
"a_title#{n}"
|
17
|
+
end
|
18
|
+
|
19
|
+
Factory.sequence :abbr do |n|
|
20
|
+
"abbr#{n}"
|
21
|
+
end
|
22
|
+
|
23
|
+
Factory.sequence :uri do |n|
|
24
|
+
"n#{n}.example.com"
|
25
|
+
end
|
26
|
+
|
27
|
+
Factory.sequence :description do |n|
|
28
|
+
"This is the description: #{n}"
|
29
|
+
end
|
30
|
+
|
31
|
+
Factory.sequence :locale do |n|
|
32
|
+
"a#{n}"
|
33
|
+
end
|
34
|
+
|
35
|
+
Factory.define :state do |f|
|
36
|
+
f.name { Factory.next(:name) }
|
37
|
+
f.abbreviation { Factory.next(:abbr) }
|
38
|
+
f.country {|a| a.association(:country) }
|
39
|
+
end
|
40
|
+
|
41
|
+
Factory.define :country do |f|
|
42
|
+
f.name { Factory.next(:name) }
|
43
|
+
f.abbreviation { Factory.next(:abbr) }
|
44
|
+
end
|
45
|
+
|
46
|
+
Factory.define :language do |f|
|
47
|
+
f.name { Factory.next(:name) }
|
48
|
+
f.english_name { Factory.next(:name) }
|
49
|
+
f.locale { Factory.next(:locale) }
|
50
|
+
f.supported true
|
51
|
+
f.muck_raker_supported true
|
52
|
+
end
|
53
|
+
|
54
|
+
Factory.define :user do |f|
|
55
|
+
f.login { Factory.next(:login) }
|
56
|
+
f.email { Factory.next(:email) }
|
57
|
+
f.password 'inquire_pass'
|
58
|
+
f.password_confirmation 'inquire_pass'
|
59
|
+
f.first_name 'test'
|
60
|
+
f.last_name 'guy'
|
61
|
+
f.terms_of_service true
|
62
|
+
f.activated_at DateTime.now
|
63
|
+
end
|
64
|
+
|
65
|
+
Factory.define :content_page do |f|
|
66
|
+
f.creator {|a| a.association(:user)}
|
67
|
+
f.title { Factory.next(:name) }
|
68
|
+
f.body_raw { Factory.next(:description) }
|
69
|
+
end
|
70
|
+
|
71
|
+
Factory.define :permission do |f|
|
72
|
+
f.role {|a| a.association(:role)}
|
73
|
+
f.user {|a| a.association(:user)}
|
74
|
+
end
|
75
|
+
|
76
|
+
Factory.define :role do |f|
|
77
|
+
f.rolename 'administrator'
|
78
|
+
end
|
79
|
+
|
80
|
+
Factory.define :activity do |f|
|
81
|
+
f.item {|a| a.association(:user)}
|
82
|
+
f.template ''
|
83
|
+
f.source {|a| a.association(:user)}
|
84
|
+
f.content ''
|
85
|
+
f.title ''
|
86
|
+
f.is_status_update false
|
87
|
+
f.is_public true
|
88
|
+
f.created_at DateTime.now
|
89
|
+
end
|
90
|
+
|
91
|
+
Factory.define :comment do |f|
|
92
|
+
f.body { Factory.next(:description) }
|
93
|
+
f.user {|a| a.association(:user)}
|
94
|
+
f.commentable {|a| a.association(:user)}
|
95
|
+
end
|
96
|
+
|
97
|
+
Factory.define :share do |f|
|
98
|
+
f.uri { Factory.next(:uri) }
|
99
|
+
f.title { Factory.next(:title) }
|
100
|
+
f.shared_by {|a| a.association(:user)}
|
101
|
+
end
|
102
|
+
|
103
|
+
Factory.define :blog do |f|
|
104
|
+
f.title { Factory.next(:title) }
|
105
|
+
f.blogable {|a| a.association(:user)}
|
106
|
+
end
|
107
|
+
|
108
|
+
Factory.define :domain_theme do |f|
|
109
|
+
f.name { Factory.next(:name) }
|
110
|
+
f.uri { Factory.next(:uri) }
|
111
|
+
end
|
112
|
+
|
113
|
+
Factory.define :theme do |f|
|
114
|
+
f.name { Factory.next(:name) }
|
115
|
+
end
|
116
|
+
|
117
|
+
Factory.define :feed do |f|
|
118
|
+
f.contributor { |a| a.association(:user) }
|
119
|
+
f.uri { Factory.next(:uri) }
|
120
|
+
f.display_uri { Factory.next(:uri) }
|
121
|
+
f.title { Factory.next(:title) }
|
122
|
+
f.short_title { Factory.next(:title) }
|
123
|
+
f.description { Factory.next(:description) }
|
124
|
+
f.top_tags { Factory.next(:name) }
|
125
|
+
f.priority 1
|
126
|
+
f.status 1
|
127
|
+
f.last_requested_at DateTime.now
|
128
|
+
f.last_harvested_at DateTime.now
|
129
|
+
f.harvest_interval 86400
|
130
|
+
f.failed_requests 0
|
131
|
+
f.harvested_from_display_uri { Factory.next(:uri) }
|
132
|
+
f.harvested_from_title { Factory.next(:title) }
|
133
|
+
f.harvested_from_short_title { Factory.next(:title) }
|
134
|
+
f.entries_count 0
|
135
|
+
f.default_language { |a| a.association(:language) }
|
136
|
+
f.default_grain_size 'unknown'
|
137
|
+
end
|
138
|
+
|
139
|
+
Factory.define :entry do |f|
|
140
|
+
f.feed { |a| a.association(:feed) }
|
141
|
+
f.permalink { Factory.next(:uri) }
|
142
|
+
f.author { Factory.next(:name) }
|
143
|
+
f.title { Factory.next(:title) }
|
144
|
+
f.description { Factory.next(:description) }
|
145
|
+
f.content { Factory.next(:description) }
|
146
|
+
f.unique_content { Factory.next(:description) }
|
147
|
+
f.published_at DateTime.now
|
148
|
+
f.entry_updated_at DateTime.now
|
149
|
+
f.harvested_at DateTime.now
|
150
|
+
f.language { |a| a.association(:language) }
|
151
|
+
f.direct_link { Factory.next(:uri) }
|
152
|
+
f.grain_size 'unknown'
|
153
|
+
end
|
154
|
+
|
155
|
+
Factory.define :aggregation do |f|
|
156
|
+
f.title { Factory.next(:name) }
|
157
|
+
f.terms { Factory.next(:name) }
|
158
|
+
f.description { Factory.next(:description) }
|
159
|
+
f.ownable {|a| a.association(:user)}
|
160
|
+
end
|
161
|
+
|
162
|
+
Factory.define :aggregation_feed do |f|
|
163
|
+
f.feed {|a| a.association(:feed)}
|
164
|
+
f.aggregation {|a| a.association(:aggregation)}
|
165
|
+
end
|
166
|
+
|
167
|
+
Factory.define :oai_endpoint do |f|
|
168
|
+
f.contributor { |a| a.association(:user) }
|
169
|
+
f.uri { Factory.next(:uri) }
|
170
|
+
f.display_uri { Factory.next(:uri) }
|
171
|
+
f.title { Factory.next(:title) }
|
172
|
+
f.short_title { Factory.next(:title) }
|
173
|
+
f.status 1
|
174
|
+
end
|
175
|
+
|
176
|
+
Factory.define :service do |f|
|
177
|
+
f.uri { Factory.next(:uri) }
|
178
|
+
f.name { Factory.next(:name) }
|
179
|
+
f.service_category { |a| a.association(:service_category) }
|
180
|
+
end
|
181
|
+
|
182
|
+
Factory.define :service_category do |f|
|
183
|
+
f.name { Factory.next(:name) }
|
184
|
+
end
|
185
|
+
|
186
|
+
Factory.define :content do |f|
|
187
|
+
f.creator { |a| a.association(:user) }
|
188
|
+
f.title { Factory.next(:title) }
|
189
|
+
f.body_raw { Factory.next(:description) }
|
190
|
+
f.is_public true
|
191
|
+
f.locale 'en'
|
192
|
+
end
|
193
|
+
|
194
|
+
Factory.define :content_translation do |f|
|
195
|
+
f.content { |a| a.association(:content) }
|
196
|
+
f.title { Factory.next(:title) }
|
197
|
+
f.body { Factory.next(:description) }
|
198
|
+
f.locale 'en'
|
199
|
+
end
|
200
|
+
|
201
|
+
Factory.define :content_permission do |f|
|
202
|
+
f.content { |a| a.association(:content) }
|
203
|
+
f.user {|a| a.association(:user)}
|
204
|
+
end
|
205
|
+
|
206
|
+
Factory.define :invite do |f|
|
207
|
+
f.email { Factory.next(:email) }
|
208
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module MuckTestMethods
|
2
|
+
|
3
|
+
def ensure_flash(val)
|
4
|
+
assert_contains flash.values, val, ", Flash: #{flash.inspect}"
|
5
|
+
end
|
6
|
+
|
7
|
+
def login_as(user)
|
8
|
+
success = UserSession.create(user)
|
9
|
+
if !success
|
10
|
+
errors = user.errors.full_messages.to_sentence
|
11
|
+
message = 'User has not been activated' if !user.active?
|
12
|
+
raise "could not login as #{user.to_param}. Please make sure the user is valid. #{message} #{errors}"
|
13
|
+
end
|
14
|
+
UserSession.find
|
15
|
+
end
|
16
|
+
|
17
|
+
def assure_logout
|
18
|
+
user_session = UserSession.find
|
19
|
+
user_session.destroy if user_session
|
20
|
+
end
|
21
|
+
|
22
|
+
def ensure_flash(val)
|
23
|
+
assert_contains flash.values, val, ", Flash: #{flash.inspect}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def ensure_flash_contains(val)
|
27
|
+
flash.values.each do |flv|
|
28
|
+
return true if flv.include?(val)
|
29
|
+
end
|
30
|
+
false
|
31
|
+
end
|
32
|
+
|
33
|
+
# Add more helper methods to be used for testing xml
|
34
|
+
def assert_xml_tag(xml, conditions)
|
35
|
+
doc = HTML::Document.new(xml)
|
36
|
+
assert doc.find(conditions),
|
37
|
+
"expected tag, but no tag found matching #{conditions.inspect} in:\n#{xml.inspect}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def assert_no_xml_tag(xml, conditions)
|
41
|
+
doc = HTML::Document.new(xml)
|
42
|
+
assert !doc.find(conditions),
|
43
|
+
"expected no tag, but found tag matching #{conditions.inspect} in:\n#{xml.inspect}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def make_parent_params(parent)
|
47
|
+
{ :parent_id => parent.id, :parent_type => parent.class.to_s }
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -5,7 +5,11 @@ module MuckControllerMacros
|
|
5
5
|
login_url = args.delete :login_url
|
6
6
|
args.each do |action, verb|
|
7
7
|
should "Require login for '#{action}' action" do
|
8
|
-
|
8
|
+
if [:put, :delete].include?(verb) # put and delete require an id even if it is a bogus one
|
9
|
+
send(verb, action, :id => 1)
|
10
|
+
else
|
11
|
+
send(verb, action)
|
12
|
+
end
|
9
13
|
assert_redirected_to(login_url)
|
10
14
|
end
|
11
15
|
end
|
@@ -56,4 +60,6 @@ module MuckControllerMacros
|
|
56
60
|
|
57
61
|
end
|
58
62
|
|
63
|
+
ActiveSupport::TestCase.extend(MuckControllerMacros)
|
64
|
+
Test::Unit::TestCase.extend(MuckControllerMacros)
|
59
65
|
ActionController::TestCase.extend(MuckControllerMacros)
|
@@ -1,5 +1,5 @@
|
|
1
|
-
module
|
2
|
-
def
|
1
|
+
module MuckFormMacros
|
2
|
+
def should_have_form(opts)
|
3
3
|
model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
|
4
4
|
model = model[model.rindex('::')+2..model.size] if model.include?('::')
|
5
5
|
http_method, hidden_http_method = form_http_method opts[:method]
|
@@ -17,7 +17,7 @@ module ShouldaFormMacros
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
20
|
+
def form_http_method(http_method)
|
21
21
|
http_method = http_method.nil? ? 'post' : http_method.to_s
|
22
22
|
if http_method == "post" || http_method == "get"
|
23
23
|
return http_method, nil
|
@@ -27,6 +27,6 @@ module ShouldaFormMacros
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
ActiveSupport::TestCase.extend(MuckFormMacros)
|
31
|
+
Test::Unit::TestCase.extend(MuckFormMacros)
|
32
|
+
ActionController::TestCase.extend(MuckFormMacros)
|
@@ -1,6 +1,6 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
def
|
1
|
+
module MuckModelMacros
|
2
|
+
|
3
|
+
def should_sanitize(*attributes)
|
4
4
|
bad_scripts = [
|
5
5
|
%|';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>|,
|
6
6
|
%|'';!--"<XSS>=&{()}|,
|
@@ -16,7 +16,7 @@ module ShouldaModelMacros
|
|
16
16
|
tt p://6	6.000146.0x7.147/">XSS</A>|,
|
17
17
|
%|<script>alert('message');</script>| ]
|
18
18
|
|
19
|
-
klass =
|
19
|
+
klass = self.name.gsub(/Test$/, '').constantize
|
20
20
|
attributes.each do |attribute|
|
21
21
|
attribute = attribute.to_sym
|
22
22
|
should "white list #{attribute}" do
|
@@ -45,6 +45,7 @@ module ShouldaModelMacros
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
|
48
|
+
|
49
|
+
ActiveSupport::TestCase.extend(MuckModelMacros)
|
50
|
+
Test::Unit::TestCase.extend(MuckModelMacros)
|
51
|
+
ActionController::TestCase.extend(MuckModelMacros)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module MuckPaginationMacros
|
2
2
|
# Example:
|
3
3
|
# context "a GET to index logged in as admin" do
|
4
4
|
# setup do
|
@@ -8,7 +8,7 @@ module ShouldaPaginationMacros
|
|
8
8
|
# should_paginate_collection :users
|
9
9
|
# should_display_pagination
|
10
10
|
# end
|
11
|
-
def
|
11
|
+
def should_paginate_collection(collection_name)
|
12
12
|
should "paginate #{collection_name}" do
|
13
13
|
assert collection = assigns(collection_name),
|
14
14
|
"Controller isn't assigning to @#{collection_name.to_s}."
|
@@ -17,7 +17,7 @@ module ShouldaPaginationMacros
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
20
|
+
def should_display_pagination
|
21
21
|
should "display pagination" do
|
22
22
|
assert_select "div.pagination", { :minimum => 1 },
|
23
23
|
"View isn't displaying pagination. Add <%= will_paginate @collection %>."
|
@@ -30,7 +30,7 @@ module ShouldaPaginationMacros
|
|
30
30
|
# should_not_paginate_collection :users
|
31
31
|
# should_not_display_pagination
|
32
32
|
# end
|
33
|
-
def
|
33
|
+
def should_not_paginate_collection(collection_name)
|
34
34
|
should "not paginate #{collection_name}" do
|
35
35
|
assert collection = assigns(collection_name),
|
36
36
|
"Controller isn't assigning to @#{collection_name.to_s}."
|
@@ -39,7 +39,7 @@ module ShouldaPaginationMacros
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
42
|
+
def should_not_display_pagination
|
43
43
|
should "not display pagination" do
|
44
44
|
assert_select "div.pagination", { :count => 0 },
|
45
45
|
"View is displaying pagination. Check your logic."
|
@@ -47,7 +47,6 @@ module ShouldaPaginationMacros
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
50
|
+
ActiveSupport::TestCase.extend(MuckPaginationMacros)
|
51
|
+
Test::Unit::TestCase.extend(MuckPaginationMacros)
|
52
|
+
ActionController::TestCase.extend(MuckPaginationMacros)
|
@@ -1,6 +1,6 @@
|
|
1
|
-
module
|
1
|
+
module MuckPluginMacros
|
2
2
|
|
3
|
-
def
|
3
|
+
def should_act_as_taggable_on_steroids
|
4
4
|
klass = self.name.gsub(/Test$/, '').constantize
|
5
5
|
|
6
6
|
should "include ActsAsTaggableOnSteroids methods" do
|
@@ -13,7 +13,7 @@ module ShouldaPluginMacros
|
|
13
13
|
end
|
14
14
|
|
15
15
|
|
16
|
-
def
|
16
|
+
def should_act_as_list
|
17
17
|
klass = self.name.gsub(/Test$/, '').constantize
|
18
18
|
|
19
19
|
context "To support acts_as_list" do
|
@@ -29,6 +29,6 @@ module ShouldaPluginMacros
|
|
29
29
|
|
30
30
|
end
|
31
31
|
|
32
|
-
ActiveSupport::TestCase.extend(
|
33
|
-
Test::Unit::TestCase.extend(
|
34
|
-
ActionController::TestCase.extend(
|
32
|
+
ActiveSupport::TestCase.extend(MuckPluginMacros)
|
33
|
+
Test::Unit::TestCase.extend(MuckPluginMacros)
|
34
|
+
ActionController::TestCase.extend(MuckPluginMacros)
|
data/muck-engine.gemspec
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{muck-engine}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.15"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Justin Ball"]
|
12
|
-
s.date = %q{2009-11-
|
11
|
+
s.authors = ["Justin Ball", "Joel Duffin"]
|
12
|
+
s.date = %q{2009-11-13}
|
13
13
|
s.description = %q{The base engine for the muck system. Contains common tables, custom for, css and javascript.}
|
14
|
-
s.email = %q{
|
14
|
+
s.email = %q{justin@tatemae.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.rdoc"
|
17
17
|
]
|
@@ -100,6 +100,24 @@ Gem::Specification.new do |s|
|
|
100
100
|
"lib/muck_engine.rb",
|
101
101
|
"lib/muck_engine/tasks.rb",
|
102
102
|
"lib/muck_engine/tasks.rb",
|
103
|
+
"lib/muck_test_helper.rb",
|
104
|
+
"lib/muck_test_helper.rb",
|
105
|
+
"lib/test/muck_factories.rb",
|
106
|
+
"lib/test/muck_factories.rb",
|
107
|
+
"lib/test/muck_test_definitions.rb",
|
108
|
+
"lib/test/muck_test_definitions.rb",
|
109
|
+
"lib/test/muck_test_methods.rb",
|
110
|
+
"lib/test/muck_test_methods.rb",
|
111
|
+
"lib/test/shoulda_macros/controller.rb",
|
112
|
+
"lib/test/shoulda_macros/controller.rb",
|
113
|
+
"lib/test/shoulda_macros/forms.rb",
|
114
|
+
"lib/test/shoulda_macros/forms.rb",
|
115
|
+
"lib/test/shoulda_macros/models.rb",
|
116
|
+
"lib/test/shoulda_macros/models.rb",
|
117
|
+
"lib/test/shoulda_macros/pagination.rb",
|
118
|
+
"lib/test/shoulda_macros/pagination.rb",
|
119
|
+
"lib/test/shoulda_macros/plugins.rb",
|
120
|
+
"lib/test/shoulda_macros/plugins.rb",
|
103
121
|
"locales/ar.yml",
|
104
122
|
"locales/ar.yml",
|
105
123
|
"locales/bg.yml",
|
@@ -407,7 +425,6 @@ Gem::Specification.new do |s|
|
|
407
425
|
"tasks/rails.rake",
|
408
426
|
"test/rails_root/.gitignore",
|
409
427
|
"test/rails_root/.rake_tasks",
|
410
|
-
"test/rails_root/Capfile",
|
411
428
|
"test/rails_root/Rakefile",
|
412
429
|
"test/rails_root/app/controllers/admin/default_controller.rb",
|
413
430
|
"test/rails_root/app/controllers/application_controller.rb",
|
@@ -593,18 +610,12 @@ Gem::Specification.new do |s|
|
|
593
610
|
"test/rails_root/script/process/spawner",
|
594
611
|
"test/rails_root/script/runner",
|
595
612
|
"test/rails_root/script/server",
|
596
|
-
"test/rails_root/test/factories.rb",
|
597
613
|
"test/rails_root/test/functional/.keep",
|
598
614
|
"test/rails_root/test/functional/admin/default_controller_test.rb",
|
599
615
|
"test/rails_root/test/functional/default_controller_test.rb",
|
600
616
|
"test/rails_root/test/integration/.keep",
|
601
617
|
"test/rails_root/test/mocks/development/.keep",
|
602
618
|
"test/rails_root/test/mocks/test/.keep",
|
603
|
-
"test/rails_root/test/shoulda_macros/controller.rb",
|
604
|
-
"test/rails_root/test/shoulda_macros/forms.rb",
|
605
|
-
"test/rails_root/test/shoulda_macros/models.rb",
|
606
|
-
"test/rails_root/test/shoulda_macros/pagination.rb",
|
607
|
-
"test/rails_root/test/shoulda_macros/plugins.rb",
|
608
619
|
"test/rails_root/test/test_helper.rb",
|
609
620
|
"test/rails_root/test/unit/.keep",
|
610
621
|
"test/rails_root/test/unit/basic_mailer_test.rb",
|
@@ -614,7 +625,7 @@ Gem::Specification.new do |s|
|
|
614
625
|
"test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb",
|
615
626
|
"uninstall.rb"
|
616
627
|
]
|
617
|
-
s.homepage = %q{http://github.com/
|
628
|
+
s.homepage = %q{http://github.com/tatemae/muck_engine}
|
618
629
|
s.rdoc_options = ["--charset=UTF-8"]
|
619
630
|
s.require_paths = ["lib"]
|
620
631
|
s.rubyforge_project = %q{muck-engine}
|
@@ -644,14 +655,8 @@ Gem::Specification.new do |s|
|
|
644
655
|
"test/rails_root/features/support/env.rb",
|
645
656
|
"test/rails_root/public/dispatch.rb",
|
646
657
|
"test/rails_root/script/create_project.rb",
|
647
|
-
"test/rails_root/test/factories.rb",
|
648
658
|
"test/rails_root/test/functional/admin/default_controller_test.rb",
|
649
659
|
"test/rails_root/test/functional/default_controller_test.rb",
|
650
|
-
"test/rails_root/test/shoulda_macros/controller.rb",
|
651
|
-
"test/rails_root/test/shoulda_macros/forms.rb",
|
652
|
-
"test/rails_root/test/shoulda_macros/models.rb",
|
653
|
-
"test/rails_root/test/shoulda_macros/pagination.rb",
|
654
|
-
"test/rails_root/test/shoulda_macros/plugins.rb",
|
655
660
|
"test/rails_root/test/test_helper.rb",
|
656
661
|
"test/rails_root/test/unit/basic_mailer_test.rb",
|
657
662
|
"test/rails_root/test/unit/muck_engine_helper_test.rb",
|
@@ -22,12 +22,3 @@ config.action_controller.allow_forgery_protection = false
|
|
22
22
|
config.action_mailer.delivery_method = :test
|
23
23
|
|
24
24
|
HOST = "localhost"
|
25
|
-
|
26
|
-
config.gem 'thoughtbot-shoulda',
|
27
|
-
:lib => 'shoulda',
|
28
|
-
:source => "http://gems.github.com",
|
29
|
-
:version => '>= 2.9.1'
|
30
|
-
config.gem 'thoughtbot-factory_girl',
|
31
|
-
:lib => 'factory_girl',
|
32
|
-
:source => "http://gems.github.com",
|
33
|
-
:version => '>= 1.2.0'
|
@@ -1,21 +1,12 @@
|
|
1
1
|
$:.reject! { |e| e.include? 'TextMate' }
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
4
|
-
|
5
|
-
|
6
|
-
require 'factory_girl'
|
7
|
-
require 'mocha'
|
8
|
-
require 'ruby-debug'
|
9
|
-
require 'redgreen' rescue LoadError
|
10
|
-
require File.expand_path(File.dirname(__FILE__) + '/factories')
|
11
|
-
require File.join(File.dirname(__FILE__), 'shoulda_macros', 'controller')
|
12
|
-
require File.join(File.dirname(__FILE__), 'shoulda_macros', 'models')
|
4
|
+
gem 'muck-engine'
|
5
|
+
require 'muck_test_helper'
|
13
6
|
|
14
|
-
|
7
|
+
|
8
|
+
class ActiveSupport::TestCase
|
9
|
+
include MuckTestMethods
|
15
10
|
self.use_transactional_fixtures = true
|
16
11
|
self.use_instantiated_fixtures = false
|
17
|
-
|
18
|
-
def ensure_flash(val)
|
19
|
-
assert_contains flash.values, val, ", Flash: #{flash.inspect}"
|
20
|
-
end
|
21
12
|
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muck-engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Ball
|
8
|
+
- Joel Duffin
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date: 2009-11-
|
13
|
+
date: 2009-11-13 00:00:00 -07:00
|
13
14
|
default_executable:
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +44,7 @@ dependencies:
|
|
43
44
|
version: "0"
|
44
45
|
version:
|
45
46
|
description: The base engine for the muck system. Contains common tables, custom for, css and javascript.
|
46
|
-
email:
|
47
|
+
email: justin@tatemae.com
|
47
48
|
executables: []
|
48
49
|
|
49
50
|
extensions: []
|
@@ -96,6 +97,15 @@ files:
|
|
96
97
|
- lib/active_record/muck_model.rb
|
97
98
|
- lib/muck_engine.rb
|
98
99
|
- lib/muck_engine/tasks.rb
|
100
|
+
- lib/muck_test_helper.rb
|
101
|
+
- lib/test/muck_factories.rb
|
102
|
+
- lib/test/muck_test_definitions.rb
|
103
|
+
- lib/test/muck_test_methods.rb
|
104
|
+
- lib/test/shoulda_macros/controller.rb
|
105
|
+
- lib/test/shoulda_macros/forms.rb
|
106
|
+
- lib/test/shoulda_macros/models.rb
|
107
|
+
- lib/test/shoulda_macros/pagination.rb
|
108
|
+
- lib/test/shoulda_macros/plugins.rb
|
99
109
|
- locales/ar.yml
|
100
110
|
- locales/bg.yml
|
101
111
|
- locales/ca.yml
|
@@ -353,7 +363,6 @@ files:
|
|
353
363
|
- tasks/rails.rake
|
354
364
|
- test/rails_root/.gitignore
|
355
365
|
- test/rails_root/.rake_tasks
|
356
|
-
- test/rails_root/Capfile
|
357
366
|
- test/rails_root/Rakefile
|
358
367
|
- test/rails_root/app/controllers/admin/default_controller.rb
|
359
368
|
- test/rails_root/app/controllers/application_controller.rb
|
@@ -539,18 +548,12 @@ files:
|
|
539
548
|
- test/rails_root/script/process/spawner
|
540
549
|
- test/rails_root/script/runner
|
541
550
|
- test/rails_root/script/server
|
542
|
-
- test/rails_root/test/factories.rb
|
543
551
|
- test/rails_root/test/functional/.keep
|
544
552
|
- test/rails_root/test/functional/admin/default_controller_test.rb
|
545
553
|
- test/rails_root/test/functional/default_controller_test.rb
|
546
554
|
- test/rails_root/test/integration/.keep
|
547
555
|
- test/rails_root/test/mocks/development/.keep
|
548
556
|
- test/rails_root/test/mocks/test/.keep
|
549
|
-
- test/rails_root/test/shoulda_macros/controller.rb
|
550
|
-
- test/rails_root/test/shoulda_macros/forms.rb
|
551
|
-
- test/rails_root/test/shoulda_macros/models.rb
|
552
|
-
- test/rails_root/test/shoulda_macros/pagination.rb
|
553
|
-
- test/rails_root/test/shoulda_macros/plugins.rb
|
554
557
|
- test/rails_root/test/test_helper.rb
|
555
558
|
- test/rails_root/test/unit/.keep
|
556
559
|
- test/rails_root/test/unit/basic_mailer_test.rb
|
@@ -560,7 +563,7 @@ files:
|
|
560
563
|
- test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb
|
561
564
|
- uninstall.rb
|
562
565
|
has_rdoc: true
|
563
|
-
homepage: http://github.com/
|
566
|
+
homepage: http://github.com/tatemae/muck_engine
|
564
567
|
licenses: []
|
565
568
|
|
566
569
|
post_install_message:
|
@@ -611,14 +614,8 @@ test_files:
|
|
611
614
|
- test/rails_root/features/support/env.rb
|
612
615
|
- test/rails_root/public/dispatch.rb
|
613
616
|
- test/rails_root/script/create_project.rb
|
614
|
-
- test/rails_root/test/factories.rb
|
615
617
|
- test/rails_root/test/functional/admin/default_controller_test.rb
|
616
618
|
- test/rails_root/test/functional/default_controller_test.rb
|
617
|
-
- test/rails_root/test/shoulda_macros/controller.rb
|
618
|
-
- test/rails_root/test/shoulda_macros/forms.rb
|
619
|
-
- test/rails_root/test/shoulda_macros/models.rb
|
620
|
-
- test/rails_root/test/shoulda_macros/pagination.rb
|
621
|
-
- test/rails_root/test/shoulda_macros/plugins.rb
|
622
619
|
- test/rails_root/test/test_helper.rb
|
623
620
|
- test/rails_root/test/unit/basic_mailer_test.rb
|
624
621
|
- test/rails_root/test/unit/muck_engine_helper_test.rb
|
data/test/rails_root/Capfile
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
Factory.sequence :email do |n|
|
2
|
-
"somebody#{n}@example.com"
|
3
|
-
end
|
4
|
-
|
5
|
-
Factory.sequence :login do |n|
|
6
|
-
"inquire#{n}"
|
7
|
-
end
|
8
|
-
|
9
|
-
Factory.sequence :name do |n|
|
10
|
-
"a_name#{n}"
|
11
|
-
end
|
12
|
-
|
13
|
-
Factory.sequence :abbr do |n|
|
14
|
-
"abbr#{n}"
|
15
|
-
end
|
16
|
-
|
17
|
-
Factory.sequence :description do |n|
|
18
|
-
"This is the description: #{n}"
|
19
|
-
end
|
20
|
-
|
21
|
-
Factory.define :state do |f|
|
22
|
-
f.name { Factory.next(:name) }
|
23
|
-
f.abbreviation { Factory.next(:abbr) }
|
24
|
-
f.country {|a| a.association(:country) }
|
25
|
-
end
|
26
|
-
|
27
|
-
Factory.define :country do |f|
|
28
|
-
f.name { Factory.next(:name) }
|
29
|
-
f.abbreviation { Factory.next(:abbr) }
|
30
|
-
end
|
31
|
-
|
32
|
-
Factory.define :user do |f|
|
33
|
-
f.login { Factory.next(:login) }
|
34
|
-
f.email { Factory.next(:email) }
|
35
|
-
f.password 'inquire_pass'
|
36
|
-
f.password_confirmation 'inquire_pass'
|
37
|
-
f.first_name 'test'
|
38
|
-
f.last_name 'guy'
|
39
|
-
f.terms_of_service true
|
40
|
-
f.activated_at DateTime.now
|
41
|
-
end
|
42
|
-
|
43
|
-
Factory.define :content_page do |f|
|
44
|
-
f.creator {|a| a.association(:user)}
|
45
|
-
f.title { Factory.next(:name) }
|
46
|
-
f.body_raw { Factory.next(:description) }
|
47
|
-
end
|
48
|
-
|
49
|
-
Factory.define :permission do |f|
|
50
|
-
f.role {|a| a.association(:role)}
|
51
|
-
f.user {|a| a.association(:user)}
|
52
|
-
end
|
53
|
-
|
54
|
-
Factory.define :role do |f|
|
55
|
-
f.rolename 'administrator'
|
56
|
-
end
|