Fix 2.4.2 upgrade notes formatting refs #19330
[arvados.git] / apps / workbench / test / integration / search_box_test.rb
index dcdce155fc2c48709cff260b080e4ad3927a9b8c..1eed15882ad00bb8fa16fafcb728173fc1fd4c88 100644 (file)
@@ -1,31 +1,35 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'integration_helper'
-require 'selenium-webdriver'
-require 'headless'
 
-class ApplicationLayoutTest < ActionDispatch::IntegrationTest
+class SearchBoxTest < ActionDispatch::IntegrationTest
   setup do
-    headless = Headless.new
-    headless.start
-    Capybara.current_driver = :selenium
+    need_javascript
   end
 
   # test the search box
   def verify_search_box user
     if user && user['is_active']
-      # let's search for a valid uuid
+      aproject_uuid = api_fixture('groups')['aproject']['uuid']
+      # let's search for aproject by uuid
       within('.navbar-fixed-top') do
-        page.find_field('search').set user['uuid']
+        page.has_field?('search this site')
+        page.find_field('search this site').set aproject_uuid
         page.find('.glyphicon-search').click
       end
 
-      # we should now be in the user's home project as a result of search
-      assert_selector "#Data_collections[data-object-uuid='#{user['uuid']}']", "Expected to be in user page after search click"
+      # we should now be in aproject as a result of search
+      assert_selector 'a', text:'Data collections'
+      click_link 'Data collections'
+      assert_selector "#Data_collections[data-object-uuid='#{aproject_uuid}']", "Expected to be in user page after search click"
 
-      # let's search again for an invalid valid uuid
+      # let's search again for an invalid uuid
       within('.navbar-fixed-top') do
         search_for = String.new user['uuid']
         search_for[0]='1'
-        page.find_field('search').set search_for
+        page.find_field('search this site').set search_for
         page.find('.glyphicon-search').click
       end
 
@@ -36,18 +40,18 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
       within '.modal-content' do
         assert page.has_text?('Report a problem'), 'No text - Report a problem'
         assert page.has_no_text?('Version / debugging info'), 'No text - Version / debugging info'
-        assert page.has_text?('API version'), 'No text - API version'
-        assert page.has_text?('API startup time'), 'No text - API startup time'
-        assert page.has_text?('Found a problem?'), 'No text - Found a problem'
-        assert page.has_button?('Send problem report'), 'No button - Send problem report'
+        assert page.has_text?('Describe the problem'), 'No text - Describe the problem'
+        assert page.has_text?('Send problem report'), 'Send problem report button text is not found'
+        assert page.has_no_button?('Send problem report'), 'Send problem report button is not disabled before entering problem description'
         assert page.has_button?('Cancel'), 'No button - Cancel'
 
         # enter a report text and click on report
         page.find_field('report_issue_text').set 'my test report text'
+        assert page.has_button?('Send problem report'), 'Send problem report button not enabled after entering text'
         click_button 'Send problem report'
 
         # ajax success updated button texts and added footer message
-        assert page.has_no_button?('Send problem report'), 'Found button - Send problem report'
+        assert page.has_no_text?('Send problem report'), 'Found button - Send problem report'
         assert page.has_no_button?('Cancel'), 'Found button - Cancel'
         assert page.has_text?('Report sent'), 'No text - Report sent'
         assert page.has_button?('Close'), 'No text - Close'
@@ -61,7 +65,7 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
 
       within('.navbar-fixed-top') do
         # search again for the anonymously accessible project
-        page.find_field('search').set publicly_accessible_project['name'][0,10]
+        page.find_field('search this site').set publicly_accessible_project['name'][0,10]
         page.find('.glyphicon-search').click
       end
 
@@ -78,10 +82,17 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
       # seeing "Unrestricted public data" now
       assert page.has_text?(publicly_accessible_project['name']), 'No text - publicly accessible project name'
       assert page.has_text?(publicly_accessible_project['description']), 'No text - publicly accessible project description'
+    else
+      within('.navbar-fixed-top') do
+        page.has_no_field?('search this site')
+      end
     end
   end
 
   [
+    [nil, nil],
+    ['inactive', api_fixture('users')['inactive']],
+    ['inactive_uninvited', api_fixture('users')['inactive_uninvited']],
     ['active', api_fixture('users')['active']],
     ['admin', api_fixture('users')['admin']],
   ].each do |token, user|