2659: add completed job fixture in publicly accessible project and test assertions...
[arvados.git] / apps / workbench / test / integration / user_manage_account_test.rb
index a33c47e3603b6b375b95fc06afbd5397b94be5c6..0414f4e09d8252580addbc8cbc3dce5365815fe1 100644 (file)
@@ -1,12 +1,8 @@
 require 'integration_helper'
-require 'selenium-webdriver'
-require 'headless'
 
 class UserManageAccountTest < ActionDispatch::IntegrationTest
   setup do
-    headless = Headless.new
-    headless.start
-    Capybara.current_driver = :selenium
+    need_javascript
   end
 
   # test manage_account page
@@ -84,21 +80,46 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest
       visit page_with_token(user)
       click_link 'notifications-menu'
       if notifications
-        assert_selector('a', text: 'Click here to learn about SSH keys')
+        assert_selector('a', text: 'Click here to set up an SSH public key for use with Arvados')
         assert_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline')
-        click_link('Click here to learn about SSH keys')
+        click_link('Click here to set up an SSH public key for use with Arvados')
         assert_selector('a', text: 'Add new SSH key')
 
         add_and_verify_ssh_key
 
         # No more SSH notification
         click_link 'notifications-menu'
-        assert_no_selector('a', text: 'Click here to learn about SSH keys')
+        assert_no_selector('a', text: 'Click here to set up an SSH public key for use with Arvados')
         assert_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline')
       else
-        assert_no_selector('a', text: 'Click here to learn about SSH keys')
+        assert_no_selector('a', text: 'Click here to set up an SSH public key for use with Arvados')
         assert_no_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline')
       end
     end
   end
+
+  test "verify repositories for active user" do
+    visit page_with_token('active', '/manage_account')
+
+    repos = [[api_fixture('repositories')['foo'], true, true],
+             [api_fixture('repositories')['repository3'], false, false],
+             [api_fixture('repositories')['repository4'], true, false]]
+
+    repos.each do |(repo, writable, sharable)|
+      within('tr', text: repo['name']+'.git') do
+        if sharable
+          assert_selector 'a', text:'Share'
+          assert_text 'writable'
+        else
+          assert_text repo['name']
+          assert_no_selector 'a', text:'Share'
+          if writable
+            assert_text 'writable'
+          else
+            assert_text 'read-only'
+          end
+        end
+      end
+    end
+  end
 end