5493: update user_profile test to expect getting_started modal for users with no...
authorRadhika Chippada <radhika@curoverse.com>
Fri, 27 Mar 2015 17:51:47 +0000 (13:51 -0400)
committerRadhika Chippada <radhika@curoverse.com>
Fri, 27 Mar 2015 17:51:47 +0000 (13:51 -0400)
also, add one more user scenario where prefs exists with getting_started_shown but no profile.

apps/workbench/app/views/application/_getting_started_popup.html.erb
apps/workbench/app/views/layouts/body.html.erb
apps/workbench/app/views/users/profile.html.erb
apps/workbench/test/integration/user_profile_test.rb
services/api/test/fixtures/api_client_authorizations.yml
services/api/test/fixtures/users.yml

index 9a792c45b404b0cb90e24586c0b0bc9503d673e2..28c3352a3c511d4045617f1caf4834d2cfd9cdff 100644 (file)
@@ -6,7 +6,7 @@
   <div class="modal-dialog modal-with-loading-spinner">
     <div class="modal-content">
       <div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
         <div>
           <div class="col-sm-8"> <h4 class="modal-title"> Getting Started with Arvados </h4> </div>
           <div class="spinner spinner-32px spinner-h-center col-sm-1" hidden="true"></div>
index 59a25214fc36d485d20f256ce452901ff77f6059..1f91e673d9a962b2704036e326549b583a708eea 100644 (file)
 <div id="getting-started-modal-window"></div>
 
 <%  if current_user and !current_user.prefs[:getting_started_shown] and
-       !request.url.include?("/user_agreements") and !request.url.include?("/profile") %>
+       !request.url.include?("/profile") and
+       !request.url.include?("/user_agreements") and
+       !request.url.include?("/inactive")%>
   <script>
     $("#getting-started-modal-window").html("<%= escape_javascript(render partial: 'getting_started_popup') %>");
     $("#getting-started-modal-window .modal").modal('show');
index 82a431c118bed74610d2a4d4a03f62da6a611799..82c2c15e409178b0fca809f9f5e90eaa43881df6 100644 (file)
@@ -88,7 +88,7 @@
 
               <%# If the user has other prefs, we need to preserve them %>
               <% current_user.prefs.each do |key, value| %>
-                <% if key != 'profile' %>
+                <% if key != :profile %>
                   <input type="hidden" name="user[prefs][:<%=key%>]" value="<%=value.to_json%>">
                 <% end %>
               <% end %>
index accc6a7963ef5a9a8dee8ad188f0c8552d9d070d..21d93852c93359dc90822e9b910037eb48ed0fa2 100644 (file)
@@ -10,7 +10,7 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     Rails.configuration.user_profile_form_fields = @user_profile_form_fields
   end
 
-  def verify_homepage_with_profile user, invited, has_profile
+  def verify_homepage_with_profile user, invited, has_profile, getting_started_shown=false
     profile_config = Rails.configuration.user_profile_form_fields
 
     if !user
@@ -18,19 +18,30 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     elsif user['is_active']
       if profile_config && !has_profile
         assert page.has_text?('Save profile'), 'No text - Save profile'
-        add_profile user
+        add_profile user, invited, has_profile, getting_started_shown
       else
         assert page.has_text?('Active pipelines'), 'Not found text - Active pipelines'
         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_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
 
+    # If the user has not already seen getting_started modal, it will be shown on first visit.
+    if user and user['is_active'] and !user['prefs']['getting_started_shown']
+      within '.modal-content' do
+        assert_text 'Getting Started'
+        assert_selector 'button', text: 'Next'
+        assert_selector 'button', text: 'Prev'
+        first('button', text: 'x').click
+      end
+    end
+
     within('.navbar-fixed-top') do
       if !user
         assert page.has_link?('Log in'), 'Not found link - Log in'
@@ -58,7 +69,7 @@ class UserProfileTest < ActionDispatch::IntegrationTest
   end
 
   # Check manage profile page and add missing profile to the user
-  def add_profile user
+  def add_profile user, invited, has_profile, getting_started_shown
     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'
 
@@ -98,7 +109,11 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     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!'
+    if getting_started_shown
+      click_link 'Back to work!'
+    else
+      click_link 'Get started'
+    end
 
     # profile saved and in home page now
     assert page.has_text?('Active pipelines'), 'No text - Active pipelines'
@@ -112,6 +127,8 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     ['admin', api_fixture('users')['admin'], true, true],
     ['active_no_prefs', api_fixture('users')['active_no_prefs'], true, false],
     ['active_no_prefs_profile', api_fixture('users')['active_no_prefs_profile'], true, false],
+    ['active_no_prefs_profile_with_getting_started_shown',
+      api_fixture('users')['active_no_prefs_profile_with_getting_started_shown'], true, false, true],
   ].each do |token, user, invited, has_profile|
 
     test "visit home page when profile is configured for user #{token}" do
index 0b4d8747ea35bdd66b66182215d821058b917dfe..927713631601ae4c7a4c13bc8631e074e9a8a300 100644 (file)
@@ -181,12 +181,18 @@ active_no_prefs:
   api_token: 3kg612cdc0f3415c2428b9758f33bdfb07bc3561b00e86qdmi
   expires_at: 2038-01-01 00:00:00
 
-active_no_prefs_profile:
+active_no_prefs_profile_no_getting_started_shown:
   api_client: untrusted
-  user: active_no_prefs_profile
+  user: active_no_prefs_profile_no_getting_started_shown
   api_token: 3kg612cdc0f3415c242856758f33bdfb07bc3561b00e86qdmi
   expires_at: 2038-01-01 00:00:00
 
+active_no_prefs_profile_with_getting_started_shown:
+  api_client: untrusted
+  user: active_no_prefs_profile_with_getting_started_shown
+  api_token: 3kg612cdc0f3415c245786758f33bdfb07babcd1b00e86qdmi
+  expires_at: 2038-01-01 00:00:00
+
 user_foo_in_sharing_group:
   api_client: untrusted
   user: user_foo_in_sharing_group
index 99b89abaff3bf6cd0c31073100f314b001969318..1457d2256867f567ab2cd67c7197dd50a442ad74 100644 (file)
@@ -219,7 +219,7 @@ active_no_prefs:
   is_admin: false
   prefs: {}
 
-active_no_prefs_profile:
+active_no_prefs_profile_no_getting_started_shown:
   owner_uuid: zzzzz-tpzed-000000000000000
   uuid: zzzzz-tpzed-a46c98d1td4aoj4
   email: active_no_prefs_profile@arvados.local
@@ -230,6 +230,18 @@ active_no_prefs_profile:
   is_admin: false
   prefs:
     test: abc
+
+active_no_prefs_profile_with_getting_started_shown:
+  owner_uuid: zzzzz-tpzed-000000000000000
+  uuid: zzzzz-tpzed-getstartnoprofl
+  email: active_no_prefs_profile@arvados.local
+  first_name: HasPrefs
+  last_name: NoProfileWithGettingStartedShown
+  identity_url: https://active_no_prefs_profile_seen_gs.openid.local
+  is_active: true
+  is_admin: false
+  prefs:
+    test: abc
     getting_started_shown: 2015-03-26 12:34:56.789000000 Z
 
 # Fixtures to test granting and removing permissions.