From 9156f1354f404c569e7fd337cff0171f6f43842e Mon Sep 17 00:00:00 2001 From: Aya Jaff Date: Wed, 12 Aug 2015 15:18:34 +0200 Subject: Added an 'invite code' to all the tests for the sign-up form so we have a valid user for the tests again --- test/integration/api/srp_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/integration') diff --git a/test/integration/api/srp_test.rb b/test/integration/api/srp_test.rb index fbef47e..ea06cde 100644 --- a/test/integration/api/srp_test.rb +++ b/test/integration/api/srp_test.rb @@ -32,10 +32,10 @@ class SrpTest < RackTest attr_reader :server_auth - def register_user(login = "integration_test", password = 'srp, verify me!') + def register_user(login = "integration_test", password = 'srp, verify me!', invite_code = "testcode") cleanup_user(login) post 'http://api.lvh.me:3000/1/users.json', - user_params(login: login, password: password) + user_params(login: login, password: password, invite_code: invite_code) assert(@user = User.find_by_login(login), 'user should have been created: %s' % last_response_errors) @login = login @password = password -- cgit v1.2.3 From 35494972411d4649ed8e81e24b6ec3f8734f5529 Mon Sep 17 00:00:00 2001 From: ankonym Date: Wed, 19 Aug 2015 13:58:02 +0200 Subject: Remove change password browser test Remove the change password test because the change password functionality is currently unused - however, it breaks with the new invite code field in the signup form. --- test/integration/browser/account_test.rb | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'test/integration') diff --git a/test/integration/browser/account_test.rb b/test/integration/browser/account_test.rb index aea5406..34eb72e 100644 --- a/test/integration/browser/account_test.rb +++ b/test/integration/browser/account_test.rb @@ -81,21 +81,6 @@ class AccountTest < BrowserIntegrationTest end end - test "change password" do - with_config user_actions: ['change_password'] do - login - click_on "Account Settings" - within('#update_login_and_password') do - fill_in 'Password', with: "other password" - fill_in 'Password confirmation', with: "other password" - click_on 'Save' - end - click_on 'Log Out' - attempt_login(@user.login, "other password") - assert page.has_content?("Welcome #{@user.login}") - end - end - test "change pgp key" do with_config user_actions: ['change_pgp_key'] do pgp_key = FactoryGirl.build :pgp_key -- cgit v1.2.3 From c48e921c101d49bf68fa1af489b8012517b1a105 Mon Sep 17 00:00:00 2001 From: ankonym Date: Tue, 1 Sep 2015 10:48:25 +0200 Subject: Fix several test failures by stubbing invite code validation --- test/integration/browser/account_test.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/integration') diff --git a/test/integration/browser/account_test.rb b/test/integration/browser/account_test.rb index 34eb72e..6ab9eb2 100644 --- a/test/integration/browser/account_test.rb +++ b/test/integration/browser/account_test.rb @@ -47,6 +47,7 @@ class AccountTest < BrowserIntegrationTest test "account destruction" do username, password = submit_signup + click_on I18n.t('account_settings') click_on I18n.t('destroy_my_account') assert page.has_content?(I18n.t('account_destroyed')) @@ -102,6 +103,8 @@ class AccountTest < BrowserIntegrationTest # trying to seed an invalid A for srp login test "detects attempt to circumvent SRP" do + InviteCodeValidator.any_instance.stubs(:validate) + user = FactoryGirl.create :user visit '/login' fill_in 'Username', with: user.login -- cgit v1.2.3 From 2f7d085c5747a1a68afc0d854fa087ffbb46f8e7 Mon Sep 17 00:00:00 2001 From: ankonym Date: Wed, 2 Sep 2015 17:01:16 +0200 Subject: Fix the remaining failures/errors in our tests Handing freshly generated invite codes to Factory Girl to make the tests pass --- test/integration/api/cert_test.rb | 1 + test/integration/api/smtp_cert_test.rb | 12 +++++++++--- test/integration/api/srp_test.rb | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) (limited to 'test/integration') diff --git a/test/integration/api/cert_test.rb b/test/integration/api/cert_test.rb index 118fb9f..772901d 100644 --- a/test/integration/api/cert_test.rb +++ b/test/integration/api/cert_test.rb @@ -2,6 +2,7 @@ require 'test_helper' class CertTest < ApiIntegrationTest + test "retrieve eip cert" do login get '/1/cert', {}, RACK_ENV diff --git a/test/integration/api/smtp_cert_test.rb b/test/integration/api/smtp_cert_test.rb index 2f50ef3..681d509 100644 --- a/test/integration/api/smtp_cert_test.rb +++ b/test/integration/api/smtp_cert_test.rb @@ -3,8 +3,13 @@ require 'openssl' class SmtpCertTest < ApiIntegrationTest + setup do + @testcode = InviteCode.new + @testcode.save! + end + test "retrieve smtp cert" do - @user = FactoryGirl.create :user, effective_service_level_code: 2 + @user = FactoryGirl.create :user, effective_service_level_code: 2, :invite_code => @testcode.invite_code login post '/1/smtp_cert', {}, RACK_ENV assert_text_response @@ -15,7 +20,7 @@ class SmtpCertTest < ApiIntegrationTest end test "cert and key" do - @user = FactoryGirl.create :user, effective_service_level_code: 2 + @user = FactoryGirl.create :user, effective_service_level_code: 2, :invite_code => @testcode.invite_code login post '/1/smtp_cert', {}, RACK_ENV assert_text_response @@ -27,7 +32,7 @@ class SmtpCertTest < ApiIntegrationTest end test "fingerprint is stored with identity" do - @user = FactoryGirl.create :user, effective_service_level_code: 2 + @user = FactoryGirl.create :user, effective_service_level_code: 2, :invite_code => @testcode.invite_code login post '/1/smtp_cert', {}, RACK_ENV assert_text_response @@ -41,6 +46,7 @@ class SmtpCertTest < ApiIntegrationTest end test "fetching smtp certs requires email account" do + login post '/1/smtp_cert', {}, RACK_ENV assert_access_denied diff --git a/test/integration/api/srp_test.rb b/test/integration/api/srp_test.rb index ea06cde..463abcd 100644 --- a/test/integration/api/srp_test.rb +++ b/test/integration/api/srp_test.rb @@ -1,5 +1,10 @@ class SrpTest < RackTest + setup do + @testcode = InviteCode.new + @testcode.save! + end + teardown do if @user cleanup_user @@ -32,7 +37,7 @@ class SrpTest < RackTest attr_reader :server_auth - def register_user(login = "integration_test", password = 'srp, verify me!', invite_code = "testcode") + def register_user(login = "integration_test", password = 'srp, verify me!', invite_code = @testcode.invite_code) cleanup_user(login) post 'http://api.lvh.me:3000/1/users.json', user_params(login: login, password: password, invite_code: invite_code) -- cgit v1.2.3 From 9adbde13619de8b2c300056b062d12f0961cb710 Mon Sep 17 00:00:00 2001 From: ankonym Date: Mon, 21 Sep 2015 18:34:04 +0200 Subject: Make invite code configurable Through the config param 'invite_required', providers can decide whether users need to provide an invite code upon signup. The default setting is false. --- test/integration/browser/account_test.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'test/integration') diff --git a/test/integration/browser/account_test.rb b/test/integration/browser/account_test.rb index 6ab9eb2..cbe7ba9 100644 --- a/test/integration/browser/account_test.rb +++ b/test/integration/browser/account_test.rb @@ -6,7 +6,7 @@ class AccountTest < BrowserIntegrationTest Identity.destroy_all_disabled end - test "signup successfully" do + test "signup successfully when invited" do username, password = submit_signup assert page.has_content?("Welcome #{username}") click_on 'Log Out' @@ -16,6 +16,22 @@ class AccountTest < BrowserIntegrationTest user.account.destroy end + test "signup successfully without invitation" do + with_config invite_required: false do + + username ||= "test_#{SecureRandom.urlsafe_base64}".downcase + password ||= SecureRandom.base64 + + visit '/users/new' + fill_in 'Username', with: username + fill_in 'Password', with: password + fill_in 'Password confirmation', with: password + click_on 'Sign Up' + + assert page.has_content?("Welcome #{username}") + end + end + test "signup with username ending in dot json" do username = Faker::Internet.user_name + '.json' submit_signup username -- cgit v1.2.3