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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/Gemfile.lock +13 -9
  4. data/Rakefile +14 -0
  5. data/goma.gemspec +6 -0
  6. data/lib/generators/goma/erb/templates/confirmation/new.html.erb +2 -2
  7. data/lib/generators/goma/erb/templates/password/edit.html.erb +6 -6
  8. data/lib/generators/goma/erb/templates/unlock/new.html.erb +1 -1
  9. data/lib/generators/goma/erb/templates/user/_form.html.erb +1 -1
  10. data/lib/generators/goma/erb/templates/user/new.html.erb +4 -0
  11. data/lib/generators/goma/mailer/erb/templates/activation_needed_email.text.erb +1 -1
  12. data/lib/generators/goma/model/active_record_generator.rb +1 -0
  13. data/lib/generators/goma/model/oauth/active_record_generator.rb +3 -3
  14. data/lib/generators/goma/resource_route/resource_route_generator.rb +13 -9
  15. data/lib/generators/goma/scaffold_controller/templates/confirmation_controller.rb +8 -4
  16. data/lib/generators/goma/scaffold_controller/templates/oauth_controller.rb +5 -0
  17. data/lib/generators/goma/scaffold_controller/templates/password_controller.rb +9 -4
  18. data/lib/generators/goma/scaffold_controller/templates/unlock_controller.rb +1 -0
  19. data/lib/generators/goma/scaffold_controller/templates/user_controller.rb +41 -1
  20. data/lib/goma/config.rb +4 -4
  21. data/lib/goma/models/authenticatable.rb +20 -9
  22. data/lib/goma/models/confirmable.rb +15 -9
  23. data/lib/goma/models/password_authenticatable.rb +2 -1
  24. data/lib/goma/models/recoverable.rb +1 -1
  25. data/lib/goma/models/validatable.rb +4 -4
  26. data/lib/goma/railtie.rb +1 -0
  27. data/lib/goma/version.rb +1 -1
  28. data/test/integration/confirmable_integration_test.rb +185 -0
  29. data/test/integration/lockable_integration_test.rb +49 -0
  30. data/test/integration/omniauthable_integration_test.rb +64 -12
  31. data/test/integration/password_authenticatable_integration_test.rb +40 -0
  32. data/test/integration/recoverable_integration_test.rb +96 -0
  33. data/test/integration/rememberable_integration_test.rb +14 -0
  34. data/test/models/confirmable_test.rb +6 -6
  35. data/test/models/omniauthable_test.rb +2 -2
  36. data/test/rails_app/app/controllers/authentications_controller.rb +5 -0
  37. data/test/rails_app/app/controllers/confirmations_controller.rb +8 -4
  38. data/test/rails_app/app/controllers/passwords_controller.rb +9 -4
  39. data/test/rails_app/app/controllers/unlocks_controller.rb +1 -0
  40. data/test/rails_app/app/controllers/users_controller.rb +25 -2
  41. data/test/rails_app/app/views/confirmations/new.html.erb +2 -2
  42. data/test/rails_app/app/views/layouts/application.html.erb +3 -1
  43. data/test/rails_app/app/views/passwords/edit.html.erb +6 -6
  44. data/test/rails_app/app/views/unlocks/new.html.erb +1 -1
  45. data/test/rails_app/app/views/user_mailer/activation_needed_email.text.erb +1 -1
  46. data/test/rails_app/app/views/users/_form.html.erb +1 -1
  47. data/test/rails_app/app/views/users/new.html.erb +1 -0
  48. data/test/rails_app/config/initializers/omniauth.rb +0 -1
  49. data/test/rails_app/config/routes.rb +6 -10
  50. data/test/rails_app/db/migrate/{20140512081308_create_users.rb → 20140515111009_create_users.rb} +0 -0
  51. data/test/rails_app/db/migrate/{20140512081309_create_authentications.rb → 20140515111010_create_authentications.rb} +0 -0
  52. data/test/rails_app/db/schema.rb +1 -1
  53. data/test/test_helper.rb +43 -0
  54. metadata +33 -13
  55. data/test/controllers/confirmations_controller_test.rb +0 -14
  56. data/test/controllers/users_controller_test.rb +0 -12
  57. data/test/integration/authenticatable_integration_test.rb +0 -26
@@ -28,6 +28,6 @@
28
28
  </div>
29
29
 
30
30
  <div class="actions">
31
- <%= f.submit %>
31
+ <%= f.submit ( @user.try(:persisted?) ? 'Update' : 'Sign up' ) %>
32
32
  </div>
33
33
  <% end %>
@@ -1,5 +1,6 @@
1
1
  <h1>New user</h1>
2
2
 
3
3
  <%= render 'form' %>
4
+ * If you signed up with wrong email address, please enter correct email address and username and password your entered when you signed up and click 'Sign up' again.
4
5
 
5
6
  <%= link_to 'Back', users_path %>
@@ -1,4 +1,3 @@
1
1
  Rails.application.config.middleware.use OmniAuth::Builder do
2
2
  provider :developer
3
- provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
4
3
  end
@@ -1,32 +1,28 @@
1
1
  RailsApp::Application.routes.draw do
2
- resources :authentications, only: [:create]
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, on: :member
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'
@@ -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: 20140512081309) do
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.gamma
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-12 00:00:00.000000000 Z
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/authenticatable_integration_test.rb
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/20140512081308_create_users.rb
373
- - test/rails_app/db/migrate/20140512081309_create_authentications.rb
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\nEnjoy!\e[0m\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/authenticatable_integration_test.rb
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/20140512081308_create_users.rb
520
- - test/rails_app/db/migrate/20140512081309_create_authentications.rb
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