Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yda 4923: Updated UI Tests for Update select2 #368

Merged
merged 2 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tests/features/ui/ui_group.feature
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,8 @@ Feature: Group UI
And module "group_manager" is shown
When user opens add group dialog
And category is set to <category>
And subcategory is set to <subcategory>
And group type is set to datamanager
And subcategory is set to <subcategory>
When user submits new group data
And datamanager group <group> is successfully created
And check whether datamanager group properties <group> and <category> are correct
Expand Down
148 changes: 91 additions & 57 deletions tests/step_defs/ui/test_ui_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,13 @@ def ui_group_list_search_user(browser, user):
# get unfitlered table group count
groups_1 = len(tbl.find_by_css('.user-search-result-group'))

browser.find_by_css('div#s2id_search').click()
browser.find_by_xpath('//*[@id="s2id_autogen7_search"]').fill(user) # Waarom 7??
div = browser.find_by_css('.selectify-search').find_by_xpath('..').find_by_css('span .select2-selection')
div.click()
time.sleep(4)
browser.find_by_css('.select2-search__field').fill(user)
time.sleep(4)
browser.find_by_css('.select2-results__option--highlighted').click()
# time.sleep(3)
browser.find_by_css('.select2-results .select2-highlighted').click()

groups_2 = len(tbl.find_by_css('.user-search-result-group'))

Expand Down Expand Up @@ -123,13 +126,15 @@ def ui_group_tree_search_group(browser, group):

@when(parsers.parse("user enters search argument {search}"))
def ui_group_tree_search_user_argument(browser, search):
browser.find_by_css('div#s2id_search').click()
browser.find_by_xpath('//*[@id="s2id_autogen7_search"]').fill(search)
browser.find_by_css('.selectify-search').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(2)
browser.find_by_css('.select2-search__field').fill(search)
time.sleep(2)


@when(parsers.parse("autocomplete returns {suggestions} suggestions"))
def ui_group_count_user_search_result(browser, suggestions):
users = browser.find_by_css('.select2-result')
users = browser.find_by_css('.select2-results__option')
assert len(users) == (int(suggestions) + 1)


Expand Down Expand Up @@ -165,9 +170,16 @@ def ui_group_user_is_added(browser, member_add):
@when(parsers.parse("user adds {member_add} to group"))
def ui_group_user_add(browser, member_add):
time.sleep(3)
browser.find_by_css('div#s2id_f-user-create-name').click()
browser.find_by_xpath('//*[@id="s2id_autogen6_search"]').fill(member_add)
browser.find_by_css('.select2-results .select2-highlighted').click()
browser.find_by_css('#f-user-create-name').find_by_xpath('..').find_by_css('span .select2-selection').click()
# Scroll to bottom.
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
browser.find_by_css('.select2-search__field').fill(member_add)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
browser.find_by_css('.select2-results__option--highlighted').click()
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
browser.find_by_css('#f-user-create-submit').click()


Expand Down Expand Up @@ -232,22 +244,32 @@ def ui_group_member_search(browser, member):
@then(parsers.parse("only member {member} is shown"))
def ui_group_member_filtered(browser, member):
assert browser.is_text_present(member, wait_time=1)
assert browser.is_text_not_present("groupmanager", wait_time=1)
assert browser.is_text_not_present("functionaladminpriv", wait_time=1)
user_list = browser.find_by_css("#user-list a")
for user in user_list:
if 'datamanager' in user['data-name']:
assert not user.visible
if 'functionaladminpriv' in user['data-name']:
assert not user.visible


@when(parsers.parse("searches for group {group}"))
def ui_group_search(browser, group):
browser.find_by_css('div#s2id_search').click()
browser.find_by_xpath('//*[@id="s2id_autogen7_search"]').fill(group)
browser.find_by_css('.select2-results .select2-highlighted').click()
browser.find_by_css('.selectify-search').find_by_xpath('..').find_by_css('span .select2-selection').click()
browser.find_by_css('.select2-search__field').fill(group)
browser.find_by_css('.select2-results__option--highlighted').click()


