Class: TestCentricity::PageSection
- Includes:
- Capybara::DSL, Capybara::Node::Matchers, Test::Unit::Assertions
- Defined in:
- lib/testcentricity_web/page_sections_helper.rb
Constant Summary collapse
- XPATH_SELECTORS =
['//', '[@', '[contains(@']
- CSS_SELECTORS =
['#', ':nth-child(', ':nth-of-type(', '^=', '$=', '*=']
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#list_index ⇒ Object
Returns the value of attribute list_index.
-
#locator ⇒ Object
Returns the value of attribute locator.
-
#locator_type ⇒ Object
Returns the value of attribute locator_type.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#parent ⇒ Object
Returns the value of attribute parent.
-
#parent_list ⇒ Object
Returns the value of attribute parent_list.
Class Method Summary collapse
-
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page section.
-
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page section.
-
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page section.
-
.cell_checkbox(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell checkbox in a table column on this page section.
-
.cell_image(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell image in a table column on this page object.
-
.cell_radio(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell radio in a table column on this page section.
-
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page section.
-
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page section.
-
.element(element_name, locator) ⇒ Object
Declare and instantiate a single generic UI Element for this page section.
-
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page section.
-
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page section.
- .filefields(element_hash) ⇒ Object
-
.image(element_name, locator) ⇒ Object
Declare and instantiate an single image UI Element for this page section.
- .images(element_hash) ⇒ Object
-
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page section.
- .labels(element_hash) ⇒ Object
-
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page section.
- .links(element_hash) ⇒ Object
-
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page section.
-
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this section object.
-
.list_checkbox(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list checkbox in a row of a list object on this section object.
-
.list_radio(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list radio in a row of a list object on this section object.
- .lists(element_hash) ⇒ Object
-
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page section.
-
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page section.
-
.section(section_name, class_name, locator = nil) ⇒ Object
Instantiate a single PageSection object within this PageSection object.
- .sections(section_hash) ⇒ Object
-
.selectlist(element_name, locator) ⇒ Object
Declare and instantiate a single select list UI Element for this page section.
- .selectlists(element_hash) ⇒ Object
-
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page section.
- .tables(element_hash) ⇒ Object
-
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page section.
-
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page section.
-
.trait(trait_name, &block) ⇒ Object
Define a trait for this page section.
Instance Method Summary collapse
-
#click_at(x, y) ⇒ Object
Click at a specific location within a Section object.
-
#disabled? ⇒ Boolean
Is Section object disabled (not enabled)?.
-
#enabled? ⇒ Boolean
Is Section object enabled?.
-
#exists? ⇒ Boolean
Does Section object exists?.
- #get_attribute(attrib) ⇒ Object
- #get_item_count ⇒ Object
- #get_list_items ⇒ Object
- #get_locator ⇒ Object
- #get_locator_type ⇒ Object
- #get_name ⇒ Object
- #get_native_attribute(attrib) ⇒ Object
- #get_object_type ⇒ Object
-
#hidden? ⇒ Boolean
Is Section object hidden (not visible)?.
-
#initialize(name, parent, locator, context) ⇒ PageSection
constructor
A new instance of PageSection.
-
#populate_data_fields(data) ⇒ Object
Populate the specified UI elements in this Section object with the associated data from a Hash passed as an argument.
- #set_list_index(list, index = 1) ⇒ Object
- #set_parent(parent) ⇒ Object
- #verify_list_items(expected, enqueue = false) ⇒ Object
- #verify_ui_states(ui_states) ⇒ Object
-
#visible? ⇒ Boolean
Is Section object visible?.
-
#wait_until_exists(seconds = nil) ⇒ Object
Wait until the Section object exists, or until the specified wait time has expired.
-
#wait_until_gone(seconds = nil) ⇒ Object
Wait until the Section object no longer exists, or until the specified wait time has expired.
-
#wait_until_hidden(seconds = nil) ⇒ Object
Wait until the Section object is hidden, or until the specified wait time has expired.
-
#wait_until_visible(seconds = nil) ⇒ Object
Wait until the Section object is visible, or until the specified wait time has expired.
Constructor Details
#initialize(name, parent, locator, context) ⇒ PageSection
Returns a new instance of PageSection.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 19 def initialize(name, parent, locator, context) @name = name @parent = parent @locator = locator @context = context @parent_list = nil @list_index = nil is_xpath = XPATH_SELECTORS.any? { |selector| @locator.include?(selector) } is_css = CSS_SELECTORS.any? { |selector| @locator.include?(selector) } if is_xpath && !is_css @locator_type = :xpath elsif is_css && !is_xpath @locator_type = :css elsif !is_css && !is_xpath @locator_type = :css else raise "Cannot determine type of locator for PageSection '#{@name}' - locator = #{@locator}" end end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
9 10 11 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 9 def context @context end |
#list_index ⇒ Object
Returns the value of attribute list_index.
13 14 15 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 13 def list_index @list_index end |
#locator ⇒ Object
Returns the value of attribute locator.
10 11 12 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 10 def locator @locator end |
#locator_type ⇒ Object
Returns the value of attribute locator_type.
14 15 16 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 14 def locator_type @locator_type end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
9 10 11 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 9 def name @name end |
#parent ⇒ Object
Returns the value of attribute parent.
11 12 13 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 11 def parent @parent end |
#parent_list ⇒ Object
Returns the value of attribute parent_list.
12 13 14 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 12 def parent_list @parent_list end |
Class Method Details
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page section.
154 155 156 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 154 def self.(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Button.new("#{element_name}", self, "#{locator}", :section);end)) end |
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page section.
166 167 168 169 170 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 166 def self.(element_hash) element_hash.each do |element_name, locator| (element_name, locator) end end |
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page section.
389 390 391 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 389 def self.(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellButton.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end)) end |
.cell_checkbox(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell checkbox in a table column on this page section.
402 403 404 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 402 def self.cell_checkbox(element_name, locator, table, column, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellCheckBox.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end)) end |
.cell_image(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell image in a table column on this page object.
429 430 431 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 429 def self.cell_image(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellImage.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end)) end |
.cell_radio(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell radio in a table column on this page section.
415 416 417 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 415 def self.cell_radio(element_name, locator, table, column, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end)) end |
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page section.
209 210 211 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 209 def self.checkbox(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CheckBox.new("#{element_name}", self, "#{locator}", :section, #{proxy});end)) end |
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page section.
222 223 224 225 226 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 222 def self.checkboxes(element_hash) element_hash.each do |element_name, locator| checkbox(element_name, locator) end end |
.element(element_name, locator) ⇒ Object
Declare and instantiate a single generic UI Element for this page section.
128 129 130 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 128 def self.element(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::UIElement.new("#{element_name}", self, "#{locator}", :section);end)) end |
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page section.
140 141 142 143 144 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 140 def self.elements(element_hash) element_hash.each do |element_name, locator| element(element_name, locator) end end |
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page section.
369 370 371 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 369 def self.filefield(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::FileField.new("#{element_name}", self, "#{locator}", :section);end)) end |
.filefields(element_hash) ⇒ Object
373 374 375 376 377 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 373 def self.filefields(element_hash) element_hash.each do |element_name, locator| filefield(element_name, locator) end end |
.image(element_name, locator) ⇒ Object
Declare and instantiate an single image UI Element for this page section.
352 353 354 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 352 def self.image(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Image.new("#{element_name}", self, "#{locator}", :section);end)) end |
.images(element_hash) ⇒ Object
356 357 358 359 360 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 356 def self.images(element_hash) element_hash.each do |element_name, locator| image(element_name, locator) end end |
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page section.
264 265 266 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 264 def self.label(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Label.new("#{element_name}", self, "#{locator}", :section);end)) end |
.labels(element_hash) ⇒ Object
268 269 270 271 272 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 268 def self.labels(element_hash) element_hash.each do |element_name, locator| label(element_name, locator) end end |
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page section.
282 283 284 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 282 def self.link(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Link.new("#{element_name}", self, "#{locator}", :section);end)) end |
.links(element_hash) ⇒ Object
286 287 288 289 290 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 286 def self.links(element_hash) element_hash.each do |element_name, locator| link(element_name, locator) end end |
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page section.
334 335 336 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 334 def self.list(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::List.new("#{element_name}", self, "#{locator}", :section);end)) end |
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this section object.
442 443 444 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 442 def self.(element_name, locator, list) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListButton.new("#{element_name}", self, "#{locator}", :section, #{list});end)) end |
.list_checkbox(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list checkbox in a row of a list object on this section object.
454 455 456 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 454 def self.list_checkbox(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListCheckBox.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end)) end |
.list_radio(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list radio in a row of a list object on this section object.
466 467 468 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 466 def self.list_radio(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end)) end |
.lists(element_hash) ⇒ Object
338 339 340 341 342 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 338 def self.lists(element_hash) element_hash.each do |element_name, locator| list(element_name, locator) end end |
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page section.
237 238 239 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 237 def self.radio(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Radio.new("#{element_name}", self, "#{locator}", :section, #{proxy});end)) end |
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page section.
250 251 252 253 254 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 250 def self.radios(element_hash) element_hash.each do |element_name, locator| radio(element_name, locator) end end |
.section(section_name, class_name, locator = nil) ⇒ Object
Instantiate a single PageSection object within this PageSection object.
477 478 479 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 477 def self.section(section_name, class_name, locator = nil) class_eval(%(def #{section_name};@#{section_name} ||= #{class_name}.new("#{section_name}", self, "#{locator}", :section);end)) end |
.sections(section_hash) ⇒ Object
481 482 483 484 485 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 481 def self.sections(section_hash) section_hash.each do |section_name, class_name| section(section_name, class_name) end end |
.selectlist(element_name, locator) ⇒ Object
Declare and instantiate a single select list UI Element for this page section.
317 318 319 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 317 def self.selectlist(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::SelectList.new("#{element_name}", self, "#{locator}", :section);end)) end |
.selectlists(element_hash) ⇒ Object
321 322 323 324 325 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 321 def self.selectlists(element_hash) element_hash.each do |element_name, locator| selectlist(element_name, locator) end end |
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page section.
299 300 301 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 299 def self.table(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Table.new("#{element_name}", self, "#{locator}", :section);end)) end |
.tables(element_hash) ⇒ Object
303 304 305 306 307 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 303 def self.tables(element_hash) element_hash.each do |element_name, locator| table(element_name, locator) end end |
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page section.
180 181 182 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 180 def self.textfield(element_name, locator) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::TextField.new("#{element_name}", self, "#{locator}", :section);end)) end |
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page section.
194 195 196 197 198 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 194 def self.textfields(element_hash) element_hash.each do |element_name, locator| textfield(element_name, locator) end end |
.trait(trait_name, &block) ⇒ Object
Define a trait for this page section.
116 117 118 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 116 def self.trait(trait_name, &block) define_method(trait_name.to_s, &block) end |
Instance Method Details
#click_at(x, y) ⇒ Object
Click at a specific location within a Section object
608 609 610 611 612 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 608 def click_at(x, y) section, = find_section raise "Section object '#{get_name}' (#{get_locator}) not found" unless section section.click_at(x, y) end |
#disabled? ⇒ Boolean
Is Section object disabled (not enabled)?
514 515 516 517 518 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 514 def disabled? obj, = find_element object_not_found_exception(obj, nil) obj.disabled? end |
#enabled? ⇒ Boolean
Is Section object enabled?
504 505 506 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 504 def enabled? !disabled? end |
#exists? ⇒ Boolean
Does Section object exists?
493 494 495 496 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 493 def exists? section, = find_section section != nil end |
#get_attribute(attrib) ⇒ Object
800 801 802 803 804 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 800 def get_attribute(attrib) section, = find_section raise "Section object '#{get_name}' (#{get_locator}) not found" unless section section[attrib] end |
#get_item_count ⇒ Object
75 76 77 78 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 75 def get_item_count raise 'No parent list defined' if @parent_list.nil? @parent_list.get_item_count end |
#get_list_items ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 80 def get_list_items items = [] (1..get_item_count).each do |item| set_list_index(nil, item) items.push(get_value) end items end |
#get_locator ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 40 def get_locator if @locator.empty? && defined?(section_locator) locator = section_locator else locator = @locator end unless @parent_list.nil? locator = "#{@parent_list.get_locator}|#{locator}" unless @list_index.nil? case @locator_type when :xpath locator = "(#{locator})[#{@list_index}]" when :css locator = "#{locator}:nth-of-type(#{@list_index})" end end end if @context == :section && !@parent.nil? && !@parent.get_locator.nil? "#{@parent.get_locator}|#{locator}" else locator end end |
#get_locator_type ⇒ Object
66 67 68 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 66 def get_locator_type @locator_type end |
#get_name ⇒ Object
100 101 102 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 100 def get_name @name end |
#get_native_attribute(attrib) ⇒ Object
806 807 808 809 810 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 806 def get_native_attribute(attrib) section, = find_section raise "Section object '#{get_name}' (#{get_locator}) not found" unless section section.native.attribute(attrib) end |
#get_object_type ⇒ Object
96 97 98 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 96 def get_object_type :section end |
#hidden? ⇒ Boolean
Is Section object hidden (not visible)?
541 542 543 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 541 def hidden? !visible? end |
#populate_data_fields(data) ⇒ Object
Populate the specified UI elements in this Section object with the associated data from a Hash passed as an argument. Data values must be in the form of a String for textfield and select list controls. For checkbox and radio buttons, data must either be a Boolean or a String that evaluates to a Boolean value (Yes, No, 1, 0, true, false).
To delete all text content in a text field, pass !DELETE as the data to be entered.
768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 768 def populate_data_fields(data) data.each do |data_field, data_param| unless data_param.blank? # make sure the intended UI target element exists before trying to set its value data_field.wait_until_exists(2) if data_param == '!DELETE' length = data_field.get_value.length length.times do data_field.send_keys(:backspace) end sleep(0.5) data_field.send_keys(:tab) else case data_field.get_object_type when :checkbox data_field.set_checkbox_state(data_param.to_bool) when :selectlist data_field.get_siebel_object_type == 'JComboBox' ? data_field.set("#{data_param}\t") : data_field.choose_option(data_param) when :radio data_field.set_selected_state(data_param.to_bool) when :textfield data_field.set("#{data_param}\t") when :section data_field.set(data_param) end end end end end |
#set_list_index(list, index = 1) ⇒ Object
70 71 72 73 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 70 def set_list_index(list, index = 1) @parent_list = list unless list.nil? @list_index = index end |
#set_parent(parent) ⇒ Object
104 105 106 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 104 def set_parent(parent) @parent = parent end |
#verify_list_items(expected, enqueue = false) ⇒ Object
89 90 91 92 93 94 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 89 def verify_list_items(expected, enqueue = false) actual = get_list_items enqueue ? ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list '#{get_name}' (#{get_locator})") : assert_equal(expected, actual, "Expected list object '#{get_name}' (#{get_locator}) to be #{expected} but found #{actual}") end |
#verify_ui_states(ui_states) ⇒ Object
614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 614 def verify_ui_states(ui_states) ui_states.each do |ui_object, object_states| object_states.each do |property, state| case property when :class actual = ui_object.get_attribute(:class) when :exists actual = ui_object.exists? when :enabled actual = ui_object.enabled? when :disabled actual = ui_object.disabled? when :visible actual = ui_object.visible? when :hidden actual = ui_object.hidden? when :width actual = ui_object.get_width when :height actual = ui_object.get_height when :readonly actual = ui_object.read_only? when :checked actual = ui_object.checked? when :selected actual = ui_object.selected? when :value, :caption actual = ui_object.get_value when :maxlength actual = ui_object.get_max_length when :rowcount actual = ui_object.get_row_count when :columncount actual = ui_object.get_column_count when :placeholder actual = ui_object.get_placeholder when :min actual = ui_object.get_min when :max actual = ui_object.get_max when :step actual = ui_object.get_step when :options, :items, :list_items actual = ui_object.get_list_items when :optioncount, :itemcount actual = ui_object.get_item_count when :column_headers actual = ui_object.get_header_columns when :siebel_options actual = ui_object. else if property.is_a?(Hash) property.each do |key, value| case key when :cell actual = ui_object.get_table_cell(value[0].to_i, value[1].to_i) when :row actual = ui_object.get_table_row(value.to_i) when :column actual = ui_object.get_table_column(value.to_i) when :item actual = ui_object.get_list_item(value.to_i) when :attribute actual = ui_object.get_attribute(value) when :native_attribute actual = ui_object.get_native_attribute(value) end end else props = property.to_s.split('_') case props[0].to_sym when :cell cell = property.to_s.delete('cell_') cell = cell.split('_') actual = ui_object.get_table_cell(cell[0].to_i, cell[1].to_i) when :row row = property.to_s.delete('row_') actual = ui_object.get_table_row(row.to_i) when :column column = property.to_s.delete('column_') actual = ui_object.get_table_column(column.to_i) when :item item = property.to_s.delete('item_') actual = ui_object.get_list_item(item.to_i) end end end if state.is_a?(Hash) && state.length == 1 error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to" state.each do |key, value| case key when :lt, :less_than ExceptionQueue.enqueue_exception("#{error_msg} be less than #{value} but found '#{actual}'") unless actual < value when :lt_eq, :less_than_or_equal ExceptionQueue.enqueue_exception("#{error_msg} be less than or equal to #{value} but found '#{actual}'") unless actual <= value when :gt, :greater_than ExceptionQueue.enqueue_exception("#{error_msg} be greater than #{value} but found '#{actual}'") unless actual > value when :gt_eq, :greater_than_or_equal ExceptionQueue.enqueue_exception("#{error_msg} be greater than or equal to #{value} but found '#{actual}'") unless actual >= value when :starts_with ExceptionQueue.enqueue_exception("#{error_msg} start with '#{value}' but found '#{actual}'") unless actual.start_with?(value) when :ends_with ExceptionQueue.enqueue_exception("#{error_msg} end with '#{value}' but found '#{actual}'") unless actual.end_with?(value) when :contains ExceptionQueue.enqueue_exception("#{error_msg} contain '#{value}' but found '#{actual}'") unless actual.include?(value) when :not_contains, :does_not_contain ExceptionQueue.enqueue_exception("#{error_msg} not contain '#{value}' but found '#{actual}'") if actual.include?(value) when :not_equal ExceptionQueue.enqueue_exception("#{error_msg} not equal '#{value}' but found '#{actual}'") if actual == value when :like, :is_like actual_like = actual.delete("\n") actual_like = actual_like.delete("\r") actual_like = actual_like.delete("\t") actual_like = actual_like.delete(' ') actual_like = actual_like.downcase expected = value.delete("\n") expected = expected.delete("\r") expected = expected.delete("\t") expected = expected.delete(' ') expected = expected.downcase ExceptionQueue.enqueue_exception("#{error_msg} be like '#{value}' but found '#{actual}'") unless actual_like.include?(expected) when :translate expected = I18n.t(value) ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) translated #{property} property") end end else ExceptionQueue.enqueue_assert_equal(state, actual, "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property") end end end ExceptionQueue.post_exceptions end |
#visible? ⇒ Boolean
Is Section object visible?
526 527 528 529 530 531 532 533 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 526 def visible? section, = find_section exists = section visible = false visible = section.visible? if exists # the section is visible if it exists and it is not invisible exists && visible ? true : false end |
#wait_until_exists(seconds = nil) ⇒ Object
Wait until the Section object exists, or until the specified wait time has expired.
551 552 553 554 555 556 557 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 551 def wait_until_exists(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { exists? } rescue raise "Could not find Section object '#{get_name}' (#{get_locator}) after #{timeout} seconds" unless exists? end |
#wait_until_gone(seconds = nil) ⇒ Object
Wait until the Section object no longer exists, or until the specified wait time has expired.
565 566 567 568 569 570 571 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 565 def wait_until_gone(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { !exists? } rescue raise "Section object '#{get_name}' (#{get_locator}) remained visible after #{timeout} seconds" if exists? end |
#wait_until_hidden(seconds = nil) ⇒ Object
Wait until the Section object is hidden, or until the specified wait time has expired.
593 594 595 596 597 598 599 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 593 def wait_until_hidden(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { hidden? } rescue raise "Section object '#{get_name}' (#{get_locator}) remained visible after #{timeout} seconds" if visible? end |
#wait_until_visible(seconds = nil) ⇒ Object
Wait until the Section object is visible, or until the specified wait time has expired.
579 580 581 582 583 584 585 |
# File 'lib/testcentricity_web/page_sections_helper.rb', line 579 def wait_until_visible(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { visible? } rescue raise "Could not find Section object '#{get_name}' (#{get_locator}) after #{timeout} seconds" unless visible? end |