Class: TestCentricity::Elements::CheckBox

Inherits:
UIElement show all
Defined in:
lib/testcentricity_web/web_elements/checkbox.rb

Constant Summary

Constants inherited from UIElement

UIElement::CSS_SELECTORS, UIElement::XPATH_SELECTORS

Instance Attribute Summary collapse

Attributes inherited from UIElement

#alt_locator, #base_object, #context, #locator, #locator_type, #mru_driver, #mru_locator, #mru_object, #mru_parent, #name, #original_style, #parent, #type

Instance Method Summary collapse

Methods inherited from UIElement

#aria_autocomplete, #aria_busy?, #aria_checked?, #aria_colcount, #aria_controls, #aria_describedby, #aria_disabled?, #aria_expanded?, #aria_haspopup?, #aria_hidden?, #aria_invalid?, #aria_keyshortcuts, #aria_label, #aria_labelledby, #aria_live, #aria_modal?, #aria_multiline?, #aria_multiselectable?, #aria_orientation, #aria_pressed?, #aria_readonly?, #aria_required?, #aria_roledescription, #aria_rowcount, #aria_selected?, #aria_sort, #aria_valuemax, #aria_valuemin, #aria_valuenow, #aria_valuetext, #clear_alt_locator, #click, #click_at, #content_editable?, #count, #crossorigin, #displayed?, #double_click, #drag_and_drop, #drag_by, #enabled?, #find_element, #focused?, #get_attribute, #get_locator, #get_locator_type, #get_name, #get_native_attribute, #get_object_type, #height, #hidden?, #highlight, #hover, #hover_at, #obscured?, #required?, #reset_mru_cache, #right_click, #role, #scroll_to, #send_keys, #set, #set_alt_locator, #set_locator_type, #style, #tabindex, #title, #unhighlight, #verify_value, #wait_until_enabled, #wait_until_exists, #wait_until_gone, #wait_until_hidden, #wait_until_value_changes, #wait_until_value_is, #wait_until_visible, #wait_while_busy, #width, #x, #y

Constructor Details

#initialize(name, parent, locator, context) ⇒ CheckBox

Returns a new instance of CheckBox.



8
9
10
11
12
13
14
15
16
17
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 8

def initialize(name, parent, locator, context)
  super
  @type = :checkbox
  check_spec = {
    input: nil,
    proxy: nil,
    label: nil
  }
  define_custom_elements(check_spec)
end

Instance Attribute Details

#inputObject

Returns the value of attribute input.



6
7
8
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 6

def input
  @input
end

#labelObject

Returns the value of attribute label.



5
6
7
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 5

def label
  @label
end

#proxyObject

Returns the value of attribute proxy.



4
5
6
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 4

def proxy
  @proxy
end

Instance Method Details

#checkObject

Set the check state of a checkbox object.

Examples:

remember_me_checkbox.check


162
163
164
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 162

def check
  set_checkbox_state(true)
end

#checked?Boolean

Is checkbox checked?

Examples:

remember_me_checkbox.checked?

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
60
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 51

def checked?
  @base_object, = find_element(:all)
  object_not_found_exception(@base_object, 'Checkbox')
  chk = if @input.nil?
          @base_object
        else
          find_component(@input, 'checkbox')
        end
  chk.checked?
end

#define_custom_elements(element_spec) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 19

def define_custom_elements(element_spec)
  element_spec.each do |element, value|
    case element
    when :input
      @input = value
    when :proxy
      @proxy = value
    when :label
      @label = value
    else
      raise "#{element} is not a recognized checkbox element"
    end
  end
end

#disabled?Boolean

Is checkbox disabled (not enabled)?

Examples:

remember_me_checkbox.disabled?

Returns:

  • (Boolean)


96
97
98
99
100
101
102
103
104
105
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 96

def disabled?
  if @input.nil?
    super
  else
    @base_object, = find_element(:all)
    object_not_found_exception(@base_object, 'Checkbox')
    chk = find_component(@input, 'checkbox')
    chk.disabled?
  end
end

#exists?Boolean

Does checkbox object exists?

Examples:

remember_me_checkbox.exists?

Returns:

  • (Boolean)


40
41
42
43
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 40

def exists?
  obj, = find_object(:all)
  obj != nil
end

#get_valueBoolean Also known as: get_caption, caption, value

Return checkbox caption

Examples:

remember_me_checkbox.get_value

Returns:

  • (Boolean)


113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 113

def get_value
  if @label.nil?
    if @proxy.nil?
      super
    else
      proxy = find_component(@proxy, 'checkbox proxy')
      proxy.text
    end
  else
    label = find_component(@label, 'checkbox label')
    label.text
  end
end

#indeterminate?Boolean

Is checkbox state indeterminate?

Examples:

remember_me_checkbox.indeterminate?

Returns:

  • (Boolean)


68
69
70
71
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 68

def indeterminate?
  state = get_attribute('indeterminate')
  state.boolean? ? state : state == 'true'
end

#set_checkbox_state(state) ⇒ Object

Set the check state of a checkbox object.

Examples:

remember_me_checkbox.set_checkbox_state(true)

Parameters:

  • state (Boolean)

    true = checked / false = unchecked



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 137

def set_checkbox_state(state)
  @base_object, = find_element(:all)
  object_not_found_exception(@base_object, 'Checkbox')
  proxy = find_component(@proxy, 'checkbox proxy') unless @proxy.nil?
  chk = find_component(@input, 'checkbox') unless @input.nil?
  if @input.nil?
    if @proxy.nil?
      @base_object.click unless state == @base_object.checked?
    else
      proxy.click unless state == @base_object.checked?
    end
  else
    if @proxy.nil?
      @base_object.click unless state == chk.checked?
    else
      proxy.click unless state == chk.checked?
    end
  end
end

#uncheckObject

Uncheck a checkbox object.

Examples:

remember_me_checkbox.uncheck


171
172
173
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 171

def uncheck
  set_checkbox_state(state = false)
end

#verify_check_state(state, enqueue = false) ⇒ Object



175
176
177
178
179
180
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 175

def verify_check_state(state, enqueue = false)
  actual = checked?
  enqueue ?
    ExceptionQueue.enqueue_assert_equal(state, actual, "Expected checkbox #{object_ref_message}") :
    assert_equal(state, actual, "Expected checkbox #{object_ref_message} to be #{state} but found #{actual} instead")
end

#visible?Boolean

Is checkbox visible?

Examples:

remember_me_checkbox.visible?

Returns:

  • (Boolean)


79
80
81
82
83
84
85
86
87
88
# File 'lib/testcentricity_web/web_elements/checkbox.rb', line 79

def visible?
  if @proxy.nil?
    super
  else
    @base_object, = find_element(:all)
    object_not_found_exception(@base_object, 'Checkbox')
    proxy = find_component(@proxy, 'checkbox proxy')
    proxy.visible?
  end
end