stormpath-sdk 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -0
- data/.ruby-gemset +0 -0
- data/.travis.yml +0 -0
- data/CHANGES.md +10 -0
- data/Gemfile +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/lib/stormpath-sdk.rb +7 -2
- data/lib/stormpath-sdk/api_key.rb +0 -0
- data/lib/stormpath-sdk/auth/authentication_result.rb +0 -0
- data/lib/stormpath-sdk/auth/basic_authenticator.rb +0 -0
- data/lib/stormpath-sdk/auth/basic_login_attempt.rb +0 -0
- data/lib/stormpath-sdk/auth/username_password_request.rb +0 -0
- data/lib/stormpath-sdk/cache/cache.rb +0 -0
- data/lib/stormpath-sdk/cache/cache_entry.rb +0 -0
- data/lib/stormpath-sdk/cache/cache_manager.rb +0 -0
- data/lib/stormpath-sdk/cache/cache_stats.rb +0 -0
- data/lib/stormpath-sdk/cache/disabled_cache_store.rb +0 -0
- data/lib/stormpath-sdk/cache/memory_store.rb +0 -0
- data/lib/stormpath-sdk/cache/redis_store.rb +0 -0
- data/lib/stormpath-sdk/client.rb +0 -0
- data/lib/stormpath-sdk/data_store.rb +0 -0
- data/lib/stormpath-sdk/error.rb +0 -0
- data/lib/stormpath-sdk/http/authc/sauthc1_signer.rb +0 -0
- data/lib/stormpath-sdk/http/http_client_request_executor.rb +0 -0
- data/lib/stormpath-sdk/http/request.rb +0 -0
- data/lib/stormpath-sdk/http/response.rb +0 -0
- data/lib/stormpath-sdk/http/utils.rb +0 -0
- data/lib/stormpath-sdk/id_site/id_site_result.rb +0 -0
- data/lib/stormpath-sdk/oauth/access_token_authentication_result.rb +0 -0
- data/lib/stormpath-sdk/oauth/authenticator.rb +11 -10
- data/lib/stormpath-sdk/oauth/error.rb +0 -0
- data/lib/stormpath-sdk/oauth/id_site_grant.rb +0 -0
- data/lib/stormpath-sdk/oauth/id_site_grant_request.rb +0 -0
- data/lib/stormpath-sdk/oauth/password_grant.rb +0 -0
- data/lib/stormpath-sdk/oauth/password_grant_request.rb +0 -0
- data/lib/stormpath-sdk/oauth/refresh_grant_request.rb +0 -0
- data/lib/stormpath-sdk/oauth/refresh_token.rb +0 -0
- data/lib/stormpath-sdk/oauth/stormpath_grant_request.rb +33 -0
- data/lib/stormpath-sdk/oauth/stormpath_token_grant.rb +16 -0
- data/lib/stormpath-sdk/oauth/verify_access_token.rb +0 -0
- data/lib/stormpath-sdk/oauth/verify_token.rb +0 -0
- data/lib/stormpath-sdk/provider/account_access.rb +0 -0
- data/lib/stormpath-sdk/provider/account_request.rb +0 -0
- data/lib/stormpath-sdk/provider/account_resolver.rb +0 -0
- data/lib/stormpath-sdk/provider/account_result.rb +0 -0
- data/lib/stormpath-sdk/provider/facebook/facebook_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/facebook/facebook_provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/github/github_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/github/github_provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/google/google_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/google/google_provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/linkedin/linkedin_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/linkedin/linkedin_provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/provider.rb +0 -0
- data/lib/stormpath-sdk/provider/provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/saml/saml_mapping_rules.rb +0 -0
- data/lib/stormpath-sdk/provider/saml/saml_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/saml/saml_provider_data.rb +0 -0
- data/lib/stormpath-sdk/provider/saml/saml_provider_metadata.rb +0 -0
- data/lib/stormpath-sdk/provider/stormpath/stormpath_provider.rb +0 -0
- data/lib/stormpath-sdk/provider/stormpath/stormpath_provider_data.rb +0 -0
- data/lib/stormpath-sdk/resource/access_token.rb +0 -0
- data/lib/stormpath-sdk/resource/account.rb +3 -2
- data/lib/stormpath-sdk/resource/account_creation_policy.rb +15 -0
- data/lib/stormpath-sdk/resource/account_membership.rb +0 -0
- data/lib/stormpath-sdk/resource/account_overrides.rb +0 -0
- data/lib/stormpath-sdk/resource/account_store.rb +0 -0
- data/lib/stormpath-sdk/resource/account_store_mapping.rb +0 -0
- data/lib/stormpath-sdk/resource/{account_status.rb → api_key.rb} +9 -9
- data/lib/stormpath-sdk/resource/application.rb +2 -2
- data/lib/stormpath-sdk/resource/associations.rb +2 -1
- data/lib/stormpath-sdk/resource/base.rb +0 -0
- data/lib/stormpath-sdk/resource/collection.rb +0 -0
- data/lib/stormpath-sdk/resource/custom_data.rb +0 -0
- data/lib/stormpath-sdk/resource/custom_data_hash_methods.rb +0 -0
- data/lib/stormpath-sdk/resource/custom_data_storage.rb +0 -0
- data/lib/stormpath-sdk/resource/directory.rb +3 -2
- data/lib/stormpath-sdk/resource/email_template.rb +7 -0
- data/lib/stormpath-sdk/resource/email_verification_token.rb +0 -0
- data/lib/stormpath-sdk/resource/error.rb +0 -0
- data/lib/stormpath-sdk/resource/expansion.rb +0 -0
- data/lib/stormpath-sdk/resource/group.rb +1 -2
- data/lib/stormpath-sdk/resource/group_membership.rb +0 -0
- data/lib/stormpath-sdk/resource/instance.rb +0 -0
- data/lib/stormpath-sdk/resource/oauth_policy.rb +0 -0
- data/lib/stormpath-sdk/resource/organization.rb +0 -0
- data/lib/stormpath-sdk/resource/organization_account_store_mapping.rb +0 -0
- data/lib/stormpath-sdk/resource/password_policy.rb +10 -0
- data/lib/stormpath-sdk/resource/password_reset_token.rb +0 -0
- data/lib/stormpath-sdk/resource/password_strength.rb +16 -0
- data/lib/stormpath-sdk/resource/refresh_token.rb +0 -0
- data/lib/stormpath-sdk/resource/tenant.rb +0 -0
- data/lib/stormpath-sdk/resource/utils.rb +0 -0
- data/lib/stormpath-sdk/resource/verification_email.rb +0 -0
- data/lib/stormpath-sdk/util/assert.rb +0 -0
- data/lib/stormpath-sdk/version.rb +1 -1
- data/spec/api_key_spec.rb +0 -0
- data/spec/auth/basic_authenticator_spec.rb +0 -0
- data/spec/auth/sauthc1_signer_spec.rb +0 -0
- data/spec/cache/cache_entry_spec.rb +0 -0
- data/spec/cache/cache_spec.rb +0 -0
- data/spec/cache/cache_stats_spec.rb +0 -0
- data/spec/client_spec.rb +1 -1
- data/spec/data_store_spec.rb +0 -0
- data/spec/fixtures/response/create_saml_directory.json +0 -0
- data/spec/fixtures/response/create_saml_directory_mapping_rules.json +0 -0
- data/spec/fixtures/response/get_saml_directory_provider.json +0 -0
- data/spec/fixtures/response/get_saml_directory_provider_metadata.json +0 -0
- data/spec/oauth/access_token_authentication_result_spec.rb +0 -0
- data/spec/provider/account_resolver_spec.rb +0 -0
- data/spec/provider/provider_spec.rb +0 -0
- data/spec/resource/account_creation_policy_spec.rb +61 -0
- data/spec/resource/account_store_mapping_spec.rb +0 -0
- data/spec/resource/account_store_spec.rb +0 -0
- data/spec/resource/api_key_spec.rb +56 -0
- data/spec/resource/application_spec.rb +26 -3
- data/spec/resource/base_spec.rb +0 -0
- data/spec/resource/collection_spec.rb +0 -0
- data/spec/resource/custom_data_spec.rb +0 -0
- data/spec/resource/directory_spec.rb +13 -4
- data/spec/resource/email_template_spec.rb +59 -0
- data/spec/resource/expansion_spec.rb +0 -0
- data/spec/resource/group_membership_spec.rb +0 -0
- data/spec/resource/group_spec.rb +0 -0
- data/spec/resource/organization_spec.rb +0 -0
- data/spec/resource/password_policy_spec.rb +58 -0
- data/spec/resource/password_strength_spec.rb +69 -0
- data/spec/resource/status_spec.rb +2 -16
- data/spec/resource/tenant_spec.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/support/custom_data_storage_behavior.rb +0 -0
- data/spec/support/mocked_provider_accounts.rb +0 -0
- data/spec/support/resource_factory.rb +0 -0
- data/spec/support/resource_matchers.rb +0 -0
- data/spec/support/test_cache_stores.rb +0 -0
- data/spec/support/test_request_executor.rb +0 -0
- data/stormpath-sdk.gemspec +0 -0
- data/support/api.rb +0 -0
- metadata +13 -3
- data/lib/stormpath-sdk/resource/status.rb +0 -39
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Stormpath
|
2
|
+
module Resource
|
3
|
+
class PasswordPolicy < Stormpath::Resource::Instance
|
4
|
+
prop_accessor :reset_token_ttl, :reset_email_status, :reset_success_email_status
|
5
|
+
has_one :strength, class_name: :passwordStrength
|
6
|
+
has_many :reset_email_templates, class_name: :emailTemplate
|
7
|
+
has_many :reset_success_email_templates, class_name: :emailTemplate
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Stormpath
|
2
|
+
module Resource
|
3
|
+
class PasswordStrength < Stormpath::Resource::Instance
|
4
|
+
prop_accessor(
|
5
|
+
:min_length,
|
6
|
+
:max_length,
|
7
|
+
:min_lower_case,
|
8
|
+
:min_upper_case,
|
9
|
+
:min_numeric,
|
10
|
+
:min_symbol,
|
11
|
+
:min_diacritic,
|
12
|
+
:prevent_reuse
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/api_key_spec.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/cache/cache_spec.rb
CHANGED
File without changes
|
File without changes
|
data/spec/client_spec.rb
CHANGED
@@ -648,7 +648,7 @@ properties
|
|
648
648
|
|
649
649
|
context 'by an explicit attribute' do
|
650
650
|
let(:search_results) do
|
651
|
-
test_api_client.organizations.search(name:
|
651
|
+
test_api_client.organizations.search(name: organization_name)
|
652
652
|
end
|
653
653
|
|
654
654
|
it 'returns the application' do
|
data/spec/data_store_spec.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stormpath::Resource::AccountCreationPolicy, :vcr do
|
4
|
+
describe "instances should respond to attribute property methods" do
|
5
|
+
let(:application) { test_application }
|
6
|
+
let(:directory) { test_api_client.directories.create(name: random_directory_name) }
|
7
|
+
let(:account_creation_policy) { directory.account_creation_policy }
|
8
|
+
|
9
|
+
before do
|
10
|
+
test_api_client.account_store_mappings.create(
|
11
|
+
application: application,
|
12
|
+
account_store: directory,
|
13
|
+
list_index: 1,
|
14
|
+
is_default_account_store: false,
|
15
|
+
is_default_group_store: false
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
after { directory.delete }
|
20
|
+
|
21
|
+
it do
|
22
|
+
expect(account_creation_policy).to be_a Stormpath::Resource::AccountCreationPolicy
|
23
|
+
|
24
|
+
[:welcome_email_status,
|
25
|
+
:verification_email_status,
|
26
|
+
:verification_success_email_status].each do |property_accessor|
|
27
|
+
expect(account_creation_policy).to respond_to(property_accessor)
|
28
|
+
expect(account_creation_policy).to respond_to("#{property_accessor}=")
|
29
|
+
end
|
30
|
+
|
31
|
+
expect(account_creation_policy.verification_email_templates).to be_a Stormpath::Resource::Collection
|
32
|
+
expect(account_creation_policy.verification_success_email_templates).to be_a Stormpath::Resource::Collection
|
33
|
+
expect(account_creation_policy.welcome_email_templates).to be_a Stormpath::Resource::Collection
|
34
|
+
|
35
|
+
expect(account_creation_policy.verification_email_templates.first).to be_a Stormpath::Resource::EmailTemplate
|
36
|
+
expect(account_creation_policy.verification_success_email_templates.first).to be_a Stormpath::Resource::EmailTemplate
|
37
|
+
expect(account_creation_policy.welcome_email_templates.first).to be_a Stormpath::Resource::EmailTemplate
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'can change welcome_email_status' do
|
41
|
+
expect(directory.account_creation_policy.welcome_email_status).to eq('DISABLED')
|
42
|
+
account_creation_policy.welcome_email_status = 'ENABLED'
|
43
|
+
account_creation_policy.save
|
44
|
+
expect(directory.account_creation_policy.welcome_email_status).to eq('ENABLED')
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'can change verification_email_status' do
|
48
|
+
expect(directory.account_creation_policy.verification_email_status).to eq('DISABLED')
|
49
|
+
account_creation_policy.verification_email_status = 'ENABLED'
|
50
|
+
account_creation_policy.save
|
51
|
+
expect(directory.account_creation_policy.verification_email_status).to eq('ENABLED')
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'can change verification_success_email_status' do
|
55
|
+
expect(directory.account_creation_policy.verification_success_email_status).to eq('DISABLED')
|
56
|
+
account_creation_policy.verification_success_email_status = 'ENABLED'
|
57
|
+
account_creation_policy.save
|
58
|
+
expect(directory.account_creation_policy.verification_success_email_status).to eq('ENABLED')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stormpath::Resource::ApiKey, :vcr do
|
4
|
+
let(:application) { test_application }
|
5
|
+
let(:tenant) { application.tenant }
|
6
|
+
|
7
|
+
let(:account) do
|
8
|
+
application.accounts.create(
|
9
|
+
email: 'test@example.com',
|
10
|
+
given_name: 'Ruby SDK',
|
11
|
+
password: 'P@$$w0rd',
|
12
|
+
surname: 'SDK'
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:api_key) { account.api_keys.create({}) }
|
17
|
+
|
18
|
+
after { account.delete }
|
19
|
+
|
20
|
+
describe "instances should respond to attribute property methods" do
|
21
|
+
it do
|
22
|
+
[:name, :description, :status].each do |property_accessor|
|
23
|
+
expect(api_key).to respond_to(property_accessor)
|
24
|
+
expect(api_key).to respond_to("#{property_accessor}=")
|
25
|
+
end
|
26
|
+
|
27
|
+
[:id, :secret].each do |property_getter|
|
28
|
+
expect(api_key).to respond_to(property_getter)
|
29
|
+
expect(api_key.send property_getter).to be_a String
|
30
|
+
end
|
31
|
+
|
32
|
+
expect(api_key.tenant).to be_a Stormpath::Resource::Tenant
|
33
|
+
expect(api_key.account).to be_a Stormpath::Resource::Account
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'api_key_associations' do
|
38
|
+
it 'should belong_to account' do
|
39
|
+
expect(api_key.account).to eq(account)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should belong_to tenant' do
|
43
|
+
expect(api_key.tenant).to eq(tenant)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'apps can fetch api keys' do
|
47
|
+
fetched_api_key = application.api_keys.search(id: api_key.id).first
|
48
|
+
expect(fetched_api_key).to eq(api_key)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'accounts can fetch api keys' do
|
52
|
+
api_key
|
53
|
+
expect(account.api_keys.count).to eq(1)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -1037,10 +1037,9 @@ describe Stormpath::Resource::Application, :vcr do
|
|
1037
1037
|
let(:account_data) { build_account }
|
1038
1038
|
let(:password_grant_request) { Stormpath::Oauth::PasswordGrantRequest.new account_data[:email], account_data[:password] }
|
1039
1039
|
let(:aquire_token) { application.authenticate_oauth(password_grant_request) }
|
1040
|
+
let(:account) { application.accounts.create account_data }
|
1040
1041
|
|
1041
|
-
before
|
1042
|
-
application.accounts.create account_data
|
1043
|
-
end
|
1042
|
+
before { account }
|
1044
1043
|
|
1045
1044
|
context 'generate access token' do
|
1046
1045
|
let(:password_grant_request) { Stormpath::Oauth::PasswordGrantRequest.new account_data[:email], account_data[:password] }
|
@@ -1059,6 +1058,30 @@ describe Stormpath::Resource::Application, :vcr do
|
|
1059
1058
|
end
|
1060
1059
|
end
|
1061
1060
|
|
1061
|
+
context 'generate access token from stormpath_request' do
|
1062
|
+
let(:stormpath_grant_request) do
|
1063
|
+
Stormpath::Oauth::StormpathGrantRequest.new(
|
1064
|
+
account,
|
1065
|
+
application,
|
1066
|
+
test_api_client.data_store.api_key
|
1067
|
+
)
|
1068
|
+
end
|
1069
|
+
|
1070
|
+
let(:authenticate_oauth) { application.authenticate_oauth(stormpath_grant_request) }
|
1071
|
+
|
1072
|
+
it 'should return access token response' do
|
1073
|
+
expect(authenticate_oauth).to be_kind_of(Stormpath::Oauth::AccessTokenAuthenticationResult)
|
1074
|
+
end
|
1075
|
+
|
1076
|
+
it 'response should contain token data' do
|
1077
|
+
expect(authenticate_oauth.access_token).not_to be_empty
|
1078
|
+
expect(authenticate_oauth.refresh_token).not_to be_empty
|
1079
|
+
expect(authenticate_oauth.token_type).not_to be_empty
|
1080
|
+
expect(authenticate_oauth.expires_in).not_to be_nil
|
1081
|
+
expect(authenticate_oauth.stormpath_access_token_href).not_to be_empty
|
1082
|
+
end
|
1083
|
+
end
|
1084
|
+
|
1062
1085
|
context 'exchange id site token for access_token with invalid jwt' do
|
1063
1086
|
let(:invalid_jwt_token) { 'invalid_token' }
|
1064
1087
|
|
data/spec/resource/base_spec.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
@@ -87,6 +87,11 @@ describe Stormpath::Resource::Directory, :vcr do
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
+
context '#password_policy' do
|
91
|
+
it 'should be able to fetch the password policy' do
|
92
|
+
expect(directory.password_policy).to be_kind_of(Stormpath::Resource::PasswordPolicy)
|
93
|
+
end
|
94
|
+
end
|
90
95
|
end
|
91
96
|
|
92
97
|
describe '#create_account' do
|
@@ -235,9 +240,11 @@ describe Stormpath::Resource::Directory, :vcr do
|
|
235
240
|
end
|
236
241
|
|
237
242
|
context 'with account data as hash' do
|
243
|
+
let(:account_email) { random_email }
|
244
|
+
|
238
245
|
let(:created_account_with_hash) do
|
239
246
|
directory.create_account({
|
240
|
-
email:
|
247
|
+
email: account_email,
|
241
248
|
given_name: 'Ruby SDK',
|
242
249
|
password: 'P@$$w0rd',
|
243
250
|
surname: 'SDK',
|
@@ -250,7 +257,7 @@ describe Stormpath::Resource::Directory, :vcr do
|
|
250
257
|
end
|
251
258
|
|
252
259
|
it 'creates an account with status ENABLED' do
|
253
|
-
expect(created_account_with_hash.email).to eq(
|
260
|
+
expect(created_account_with_hash.email).to eq(account_email)
|
254
261
|
expect(created_account_with_hash.given_name).to eq('Ruby SDK')
|
255
262
|
expect(created_account_with_hash.surname).to eq('SDK')
|
256
263
|
expect(created_account_with_hash.status).to eq("ENABLED")
|
@@ -260,7 +267,9 @@ describe Stormpath::Resource::Directory, :vcr do
|
|
260
267
|
end
|
261
268
|
|
262
269
|
describe '#create_directory_with_custom_data' do
|
263
|
-
let(:
|
270
|
+
let(:directory_name) { random_directory_name }
|
271
|
+
|
272
|
+
let(:directory) { test_api_client.directories.create name: directory_name, description: 'description_for_some_test_directory' }
|
264
273
|
|
265
274
|
after do
|
266
275
|
directory.delete if directory
|
@@ -270,7 +279,7 @@ describe Stormpath::Resource::Directory, :vcr do
|
|
270
279
|
directory.custom_data["category"] = "classified"
|
271
280
|
|
272
281
|
directory.save
|
273
|
-
expect(directory.name).to eq(
|
282
|
+
expect(directory.name).to eq(directory_name)
|
274
283
|
expect(directory.description).to eq('description_for_some_test_directory')
|
275
284
|
expect(directory.custom_data["category"]).to eq("classified")
|
276
285
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stormpath::Resource::EmailTemplate, :vcr do
|
4
|
+
describe "instances should respond to attribute property methods" do
|
5
|
+
let(:application) { test_application }
|
6
|
+
let(:directory) { test_api_client.directories.create(name: random_directory_name) }
|
7
|
+
let(:password_policy) { directory.password_policy }
|
8
|
+
let(:reset_email_template) { password_policy.reset_email_templates.first }
|
9
|
+
|
10
|
+
before do
|
11
|
+
test_api_client.account_store_mappings.create(
|
12
|
+
application: application,
|
13
|
+
account_store: directory,
|
14
|
+
list_index: 1,
|
15
|
+
is_default_account_store: false,
|
16
|
+
is_default_group_store: false
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
after { directory.delete }
|
21
|
+
|
22
|
+
it do
|
23
|
+
expect(reset_email_template).to be_a Stormpath::Resource::EmailTemplate
|
24
|
+
|
25
|
+
[:name,
|
26
|
+
:description,
|
27
|
+
:subject,
|
28
|
+
:from_email_address,
|
29
|
+
:text_body,
|
30
|
+
:html_body,
|
31
|
+
:mime_type].each do |property_accessor|
|
32
|
+
expect(reset_email_template).to respond_to(property_accessor)
|
33
|
+
expect(reset_email_template).to respond_to("#{property_accessor}=")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'can change attributes' do
|
38
|
+
reset_email_template.name = "Default Password Reset Template"
|
39
|
+
reset_email_template.description = "This is the password reset email template"
|
40
|
+
reset_email_template.subject = "Please reset your password"
|
41
|
+
reset_email_template.from_email_address = "email@stormpath.com"
|
42
|
+
reset_email_template.text_body = "You forgot your password! ${sptoken}"
|
43
|
+
reset_email_template.html_body = "<p> You forgot your password! </p> ${sptoken}"
|
44
|
+
reset_email_template.mime_type = "text/plain"
|
45
|
+
|
46
|
+
reset_email_template.save
|
47
|
+
|
48
|
+
reloaded_reset_email_template = password_policy.reset_email_templates.first
|
49
|
+
|
50
|
+
expect(reloaded_reset_email_template.name).to eq("Default Password Reset Template")
|
51
|
+
expect(reloaded_reset_email_template.description).to eq("This is the password reset email template")
|
52
|
+
expect(reloaded_reset_email_template.subject).to eq("Please reset your password")
|
53
|
+
expect(reloaded_reset_email_template.from_email_address).to eq("email@stormpath.com")
|
54
|
+
expect(reloaded_reset_email_template.text_body).to eq("You forgot your password! ${sptoken}")
|
55
|
+
expect(reloaded_reset_email_template.html_body).to eq("<p> You forgot your password! </p> ${sptoken}")
|
56
|
+
expect(reloaded_reset_email_template.mime_type).to eq("text/plain")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
File without changes
|
File without changes
|
data/spec/resource/group_spec.rb
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Stormpath::Resource::PasswordPolicy, :vcr do
|
4
|
+
describe "instances should respond to attribute property methods" do
|
5
|
+
let(:application) { test_application }
|
6
|
+
let(:directory) { test_api_client.directories.create(name: random_directory_name) }
|
7
|
+
let(:password_policy) { directory.password_policy }
|
8
|
+
|
9
|
+
before do
|
10
|
+
test_api_client.account_store_mappings.create(
|
11
|
+
application: application,
|
12
|
+
account_store: directory,
|
13
|
+
list_index: 1,
|
14
|
+
is_default_account_store: false,
|
15
|
+
is_default_group_store: false
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
after { directory.delete }
|
20
|
+
|
21
|
+
it do
|
22
|
+
expect(password_policy).to be_a Stormpath::Resource::PasswordPolicy
|
23
|
+
|
24
|
+
[:reset_token_ttl, :reset_email_status, :reset_success_email_status].each do |property_accessor|
|
25
|
+
expect(password_policy).to respond_to(property_accessor)
|
26
|
+
expect(password_policy).to respond_to("#{property_accessor}=")
|
27
|
+
end
|
28
|
+
|
29
|
+
expect(password_policy.strength).to be_a Stormpath::Resource::PasswordStrength
|
30
|
+
expect(password_policy.reset_email_templates).to be_a Stormpath::Resource::Collection
|
31
|
+
expect(password_policy.reset_success_email_templates).to be_a Stormpath::Resource::Collection
|
32
|
+
|
33
|
+
expect(password_policy.reset_email_templates.first).to be_a Stormpath::Resource::EmailTemplate
|
34
|
+
expect(password_policy.reset_success_email_templates.first).to be_a Stormpath::Resource::EmailTemplate
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'can change reset_token_ttl' do
|
38
|
+
expect(directory.password_policy.reset_token_ttl).to eq(24)
|
39
|
+
password_policy.reset_token_ttl = 10
|
40
|
+
password_policy.save
|
41
|
+
expect(directory.password_policy.reset_token_ttl).to eq(10)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'can change reset_email_status' do
|
45
|
+
expect(directory.password_policy.reset_email_status).to eq("ENABLED")
|
46
|
+
password_policy.reset_email_status = "DISABLED"
|
47
|
+
password_policy.save
|
48
|
+
expect(directory.password_policy.reset_email_status).to eq("DISABLED")
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'can change reset_success_email_status' do
|
52
|
+
expect(directory.password_policy.reset_success_email_status).to eq("ENABLED")
|
53
|
+
password_policy.reset_success_email_status = "DISABLED"
|
54
|
+
password_policy.save
|
55
|
+
expect(directory.password_policy.reset_success_email_status).to eq("DISABLED")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|