@then(parsers.parse("only group {group} is shown"))
def ui_group_filtered(browser, group):
assert browser.is_text_present(group, wait_time=1)
assert browser.is_text_not_present("core", wait_time=1)
assert browser.is_text_not_present("default", wait_time=1)

core_groups = browser.find_by_css("a[data-name*=\"{}\"]".format("core"))
for grp in core_groups:
assert not grp.visible

default_groups = browser.find_by_css("a[data-name*=\"{}\"]".format("default"))
for grp in default_groups:
assert not grp.visible


@then("user opens group import dialog")
Expand Down Expand Up @@ -387,68 +409,80 @@ def ui_group_set_group_type(browser):
@when(parsers.parse("category is set to {category}"))
def ui_group_schema_category_is_set(browser, category):
# Category already exists.
browser.find_by_id('s2id_f-group-create-category').click()
options = browser.find_by_css('.select2-result')
browser.find_by_css('#f-group-create-category').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(1)
options = browser.find_by_css('#select2-f-group-create-category-results')
for option in options:
if option.text == category:
option.click()
return True

# Category does not exist.
browser.find_by_xpath('//*[@id="s2id_autogen1_search"]').fill(category)
browser.find_by_css('.select2-results .select2-highlighted').click()
time.sleep(1)
browser.find_by_css('.select2-search__field').fill(category)
time.sleep(1)
browser.find_by_css('.select2-results__option--highlighted').click()


@when(parsers.parse("category is updated to {category}"))
def ui_group_schema_category_is_updated(browser, category):
# Category already exists.
browser.find_by_id('s2id_f-group-update-category').click()
options = browser.find_by_css('.select2-result')
browser.find_by_css('#f-group-update-category').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(1)
options = browser.find_by_css('#select2-f-group-update-category-results')
for option in options:
if option.text == category:
option.click()
return True

# Category does not exist.
browser.find_by_xpath('//*[@id="s2id_autogen1_search"]').fill(category)
browser.find_by_css('.select2-results .select2-highlighted').click()
time.sleep(1)
browser.find_by_css('.select2-search__field').fill(category)
time.sleep(1)
browser.find_by_css('.select2-results__option--highlighted').click()


@when(parsers.parse("subcategory is updated to {subcategory}"))
def ui_group_schema_subcategory_is_updated(browser, subcategory):
@when(parsers.parse("subcategory is set to {subcategory}"))
def ui_group_schema_subcategory_is_set(browser, subcategory):
# Subcategory already exists.
browser.find_by_id('s2id_f-group-update-subcategory').click()
options = browser.find_by_css('.select2-result')
browser.find_by_css('#f-group-create-subcategory').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(1)
options = browser.find_by_css('#select2-f-group-create-subcategory-results')
for option in options:
if option.text == subcategory:
option.click()
return True

# Subcategory does not exist.
browser.find_by_xpath('//*[@id="s2id_autogen3_search"]').fill(subcategory)
browser.find_by_css('.select2-results .select2-highlighted').click()
time.sleep(1)
browser.find_by_css('.select2-search__field').fill(subcategory)
time.sleep(1)
browser.find_by_css('.select2-results__option--highlighted').click()


@when(parsers.parse("subcategory is set to {subcategory}"))
def ui_group_schema_subcategory_is_set(browser, subcategory):
@when(parsers.parse("subcategory is updated to {subcategory}"))
def ui_group_schema_subcategory_is_updated(browser, subcategory):
# Subcategory already exists.
browser.find_by_id('s2id_f-group-create-subcategory').click()
options = browser.find_by_css('.select2-result')
browser.find_by_css('#f-group-update-subcategory').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(1)
options = browser.find_by_css('#select2-f-group-create-subcategory-results')
for option in options:
if option.text == subcategory:
option.click()
return True

