goma 0.0.1.gamma → 0.0.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
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