Volumes and instances integration tests deleted and validated entities
one row at a time, now they are able to delete and validate multiple
rows at a time.
Change-Id: I7f8fdc7e0ccefdd0f6d71f9f92c8a2aefeec8d54
Closes-bug: #1585209
Horizon was using a standard select input. Unfortunately,
this type of input is only customizable to a small extent.
Also, a bug was noted. Things were being marked as btn-groups
that were not button groups. This was fixed.
Co-Authored-By: Ryan Peters <rjpeter2@gmail.com>
Co-Authored-By: Matthew Wood <woodm1979@gmail.com>
Co-Authored-By: Brian Tully <brian.tully@hp.com>
Change-Id: I048f001bf71c5d9a8d13451b7e5a892122f481c8
Partially-implements: blueprint horizon-theme-css-reorg
This patches includes:
- don't wait instance launching if instance in error status
- add missed assertTrue to validate notification messages
- check that message is present and is displayed
Change-Id: If731751fa4deabdeebe373748b169ac7ac617f8c
Closes-Bug: #1569941
Updated forms.py with MetadataFormRegion.
Updated tables.py with method to bind anchor row column.
Added test for update image metadata.
Implements blueprint: horizon-integration-tests-coverage
Change-Id: Idd3651955b8f0e1a0c08dd43abd657aafa5a3bc2
First, .is_displayed() method inside RowRegion needs to be invoked
correctly. Second, we need to distinguish an .empty placeholder row
from the last deleted row which contents are replaced with .empty row
contents from inside. Otherwise these 2 rows are considered the same
by tests. This is done by checking first for empty_table_selector.
Change-Id: I1abeb9f5ffc94213011e24eda99bb8a1ca8bfaeb
Closes-Bug: #1564405
-added test for instance creation/deletion functionality under regular user
-updated test for instance creation/deletion functionality under admin
-added tests for pagination instances under regular user and under admin
-added test for pagination and filtration instances under regular user and
under admin
Changes in TableRegion class:
1) _search_field_locator has been modified (now it works with both classes:
"table_search" and "table_search client")
2) _search_button_locator has been modified
3) filter() method has been updated
4) _search_option_locator and set_filter_value() method have been added
Implements blueprint: horizon-integration-tests-coverage
Change-Id: I6be5511e22644f85a53a781f417c5fde7fbf0275
It is no longer needed to specify `primary=True|False` in integration
tests. Now test first tries to bind the action as primary and then (if
unsuccessful) tries to bind one of secondary actions.
Change-Id: Id1e2c921c15d6ef8ce7d2781623b3968ec7df374
Closes-Bug: #1552686
Abstract away the logic for waiting table row to become deleted and
table cell to change its status common for different integration tests
Page Objects into 2 TableRegion methods.
Change-Id: Ib28708ffe5201f3dc595f842e24eda955ba339fc
Horizon checkboxes were using a standard checkbox. Unfortunately,
this type of checkbox is only customizable through Chrome, and
even then, its not completely flexible.
The default checkboxes have now been altered to allow for a highly
customized experience through the use of CSS pseudo elements and
Icon Fonts. This allows the color, size and unselected and selected
states of the checkbox to be customized.
The 'default' theme uses the standard Font Awesome checked and
unchecked icons. The 'material' now uses the Material Design
checkbox design.
It was also noticed (and fixed) that the help-icon on the forms
were not the same color as its corresponding text.
Partially-Implements: blueprint horizon-theme-css-reorg
Change-Id: I52602357d831a5e978fe6916b37b0cde9edb2b9b
2 tests are added: for regular and admin users.
test_volume_snapshots.py has been modified to reduce duplicated code;
volumesPage.create_volume_snapshot() return volumesnapshotspage to
reflect automation navigation from Volumes to Snapshots;
Modification in tables.py allows to use prev/next locators for
all tables.
Implements blueprint: horizon-integration-tests-coverage
Change-Id: I7777e46c28117d472e9cbd17e2d95f45c358fc43
Previously the essence of TestImageAdmin was to do the same things on
same pages, but under a different (admin) user. We realized that it's
not very useful since admin user in Horizon under no circumstances has
less rights than a regular user. A saner approach under admin user
would be to test pages inaccessible to a regular user - that's done in
this patch.
Also is_*_link_available() functions were sligthly improved: they no
longer wait a default timeout for the link to appear, because by the
time these methods are invoked table links are already visible for
sure or are expected to be misssing.
Implements blueprint: horizon-integration-tests-coverage
Change-Id: Idd0c871706d2a8c2c61d6182bbd533bba141baa9
First, it's now able to bind destructive actions rendered with
button.btn-dander. Second, now it successfully matches a single
primary action (button outside of div.btn-group container).
Change-Id: I1c55dc10b344c4899a80d83f4d18e59d5df266a6
Closes-Bug: #1537526
Test for images pagination has been added.
Changes of TableRegion class:
1) Locators of 'Next' and 'Prev' links are added
2) Methods is_next_link_available() and is_prev_link_available()
3) Methods for pages navigation added: next_page() and prev_page()a
4) update assert_definition method to have list instead of srt for
'Names' key
5) change 'next' locator
6) Minor changes: remove unused class,
rename next_page/prev_page methods
Implements blueprint: horizon-integration-tests-coverage
Change-Id: Ibaf9dd02a06cf9d945bc9b894394695512a934b9
Attach test methods to real table actions (both table-level and
row-level) using @bind_table_action and @bind_row_action
decorators. Using this approach we can also return the next Page
Object from an action method which is most often some form showing
right after the button is pressed.
Thanks to this refactoring integration_tests.regions.tables was HUGELY
simplified and the overall structure of tables is now much clearer.
Implements blueprint: integration-tests-improvements-part1
Change-Id: If7372d4a6acd9450c93ee7cd5dd8eac56060a803
This should protect tests from failing due to columns reordering. To
make name referencing possible, we need to add another 'data-selenium'
attribute to every th.normal-column.
Implements blueprint: integration-tests-improvements-part1
Change-Id: Id788fc288d052c91fc84e94c91ce2a368e8a810a
Remove two redundancies: _get_rows() calls in BasicTableRegion
descendants and table_locator property (because it's derivative of
table name which is always specified).
Implements blueprint: integration-tests-improvements-part1
Change-Id: Ic8e4d44beb1ae5f99c096fc796420f2f8306feb0
Instead of this match them by action <a> tag's id, which is composed:
* from table name, fixed part and action name for table-level actions and
* from row id, fixed part and action name for row-level actions.
Doing so may make action names in page objects less readable as they
have to be the same as real object name (which are rather terse).
Implements blueprint: integration-tests-hardening
Change-Id: I3f92ef4cfd098d080199350cbf5e6061aa050907
Avoid this because display names can be truncated (UX feature) and
that makes integration tests fragile. Instead for the cells which
have truncated contents store original contents in 'data-selenium'
attribute and check this attribute first in tests.
Implements blueprint: integration-tests-hardening
Change-Id: I5df9db5131fb8d38829a448cc8ecf8001ef26862
Add simple test for page under /Project/Data Processing/Image Registry,
that registers and unregisters an image in the Sahara registry.
Infrastructure changes needed by the test:
- new page object with basic handling of the Image Registry page;
- new ssh_user config option with the cloud-init username for the
image (named after the corresponding tempest option);
- new parameter in get_row() table method for exact match;
- add "wait-until-active" method for the Image page;
- enable sahara service by default in horizon.conf.
Partially implements blueprint: selenium-integration-testing
Co-Authored-By: Luigi Toscano <ltoscano@redhat.com>
Change-Id: I1e389f0baff655f8f06a0a6cbb4a10b9a68dd444
Adding menu regions.
* DropDownMenuRegion - base drop down menu region class
* UserDropDownMenuRegion - menu located in the top right corner
Partially implements blueprint: selenium-integration-testing
Change-Id: I611b46153d0f38a588ee931c954f771306802f14
Regions module should contains basic functionality that should be
shared among multiple page objects: common tables, forms,
notifications etc.. Basically every piece of code that can be reused by
multiple classes in a form of a new object should be placed in here.
* I would suggest that already created regions should be moved into this
module.
* I would consider region everything that can be reused by at least
two page objects and aim for maximal code reusability in the future.
* Every new region should inherit from class BaseRegion located in
baseregion.py.
Partially implements blueprint: selenium-integration-testing
Change-Id: Ib8c20d8833e0830c85030633091663d33de6e3ab