within '.modal-content' do
find 'label', text: 'Virtual Machine'
fill_in "email", :with => "foo@example.com"
- fill_in "repo_name", :with => "test_repo"
+ fill_in "repo_name", :with => "newtestrepo"
click_button "Submit"
wait_for_ajax
end
click_link 'Advanced'
click_link 'Metadata'
- assert page.has_text? 'Repository: test_repo'
+ assert page.has_text? 'Repository: foo/newtestrepo'
assert !(page.has_text? 'VirtualMachine:')
end
within '.modal-content' do
find 'label', text: 'Virtual Machine'
- fill_in "repo_name", :with => "test_repo"
+ fill_in "repo_name", :with => "activetestrepo"
click_button "Submit"
end
click_link 'Advanced'
click_link 'Metadata'
- assert page.has_text? 'Repository: test_repo'
+ assert page.has_text? 'Repository: active/activetestrepo'
assert !(page.has_text? 'VirtualMachine:')
# Click on Setup button again and this time also choose a VM
click_link 'Setup Active User'
within '.modal-content' do
- fill_in "repo_name", :with => "second_test_repo"
+ fill_in "repo_name", :with => "activetestrepo2"
select("testvm.shell", :from => 'vm_uuid')
click_button "Submit"
end
click_link 'Advanced'
click_link 'Metadata'
- assert page.has_text? 'Repository: second_test_repo'
+ assert page.has_text? 'Repository: active/activetestrepo2'
assert page.has_text? 'VirtualMachine: testvm.shell'
end
click_link 'Advanced'
click_link 'Metadata'
- assert !(page.has_text? 'Repository: test_repo')
- assert !(page.has_text? 'Repository: second_test_repo')
- assert !(page.has_text? 'VirtualMachine: testvm.shell')
+ assert page.has_no_text? 'Repository: active/'
+ assert page.has_no_text? 'VirtualMachine: testvm.shell'
# setup user again and verify links present
click_link 'Admin'
click_link 'Setup Active User'
within '.modal-content' do
- fill_in "repo_name", :with => "second_test_repo"
+ fill_in "repo_name", :with => "activetestrepo"
select("testvm.shell", :from => 'vm_uuid')
click_button "Submit"
end
click_link 'Advanced'
click_link 'Metadata'
- assert page.has_text? 'Repository: second_test_repo'
+ assert page.has_text? 'Repository: active/activetestrepo'
assert page.has_text? 'VirtualMachine: testvm.shell'
end
+ [
+ ['admin', false],
+ ['active', true],
+ ].each do |username, expect_show_button|
+ test "login as #{username} and access show button #{expect_show_button}" do
+ need_javascript
+
+ user = api_fixture('users', username)
+
+ visit page_with_token(username, '/users')
+
+ if expect_show_button
+ within('tr', text: user['uuid']) do
+ assert_text user['email']
+ assert_selector 'a', text: 'Show'
+ find('a', text: 'Show').click
+ end
+ assert_selector 'a', 'Data collections'
+ else
+ # no 'Show' button in the admin user's own row
+ within('tr', text: user['uuid']) do
+ assert_text user['email']
+ assert_no_selector 'a', text: 'Show'
+ end
+
+ # but the admin user can access 'Show' button for other users
+ active_user = api_fixture('users', 'active')
+ within('tr', text: active_user['uuid']) do
+ assert_text active_user['email']
+ assert_selector 'a', text: 'Show'
+ find('a', text: 'Show').click
+ assert_selector 'a', 'Attributes'
+ end
+ end
+ end
+ end
end