minitest-anonymous_controller 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/README.md +67 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/minitest/anonymous_controller.rb +24 -0
- data/lib/minitest/anonymous_controller/version.rb +5 -0
- data/minitest-anonymous_controller.gemspec +24 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4d881093e02382bdbd17736ce03b64c5828f948d
|
4
|
+
data.tar.gz: c592ca7342cdcf93822f7ec4d63c7e13ffe4f177
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 70d9a42f948e58d1aafd3e8447c65f9e16799c330ad6bf20938274f7af0fb82fb4d80b02b7cde9595e41343f6f7b01a30707b985a0b7ce30cf5dcf9908bc0dbe
|
7
|
+
data.tar.gz: 2af924b5f914a65a52d5ac1e31b2ebf69a0f8a8e2da03f95bad3f34792e037dd85edb80a939d6b9e25681c8bae247f181986bb81e149c2068b22342245b29018
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# Minitest::AnonymousController
|
2
|
+
|
3
|
+
A primitive anonymous controller in Minitest.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'minitest-anonymous_controller'
|
11
|
+
```
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
The typical use-cases for anonymous controllers are to test filters defined in a base controller.
|
16
|
+
|
17
|
+
__ApplicationController__
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
class ApplicationController < ActionController::Base
|
21
|
+
|
22
|
+
...
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def not_authenticated # <= Think if you want to test this filter
|
27
|
+
redirect_to root_path, alert: 'Please login first'
|
28
|
+
end
|
29
|
+
|
30
|
+
...
|
31
|
+
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
35
|
+
__ApplicatinControllerTest__
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
require 'test_helper'
|
39
|
+
|
40
|
+
class ApplicationControllerTest < ActionDispatch::IntegrationTest
|
41
|
+
extend Minitest::AnonymousController
|
42
|
+
|
43
|
+
ApplicationController.insert_dummy_action
|
44
|
+
|
45
|
+
test 'should redirect someone without logging in to login page' do
|
46
|
+
ApplicationController.stub_any_instance(:current_user, nil) do
|
47
|
+
get dummy_action_url # <= Now you can test the filter via the dummy action
|
48
|
+
assert_equal 'Please login first', flash[:alert]
|
49
|
+
assert_redirected_to login_url
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
## Development
|
56
|
+
|
57
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
58
|
+
|
59
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
60
|
+
|
61
|
+
## Contributing
|
62
|
+
|
63
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/5t111111/minitest-anonymous_controller.
|
64
|
+
|
65
|
+
## Thanks
|
66
|
+
|
67
|
+
http://stackoverflow.com/a/26604833
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "minitest/anonymous_controller"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'minitest/anonymous_controller/version'
|
2
|
+
|
3
|
+
module Minitest
|
4
|
+
module AnonymousController
|
5
|
+
def insert_dummy_action
|
6
|
+
# Define dummy action for testing in ApplicationController class context
|
7
|
+
self.class_eval do
|
8
|
+
def dummy_action
|
9
|
+
render :nothing
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Disable clrearing routes on Rails.application.routes.draw
|
14
|
+
::Rails.application.routes.disable_clear_and_finalize = true
|
15
|
+
|
16
|
+
# Set a route for dummy action
|
17
|
+
::Rails.application.routes.draw do
|
18
|
+
get 'dummy_action' => 'application#dummy_action'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
ActionController::Base.extend Minitest::AnonymousController
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'minitest/anonymous_controller/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "minitest-anonymous_controller"
|
8
|
+
spec.version = Minitest::AnonymousController::VERSION
|
9
|
+
spec.authors = ["Hirofumi Wakasugi"]
|
10
|
+
spec.email = ["baenej@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{A primitive anonymous controller in Minitest}
|
13
|
+
spec.description = %q{A primitive anonymous controller in Minitest}
|
14
|
+
spec.homepage = "https://github.com/5t111111/minitest-anonymous_controller"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: minitest-anonymous_controller
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hirofumi Wakasugi
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.12'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.12'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
description: A primitive anonymous controller in Minitest
|
56
|
+
email:
|
57
|
+
- baenej@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- ".travis.yml"
|
64
|
+
- Gemfile
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- bin/console
|
68
|
+
- bin/setup
|
69
|
+
- lib/minitest/anonymous_controller.rb
|
70
|
+
- lib/minitest/anonymous_controller/version.rb
|
71
|
+
- minitest-anonymous_controller.gemspec
|
72
|
+
homepage: https://github.com/5t111111/minitest-anonymous_controller
|
73
|
+
licenses: []
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.5.1
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: A primitive anonymous controller in Minitest
|
95
|
+
test_files: []
|