tiny_passport 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/app/ables/tiny_passport/account_validate_able.rb +24 -0
- data/app/ables/tiny_passport/aggrement_term_able.rb +28 -0
- data/app/ables/tiny_passport/formable.rb +17 -0
- data/app/ables/tiny_passport/query_able.rb +25 -0
- data/app/controllers/tiny_passport/application_controller.rb +1 -0
- data/app/displays/tiny_passport/account_display.rb +25 -0
- data/app/displays/tiny_passport/oauth_login_display.rb +21 -0
- data/app/displays/tiny_passport/oauth_token_display.rb +25 -0
- data/app/errors/tiny_passport/alert_authorized_error.rb +6 -0
- data/app/errors/tiny_passport/unauthorized_error.rb +6 -0
- data/app/forms/tiny_passport/account_active_form.rb +83 -0
- data/app/forms/tiny_passport/account_form.rb +6 -0
- data/app/forms/tiny_passport/confirmation_token_form.rb +58 -0
- data/app/forms/tiny_passport/oauth/bind_connect_form.rb +65 -0
- data/app/forms/tiny_passport/oauth/bind_disconnect_form.rb +42 -0
- data/app/forms/tiny_passport/oauth/callback_form.rb +165 -0
- data/app/forms/tiny_passport/oauth/login_connect_form.rb +63 -0
- data/app/forms/tiny_passport/registration_form.rb +172 -0
- data/app/forms/tiny_passport/remember_token_auth_form.rb +32 -0
- data/app/forms/tiny_passport/reset_password_form.rb +95 -0
- data/app/forms/tiny_passport/reset_password_token_form.rb +55 -0
- data/app/forms/tiny_passport/session_form.rb +116 -0
- data/app/forms/tiny_passport/update_password_form.rb +50 -0
- data/app/forms/tiny_passport/welcome_email_form.rb +47 -0
- data/app/helpers/tiny_passport/application_helper.rb +1 -0
- data/app/mailers/tiny_passport/registration_mailer.rb +23 -0
- data/app/mailers/tiny_passport/reset_password_mailer.rb +16 -0
- data/app/models/concerns/tiny_passport/account_authenticatable.rb +24 -0
- data/app/models/tiny_passport/account.rb +41 -0
- data/app/models/tiny_passport/avatar.rb +6 -0
- data/app/models/tiny_passport/login_email.rb +89 -0
- data/app/models/tiny_passport/login_record.rb +69 -0
- data/app/models/tiny_passport/oauth_bind.rb +9 -0
- data/app/models/tiny_passport/oauth_info.rb +8 -0
- data/app/models/tiny_passport/oauth_login.rb +28 -0
- data/app/models/tiny_passport/oauth_token.rb +57 -0
- data/app/queries/tiny_passport/account_query.rb +45 -0
- data/app/services/tiny_passport/account_service.rb +43 -0
- data/app/services/tiny_passport/email_send_service.rb +32 -0
- data/app/services/tiny_passport/oauth_service.rb +11 -0
- data/app/views/layouts/tiny_passport/mailer.html.erb +7 -0
- data/app/views/tiny_passport/registration_mailer/send_confirmation_token.html.erb +5 -0
- data/app/views/tiny_passport/registration_mailer/welcome.html.erb +5 -0
- data/app/views/tiny_passport/reset_password_mailer/send_token.html.erb +5 -0
- data/config/locales/en/forms.en.yml +81 -0
- data/config/locales/zh-CN/forms.zh-CN.yml +123 -0
- data/config/routes.rb +1 -0
- data/db/migrate/20131105103853_create_tiny_passport_accounts.rb +23 -0
- data/db/migrate/20131105104415_create_tiny_passport_login_records.rb +20 -0
- data/db/migrate/20131105104559_create_tiny_passport_oauth_tokens.rb +27 -0
- data/db/migrate/20131105104632_create_tiny_passport_oauth_logins.rb +15 -0
- data/db/migrate/20131105104702_create_tiny_passport_oauth_binds.rb +16 -0
- data/db/migrate/20131105104738_create_tiny_passport_oauth_infos.rb +13 -0
- data/db/migrate/20131105104847_create_tiny_passport_avatars.rb +20 -0
- data/db/migrate/20131107031935_create_tiny_passport_login_emails.rb +25 -0
- data/lib/omniauth/strategies/qq_connect.rb +114 -0
- data/lib/tiny_passport/config.rb +72 -0
- data/lib/tiny_passport/engine.rb +16 -0
- data/lib/tiny_passport/http_authable.rb +50 -0
- data/lib/tiny_passport/http_authcenter.rb +138 -0
- data/lib/tiny_passport/mailerable.rb +20 -0
- data/lib/tiny_passport/omniauth/strategable.rb +21 -0
- data/lib/tiny_passport/version.rb +2 -1
- data/lib/tiny_passport.rb +13 -0
- data/test/dummy/app/controllers/application_controller.rb +1 -0
- data/test/dummy/app/helpers/application_helper.rb +1 -0
- data/test/dummy/config/application.rb +1 -0
- data/test/dummy/config/boot.rb +1 -0
- data/test/dummy/config/environment.rb +1 -0
- data/test/dummy/config/environments/development.rb +1 -0
- data/test/dummy/config/environments/production.rb +1 -0
- data/test/dummy/config/environments/test.rb +1 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +1 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +1 -0
- data/test/dummy/config/initializers/inflections.rb +1 -0
- data/test/dummy/config/initializers/mime_types.rb +1 -0
- data/test/dummy/config/initializers/secret_token.rb +1 -0
- data/test/dummy/config/initializers/session_store.rb +1 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +1 -0
- data/test/dummy/config/routes.rb +1 -0
- data/test/dummy/db/schema.rb +138 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +15986 -0
- data/test/dummy/tmp/cache/271/2A1/tiny_cache%2Fmodels%2FTinyPassport%3A%3AAccount%2F1%2F1 +0 -0
- data/test/dummy/tmp/cache/EDF/4C1/tiny_cache%2Fmodel_uniq_keys%2FTinyPassport%3A%3ALoginEmail%2F%5B%5B%22account_id%22%2C+1%5D%5D +1 -0
- data/test/fixtures/tiny_passport/avatars.yml +23 -0
- data/test/fixtures/tiny_passport/login_emails.yml +23 -0
- data/test/fixtures/tiny_passport/login_records.yml +17 -0
- data/test/fixtures/tiny_passport/oauth_binds.yml +13 -0
- data/test/fixtures/tiny_passport/oauth_infos.yml +9 -0
- data/test/fixtures/tiny_passport/oauth_logins.yml +11 -0
- data/test/fixtures/tiny_passport/oauth_tokens.yml +21 -0
- data/test/fixtures/tiny_passport/users.yml +13 -0
- data/test/forms/tiny_passport/oauth/callback_form_test.rb +23 -0
- data/test/forms/tiny_passport/registration_form_test.rb +112 -0
- data/test/forms/tiny_passport/session_form_test.rb +139 -0
- data/test/forms/tiny_passport/update_password_form_test.rb +20 -0
- data/test/integration/navigation_test.rb +1 -0
- data/test/mailers/tiny_passport/registration_mailer_test.rb +10 -0
- data/test/mailers/tiny_passport/reset_password_mailer_test.rb +10 -0
- data/test/models/concerns/tiny_passport/configable_test.rb +46 -0
- data/test/models/tiny_passport/account_test.rb +8 -0
- data/test/models/tiny_passport/avatar_test.rb +10 -0
- data/test/models/tiny_passport/login_email_test.rb +10 -0
- data/test/models/tiny_passport/login_record_test.rb +10 -0
- data/test/models/tiny_passport/oauth_bind_test.rb +10 -0
- data/test/models/tiny_passport/oauth_info_test.rb +10 -0
- data/test/models/tiny_passport/oauth_login_test.rb +10 -0
- data/test/models/tiny_passport/oauth_token_test.rb +10 -0
- data/test/support/helpers.rb +66 -0
- data/test/test_helper.rb +24 -0
- data/test/tiny_passport_test.rb +1 -0
- metadata +257 -69
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry:@valuei:@created_atf1390964231.656629:@expires_in0
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
file: MyString
|
5
|
+
file_content_type: MyString
|
6
|
+
file_size: 1
|
7
|
+
file_name: MyString
|
8
|
+
origin_file_name: MyString
|
9
|
+
status_value: 1
|
10
|
+
owner_type: MyString
|
11
|
+
owner_id: 1
|
12
|
+
account_id: 1
|
13
|
+
|
14
|
+
two:
|
15
|
+
file: MyString
|
16
|
+
file_content_type: MyString
|
17
|
+
file_size: 1
|
18
|
+
file_name: MyString
|
19
|
+
origin_file_name: MyString
|
20
|
+
status_value: 1
|
21
|
+
owner_type: MyString
|
22
|
+
owner_id: 1
|
23
|
+
account_id: 1
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
2
|
+
|
3
|
+
# This model initially had no columns defined. If you add columns to the
|
4
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
5
|
+
# below each fixture, per the syntax in the comments below
|
6
|
+
#
|
7
|
+
one:
|
8
|
+
value: MyString
|
9
|
+
confirmation_token: MyString
|
10
|
+
confirmed_at: 2013-11-05 18:42:34
|
11
|
+
confirmation_send_at: 2013-11-05 18:42:34
|
12
|
+
account_id: 1
|
13
|
+
deleted_at: 2013-11-05 18:42:34
|
14
|
+
status_value: 1
|
15
|
+
|
16
|
+
two:
|
17
|
+
value: MyString
|
18
|
+
confirmation_token: MyString
|
19
|
+
confirmed_at: 2013-11-05 18:42:34
|
20
|
+
confirmation_send_at: 2013-11-05 18:42:34
|
21
|
+
account_id: 1
|
22
|
+
deleted_at: 2013-11-05 18:42:34
|
23
|
+
status_value: 1
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
account_id: 1
|
5
|
+
ip: MyString
|
6
|
+
way_value: 1
|
7
|
+
remembered: false
|
8
|
+
encrypted_remember_token: MyString
|
9
|
+
remember_expires_at: 2013-11-05 18:44:15
|
10
|
+
|
11
|
+
two:
|
12
|
+
account_id: 1
|
13
|
+
ip: MyString
|
14
|
+
way_value: 1
|
15
|
+
remembered: false
|
16
|
+
encrypted_remember_token: MyString
|
17
|
+
remember_expires_at: 2013-11-05 18:44:15
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
oauth_token_id: 1
|
5
|
+
account_id: 1
|
6
|
+
status_value: 1
|
7
|
+
config_info_yaml: MyText
|
8
|
+
|
9
|
+
two:
|
10
|
+
oauth_token_id: 1
|
11
|
+
account_id: 1
|
12
|
+
status_value: 1
|
13
|
+
config_info_yaml: MyText
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
strategy_type_value: 1
|
5
|
+
strategy_id: 1
|
6
|
+
access_token: MyString
|
7
|
+
access_secret: MyString
|
8
|
+
expires_at: 2013-11-05 18:45:59
|
9
|
+
origin_avatar_url: MyString
|
10
|
+
name: MyString
|
11
|
+
avatar_id: 1
|
12
|
+
|
13
|
+
two:
|
14
|
+
strategy_type_value: 1
|
15
|
+
strategy_id: 1
|
16
|
+
access_token: MyString
|
17
|
+
access_secret: MyString
|
18
|
+
expires_at: 2013-11-05 18:45:59
|
19
|
+
origin_avatar_url: MyString
|
20
|
+
name: MyString
|
21
|
+
avatar_id: 1
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
2
|
+
|
3
|
+
one:
|
4
|
+
login_name: "loginname"
|
5
|
+
avatar_id: nil
|
6
|
+
encrypted_password: ""
|
7
|
+
password_salt: ""
|
8
|
+
register_way_value: 0
|
9
|
+
deleted_at: nil
|
10
|
+
login_records_count: 0
|
11
|
+
current_login_failed_count: 0
|
12
|
+
login_failed_count: 0
|
13
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module TinyPassport
|
5
|
+
module Oauth
|
6
|
+
class CallbackFormTest < ActiveSupport::TestCase
|
7
|
+
|
8
|
+
context "QQ Login Callback" do
|
9
|
+
setup do
|
10
|
+
end
|
11
|
+
|
12
|
+
teardown do
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
should "callback success" do
|
17
|
+
form_1 = oauth_callback_with_params('login', {})
|
18
|
+
assert form_1.success?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module TinyPassport
|
5
|
+
class RegistrationFormTest < ActiveSupport::TestCase
|
6
|
+
def generate_registration_registration_form_params params={}
|
7
|
+
@@generate_registration_registration_form_params_count ||= 0
|
8
|
+
@@generate_registration_registration_form_params_count += 1
|
9
|
+
count = @@generate_registration_registration_form_params_count
|
10
|
+
|
11
|
+
{
|
12
|
+
:login_name => "login_name_#{count}",
|
13
|
+
:login_email_value => "mail_#{count}@ruby1024.com",
|
14
|
+
:password => '123456',
|
15
|
+
:password_confirmation => '123456',
|
16
|
+
:agreement_terms => '1',
|
17
|
+
:created_ip => '127.0.0.1'
|
18
|
+
}.update(params)
|
19
|
+
end
|
20
|
+
|
21
|
+
context "validate" do
|
22
|
+
should 'submit success' do
|
23
|
+
@registration_form.submit(generate_registration_registration_form_params())
|
24
|
+
assert @registration_form.success?
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'password' do
|
28
|
+
should 'present' do
|
29
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
30
|
+
:password_confirmation => '',
|
31
|
+
:password => ''
|
32
|
+
))
|
33
|
+
assert_equal @registration_form.errors.to_hash, {:password => ["can't be blank"]}
|
34
|
+
|
35
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
36
|
+
:password_confirmation => '123456',
|
37
|
+
:password => ''
|
38
|
+
))
|
39
|
+
assert_equal @registration_form.errors.to_hash, {:password=>["can't be blank"], :password_confirmation=>["doesn't match Password"]}
|
40
|
+
end
|
41
|
+
|
42
|
+
should 'match the password_confirmation' do
|
43
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
44
|
+
:password_confirmation => '1234567',
|
45
|
+
:password => '123456'
|
46
|
+
))
|
47
|
+
assert_equal @registration_form.errors.to_hash, {:password_confirmation=>["doesn't match Password"]}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'login_email_value' do
|
52
|
+
should 'present' do
|
53
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
54
|
+
:login_email_value => ''
|
55
|
+
))
|
56
|
+
|
57
|
+
assert_equal @registration_form.errors[:login_email_value], ['is invalid']
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'created_ip' do
|
62
|
+
should 'present' do
|
63
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
64
|
+
:created_ip => ''
|
65
|
+
))
|
66
|
+
|
67
|
+
assert_equal @registration_form.errors[:created_ip], ["can't be blank"]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'login_name' do
|
72
|
+
should 'present' do
|
73
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
74
|
+
:login_name => ''
|
75
|
+
))
|
76
|
+
|
77
|
+
assert_equal @registration_form.errors[:login_name], ["can't be blank"]
|
78
|
+
end
|
79
|
+
|
80
|
+
should 'lengh' do
|
81
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
82
|
+
:login_name => 'ab'
|
83
|
+
))
|
84
|
+
assert_equal @registration_form.errors[:login_name], ["is too short (minimum is 3 characters)"]
|
85
|
+
|
86
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
87
|
+
:login_name => 'abcedfghijklmnopqrst'
|
88
|
+
))
|
89
|
+
assert_equal @registration_form.errors[:login_name], ["is too long (maximum is 18 characters)"]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'agreement_terms' do
|
94
|
+
should 'be agreed' do
|
95
|
+
@registration_form.submit(generate_registration_registration_form_params(
|
96
|
+
:agreement_terms => '0'
|
97
|
+
))
|
98
|
+
assert_equal @registration_form.errors[:agreement_terms], ["Please Agree with our agreement"]
|
99
|
+
|
100
|
+
@registration_form.submit(generate_registration_registration_form_params().except(:agreement_terms))
|
101
|
+
assert_equal @registration_form.errors[:agreement_terms], ["Please Agree with our agreement"]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
setup do
|
106
|
+
@registration_form = ::TinyPassport::RegistrationForm.new
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module TinyPassport
|
5
|
+
class SessionFormTest < ActiveSupport::TestCase
|
6
|
+
def generate_session_form_params params={}
|
7
|
+
@@generate_session_form_params_count ||= 0
|
8
|
+
@@generate_session_form_params_count += 1
|
9
|
+
count = @@generate_session_form_params_count
|
10
|
+
|
11
|
+
{
|
12
|
+
:input_value => "login_name#{count}",
|
13
|
+
:password => "password",
|
14
|
+
:remembered => '1',
|
15
|
+
:ip => '127.0.0.1'
|
16
|
+
}.update(params)
|
17
|
+
end
|
18
|
+
|
19
|
+
context '#submit' do
|
20
|
+
setup do
|
21
|
+
::TinyPassport::LoginEmail.last.status_active_verify!
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'fail' do
|
25
|
+
should 'when login_name error' do
|
26
|
+
@session_form.submit(generate_session_form_params(
|
27
|
+
:input_value => 'errorname',
|
28
|
+
:password => 'password'
|
29
|
+
))
|
30
|
+
assert_equal @session_form.errors.to_hash, {:input_value => ["login name not exists"]}
|
31
|
+
end
|
32
|
+
|
33
|
+
should 'when login_email_value error' do
|
34
|
+
@session_form.submit(generate_session_form_params(
|
35
|
+
:input_value => 'errorname@error.com',
|
36
|
+
:password => 'password'
|
37
|
+
))
|
38
|
+
assert_equal @session_form.errors.to_hash, {:input_value => ["email not exists"]}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'sucess' do
|
43
|
+
context 'remembered true' do
|
44
|
+
should 'ok' do
|
45
|
+
@session_form.submit(generate_session_form_params(
|
46
|
+
:input_value => 'login_name_1',
|
47
|
+
:password => 'password',
|
48
|
+
:remembered => true
|
49
|
+
))
|
50
|
+
assert @session_form.success?
|
51
|
+
|
52
|
+
login_record = @session_form.result[:login_record]
|
53
|
+
assert login_record.remembered
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when remembered false' do
|
58
|
+
should 'ok' do
|
59
|
+
@session_form.submit(generate_session_form_params(
|
60
|
+
:input_value => 'login_name_1',
|
61
|
+
:password => 'password',
|
62
|
+
:remembered => false
|
63
|
+
))
|
64
|
+
assert @session_form.success?
|
65
|
+
|
66
|
+
login_record = @session_form.result[:login_record]
|
67
|
+
assert_equal login_record.remembered, false
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
should 'when login name input' do
|
72
|
+
@session_form.submit(generate_session_form_params(
|
73
|
+
:input_value => 'login_name_1',
|
74
|
+
:password => 'password'
|
75
|
+
))
|
76
|
+
assert @session_form.success?
|
77
|
+
end
|
78
|
+
|
79
|
+
should 'when login email input' do
|
80
|
+
@session_form.submit(generate_session_form_params(
|
81
|
+
:input_value => 'mail_1@ruby1024.com',
|
82
|
+
:password => 'password'
|
83
|
+
))
|
84
|
+
assert @session_form.success?
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
context "validate" do
|
91
|
+
context 'input value' do
|
92
|
+
should 'present' do
|
93
|
+
@session_form.submit(generate_session_form_params(
|
94
|
+
:input_value => '',
|
95
|
+
:password => 'password'
|
96
|
+
))
|
97
|
+
assert_equal @session_form.errors.to_hash, {:input_value => ["can't be blank"]}
|
98
|
+
end
|
99
|
+
|
100
|
+
should 'when login email not actived' do
|
101
|
+
@session_form.submit(generate_session_form_params(
|
102
|
+
:input_value => 'mail_1@ruby1024.com',
|
103
|
+
:password => 'password'
|
104
|
+
))
|
105
|
+
assert_equal @session_form.errors.to_hash, {:input_value => ['email not active']}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context 'password' do
|
110
|
+
should 'present' do
|
111
|
+
@session_form.submit(generate_session_form_params(
|
112
|
+
:input_value => 'login_name_x',
|
113
|
+
:password => ''
|
114
|
+
))
|
115
|
+
assert_equal @session_form.errors.to_hash, {:password => ["can't be blank"]}
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
setup do
|
121
|
+
Rails.cache.clear
|
122
|
+
@registration_form = ::TinyPassport::RegistrationForm.new
|
123
|
+
|
124
|
+
register_params = {
|
125
|
+
:login_name => "login_name_1",
|
126
|
+
:login_email_value => "mail_1@ruby1024.com",
|
127
|
+
:password => 'password',
|
128
|
+
:password_confirmation => 'password',
|
129
|
+
:agreement_terms => '1',
|
130
|
+
:created_ip => '127.0.0.1'
|
131
|
+
}
|
132
|
+
|
133
|
+
@registration_form.submit(register_params)
|
134
|
+
|
135
|
+
@session_form = ::TinyPassport::SessionForm.new
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module TinyPassport
|
5
|
+
class UpdatePasswordFormTest < ActiveSupport::TestCase
|
6
|
+
def generate_update_password_form_params params={}
|
7
|
+
@@generate_update_password_form_params_count ||= 0
|
8
|
+
@@generate_update_password_form_params_count += 1
|
9
|
+
count = @@generate_update_password_form_params_count
|
10
|
+
|
11
|
+
# {
|
12
|
+
# :input_value => "login_name#{count}",
|
13
|
+
# :password => "password",
|
14
|
+
# :remembered => '1',
|
15
|
+
# :ip => '127.0.0.1'
|
16
|
+
# }.update(params)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module Concerns
|
5
|
+
module TinyPassport
|
6
|
+
|
7
|
+
class HoHoConfigAccount
|
8
|
+
attr_accessor :status_value
|
9
|
+
|
10
|
+
include ::TinySupport::Configable
|
11
|
+
|
12
|
+
def self.scope *args
|
13
|
+
end
|
14
|
+
|
15
|
+
self.tiny_support_config :status, [
|
16
|
+
{:key => 'default', :value => 0, :desc => "HelloDefault"},
|
17
|
+
{:key => 'init', :value => 1, :desc => "HelloInit"},
|
18
|
+
{:key => 'publish', :value => 2, :desc => "HelloPublish"},
|
19
|
+
{:key => 'block', :value => 3, :desc => "HelloBlock"},
|
20
|
+
{:key => 'deleted', :value => 4, :desc => "HelloDeleted"}
|
21
|
+
]
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
class ConfigableTest < ActiveSupport::TestCase
|
26
|
+
test "HoHoConfigAccount.status_config defined" do
|
27
|
+
assert defined?(HoHoConfigAccount.status_config)
|
28
|
+
|
29
|
+
a_account = HoHoConfigAccount.new
|
30
|
+
a_account.status_value = 1
|
31
|
+
assert_equal a_account.status.key, 'init'
|
32
|
+
assert a_account.status_key?('init')
|
33
|
+
assert_equal a_account.status_key?('publish'), false
|
34
|
+
assert_equal a_account.status_key?('block'), false
|
35
|
+
assert_equal a_account.status_key?('none'), false
|
36
|
+
|
37
|
+
b_account = HoHoConfigAccount.new
|
38
|
+
b_account.status_value = -1
|
39
|
+
assert_equal b_account.status.key, 'default'
|
40
|
+
assert_equal b_account.status.desc, 'HelloDefault'
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'active_support/test_case'
|
3
|
+
|
4
|
+
class ActiveSupport::TestCase
|
5
|
+
|
6
|
+
# 生成一个唯一的邮箱
|
7
|
+
def generate_unique_email
|
8
|
+
@@email_count ||= 0
|
9
|
+
@@email_count += 1
|
10
|
+
"test#{@@email_count}@example.com"
|
11
|
+
end
|
12
|
+
|
13
|
+
def generate_unique_login_name
|
14
|
+
@@login_name_count ||= 0
|
15
|
+
@@login_name_count += 1
|
16
|
+
"loginname#{@@login_name_count}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def oauth_callback_with_params(usage, params={})
|
20
|
+
@@oauth_callback_with_params_count ||= 0
|
21
|
+
@@oauth_callback_with_params_count += 1
|
22
|
+
|
23
|
+
count = @@oauth_callback_with_params_count
|
24
|
+
|
25
|
+
attrs = {
|
26
|
+
"provider" => "qq_connect",
|
27
|
+
"uid" => "51173C8FCF304708D299C1EE00A7B#{count}",
|
28
|
+
"info" => {
|
29
|
+
"nick_name" => "Happy#{count}",
|
30
|
+
"name" => "Happy#{count}",
|
31
|
+
"avatar" => "http://qzapp.qlogo.cn/qzapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/100",
|
32
|
+
"gender" => 1
|
33
|
+
},
|
34
|
+
"credentials" => {
|
35
|
+
"token" => "71A81CB1FCB726C791D985C5AA117338",
|
36
|
+
"refresh_token" => "A3F01B40632B2C39262FA5F02981BC0A",
|
37
|
+
"expires_at" => 1396189038,
|
38
|
+
"expires" => true
|
39
|
+
},
|
40
|
+
"extra" => {
|
41
|
+
"raw_info" => {
|
42
|
+
"ret" => 0,
|
43
|
+
"msg" => "",
|
44
|
+
"is_lost" => 0,
|
45
|
+
"nickname" => "Happy#{count}",
|
46
|
+
"gender" => "男",
|
47
|
+
"figureurl" => "http://qzapp.qlogo.cn/qzapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/30",
|
48
|
+
"figureurl_1" => "http://qzapp.qlogo.cn/qzapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/50",
|
49
|
+
"figureurl_2" => "http://qzapp.qlogo.cn/qzapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/100",
|
50
|
+
"figureurl_qq_1" => "http://q.qlogo.cn/qqapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/40",
|
51
|
+
"figureurl_qq_2" => "http://q.qlogo.cn/qqapp/100587827/51173C8FCF304708D299C1EE00A7BB6A/100",
|
52
|
+
"is_yellow_vip" => "0",
|
53
|
+
"vip" => "0",
|
54
|
+
"yellow_vip_level" => "0",
|
55
|
+
"level" => "0",
|
56
|
+
"is_yellow_year_vip" => "0"
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}.deep_merge(params)
|
60
|
+
|
61
|
+
form = ::TinyPassport::Oauth::CallbackForm.new
|
62
|
+
form.submit(usage, {:ip => '192.168.6.246'}, attrs)
|
63
|
+
form
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|