muck-friends 0.1.15 → 0.1.16
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/README.rdoc +1 -1
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/muck-friends.gemspec +5 -20
- data/test/rails_root/config/environment.rb +1 -1
- data/test/rails_root/config/environments/test.rb +0 -10
- data/test/rails_root/config/routes.rb +4 -0
- data/test/rails_root/test/test_helper.rb +4 -31
- metadata +5 -19
- data/test/rails_root/Capfile +0 -3
- data/test/rails_root/test/factories.rb +0 -50
- data/test/rails_root/test/mocks/development/.keep +0 -0
- data/test/rails_root/test/mocks/test/.keep +0 -0
- data/test/rails_root/test/shoulda_macros/controller.rb +0 -45
- data/test/rails_root/test/shoulda_macros/forms.rb +0 -32
- data/test/rails_root/test/shoulda_macros/models.rb +0 -50
- data/test/rails_root/test/shoulda_macros/pagination.rb +0 -53
- data/test/rails_root/test/shoulda_macros/plugins.rb +0 -34
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -50,10 +50,10 @@ begin
|
|
50
50
|
Jeweler::Tasks.new do |gemspec|
|
51
51
|
gemspec.name = "muck-friends"
|
52
52
|
gemspec.summary = "Friends engine for the muck system"
|
53
|
-
gemspec.email = "
|
54
|
-
gemspec.homepage = "http://github.com/
|
53
|
+
gemspec.email = "justin@tatemae.com"
|
54
|
+
gemspec.homepage = "http://github.com/tatemae/muck_friends"
|
55
55
|
gemspec.description = "Friend engine for the muck system."
|
56
|
-
gemspec.authors = ["Justin Ball"]
|
56
|
+
gemspec.authors = ["Justin Ball", "Joel Duffin"]
|
57
57
|
gemspec.rubyforge_project = 'muck-friends'
|
58
58
|
gemspec.add_dependency "muck-engine"
|
59
59
|
gemspec.add_dependency "muck-users"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.16
|
data/muck-friends.gemspec
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{muck-friends}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.16"
|
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{Friend engine for the muck system.}
|
14
|
-
s.email = %q{
|
14
|
+
s.email = %q{justin@tatemae.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.rdoc"
|
17
17
|
]
|
@@ -94,7 +94,6 @@ Gem::Specification.new do |s|
|
|
94
94
|
"tasks/rails.rake",
|
95
95
|
"test/rails_root/.gitignore",
|
96
96
|
"test/rails_root/.rake_tasks",
|
97
|
-
"test/rails_root/Capfile",
|
98
97
|
"test/rails_root/Rakefile",
|
99
98
|
"test/rails_root/app/controllers/application_controller.rb",
|
100
99
|
"test/rails_root/app/controllers/default_controller.rb",
|
@@ -316,18 +315,10 @@ Gem::Specification.new do |s|
|
|
316
315
|
"test/rails_root/script/process/spawner",
|
317
316
|
"test/rails_root/script/runner",
|
318
317
|
"test/rails_root/script/server",
|
319
|
-
"test/rails_root/test/factories.rb",
|
320
318
|
"test/rails_root/test/functional/.keep",
|
321
319
|
"test/rails_root/test/functional/default_controller_test.rb",
|
322
320
|
"test/rails_root/test/functional/friends_controller_test.rb",
|
323
321
|
"test/rails_root/test/integration/.keep",
|
324
|
-
"test/rails_root/test/mocks/development/.keep",
|
325
|
-
"test/rails_root/test/mocks/test/.keep",
|
326
|
-
"test/rails_root/test/shoulda_macros/controller.rb",
|
327
|
-
"test/rails_root/test/shoulda_macros/forms.rb",
|
328
|
-
"test/rails_root/test/shoulda_macros/models.rb",
|
329
|
-
"test/rails_root/test/shoulda_macros/pagination.rb",
|
330
|
-
"test/rails_root/test/shoulda_macros/plugins.rb",
|
331
322
|
"test/rails_root/test/test_helper.rb",
|
332
323
|
"test/rails_root/test/unit/.keep",
|
333
324
|
"test/rails_root/test/unit/friend_mailer_test.rb",
|
@@ -338,7 +329,7 @@ Gem::Specification.new do |s|
|
|
338
329
|
"test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb",
|
339
330
|
"uninstall.rb"
|
340
331
|
]
|
341
|
-
s.homepage = %q{http://github.com/
|
332
|
+
s.homepage = %q{http://github.com/tatemae/muck_friends}
|
342
333
|
s.rdoc_options = ["--charset=UTF-8"]
|
343
334
|
s.require_paths = ["lib"]
|
344
335
|
s.rubyforge_project = %q{muck-friends}
|
@@ -378,14 +369,8 @@ Gem::Specification.new do |s|
|
|
378
369
|
"test/rails_root/features/support/paths.rb",
|
379
370
|
"test/rails_root/public/dispatch.rb",
|
380
371
|
"test/rails_root/script/create_project.rb",
|
381
|
-
"test/rails_root/test/factories.rb",
|
382
372
|
"test/rails_root/test/functional/default_controller_test.rb",
|
383
373
|
"test/rails_root/test/functional/friends_controller_test.rb",
|
384
|
-
"test/rails_root/test/shoulda_macros/controller.rb",
|
385
|
-
"test/rails_root/test/shoulda_macros/forms.rb",
|
386
|
-
"test/rails_root/test/shoulda_macros/models.rb",
|
387
|
-
"test/rails_root/test/shoulda_macros/pagination.rb",
|
388
|
-
"test/rails_root/test/shoulda_macros/plugins.rb",
|
389
374
|
"test/rails_root/test/test_helper.rb",
|
390
375
|
"test/rails_root/test/unit/friend_mailer_test.rb",
|
391
376
|
"test/rails_root/test/unit/friend_test.rb",
|
@@ -15,7 +15,7 @@ end
|
|
15
15
|
|
16
16
|
Rails::Initializer.run do |config|
|
17
17
|
config.time_zone = 'UTC'
|
18
|
-
config.gem
|
18
|
+
config.gem "will_paginate"
|
19
19
|
config.gem "authlogic"
|
20
20
|
config.gem "bcrypt-ruby", :lib => "bcrypt"
|
21
21
|
config.gem 'thoughtbot-paperclip', :lib => 'paperclip', :source => "http://gems.github.com"
|
@@ -22,13 +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'
|
34
|
-
config.gem "rcov", :version => '>=0.8.1.2.0'
|
@@ -1,38 +1,11 @@
|
|
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'
|
4
|
+
gem 'muck-engine'
|
5
|
+
require 'muck_test_helper'
|
8
6
|
require 'authlogic/test_case'
|
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')
|
13
|
-
|
14
|
-
class ActiveSupport::TestCase
|
15
|
-
self.use_transactional_fixtures = true
|
16
|
-
self.use_instantiated_fixtures = false
|
17
7
|
|
8
|
+
class ActiveSupport::TestCase
|
9
|
+
include MuckTestMethods
|
18
10
|
include Authlogic::TestCase
|
19
|
-
|
20
|
-
def login_as(user)
|
21
|
-
success = UserSession.create(user)
|
22
|
-
if !success
|
23
|
-
errors = user.errors.full_messages.to_sentence
|
24
|
-
message = 'User has not been activated' if !user.active?
|
25
|
-
raise "could not login as #{user.to_param}. Please make sure the user is valid. #{message} #{errors}"
|
26
|
-
end
|
27
|
-
UserSession.find
|
28
|
-
end
|
29
|
-
|
30
|
-
def assure_logout
|
31
|
-
user_session = UserSession.find
|
32
|
-
user_session.destroy if user_session
|
33
|
-
end
|
34
|
-
|
35
|
-
def ensure_flash(val)
|
36
|
-
assert_contains flash.values, val, ", Flash: #{flash.inspect}"
|
37
|
-
end
|
38
11
|
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muck-friends
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
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: Friend engine for the muck system.
|
46
|
-
email:
|
47
|
+
email: justin@tatemae.com
|
47
48
|
executables: []
|
48
49
|
|
49
50
|
extensions: []
|
@@ -129,7 +130,6 @@ files:
|
|
129
130
|
- tasks/rails.rake
|
130
131
|
- test/rails_root/.gitignore
|
131
132
|
- test/rails_root/.rake_tasks
|
132
|
-
- test/rails_root/Capfile
|
133
133
|
- test/rails_root/Rakefile
|
134
134
|
- test/rails_root/app/controllers/application_controller.rb
|
135
135
|
- test/rails_root/app/controllers/default_controller.rb
|
@@ -351,18 +351,10 @@ files:
|
|
351
351
|
- test/rails_root/script/process/spawner
|
352
352
|
- test/rails_root/script/runner
|
353
353
|
- test/rails_root/script/server
|
354
|
-
- test/rails_root/test/factories.rb
|
355
354
|
- test/rails_root/test/functional/.keep
|
356
355
|
- test/rails_root/test/functional/default_controller_test.rb
|
357
356
|
- test/rails_root/test/functional/friends_controller_test.rb
|
358
357
|
- test/rails_root/test/integration/.keep
|
359
|
-
- test/rails_root/test/mocks/development/.keep
|
360
|
-
- test/rails_root/test/mocks/test/.keep
|
361
|
-
- test/rails_root/test/shoulda_macros/controller.rb
|
362
|
-
- test/rails_root/test/shoulda_macros/forms.rb
|
363
|
-
- test/rails_root/test/shoulda_macros/models.rb
|
364
|
-
- test/rails_root/test/shoulda_macros/pagination.rb
|
365
|
-
- test/rails_root/test/shoulda_macros/plugins.rb
|
366
358
|
- test/rails_root/test/test_helper.rb
|
367
359
|
- test/rails_root/test/unit/.keep
|
368
360
|
- test/rails_root/test/unit/friend_mailer_test.rb
|
@@ -373,7 +365,7 @@ files:
|
|
373
365
|
- test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb
|
374
366
|
- uninstall.rb
|
375
367
|
has_rdoc: true
|
376
|
-
homepage: http://github.com/
|
368
|
+
homepage: http://github.com/tatemae/muck_friends
|
377
369
|
licenses: []
|
378
370
|
|
379
371
|
post_install_message:
|
@@ -434,14 +426,8 @@ test_files:
|
|
434
426
|
- test/rails_root/features/support/paths.rb
|
435
427
|
- test/rails_root/public/dispatch.rb
|
436
428
|
- test/rails_root/script/create_project.rb
|
437
|
-
- test/rails_root/test/factories.rb
|
438
429
|
- test/rails_root/test/functional/default_controller_test.rb
|
439
430
|
- test/rails_root/test/functional/friends_controller_test.rb
|
440
|
-
- test/rails_root/test/shoulda_macros/controller.rb
|
441
|
-
- test/rails_root/test/shoulda_macros/forms.rb
|
442
|
-
- test/rails_root/test/shoulda_macros/models.rb
|
443
|
-
- test/rails_root/test/shoulda_macros/pagination.rb
|
444
|
-
- test/rails_root/test/shoulda_macros/plugins.rb
|
445
431
|
- test/rails_root/test/test_helper.rb
|
446
432
|
- test/rails_root/test/unit/friend_mailer_test.rb
|
447
433
|
- test/rails_root/test/unit/friend_test.rb
|
data/test/rails_root/Capfile
DELETED
@@ -1,50 +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 :permission do |f|
|
44
|
-
f.role {|a| a.association(:role)}
|
45
|
-
f.user {|a| a.association(:user)}
|
46
|
-
end
|
47
|
-
|
48
|
-
Factory.define :role do |f|
|
49
|
-
f.rolename 'administrator'
|
50
|
-
end
|
File without changes
|
File without changes
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module MuckControllerMacros
|
2
|
-
|
3
|
-
def should_require_login(*args)
|
4
|
-
args = Hash[*args]
|
5
|
-
login_url = args.delete :login_url
|
6
|
-
args.each do |action, verb|
|
7
|
-
should "Require login for '#{action}' action" do
|
8
|
-
send(verb, action)
|
9
|
-
assert_redirected_to(login_url)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def should_require_role(role, redirect_url, *actions)
|
15
|
-
actions.each do |action|
|
16
|
-
should "require role for '#{action}' action" do
|
17
|
-
get(action)
|
18
|
-
ensure_flash(/permission/i)
|
19
|
-
assert_response :redirect
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
#from: http://blog.internautdesign.com/2008/9/11/more-on-custom-shoulda-macros-scoping-of-instance-variables
|
25
|
-
def should_not_allow action, object, url= "/login", msg=nil
|
26
|
-
msg ||= "a #{object.class.to_s.downcase}"
|
27
|
-
should "not be able to #{action} #{msg}" do
|
28
|
-
object = eval(object, self.send(:binding), __FILE__, __LINE__)
|
29
|
-
get action, :id => object.id
|
30
|
-
assert_redirected_to url
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def should_allow action, object, msg=nil
|
35
|
-
msg ||= "a #{object.class.to_s.downcase}"
|
36
|
-
should "be able to #{action} #{msg}" do
|
37
|
-
object = eval(object, self.send(:binding), __FILE__, __LINE__)
|
38
|
-
get action, :id => object.id
|
39
|
-
assert_response :success
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
ActionController::TestCase.extend(MuckControllerMacros)
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module ShouldaFormMacros
|
2
|
-
def self.should_have_form(opts)
|
3
|
-
model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
|
4
|
-
model = model[model.rindex('::')+2..model.size] if model.include?('::')
|
5
|
-
http_method, hidden_http_method = form_http_method opts[:method]
|
6
|
-
should "have a #{model} form" do
|
7
|
-
assert_select "form[action=?][method=#{http_method}]", eval(opts[:action]) do
|
8
|
-
if hidden_http_method
|
9
|
-
assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
|
10
|
-
end
|
11
|
-
opts[:fields].each do |attribute, type|
|
12
|
-
attribute = attribute.is_a?(Symbol) ? "#{model}[#{attribute.to_s}]" : attribute
|
13
|
-
assert_select "input[type=#{type.to_s}][name=?]", attribute
|
14
|
-
end
|
15
|
-
assert_select "input[type=submit]"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.form_http_method(http_method)
|
21
|
-
http_method = http_method.nil? ? 'post' : http_method.to_s
|
22
|
-
if http_method == "post" || http_method == "get"
|
23
|
-
return http_method, nil
|
24
|
-
else
|
25
|
-
return "post", http_method
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class ActiveSupport::TestCase
|
31
|
-
extend ShouldaFormMacros
|
32
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
module ShouldaModelMacros
|
2
|
-
|
3
|
-
def self.should_whitelist(*attributes)
|
4
|
-
bad_scripts = [
|
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
|
-
%|'';!--"<XSS>=&{()}|,
|
7
|
-
%|<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>|,
|
8
|
-
%|<IMG SRC="javascript:alert('XSS');">|,
|
9
|
-
%|<IMG SRC=javascript:alert('XSS')>|,
|
10
|
-
%|<IMG SRC=JaVaScRiPt:alert('XSS')>|,
|
11
|
-
%|<IMG SRC=JaVaScRiPt:alert('XSS')>|,
|
12
|
-
%|<IMG SRC=`javascript:alert("RSnake says, 'XSS'")`>|,
|
13
|
-
%|<IMG """><SCRIPT>alert("XSS")</SCRIPT>">|,
|
14
|
-
%|<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>|,
|
15
|
-
%|<A HREF="h
|
16
|
-
tt p://6	6.000146.0x7.147/">XSS</A>|,
|
17
|
-
%|<script>alert('message');</script>| ]
|
18
|
-
|
19
|
-
klass = model_class
|
20
|
-
attributes.each do |attribute|
|
21
|
-
attribute = attribute.to_sym
|
22
|
-
should "white list #{attribute}" do
|
23
|
-
assert object = klass.find(:first), "Can't find first #{klass}"
|
24
|
-
bad_scripts.each do |bad_value|
|
25
|
-
object.send("#{attribute}=", bad_value)
|
26
|
-
object.save
|
27
|
-
clean_value = object.send("#{attribute}")
|
28
|
-
assert !clean_value.include?(bad_value), "#{attribute} is not white listed. #{bad_value} made it through"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def should_accept_nested_attributes_for(*attr_names)
|
35
|
-
klass = self.name.gsub(/Test$/, '').constantize
|
36
|
-
|
37
|
-
context "#{klass}" do
|
38
|
-
attr_names.each do |association_name|
|
39
|
-
should "accept nested attrs for #{association_name}" do
|
40
|
-
assert klass.instance_methods.include?("#{association_name}_attributes="),
|
41
|
-
"#{klass} does not accept nested attributes for #{association_name}"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
class ActiveSupport::TestCase
|
49
|
-
extend ShouldaModelMacros
|
50
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module ShouldaPaginationMacros
|
2
|
-
# Example:
|
3
|
-
# context "a GET to index logged in as admin" do
|
4
|
-
# setup do
|
5
|
-
# login_as_admin
|
6
|
-
# get :index
|
7
|
-
# end
|
8
|
-
# should_paginate_collection :users
|
9
|
-
# should_display_pagination
|
10
|
-
# end
|
11
|
-
def self.should_paginate_collection(collection_name)
|
12
|
-
should "paginate #{collection_name}" do
|
13
|
-
assert collection = assigns(collection_name),
|
14
|
-
"Controller isn't assigning to @#{collection_name.to_s}."
|
15
|
-
assert_kind_of WillPaginate::Collection, collection,
|
16
|
-
"@#{collection_name.to_s} isn't a WillPaginate collection."
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.should_display_pagination
|
21
|
-
should "display pagination" do
|
22
|
-
assert_select "div.pagination", { :minimum => 1 },
|
23
|
-
"View isn't displaying pagination. Add <%= will_paginate @collection %>."
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Example:
|
28
|
-
# context "a GET to index not logged in as admin" do
|
29
|
-
# setup { get :index }
|
30
|
-
# should_not_paginate_collection :users
|
31
|
-
# should_not_display_pagination
|
32
|
-
# end
|
33
|
-
def self.should_not_paginate_collection(collection_name)
|
34
|
-
should "not paginate #{collection_name}" do
|
35
|
-
assert collection = assigns(collection_name),
|
36
|
-
"Controller isn't assigning to @#{collection_name.to_s}."
|
37
|
-
assert_not_equal WillPaginate::Collection, collection.class,
|
38
|
-
"@#{collection_name.to_s} is a WillPaginate collection."
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.should_not_display_pagination
|
43
|
-
should "not display pagination" do
|
44
|
-
assert_select "div.pagination", { :count => 0 },
|
45
|
-
"View is displaying pagination. Check your logic."
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
class ActiveSupport::TestCase
|
52
|
-
extend ShouldaPaginationMacros
|
53
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module ShouldaPluginMacros
|
2
|
-
|
3
|
-
def self.should_act_as_taggable_on_steroids
|
4
|
-
klass = self.name.gsub(/Test$/, '').constantize
|
5
|
-
|
6
|
-
should "include ActsAsTaggableOnSteroids methods" do
|
7
|
-
assert klass.extended_by.include?(ActiveRecord::Acts::Taggable::ClassMethods)
|
8
|
-
assert klass.extended_by.include?(ActiveRecord::Acts::Taggable::SingletonMethods)
|
9
|
-
assert klass.include?(ActiveRecord::Acts::Taggable::InstanceMethods)
|
10
|
-
end
|
11
|
-
|
12
|
-
should_have_many :taggings, :tags
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
def self.should_act_as_list
|
17
|
-
klass = self.name.gsub(/Test$/, '').constantize
|
18
|
-
|
19
|
-
context "To support acts_as_list" do
|
20
|
-
should_have_db_column('position', :type => :integer)
|
21
|
-
end
|
22
|
-
|
23
|
-
should "include ActsAsList methods" do
|
24
|
-
assert klass.include?(ActiveRecord::Acts::List::InstanceMethods)
|
25
|
-
end
|
26
|
-
|
27
|
-
should_have_instance_methods :acts_as_list_class, :position_column, :scope_condition
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
ActiveSupport::TestCase.extend(ShouldaPluginMacros)
|
33
|
-
Test::Unit::TestCase.extend(ShouldaPluginMacros)
|
34
|
-
ActionController::TestCase.extend(ShouldaPluginMacros)
|