[ARVADOS] updated: ffabe045231d83faef9a908259fb0919f0d5cc0e
git at public.curoverse.com
git at public.curoverse.com
Mon Aug 25 12:04:31 EDT 2014
Summary of changes:
.../test/integration/application_layout_test.rb | 86 ++-----------
...ication_layout_test.rb => user_profile_test.rb} | 136 ++-------------------
sdk/python/arvados/commands/put.py | 8 +-
services/api/script/crunch-dispatch.rb | 27 +++-
4 files changed, 47 insertions(+), 210 deletions(-)
copy apps/workbench/test/integration/{application_layout_test.rb => user_profile_test.rb} (50%)
via ffabe045231d83faef9a908259fb0919f0d5cc0e (commit)
via 4265203e2781e12d8cbc965a067f45f13d2b8492 (commit)
via 14f130e6be39b3f9a0ff8f2e82f0799ed894f38c (commit)
via dac7b05f1c32143069d20378a895171e978033cc (commit)
via 245a1c2e6a63ed119eee2605512f99daa3cf722a (commit)
via 952db4ab31879dc464068b0e18a4fb0a29dde91c (commit)
via c685ee1c4445712da0b135206b4e032b3af21b9b (commit)
via a0b0947b0ccf23d3e8d7d9e3f7dd41813bf2ee41 (commit)
from d0c85cb89af65eff3e629fa3d475a289e289cff7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit ffabe045231d83faef9a908259fb0919f0d5cc0e
Merge: 4265203 14f130e
Author: radhika <radhika at curoverse.com>
Date: Mon Aug 25 12:04:20 2014 -0400
Merge branch 'master' into 3112-report-bug
commit 4265203e2781e12d8cbc965a067f45f13d2b8492
Author: radhika <radhika at curoverse.com>
Date: Mon Aug 25 12:02:57 2014 -0400
3112: Move profile testing out of application_layout_test.rb into it's own file for better testability.
diff --git a/apps/workbench/test/integration/application_layout_test.rb b/apps/workbench/test/integration/application_layout_test.rb
index 5ce850d..a2a3055 100644
--- a/apps/workbench/test/integration/application_layout_test.rb
+++ b/apps/workbench/test/integration/application_layout_test.rb
@@ -7,15 +7,9 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
headless = Headless.new
headless.start
Capybara.current_driver = :selenium
-
- @user_profile_form_fields = Rails.configuration.user_profile_form_fields
- end
-
- teardown do
- Rails.configuration.user_profile_form_fields = @user_profile_form_fields
end
- def verify_homepage_with_profile user, invited, has_profile
+ def verify_homepage user, invited, has_profile
profile_config = Rails.configuration.user_profile_form_fields
if !user
@@ -23,18 +17,17 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
assert page.has_text?('The "Log in" button below will show you a Google sign-in page'), 'Not found text - google sign in page'
assert page.has_no_text?('My projects'), 'Found text - My projects'
assert page.has_link?("Log in to #{Rails.configuration.site_name}"), 'Not found text - log in to'
- elsif profile_config && !has_profile && user['is_active']
- add_profile user
elsif user['is_active']
- assert page.has_text?('My projects'), 'Not found text - My projects'
- assert page.has_text?('Projects shared with me'), 'Not found text - Project shared with me'
- assert page.has_no_text?('Save profile'), 'Found text - Save profile'
+ if profile_config && !has_profile
+ assert page.has_text?('Save profile'), 'No text - Save profile'
+ else
+ assert page.has_text?('My projects'), 'Not found text - My projects'
+ assert page.has_text?('Projects shared with me'), 'Not found text - Project shared with me'
+ end
elsif invited
assert page.has_text?('Please check the box below to indicate that you have read and accepted the user agreement'), 'Not found text - Please check the box below . . .'
- assert page.has_no_text?('Save profile'), 'Found text - Save profile'
else
assert page.has_text?('Your account is inactive'), 'Not found text - Your account is inactive'
- assert page.has_no_text?('Save profile'), 'Found text - Save profile'
end
within('.navbar-fixed-top') do
@@ -160,54 +153,6 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
end
end
- # Check manage profile page and add missing profile to the user
- def add_profile user
- assert page.has_no_text?('My projects'), 'Found text - My projects'
- assert page.has_no_text?('Projects shared with me'), 'Found text - Projects shared with me'
-
- assert page.has_text?('Profile'), 'No text - Profile'
- assert page.has_text?('First name'), 'No text - First name'
- assert page.has_text?('Last name'), 'No text - Last name'
- assert page.has_text?('Identity URL'), 'No text - Identity URL'
- assert page.has_text?('Email'), 'No text - Email'
- assert page.has_text?(user['email']), 'No text - user email'
-
- # Using the default profile which has message and one required field
-
- # Save profile without filling in the required field. Expect to be back in this profile page again
- click_button "Save profile"
- assert page.has_text?('Profile'), 'No text - Profile'
- assert page.has_text?('First name'), 'No text - First name'
- assert page.has_text?('Last name'), 'No text - Last name'
- assert page.has_text?('Save profile'), 'No text - Save profile'
-
- # This time fill in required field and then save. Expect to go to requested page after that.
- profile_message = Rails.configuration.user_profile_form_message
- required_field_title = ''
- required_field_key = ''
- profile_config = Rails.configuration.user_profile_form_fields
- profile_config.andand.each do |entry|
- if entry['required']
- required_field_key = entry['key']
- required_field_title = entry['form_field_title']
- end
- end
-
- assert page.has_text? profile_message.gsub(/<.*?>/,'')
- assert page.has_text?(required_field_title), 'No text - configured required field title'
-
- page.find_field('user[prefs][:profile][:'+required_field_key+']').set 'value to fill required field'
-
- click_button "Save profile"
- # profile saved and in profile page now with success
- assert page.has_text?('Thank you for filling in your profile'), 'No text - Thank you for filling'
- click_link 'Back to work!'
-
- # profile saved and in home page now
- assert page.has_text?('My projects'), 'No text - My projects'
- assert page.has_text?('Projects shared with me'), 'No text - Projects shared with me'
- end
-
[
[nil, nil, false, false],
['inactive', api_fixture('users')['inactive'], true, false],
@@ -218,27 +163,14 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
['active_no_prefs_profile', api_fixture('users')['active_no_prefs_profile'], true, false],
].each do |token, user, invited, has_profile|
- test "visit home page when profile is configured for user #{token}" do
- # Our test config enabled profile by default. So, no need to update config
- if !token
- visit ('/')
- else
- visit page_with_token(token)
- end
-
- verify_homepage_with_profile user, invited, has_profile
- end
-
- test "visit home page when profile not configured for user #{token}" do
- Rails.configuration.user_profile_form_fields = false
-
+ test "visit home page for user #{token}" do
if !token
visit ('/')
else
visit page_with_token(token)
end
- verify_homepage_with_profile user, invited, has_profile
+ verify_homepage user, invited, has_profile
end
test "check help for user #{token}" do
diff --git a/apps/workbench/test/integration/application_layout_test.rb b/apps/workbench/test/integration/user_profile_test.rb
similarity index 50%
copy from apps/workbench/test/integration/application_layout_test.rb
copy to apps/workbench/test/integration/user_profile_test.rb
index 5ce850d..edee064 100644
--- a/apps/workbench/test/integration/application_layout_test.rb
+++ b/apps/workbench/test/integration/user_profile_test.rb
@@ -20,15 +20,14 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
if !user
assert page.has_text?('Please log in'), 'Not found text - Please log in'
- assert page.has_text?('The "Log in" button below will show you a Google sign-in page'), 'Not found text - google sign in page'
- assert page.has_no_text?('My projects'), 'Found text - My projects'
- assert page.has_link?("Log in to #{Rails.configuration.site_name}"), 'Not found text - log in to'
- elsif profile_config && !has_profile && user['is_active']
- add_profile user
elsif user['is_active']
- assert page.has_text?('My projects'), 'Not found text - My projects'
- assert page.has_text?('Projects shared with me'), 'Not found text - Project shared with me'
- assert page.has_no_text?('Save profile'), 'Found text - Save profile'
+ if profile_config && !has_profile
+ assert page.has_text?('Save profile'), 'No text - Save profile'
+ add_profile user
+ else
+ assert page.has_text?('My projects'), 'Not found text - My projects'
+ assert page.has_no_text?('Save profile'), 'Found text - Save profile'
+ end
elsif invited
assert page.has_text?('Please check the box below to indicate that you have read and accepted the user agreement'), 'Not found text - Please check the box below . . .'
assert page.has_no_text?('Save profile'), 'Found text - Save profile'
@@ -63,103 +62,6 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
end
end
- # test the help menu
- def check_help_menu
- within('.navbar-fixed-top') do
- page.find("#arv-help").click
- within('.dropdown-menu') do
- assert page.has_link?('Tutorials and User guide'), 'No link - Tutorials and User guide'
- assert page.has_link?('API Reference'), 'No link - API Reference'
- assert page.has_link?('SDK Reference'), 'No link - SDK Reference'
- assert page.has_link?('Show version / debugging info ...'), 'No link - Show version / debugging info'
- assert page.has_link?('Report a problem ...'), 'No link - Report a problem'
- # Version info and Report a problem are tested in "report_issue_test.rb"
- end
- end
- end
-
- def verify_system_menu user
- if user && user['is_active']
- look_for_add_new = nil
- within('.navbar-fixed-top') do
- page.find("#system-menu").click
- if user['is_admin']
- within('.dropdown-menu') do
- assert page.has_text?('Groups'), 'No text - Groups'
- assert page.has_link?('Repositories'), 'No link - Repositories'
- assert page.has_link?('Virtual machines'), 'No link - Virtual machines'
- assert page.has_link?('SSH keys'), 'No link - SSH keys'
- assert page.has_link?('API tokens'), 'No link - API tokens'
- find('a', text: 'Users').click
- look_for_add_new = 'Add a new user'
- end
- else
- within('.dropdown-menu') do
- assert page.has_no_text?('Users'), 'Found text - Users'
- assert page.has_no_link?('Repositories'), 'Found link - Repositories'
- assert page.has_no_link?('Virtual machines'), 'Found link - Virtual machines'
- assert page.has_no_link?('SSH keys'), 'Found link - SSH keys'
- assert page.has_no_link?('API tokens'), 'Found link - API tokens'
-
- find('a', text: 'Groups').click
- look_for_add_new = 'Add a new group'
- end
- end
- end
- if look_for_add_new
- assert page.has_text? look_for_add_new
- end
- else
- assert page.has_no_link?('#system-menu'), 'Found link - system menu'
- end
- end
-
- # test manage_account page
- def verify_manage_account user
- if user && user['is_active']
- within('.navbar-fixed-top') do
- find('a', text: "#{user['email']}").click
- within('.dropdown-menu') do
- find('a', text: 'Manage account').click
- end
- end
-
- # now in manage account page
- assert page.has_text?('Virtual Machines'), 'No text - Virtual Machines'
- assert page.has_text?('Repositories'), 'No text - Repositories'
- assert page.has_text?('SSH Keys'), 'No text - SSH Keys'
- assert page.has_text?('Current Token'), 'No text - Current Token'
-
- assert page.has_text?('The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados'), 'No text - Arvados API token'
-
- click_link 'Add new SSH key'
-
- within '.modal-content' do
- assert page.has_text?('Public Key'), 'No text - Public Key'
- assert page.has_button?('Cancel'), 'No button - Cancel'
- assert page.has_button?('Submit'), 'No button - Submit'
-
- page.find_field('public_key').set 'first test with an incorrect ssh key value'
- click_button 'Submit'
- assert page.has_text?('Public key does not appear to be a valid ssh-rsa or dsa public key'), 'No text - Public key does not appear to be a valid'
-
- public_key_str = api_fixture('authorized_keys')['active']['public_key']
- page.find_field('public_key').set public_key_str
- page.find_field('name').set 'added_in_test'
- click_button 'Submit'
- assert page.has_text?('Public key already exists in the database, use a different key.'), 'No text - Public key already exists'
-
- new_key = SSHKey.generate
- page.find_field('public_key').set new_key.ssh_public_key
- page.find_field('name').set 'added_in_test'
- click_button 'Submit'
- end
-
- # key must be added. look for it in the refreshed page
- assert page.has_text?('added_in_test'), 'No text - added_in_test'
- end
- end
-
# Check manage profile page and add missing profile to the user
def add_profile user
assert page.has_no_text?('My projects'), 'Found text - My projects'
@@ -241,30 +143,6 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
verify_homepage_with_profile user, invited, has_profile
end
- test "check help for user #{token}" do
- if !token
- visit ('/')
- else
- visit page_with_token(token)
- end
-
- check_help_menu
- end
end
- [
- ['active', api_fixture('users')['active']],
- ['admin', api_fixture('users')['admin']],
- ].each do |token, user|
-
- test "test system menu for user #{token}" do
- visit page_with_token(token)
- verify_system_menu user
- end
-
- test "test manage account for user #{token}" do
- visit page_with_token(token)
- verify_manage_account user
- end
- end
end
commit 245a1c2e6a63ed119eee2605512f99daa3cf722a
Merge: d0c85cb 952db4a
Author: radhika <radhika at curoverse.com>
Date: Mon Aug 25 11:13:51 2014 -0400
Merge branch 'master' into 3112-report-bug
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list