admin_permissions_granular_vs_full_test.rb 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. require 'browser_test_helper'
  2. class AdminPermissionsGranularVsFullTest < TestCase
  3. def test_permissions_selecting
  4. new_group_name = "permissions_test_group#{rand(99_999_999)}"
  5. @browser = browser_instance
  6. login(
  7. username: 'master@example.com',
  8. password: 'test',
  9. url: browser_url,
  10. )
  11. tasks_close_all()
  12. click(css: '.user-menu a[title=Admin')
  13. click(css: '.content.active a[href="#manage/groups"]')
  14. click(css: '.content.active a[data-type="new"]')
  15. modal_ready
  16. element = @browser.find_element(css: '.modal input[name=name]')
  17. element.clear
  18. element.send_keys(new_group_name)
  19. click(css: '.modal button.js-submit')
  20. sleep(1)
  21. click(css: '.content.active a[href="#manage/users"]')
  22. user_css = '.user-list .js-tableBody tr td'
  23. watch_for(css: user_css)
  24. click(css: user_css)
  25. modal_ready
  26. scroll_script = "var el = document.getElementsByClassName('modal')[0];"
  27. scroll_script += 'el.scrollTo(0, el.scrollHeight);'
  28. @browser.execute_script scroll_script
  29. group = @browser.find_elements(css: '.modal .settings-list tbody tr').find do |el|
  30. el.find_element(css: 'td').text == new_group_name
  31. end
  32. toggle_checkbox(group, 'full')
  33. sleep(1)
  34. assert(checkbox_is_selected(group, 'full'))
  35. toggle_checkbox(group, 'read')
  36. sleep(1)
  37. assert(!checkbox_is_selected(group, 'full'))
  38. assert(checkbox_is_selected(group, 'read'))
  39. toggle_checkbox(group, 'full')
  40. sleep(1)
  41. assert(checkbox_is_selected(group, 'full'))
  42. assert(!checkbox_is_selected(group, 'read'))
  43. end
  44. end