goma 0.0.1.gamma → 0.0.1.rc1
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 +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +13 -9
- data/Rakefile +14 -0
- data/goma.gemspec +6 -0
- data/lib/generators/goma/erb/templates/confirmation/new.html.erb +2 -2
- data/lib/generators/goma/erb/templates/password/edit.html.erb +6 -6
- data/lib/generators/goma/erb/templates/unlock/new.html.erb +1 -1
- data/lib/generators/goma/erb/templates/user/_form.html.erb +1 -1
- data/lib/generators/goma/erb/templates/user/new.html.erb +4 -0
- data/lib/generators/goma/mailer/erb/templates/activation_needed_email.text.erb +1 -1
- data/lib/generators/goma/model/active_record_generator.rb +1 -0
- data/lib/generators/goma/model/oauth/active_record_generator.rb +3 -3
- data/lib/generators/goma/resource_route/resource_route_generator.rb +13 -9
- data/lib/generators/goma/scaffold_controller/templates/confirmation_controller.rb +8 -4
- data/lib/generators/goma/scaffold_controller/templates/oauth_controller.rb +5 -0
- data/lib/generators/goma/scaffold_controller/templates/password_controller.rb +9 -4
- data/lib/generators/goma/scaffold_controller/templates/unlock_controller.rb +1 -0
- data/lib/generators/goma/scaffold_controller/templates/user_controller.rb +41 -1
- data/lib/goma/config.rb +4 -4
- data/lib/goma/models/authenticatable.rb +20 -9
- data/lib/goma/models/confirmable.rb +15 -9
- data/lib/goma/models/password_authenticatable.rb +2 -1
- data/lib/goma/models/recoverable.rb +1 -1
- data/lib/goma/models/validatable.rb +4 -4
- data/lib/goma/railtie.rb +1 -0
- data/lib/goma/version.rb +1 -1
- data/test/integration/confirmable_integration_test.rb +185 -0
- data/test/integration/lockable_integration_test.rb +49 -0
- data/test/integration/omniauthable_integration_test.rb +64 -12
- data/test/integration/password_authenticatable_integration_test.rb +40 -0
- data/test/integration/recoverable_integration_test.rb +96 -0
- data/test/integration/rememberable_integration_test.rb +14 -0
- data/test/models/confirmable_test.rb +6 -6
- data/test/models/omniauthable_test.rb +2 -2
- data/test/rails_app/app/controllers/authentications_controller.rb +5 -0
- data/test/rails_app/app/controllers/confirmations_controller.rb +8 -4
- data/test/rails_app/app/controllers/passwords_controller.rb +9 -4
- data/test/rails_app/app/controllers/unlocks_controller.rb +1 -0
- data/test/rails_app/app/controllers/users_controller.rb +25 -2
- data/test/rails_app/app/views/confirmations/new.html.erb +2 -2
- data/test/rails_app/app/views/layouts/application.html.erb +3 -1
- data/test/rails_app/app/views/passwords/edit.html.erb +6 -6
- data/test/rails_app/app/views/unlocks/new.html.erb +1 -1
- data/test/rails_app/app/views/user_mailer/activation_needed_email.text.erb +1 -1
- data/test/rails_app/app/views/users/_form.html.erb +1 -1
- data/test/rails_app/app/views/users/new.html.erb +1 -0
- data/test/rails_app/config/initializers/omniauth.rb +0 -1
- data/test/rails_app/config/routes.rb +6 -10
- data/test/rails_app/db/migrate/{20140512081308_create_users.rb → 20140515111009_create_users.rb} +0 -0
- data/test/rails_app/db/migrate/{20140512081309_create_authentications.rb → 20140515111010_create_authentications.rb} +0 -0
- data/test/rails_app/db/schema.rb +1 -1
- data/test/test_helper.rb +43 -0
- metadata +33 -13
- data/test/controllers/confirmations_controller_test.rb +0 -14
- data/test/controllers/users_controller_test.rb +0 -12
- data/test/integration/authenticatable_integration_test.rb +0 -26
@@ -1,32 +1,28 @@
|
|
1
1
|
RailsApp::Application.routes.draw do
|
2
|
-
|
2
|
+
|
3
3
|
get '/auth/:provider/callback', to: 'authentications#create'
|
4
|
+
get '/auth/failure', to: 'authentications#failure'
|
5
|
+
|
4
6
|
|
5
7
|
resources :unlocks, only: [:show, :new, :create]
|
6
8
|
|
7
9
|
resources :passwords, only: [:new, :create, :edit, :update]
|
8
10
|
|
9
11
|
resources :confirmations, only: [:show, :new, :create] do
|
10
|
-
get :email,
|
12
|
+
get :email, on: :member
|
11
13
|
end
|
12
14
|
|
15
|
+
|
13
16
|
resource :session, only: [:new, :create, :destroy]
|
14
17
|
|
15
18
|
resources :users
|
16
19
|
|
17
|
-
resources :unlocks, only: [:show, :new, :create,]
|
18
|
-
|
19
|
-
resources :confirmations, only: [:new, :create] do
|
20
|
-
get :activate, on: :member
|
21
|
-
get :confirm, on: :member
|
22
|
-
end
|
23
|
-
|
24
20
|
root to: 'home#index'
|
25
21
|
|
26
22
|
get 'login' => 'sessions#new', as: :login
|
27
23
|
delete 'logout' => 'sessions#destroy', as: :logout
|
28
24
|
|
29
|
-
get 'secret/index'
|
25
|
+
get 'secret/index', as: :secret
|
30
26
|
get 'secret/not_track'
|
31
27
|
get 'secret/not_timeout'
|
32
28
|
get 'secret/not_validate_session'
|
data/test/rails_app/db/migrate/{20140512081308_create_users.rb → 20140515111009_create_users.rb}
RENAMED
File without changes
|
File without changes
|
data/test/rails_app/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20140515111010) do
|
15
15
|
|
16
16
|
create_table "authentications", force: true do |t|
|
17
17
|
t.string "provider"
|
data/test/test_helper.rb
CHANGED
@@ -12,6 +12,8 @@ end
|
|
12
12
|
require 'mocha/setup'
|
13
13
|
require 'shoulda-context'
|
14
14
|
require 'timecop'
|
15
|
+
require 'capybara/rails'
|
16
|
+
|
15
17
|
require 'minitest/ansi'
|
16
18
|
MiniTest::ANSI.use!
|
17
19
|
require 'byebug'
|
@@ -46,6 +48,8 @@ class ActionController::TestCase
|
|
46
48
|
end
|
47
49
|
|
48
50
|
class ActionDispatch::IntegrationTest
|
51
|
+
include Capybara::DSL
|
52
|
+
|
49
53
|
def signed_cookie(key)
|
50
54
|
controller.send(:cookies).signed[key]
|
51
55
|
end
|
@@ -69,6 +73,45 @@ class ActionDispatch::IntegrationTest
|
|
69
73
|
def current_user
|
70
74
|
warden.user(scope: :user)
|
71
75
|
end
|
76
|
+
|
77
|
+
# for Capybara
|
78
|
+
def _controller
|
79
|
+
page.driver.request.env['action_controller.instance']
|
80
|
+
end
|
81
|
+
|
82
|
+
def _request
|
83
|
+
_controller.request
|
84
|
+
end
|
85
|
+
|
86
|
+
def _session
|
87
|
+
_request.session
|
88
|
+
end
|
89
|
+
|
90
|
+
def _flash
|
91
|
+
_request.flash
|
92
|
+
end
|
93
|
+
|
94
|
+
def _warden
|
95
|
+
_request.env['warden']
|
96
|
+
end
|
97
|
+
|
98
|
+
def _current_user
|
99
|
+
_warden.user(scope: :user)
|
100
|
+
end
|
101
|
+
|
102
|
+
def _cookies
|
103
|
+
_request.cookies
|
104
|
+
end
|
105
|
+
|
106
|
+
def _signed_cookie(key)
|
107
|
+
_controller.send(:cookies).signed[key]
|
108
|
+
end
|
109
|
+
|
110
|
+
def _update_signed_cookies(data)
|
111
|
+
data.each do |k, v|
|
112
|
+
_cookies[k.to_s] = generate_signed_cookie(v)
|
113
|
+
end
|
114
|
+
end
|
72
115
|
end
|
73
116
|
|
74
117
|
OmniAuth.config.test_mode = true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.
|
4
|
+
version: 0.0.1.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kentaro Imai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: capybara
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: minitest-ansi
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -267,15 +281,16 @@ files:
|
|
267
281
|
- lib/goma/warden.rb
|
268
282
|
- lib/tasks/goma_tasks.rake
|
269
283
|
- test/config_test.rb
|
270
|
-
- test/controllers/confirmations_controller_test.rb
|
271
284
|
- test/controllers/helpers_test.rb
|
272
285
|
- test/controllers/lockable_controller_test.rb
|
273
286
|
- test/controllers/sessions_controller_test.rb
|
274
|
-
- test/controllers/users_controller_test.rb
|
275
287
|
- test/fabricators/users_fabricator.rb
|
276
288
|
- test/goma_test.rb
|
277
|
-
- test/integration/
|
289
|
+
- test/integration/confirmable_integration_test.rb
|
290
|
+
- test/integration/lockable_integration_test.rb
|
278
291
|
- test/integration/omniauthable_integration_test.rb
|
292
|
+
- test/integration/password_authenticatable_integration_test.rb
|
293
|
+
- test/integration/recoverable_integration_test.rb
|
279
294
|
- test/integration/rememberable_integration_test.rb
|
280
295
|
- test/integration/routes_integration_test.rb
|
281
296
|
- test/integration/timeoutable_integration_test.rb
|
@@ -369,8 +384,8 @@ files:
|
|
369
384
|
- test/rails_app/config/initializers/wrap_parameters.rb
|
370
385
|
- test/rails_app/config/locales/en.yml
|
371
386
|
- test/rails_app/config/routes.rb
|
372
|
-
- test/rails_app/db/migrate/
|
373
|
-
- test/rails_app/db/migrate/
|
387
|
+
- test/rails_app/db/migrate/20140515111009_create_users.rb
|
388
|
+
- test/rails_app/db/migrate/20140515111010_create_authentications.rb
|
374
389
|
- test/rails_app/db/schema.rb
|
375
390
|
- test/rails_app/lib/assets/.keep
|
376
391
|
- test/rails_app/log/.keep
|
@@ -392,7 +407,11 @@ post_install_message: "\n\e[32mThank you for installing!\n\nYou can use this gem
|
|
392
407
|
\ \e[0mconfig.action_mailer.default_url_options = { host: 'localhost:3000' }\e[32m\n\n
|
393
408
|
\ in production, :host should be set to the actual host of your application.\n\n===========================================================================\n\n\nThat's
|
394
409
|
it.\n\nThis gem is in early development phase and I do not recommend you to use
|
395
|
-
this for production for a while.\nBug reports and pull requests are welcome.\n\
|
410
|
+
this for production for a while.\nBug reports and pull requests are welcome.\n\nI
|
411
|
+
am surprised that this gem has been downloaded over 200 times, in spite of pre release
|
412
|
+
versions of v0.0.1.\nAnd, I feel bad about there were lots of bugs and incomplete
|
413
|
+
implementations in previous versions.\n\nI will release this as a release candidate,
|
414
|
+
but will add lots of code before v0.0.1.\n\nEnjoy!\e[0m\n"
|
396
415
|
rdoc_options: []
|
397
416
|
require_paths:
|
398
417
|
- lib
|
@@ -414,15 +433,16 @@ specification_version: 4
|
|
414
433
|
summary: An authentication solution for Rails 4
|
415
434
|
test_files:
|
416
435
|
- test/config_test.rb
|
417
|
-
- test/controllers/confirmations_controller_test.rb
|
418
436
|
- test/controllers/helpers_test.rb
|
419
437
|
- test/controllers/lockable_controller_test.rb
|
420
438
|
- test/controllers/sessions_controller_test.rb
|
421
|
-
- test/controllers/users_controller_test.rb
|
422
439
|
- test/fabricators/users_fabricator.rb
|
423
440
|
- test/goma_test.rb
|
424
|
-
- test/integration/
|
441
|
+
- test/integration/confirmable_integration_test.rb
|
442
|
+
- test/integration/lockable_integration_test.rb
|
425
443
|
- test/integration/omniauthable_integration_test.rb
|
444
|
+
- test/integration/password_authenticatable_integration_test.rb
|
445
|
+
- test/integration/recoverable_integration_test.rb
|
426
446
|
- test/integration/rememberable_integration_test.rb
|
427
447
|
- test/integration/routes_integration_test.rb
|
428
448
|
- test/integration/timeoutable_integration_test.rb
|
@@ -516,8 +536,8 @@ test_files:
|
|
516
536
|
- test/rails_app/config/initializers/wrap_parameters.rb
|
517
537
|
- test/rails_app/config/locales/en.yml
|
518
538
|
- test/rails_app/config/routes.rb
|
519
|
-
- test/rails_app/db/migrate/
|
520
|
-
- test/rails_app/db/migrate/
|
539
|
+
- test/rails_app/db/migrate/20140515111009_create_users.rb
|
540
|
+
- test/rails_app/db/migrate/20140515111010_create_authentications.rb
|
521
541
|
- test/rails_app/db/schema.rb
|
522
542
|
- test/rails_app/lib/assets/.keep
|
523
543
|
- test/rails_app/log/.keep
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ConfirmationsControllerTest < ActionController::TestCase
|
4
|
-
test 'should activate user' do
|
5
|
-
user = User.new(username: 'foo', email: 'foo@example.com', password: 'password', password_confirmation: 'password')
|
6
|
-
user.save!
|
7
|
-
|
8
|
-
get :show, id: user.raw_confirmation_token
|
9
|
-
assert_redirected_to new_session_url
|
10
|
-
assert flash[:notice]
|
11
|
-
user.reload
|
12
|
-
assert user.activated?
|
13
|
-
end
|
14
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class UsersControllerTest < ActionController::TestCase
|
4
|
-
# This test might not be needed
|
5
|
-
test 'should create user' do
|
6
|
-
assert_difference 'User.count', 1 do
|
7
|
-
post :create, {user: {username: 'foo', email: 'foo@example.com', password: 'password', password_confirmation: 'password'}}
|
8
|
-
end
|
9
|
-
assert_redirected_to new_session_url
|
10
|
-
assert flash[:notice]
|
11
|
-
end
|
12
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class AuthenticatableSessionIntegrationTest < ActionDispatch::IntegrationTest
|
4
|
-
def setup
|
5
|
-
@user = Fabricate(:user)
|
6
|
-
end
|
7
|
-
|
8
|
-
test 'should login' do
|
9
|
-
post 'session', username_or_email: @user.email, password: 'password'
|
10
|
-
assert_equal @user, request.env['warden'].user(:user)
|
11
|
-
end
|
12
|
-
|
13
|
-
test 'should redirect back correctly' do
|
14
|
-
get 'secret/index'
|
15
|
-
assert_redirected_to root_url
|
16
|
-
post 'session', username_or_email: @user.email, password: 'password'
|
17
|
-
assert_redirected_to secret_index_url
|
18
|
-
end
|
19
|
-
|
20
|
-
test 'should redirect back url with parameters correctly' do
|
21
|
-
get 'secret/index?page=100'
|
22
|
-
assert_redirected_to root_url
|
23
|
-
post 'session', username_or_email: @user.email, password: 'password'
|
24
|
-
assert_redirected_to '/secret/index?page=100'
|
25
|
-
end
|
26
|
-
end
|