flights_gui_tests 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/features/data/host.yml +78 -0
- data/features/data/miles.yml +216 -0
- data/features/data/sites.yml +44 -0
- data/features/data/tag_microsoft.yml +68 -0
- data/features/step_definitions/checkout/checkout_steps.rb +24 -0
- data/features/step_definitions/checkout/form_steps.rb +20 -0
- data/features/step_definitions/checkout/load_steps.rb +36 -0
- data/features/step_definitions/conditional_steps.rb +12 -0
- data/features/step_definitions/cookies_steps.rb +8 -0
- data/features/step_definitions/flights_tracker/flights_tracker_steps.rb +30 -0
- data/features/step_definitions/landing/itineraries_steps.rb +75 -0
- data/features/step_definitions/landing/landing_steps.rb +59 -0
- data/features/step_definitions/landing/load_steps.rb +30 -0
- data/features/step_definitions/page_steps.rb +18 -0
- data/features/step_definitions/results/basefare_steps.rb +65 -0
- data/features/step_definitions/results/desambiguation_steps.rb +144 -0
- data/features/step_definitions/results/errors_steps.rb +23 -0
- data/features/step_definitions/results/filters_steps.rb +301 -0
- data/features/step_definitions/results/load_steps.rb +52 -0
- data/features/step_definitions/results/matrix_steps.rb +213 -0
- data/features/step_definitions/results/order_steps.rb +49 -0
- data/features/step_definitions/results/pagination_steps.rb +29 -0
- data/features/step_definitions/results/recommendation_steps.rb +75 -0
- data/features/step_definitions/results/results_steps.rb +40 -0
- data/features/step_definitions/results/reviews_steps.rb +16 -0
- data/features/step_definitions/results/tags_steps.rb +102 -0
- data/features/step_definitions/results/wish_list_steps.rb +114 -0
- data/features/step_definitions/thanks/load_steps.rb +10 -0
- data/features/step_definitions/thanks/thanks_steps.rb +12 -0
- data/features/support/classes/clusters/checkout_cluster.rb +117 -0
- data/features/support/classes/clusters/data/data.rb +33 -0
- data/features/support/classes/clusters/results/details_cluster.rb +36 -0
- data/features/support/classes/clusters/results/landing_cluster.rb +29 -0
- data/features/support/classes/clusters/results/render_cluster.rb +83 -0
- data/features/support/classes/clusters/results_cluster.rb +171 -0
- data/features/support/classes/date.rb +26 -0
- data/features/support/classes/element.rb +23 -0
- data/features/support/classes/price.rb +66 -0
- data/features/support/classes/process_manager.rb +104 -0
- data/features/support/classes/string.rb +16 -0
- data/features/support/env.rb +94 -0
- data/features/support/hooks.rb +20 -0
- data/features/support/matchers.rb +108 -0
- data/features/support/modules/accessor.rb +26 -0
- data/features/support/modules/browser.rb +80 -0
- data/features/support/modules/checkout/datos_de_facturacion.rb +64 -0
- data/features/support/modules/checkout/informacion_de_contacto.rb +30 -0
- data/features/support/modules/checkout/pasajeros.rb +71 -0
- data/features/support/modules/checkout/tarjeta.rb +71 -0
- data/features/support/modules/element.rb +12 -0
- data/features/support/modules/helpers.rb +64 -0
- data/features/support/modules/pages/cookies.rb +33 -0
- data/features/support/modules/pages/tags.rb +27 -0
- data/features/support/modules/results/filters.rb +37 -0
- data/features/support/modules/results/itineraries/bussines.rb +17 -0
- data/features/support/modules/results/itineraries/data.rb +25 -0
- data/features/support/modules/results/itineraries/details.rb +80 -0
- data/features/support/modules/results/itineraries/miles.rb +64 -0
- data/features/support/modules/results/itineraries/payments.rb +27 -0
- data/features/support/modules/results/matrix/matrix_airline.rb +52 -0
- data/features/support/modules/results/matrix/matrix_fare_chart.rb +21 -0
- data/features/support/modules/results/matrix/matrix_price.rb +18 -0
- data/features/support/modules/results/recommendation.rb +29 -0
- data/features/support/modules/results/search_params.rb +21 -0
- data/features/support/modules/results/wish_list.rb +33 -0
- data/features/support/pages/all_pages.rb +95 -0
- data/features/support/pages/checkout/checkout_page.rb +45 -0
- data/features/support/pages/checkout/popup_results_page.rb +39 -0
- data/features/support/pages/flights_tracker/search_page.rb +54 -0
- data/features/support/pages/landing/search_page.rb +94 -0
- data/features/support/pages/results/desambiguation_airports_page.rb +16 -0
- data/features/support/pages/results/desambiguation_city_page.rb +20 -0
- data/features/support/pages/results/search_page.rb +101 -0
- data/features/support/pages/thanks/thanks_page.rb +7 -0
- data/features/tests/checkout/book_ok.feature +209 -0
- data/features/tests/flights_tracker/search.feature +65 -0
- data/features/tests/landing/search.feature +152 -0
- data/features/tests/results/basefare.feature +90 -0
- data/features/tests/results/desambiguation/airports.feature +89 -0
- data/features/tests/results/desambiguation/city.feature +87 -0
- data/features/tests/results/errors.feature +198 -0
- data/features/tests/results/filters.feature +113 -0
- data/features/tests/results/itineraries.feature +93 -0
- data/features/tests/results/matrix/matrix_airlines.feature +46 -0
- data/features/tests/results/matrix/matrix_fare_chart.feature +41 -0
- data/features/tests/results/matrix/matrix_price.feature +41 -0
- data/features/tests/results/orders.feature +89 -0
- data/features/tests/results/pagination.feature +74 -0
- data/features/tests/results/recommendation.feature +111 -0
- data/features/tests/results/reviews_airlines.feature +84 -0
- data/features/tests/results/search.feature +209 -0
- data/features/tests/results/wish_list.feature +55 -0
- data/flights_gui_tests.gemspec +34 -0
- data/henry-context.yml +4938 -0
- metadata +306 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module PageObject
|
|
3
|
+
module Accessors
|
|
4
|
+
def select_list(name, identifier={:index => 0}, &block)
|
|
5
|
+
define_method(name) do
|
|
6
|
+
return platform.select_list_value_for identifier.clone unless block_given?
|
|
7
|
+
self.send("#{name}_element").value
|
|
8
|
+
end
|
|
9
|
+
define_method("#{name}=") do |value|
|
|
10
|
+
return platform.select_list_value_set(identifier.clone, value) unless block_given?
|
|
11
|
+
self.send("#{name}_element").select(value)
|
|
12
|
+
end
|
|
13
|
+
define_method("#{name}_value=") do |value|
|
|
14
|
+
return platform.select_list_value_set(identifier.clone, value) unless block_given?
|
|
15
|
+
self.send("#{name}_element").select_value(value)
|
|
16
|
+
end
|
|
17
|
+
define_method("#{name}_options") do
|
|
18
|
+
element = self.send("#{name}_element")
|
|
19
|
+
(element && element.options) ? element.options.collect(&:text) : []
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
standard_methods(name, identifier, 'select_list_for', &block)
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
module Browser
|
|
3
|
+
|
|
4
|
+
def self.iniciar(browser)
|
|
5
|
+
browser = Watir::Browser.new opcion(browser)
|
|
6
|
+
maximizar(browser)
|
|
7
|
+
return browser
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.opcion(type)
|
|
11
|
+
case type.upcase
|
|
12
|
+
when 'IE' then
|
|
13
|
+
:ie
|
|
14
|
+
when 'FIREFOX' then
|
|
15
|
+
:firefox
|
|
16
|
+
when 'CHROME' then
|
|
17
|
+
:chrome
|
|
18
|
+
else
|
|
19
|
+
:chrome
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.maximizar(browser)
|
|
24
|
+
screen_width = browser.execute_script("return screen.width;")
|
|
25
|
+
screen_height = browser.execute_script("return screen.height;")
|
|
26
|
+
browser.window.resize_to(screen_width, screen_height)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.error_http?(browser)
|
|
30
|
+
|
|
31
|
+
begin
|
|
32
|
+
|
|
33
|
+
begin
|
|
34
|
+
pagina = Hpricot.parse(browser.html)
|
|
35
|
+
rescue Hpricot::ParseError
|
|
36
|
+
return false
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
if (pagina/"div#errorInfo").length>0
|
|
40
|
+
raise((pagina/"div#errorInfo").inner_html)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
if (pagina/"div.errorPageContenido h2#disculpaLangES").inner_text.match(/Estamos trabajando/i)
|
|
44
|
+
return true
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
browser_text = Sanitize.clean(browser.html)
|
|
48
|
+
|
|
49
|
+
if browser.div(:class,"errorPageContenido").present?
|
|
50
|
+
return true
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
if (browser_text =~ /Server Error/i or browser_text == nil)
|
|
54
|
+
return true
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
if (browser_text =~ /(HTTP error 404)|(Internet Explorer no puede mostrar la)|(Problema al cargar la)|(HTTP 403)|(El URL solicitado no se ha podido conseguir)|Service Unavailable|Bad Request|Servidor no encontrado|Proxy Error/i)
|
|
58
|
+
return true
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
if (browser_text =~ /Bienvenido a la agencia/i)
|
|
62
|
+
return true
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
if (browser.title =~ /ERROR: The requested URL could not be retrieved/i)
|
|
66
|
+
return true
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
return false
|
|
70
|
+
|
|
71
|
+
rescue Timeout::Error
|
|
72
|
+
puts "Rompio errores http"
|
|
73
|
+
return false
|
|
74
|
+
rescue DRb::DRbConnError
|
|
75
|
+
puts "DRb::DRbConnError"
|
|
76
|
+
return false
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Checkout
|
|
3
|
+
module DatosDeFacturacion
|
|
4
|
+
include PageObject
|
|
5
|
+
|
|
6
|
+
select_list(:situacion_fiscal,:id=>"invoice-fiscal-status")
|
|
7
|
+
select_list(:provincia_facturacion,:id=>"invoice-state")
|
|
8
|
+
|
|
9
|
+
element(:formulario_facturacion,:fieldset,:id=>"invoice")
|
|
10
|
+
|
|
11
|
+
text_field(:cuil,:id=>"invoice-fiscal-id")
|
|
12
|
+
text_field(:domicilio_facturacion,:id=>"invoice-address")
|
|
13
|
+
text_field(:nombre_facturacion,:id=>"invoice-card-holder-name")
|
|
14
|
+
text_field(:ciudad_facturacion_custom,:id=>"invoice-city-custom")
|
|
15
|
+
text_field(:ciudad_facturacion,:id=>"invoice-city")
|
|
16
|
+
text_field(:calle_facturacion,:id=>"invoice-street")
|
|
17
|
+
text_field(:numero_facturacion,:id=>"invoice-address-number")
|
|
18
|
+
text_field(:piso_facturacion,:id=>"invoice-address-floor")
|
|
19
|
+
text_field(:departamento_facturacion,:id=>"invoice-address-deparment")
|
|
20
|
+
text_field(:codigo_postal_facturacion,:id=>"invoice-postal-code")
|
|
21
|
+
text_field(:otro_estado_facturacion,:id=>"invoice-other-state")
|
|
22
|
+
|
|
23
|
+
checkbox(:invoice_check,:id=>"invoice-check")
|
|
24
|
+
|
|
25
|
+
li(:opcion_cac,:id=>"cac-installment")
|
|
26
|
+
|
|
27
|
+
def cargar_datos_facturacion
|
|
28
|
+
if AllPages.site=="AR"
|
|
29
|
+
option = ["FINAL","INSCR","EXENT","MONOTRIBUTO"][rand(3)]
|
|
30
|
+
situacion_fiscal_element.select_value(option)
|
|
31
|
+
if option=="FINAL"
|
|
32
|
+
cuil_element.set("20-32456324-6")
|
|
33
|
+
domicilio_facturacion_element.set("corrientes 123")
|
|
34
|
+
else
|
|
35
|
+
#lleno los campos requeridos
|
|
36
|
+
cuil_element.set("30643063936")
|
|
37
|
+
nombre_facturacion_element.set("diego qa romero")
|
|
38
|
+
provincia_facturacion_element.select_value("C")
|
|
39
|
+
set_autocomplete("ciudad_facturacion_custom","buenos aires")
|
|
40
|
+
calle_facturacion_element.set("corrientes")
|
|
41
|
+
codigo_postal_facturacion_element.set("7111")
|
|
42
|
+
numero_facturacion_element.set("123")
|
|
43
|
+
piso_facturacion_element.set("1")
|
|
44
|
+
departamento_facturacion_element.set("1")
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
check_invoice_check if invoice_check?
|
|
48
|
+
cuil_element.set("3334445556")
|
|
49
|
+
nombre_facturacion_element.set("diego qa romero")
|
|
50
|
+
provincia_facturacion_element.select(provincia_facturacion_options[2])
|
|
51
|
+
ciudad_facturacion_element.set("Rosario")
|
|
52
|
+
calle_facturacion_element.set("corrientes")
|
|
53
|
+
if AllPages.site=="MX"
|
|
54
|
+
otro_estado_facturacion_element.set("Chiapas") if otro_estado_facturacion_element.present?
|
|
55
|
+
codigo_postal_facturacion_element.set("7111")
|
|
56
|
+
numero_facturacion_element.set("123")
|
|
57
|
+
piso_facturacion_element.set("1")
|
|
58
|
+
departamento_facturacion_element.set("1")
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Checkout
|
|
3
|
+
module InformacionDeContacto
|
|
4
|
+
include PageObject
|
|
5
|
+
|
|
6
|
+
text_field(:mail_contacto,:id=>"contact-email")
|
|
7
|
+
text_field(:mail_contacto_confimacion,:id=>"contact-email-repeat")
|
|
8
|
+
text_field(:pais_contacto,:id=>"country-code-0")
|
|
9
|
+
text_field(:area_contacto,:id=>"area-code-0")
|
|
10
|
+
text_field(:numero_contacto,:id=>"phone-number-0")
|
|
11
|
+
|
|
12
|
+
select_list(:telefono_contacto,:id=>"phone-type-0")
|
|
13
|
+
|
|
14
|
+
checkbox(:opcion_ofertas,:id=>"offers")
|
|
15
|
+
|
|
16
|
+
elements(:bandera_argentina,:span,:class=>"flagIcon flag-ar")
|
|
17
|
+
|
|
18
|
+
def cargar_datos_de_contacto
|
|
19
|
+
uncheck_opcion_ofertas
|
|
20
|
+
mail_contacto_element.set "bookingvuelos@despegar.com"
|
|
21
|
+
mail_contacto_confimacion_element.set "bookingvuelos@despegar.com"
|
|
22
|
+
telefono_contacto_element.select_value("HOME")
|
|
23
|
+
pais_contacto_element.set "Argentina (54)"
|
|
24
|
+
sleep 0.5
|
|
25
|
+
area_contacto_element.set "055"
|
|
26
|
+
numero_contacto_element.set "123456"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
module Checkout
|
|
3
|
+
module Pasajeros
|
|
4
|
+
include PageObject
|
|
5
|
+
|
|
6
|
+
elements(:nombre,:text_field,:css=>"#passengers .input-passenger-first-name")
|
|
7
|
+
elements(:apellido,:text_field,:css=>"#passengers .input-passenger-last-name")
|
|
8
|
+
elements(:documento,:text_field,:css=>"#passengers .input-document-number")
|
|
9
|
+
elements(:nacionalidad,:select_list,:css=>"#passengers .select-nationality")
|
|
10
|
+
elements(:tipo_documento,:select_list,:css=>"#passengers .select-document-type")
|
|
11
|
+
elements(:sexo,:select_list,:css=>"#passengers .select-passenger-gender")
|
|
12
|
+
elements(:dia_nacimiento,:select_list,:css=>"#passengers .select-day")
|
|
13
|
+
elements(:mes_nacimiento,:select_list,:css=>"#passengers .select-month")
|
|
14
|
+
elements(:ano_nacimiento,:select_list,:css=>"#passengers .select-year")
|
|
15
|
+
|
|
16
|
+
div(:edades_adultos,:id=>"birthday-group-0")
|
|
17
|
+
|
|
18
|
+
PLUS_NAME = ["A","B","C","D","E","F","G","H","I","J","k"]
|
|
19
|
+
|
|
20
|
+
def cargar_adultos
|
|
21
|
+
@index = 0
|
|
22
|
+
@index_menores = 0
|
|
23
|
+
self.manage_data.adt.times do |adulto|
|
|
24
|
+
nombre_elements[@index].set "Diego QA#{PLUS_NAME[@index]}"
|
|
25
|
+
apellido_elements[@index].set "Romero#{PLUS_NAME[@index]}"
|
|
26
|
+
documento_elements[@index].set "3245673#{@index}" if documento_elements[@index]
|
|
27
|
+
nacionalidad_elements[@index].select_value(AllPages.site) if nacionalidad_elements[@index]
|
|
28
|
+
tipo_documento_elements[@index].select_value(AllPages.site.match("AR") ? "LOCAL" : "PASSPORT") if tipo_documento_elements[@index]
|
|
29
|
+
sexo_elements[@index].select_value("MALE") if sexo_elements[@index]
|
|
30
|
+
if edades_adultos?
|
|
31
|
+
dia_nacimiento_elements[@index_menores].select(@index+1)
|
|
32
|
+
mes_nacimiento_elements[@index_menores].select(3)
|
|
33
|
+
ano_nacimiento_elements[@index_menores].select_value("197#{@index}")
|
|
34
|
+
@index_menores += 1
|
|
35
|
+
end
|
|
36
|
+
@index += 1
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
def cargar_ninos
|
|
40
|
+
self.manage_data.cnn.times do |nino|
|
|
41
|
+
nombre_elements[@index].set "Martin QA#{PLUS_NAME[@index]}"
|
|
42
|
+
apellido_elements[@index].set "Diez jr#{PLUS_NAME[@index]}"
|
|
43
|
+
documento_elements[@index].set "4245663#{@index}" if documento_elements[@index]
|
|
44
|
+
nacionalidad_elements[@index].select_value(AllPages.site) if nacionalidad_elements[@index]
|
|
45
|
+
tipo_documento_elements[@index].select_value(AllPages.site.match("AR") ? "LOCAL" : "PASSPORT") if tipo_documento_elements[@index]
|
|
46
|
+
sexo_elements[@index].select_value("MALE") if sexo_elements[@index]
|
|
47
|
+
dia_nacimiento_elements[@index_menores].select(@index+1)
|
|
48
|
+
mes_nacimiento_elements[@index_menores].select(3)
|
|
49
|
+
ano_nacimiento_elements[@index_menores].select_value("2009")
|
|
50
|
+
@index += 1
|
|
51
|
+
@index_menores += 1
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
def cargar_bebes
|
|
55
|
+
self.manage_data.inf.times do |bebe|
|
|
56
|
+
nombre_elements[@index].set "Maribel QA#{PLUS_NAME[@index]}"
|
|
57
|
+
apellido_elements[@index].set "Dias Herr jrb#{PLUS_NAME[@index]}"
|
|
58
|
+
documento_elements[@index].set "4249966#{@index}" if documento_elements[@index]
|
|
59
|
+
nacionalidad_elements[@index].select_value(AllPages.site) if nacionalidad_elements[@index]
|
|
60
|
+
tipo_documento_elements[@index].select_value(AllPages.site.match("AR") ? "LOCAL" : "PASSPORT") if tipo_documento_elements[@index]
|
|
61
|
+
sexo_elements[@index].select_value("MALE") if sexo_elements[@index]
|
|
62
|
+
dia_nacimiento_elements[@index_menores].select(@index+1)
|
|
63
|
+
mes_nacimiento_elements[@index_menores].select(3)
|
|
64
|
+
ano_nacimiento_elements[@index_menores].select_value("2013")
|
|
65
|
+
@index += 1
|
|
66
|
+
@index_menores += 1
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
module Checkout
|
|
3
|
+
module Tarjeta
|
|
4
|
+
include PageObject
|
|
5
|
+
|
|
6
|
+
select_list(:tarjeta,:id=>"card-brand")
|
|
7
|
+
select_list(:mes_vencimiento_tarjeta,:id=>"card-expiration-month")
|
|
8
|
+
select_list(:ano_vencimiento_tarjeta,:id=>"card-expiration-year")
|
|
9
|
+
select_list(:tipo_titular_tarjeta,:id=>"owner-type")
|
|
10
|
+
select_list(:sexo_titular_tarjeta,:id=>"owner-gender")
|
|
11
|
+
select_list(:estado_entrega_tarjeta,:id=>"billing-address-state")
|
|
12
|
+
|
|
13
|
+
text_field(:cp_entrega_tarjeta,:id=>"billing-address-postal-code")
|
|
14
|
+
text_field(:piso_entrega_tarjeta,:id=>"billing-address-floor")
|
|
15
|
+
text_field(:depto_entrega_tarjeta,:id=>"billing-address-deparment")
|
|
16
|
+
text_field(:numero_entrega_tarjeta,:id=>"billing-address-number")
|
|
17
|
+
text_field(:ciudad_entrega_tarjeta,:id=>"billing-address-city")
|
|
18
|
+
text_field(:calle_entrega_tarjeta,:id=>"billing-address-street")
|
|
19
|
+
text_field(:numero_tarjeta,:id=>"card-number")
|
|
20
|
+
text_field(:codigo_seguridad_tarjeta,:id=>"security-code")
|
|
21
|
+
text_field(:nombre_titular_tarjeta,:id=>"owner-name")
|
|
22
|
+
text_field(:documento_titular_tarjeta,:id=>"owner-document-number")
|
|
23
|
+
text_field(:banco_emisor,:id=>"other-bank-name")
|
|
24
|
+
|
|
25
|
+
div(:debito,:class=>"installment-info")
|
|
26
|
+
|
|
27
|
+
radio_button(:un_pago,:id=>"installment-0")
|
|
28
|
+
radio_button(:un_pago_argentina,:class=>"radio main-radio ")
|
|
29
|
+
radio_button(:un_pago_debito,:id=>"installment-1")
|
|
30
|
+
|
|
31
|
+
elements(:tipos_de_pago,:radio,:css=>"#paymentDefinition input.radio")
|
|
32
|
+
|
|
33
|
+
def cargar_datos_tarjeta
|
|
34
|
+
if AllPages.site=="AR"
|
|
35
|
+
select_un_pago_argentina
|
|
36
|
+
else
|
|
37
|
+
if debito.downcase.no_accents.match(/debito/)
|
|
38
|
+
select_un_pago_debito
|
|
39
|
+
else
|
|
40
|
+
select_un_pago
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
tarjeta_element.select "Visa"
|
|
44
|
+
numero_tarjeta_element.set "4242424242424242"
|
|
45
|
+
mes_vencimiento_tarjeta_element.select 5
|
|
46
|
+
banco_emisor_element.set "galicia" if banco_emisor_element.present?
|
|
47
|
+
ano_vencimiento_tarjeta_element.select 2017
|
|
48
|
+
codigo_seguridad_tarjeta_element.set "123"
|
|
49
|
+
tipo_titular_tarjeta_value = "PERSON" if tipo_titular_tarjeta_element.present?
|
|
50
|
+
nombre_titular_tarjeta_element.set "Martin qa diez"
|
|
51
|
+
if documento_titular_tarjeta_element.present?
|
|
52
|
+
number = case AllPages.site
|
|
53
|
+
when "CL" then "7028168-6"
|
|
54
|
+
when "BR" then "22233366638"
|
|
55
|
+
else "32456324"
|
|
56
|
+
end
|
|
57
|
+
documento_titular_tarjeta_element.set number
|
|
58
|
+
end
|
|
59
|
+
sexo_titular_tarjeta_element.select_value "MALE" if sexo_titular_tarjeta_element.present?
|
|
60
|
+
#datos extras de tarjeta
|
|
61
|
+
estado_entrega_tarjeta_element.select(estado_entrega_tarjeta_options[3]) if estado_entrega_tarjeta_element.present?
|
|
62
|
+
ciudad_entrega_tarjeta_element.set "capital" if ciudad_entrega_tarjeta_element.present?
|
|
63
|
+
calle_entrega_tarjeta_element.set "corrientes" if calle_entrega_tarjeta_element.present?
|
|
64
|
+
numero_entrega_tarjeta_element.set "1234" if numero_entrega_tarjeta_element.present?
|
|
65
|
+
piso_entrega_tarjeta_element.set "3" if piso_entrega_tarjeta_element.present?
|
|
66
|
+
depto_entrega_tarjeta_element.set "A" if depto_entrega_tarjeta_element.present?
|
|
67
|
+
cp_entrega_tarjeta_element.set "1182" if cp_entrega_tarjeta_element.present?
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Helpers
|
|
3
|
+
|
|
4
|
+
def self.cargar_brasil
|
|
5
|
+
|
|
6
|
+
Time.const_set("RFC2822_DAY_NAME" , %w(dom seg ter qua qui sex s�b))
|
|
7
|
+
Time.const_set("RFC2822_MONTH_NAME" , [nil] + %w(jan fev mar abr mai jun jul ago set out nov dez))
|
|
8
|
+
Time.const_set("MonthValue",{ 'JAN' => 1, 'FEV' => 2, 'MAR' => 3, 'ABR' => 4, 'MAI' => 5, 'JUN' => 6,'JUL' => 7, 'AGO' => 8, 'SET' => 9, 'OUT' => 10, 'NOV' => 11, 'DEZ' => 12 })
|
|
9
|
+
Date.const_set("MONTHNAMES" , [nil] + %w(Janeiro Fevereiro Marco Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro))
|
|
10
|
+
Date.const_set("ABBR_MONTHNAMES", [nil] + %w(jan fev mar abr mai jun jul ago set out nov dez))
|
|
11
|
+
Date.const_set("DAYNAMES", ["Domingo", "segunda-feira", "terca-feira", "quarta-feira", "quinta-feira", "sexta-feira", "S�bado"])
|
|
12
|
+
Date.const_set("ABBR_DAYNAMES", %w(dom seg ter qua qui sex s�b))
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.cargar_latino
|
|
17
|
+
|
|
18
|
+
Time.const_set("RFC2822_DAY_NAME", %w(dom lun mar mi� jue vie s�b))
|
|
19
|
+
Time.const_set("RFC2822_MONTH_NAME",[nil] + %w(ene feb mar abr may jun jul ago sep oct nov dic))
|
|
20
|
+
Time.const_set("MonthValue", { 'ENE' => 1, 'FEB' => 2, 'MAR' => 3, 'ABR' => 4, 'MAY' => 5, 'JUN' => 6,'JUL' => 7, 'AGO' => 8, 'SEP' => 9, 'OCT' => 10, 'NOV' => 11, 'DIC' => 12 })
|
|
21
|
+
Date.const_set("MONTHNAMES", [nil] + %w(Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre))
|
|
22
|
+
Date.const_set("ABBR_MONTHNAMES", [nil] + %w(ene feb mar abr may jun jul ago sep oct nov dic))
|
|
23
|
+
Date.const_set("DAYNAMES" , %w(Domingo Lunes Martes Mi�rcoles Jueves Viernes S�bado))
|
|
24
|
+
Date.const_set("ABBR_DAYNAMES" , %w(dom lun mar mi� jue vie s�b))
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.cargar_usa
|
|
29
|
+
|
|
30
|
+
Time.const_set("RFC2822_DAY_NAME", %w(sun mon tue wed thu fri sat))
|
|
31
|
+
Time.const_set("RFC2822_MONTH_NAME",[nil] + %w(jan feb mar apr may jun jul aug sep oct nov dec))
|
|
32
|
+
Time.const_set("MonthValue", { 'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, 'MAY' => 5, 'JUN' => 6,'JUL' => 7, 'AUG' => 8, 'SEP' => 9, 'OCT' => 10, 'NOV' => 11, 'DEC' => 12 })
|
|
33
|
+
Date.const_set("MONTHNAMES", [nil] + %w(January February March April May June July August September October November December))
|
|
34
|
+
Date.const_set("ABBR_MONTHNAMES", [nil] + %w(jan feb mar apr may jun jul aug sep oct nov dec))
|
|
35
|
+
Date.const_set("DAYNAMES" , %w(Sunday Monday Tuesday Wednesday Thursday Friday Saturday))
|
|
36
|
+
Date.const_set("ABBR_DAYNAMES" , %w(sun mon tue wed thu fri sat))
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.set_date_language(site)
|
|
41
|
+
case site
|
|
42
|
+
when "BR" then cargar_brasil
|
|
43
|
+
when "US" then cargar_usa
|
|
44
|
+
else cargar_latino
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def self.currency(site)
|
|
49
|
+
currency = { 'CL' => 'CLP',
|
|
50
|
+
'AR' => 'ARS',
|
|
51
|
+
'BR' => 'BRL',
|
|
52
|
+
'MX' => 'MXN',
|
|
53
|
+
'PE' => 'PEN',
|
|
54
|
+
'VE' => 'VEF',
|
|
55
|
+
'CO' => 'COP',
|
|
56
|
+
'CR' => 'CRC',
|
|
57
|
+
'PA' => 'USD',
|
|
58
|
+
'UY' => 'USD',
|
|
59
|
+
'EC' => 'USD',
|
|
60
|
+
'US' => 'USD'
|
|
61
|
+
}[site.upcase]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Pages
|
|
3
|
+
module Cookies
|
|
4
|
+
#modifico el valor del abtesting requerido
|
|
5
|
+
def modificar_abtesting(nombre,valor)
|
|
6
|
+
cookie = self.recuperar_cookie("abzTestingId")
|
|
7
|
+
nuevo_valor = cookie[:value].gsub(/#{self.recuperar_valor_abtesting(nombre)}/,valor.to_s)
|
|
8
|
+
self.eliminar_cookie("abzTestingId")
|
|
9
|
+
self.agregar_cookie("abzTestingId",nuevo_valor,{:expires => cookie[:expires],:domain=>cookie[:domain]})
|
|
10
|
+
self.recuperar_cookie("abzTestingId")
|
|
11
|
+
end
|
|
12
|
+
#recupero una cookie
|
|
13
|
+
def recuperar_cookie(nombre)
|
|
14
|
+
return @browser.cookies.to_a.select{|cookie| cookie[:name]==nombre}.first
|
|
15
|
+
end
|
|
16
|
+
#elimino una cookie
|
|
17
|
+
def eliminar_cookie(nombre)
|
|
18
|
+
@browser.cookies.delete nombre
|
|
19
|
+
end
|
|
20
|
+
#agrego una cookie
|
|
21
|
+
def agregar_cookie(nombre,valor,opciones)
|
|
22
|
+
@browser.cookies.add(nombre,valor,opciones)
|
|
23
|
+
end
|
|
24
|
+
#recupero el valor de un abtesting
|
|
25
|
+
def recuperar_valor_abtesting(nombre)
|
|
26
|
+
begin
|
|
27
|
+
return self.recuperar_cookie("abzTestingId")[:value].split(',').select{|option| option.match(/#{nombre}/)}.first.gsub(/\D/,'').to_i
|
|
28
|
+
rescue NoMethodError
|
|
29
|
+
return 0
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|