# Subcategory does not exist.
browser.find_by_xpath('//*[@id="s2id_autogen3_search"]').fill(subcategory)
browser.find_by_css('.select2-results .select2-highlighted').click()
time.sleep(1)
browser.find_by_css('.select2-search__field').fill(subcategory)
time.sleep(1)
browser.find_by_css('.select2-results__option--highlighted').click()


@when(parsers.parse("schema id is set to {schema_id}"))
def ui_group_schema_set_schema_id(browser, schema_id):
browser.find_by_id('s2id_f-group-create-schema-id').click()

options = browser.find_by_css('.select2-result')
browser.find_by_css('#f-group-create-schema-id').find_by_xpath('..').find_by_css('span .select2-selection').click()
time.sleep(4)
options = browser.find_by_css('.select2-results__options')
for option in options:
if option.text == schema_id:
option.click()
Expand Down Expand Up @@ -496,10 +530,10 @@ def ui_group_schema_properties_schema_correct(browser, group, category, subcateg
assert browser.find_by_id('f-group-update-name').value == group
assert browser.find_by_id('f-group-update-schema-id').value == schema_id
assert browser.find_by_id('f-group-update-expiration-date').value == expiration_date
div = browser.find_by_id('s2id_f-group-update-category')
assert div.find_by_css('.select2-chosen').text == category
div = browser.find_by_id('s2id_f-group-update-subcategory')
assert div.find_by_css('.select2-chosen').text == subcategory
div = browser.find_by_id('f-group-update-category').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == category
div = browser.find_by_id('f-group-update-subcategory').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == subcategory


@when(parsers.parse("check whether research group properties {group}, {category}, {subcategory} and {expiration_date} for user {user}"), target_fixture="api_response")
Expand All @@ -515,31 +549,31 @@ def ui_group_schema_properties_default_schema_correct(browser, group, category,
assert browser.find_by_id('f-group-update-name').value == group
assert browser.find_by_id('f-group-update-schema-id').value == default_schema_id
assert browser.find_by_id('f-group-update-expiration-date').value == expiration_date
div = browser.find_by_id('s2id_f-group-update-category')
assert div.find_by_css('.select2-chosen').text == category
div = browser.find_by_id('s2id_f-group-update-subcategory')
assert div.find_by_css('.select2-chosen').text == subcategory
div = browser.find_by_css('#f-group-update-category').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == category
div = browser.find_by_css('#f-group-update-subcategory').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == subcategory


@when(parsers.parse("check whether research group properties {category}, {subcategory} and {expiration_date} are correctly updated"))
def ui_group_schema_properties_update_correct(browser, category, subcategory, expiration_date):
assert browser.find_by_id('f-group-update-expiration-date').value == expiration_date
div = browser.find_by_id('s2id_f-group-update-category')
assert div.find_by_css('.select2-chosen').text == category
div = browser.find_by_id('s2id_f-group-update-subcategory')
assert div.find_by_css('.select2-chosen').text == subcategory
div = browser.find_by_css('#f-group-update-category').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == category
div = browser.find_by_css('#f-group-update-subcategory').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == subcategory


@when(parsers.parse("new group has {category} and {subcategory} set"))
def ui_group_properties_prefilled_categories(browser, category, subcategory):
div = browser.find_by_id('s2id_f-group-create-category')
assert div.find_by_css('.select2-chosen').text == category
div = browser.find_by_id('s2id_f-group-create-subcategory')
assert div.find_by_css('.select2-chosen').text == subcategory
div = browser.find_by_css('#f-group-create-category').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == category
div = browser.find_by_css('#f-group-create-subcategory').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == subcategory


@when(parsers.parse("check whether datamanager group properties {group} and {category} are correct"))
def ui_group_schema_properties_correct(browser, group, category):
assert browser.find_by_id('f-group-update-name').value == group
div = browser.find_by_id('s2id_f-group-update-category')
assert div.find_by_css('.select2-chosen').text == category
div = browser.find_by_css('#f-group-update-category').find_by_xpath('..').find_by_css('span .select2-selection')
assert div.find_by_css('.select2-selection__rendered').text == category