class OpsManagerUiDrivers::Version17::ProductForm

Attributes

browser[R]
form_name[R]
product_name[R]

Public Class Methods

new(browser:, product_name:, form_name:) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 8
def initialize(browser:, product_name:, form_name:)
  @browser      = browser
  @product_name = product_name
  @form_name    = form_name
end

Public Instance Methods

fill_in_selector_property(selector_input_reference:, selector_name:, selector_value:, sub_field_answers:) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 53
def fill_in_selector_property(selector_input_reference:, selector_name:, selector_value:, sub_field_answers:)
  radio = browser.first(%Q(input[type="radio"][name="#{form_name}[#{selector_input_reference}][value]"][value="#{selector_value}"]))
  radio.click
  sub_field_answers.each do |label, value|
    selector_string = "#{form_name}[#{selector_input_reference}][#{selector_name}][#{label}]"

    if value[:attribute_name]
      selector_string += "[#{value[:attribute_name]}]"
    end

    browser.execute_script "$('a[data-masked-input-name=\"#{selector_string}\"]:contains(\"Change\")').click()"
    browser.find_field(selector_string).set(value[:attribute_value])
  end
end
generate_self_signed_cert(wildcard_domain, property_reference, selector_property_reference = nil, selector_option_name = nil) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 26
def generate_self_signed_cert(wildcard_domain, property_reference, selector_property_reference = nil, selector_option_name = nil)
  if selector_property_reference && selector_option_name
    private_key_field_name = "#{form_name}[#{selector_property_reference}][#{selector_option_name}][#{property_reference}][private_key_pem]"
  else
    private_key_field_name = "#{form_name}[#{property_reference}][private_key_pem]"
  end

  change_link = browser.first(%Q(a[data-masked-input-name="#{private_key_field_name}"]))
  change_link.click if change_link
  disable_css_transitions!

  generate_rsa_link = browser.first("textarea[name='#{private_key_field_name}'] + a")
  unless generate_rsa_link
    puts 'Unable to find the Generate RSA Certificate link for the given property.  If you are in a selector, please be sure to provide the two optional parameters to this method.'
  end
  generate_rsa_link.click

  browser.within '#rsa-certificate-form' do
    browser.fill_in 'rsa_certificate[domains]', with: wildcard_domain
    browser.click_on 'save-rsa-certificate-action'
  end
end
nested_property(property_reference, nested_reference) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 20
def nested_property(property_reference, nested_reference)
  name = "#{form_name}[#{property_reference}][#{nested_reference}]"
  browser.execute_script "$('a[data-masked-input-name=\"#{name}\"]:contains(\"Change\")').click()"
  browser.find_field(name)
end
open_form() click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 78
def open_form
  browser.visit '/'
  browser.click_on "show-#{product_name}-configure-action"
  browser.click_on "show-#{form_name}-action"
end
property(property_reference) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 14
def property(property_reference)
  name = "#{form_name}[#{property_reference}]"
  browser.execute_script "$('a[data-masked-input-name=\"#{name}\"]:contains(\"Change\")').click()"
  browser.find_field(name)
end
save_form(validate: true) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 68
def save_form(validate: true)
  browser.click_on 'Save'

  fail('unexpected failure') unless browser.has_css?('.flash-message')

  if validate
    fail(browser.find('.flash-message.error').text) unless browser.has_css?('.flash-message.success')
  end
end
set_boolean_property(checkbox_value) click to toggle source
# File lib/ops_manager_ui_drivers/version17/product_form.rb, line 49
def set_boolean_property(checkbox_value)
  browser.check(checkbox_value)
end