flights_gui_tests 2.3.26 → 2.3.27
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 +4 -4
- data/Gemfile +16 -2
- data/features/step_definitions/checkout/upselling_steps.rb +1 -1
- data/features/step_definitions/checkout/verifications_steps.rb +5 -0
- data/features/step_definitions/results/multipleoneway_steps.rb +22 -2
- data/features/step_definitions/results/order_steps.rb +1 -1
- data/features/step_definitions/results/pagination_steps.rb +1 -0
- data/features/step_definitions/results/reviews_steps.rb +1 -1
- data/features/step_definitions/results/wish_list_steps.rb +2 -2
- data/features/support/classes/checkout/multipleoneway_cluster.rb +18 -1
- data/features/support/classes/checkout/new_cluster.rb +10 -1
- data/features/support/classes/results/mini_cluster.rb +14 -8
- data/features/support/classes/results/new_cluster.rb +7 -0
- data/features/support/modules/checkout/new_checkout/fast_checkout.rb +4 -4
- data/features/support/modules/checkout/old_checkout/fast_checkout.rb +2 -2
- data/features/support/modules/results/itineraries/miles.rb +1 -9
- data/features/support/modules/results/multipleoneway.rb +2 -1
- data/features/support/modules/results/wish_list.rb +1 -1
- data/features/support/pages/all_pages.rb +2 -2
- data/features/support/pages/thanks/thanks_page/new_thanks_page.rb +6 -1
- data/features/support/version.rb +1 -1
- data/features/tests/results/itineraries.feature +0 -2
- data/features/tests/results/multipleoneway.feature +13 -10
- data/flights_gui_tests.gemspec +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f664de0a2c6193faaea08ff8e0c0c0e705fc4872
|
|
4
|
+
data.tar.gz: 8244bd381e74d23d2de7a70a0d3c8429131fc471
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb9d4688db438e097b5b84079c3e95fe2b79121d349311682cc7639c776f0411ad22a210c80a02521897b90e9b6b2745b1326a9456102f47bf3897bd889cda40
|
|
7
|
+
data.tar.gz: 99175e38f71afe86d2222cff9b03bc1b3ec3e74d4738c6322103fbdfaed9e36dc0c0e49165925f4e0bfce2c917f67d446f624ed1989bb943e22132f2c5249c7a
|
data/Gemfile
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
source 'http://rubygems.org'
|
|
2
|
-
source 'http://gems.despegar.com/'
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
gem 'henry-container', '>= 0.1.39'
|
|
4
|
+
gem 'page-object'
|
|
5
|
+
gem 'watir-webdriver'
|
|
6
|
+
gem 'cucumber'
|
|
7
|
+
gem 'rspec'
|
|
8
|
+
#gem 'byebug'
|
|
9
|
+
gem 'hpricot'
|
|
10
|
+
gem 'httparty'
|
|
11
|
+
gem 'sixarm_ruby_unaccent'
|
|
12
|
+
gem 'sanitize'
|
|
13
|
+
gem 'mock_search', '>= 1.0.0'
|
|
14
|
+
gem 'mysql2'
|
|
15
|
+
gem 'dater'
|
|
16
|
+
gem 'parallel_tests'
|
|
17
|
+
gem 'auto_uy_utils', :source => 'http://gems.despegar.com/'
|
|
18
|
+
gem 'roma_automation', :source => 'http://gems.despegar.com/'
|
|
@@ -34,7 +34,7 @@ Entonces(/^(?:verifico|valido) que el precio del seguro se muestre correctamente
|
|
|
34
34
|
dias = dias + 1
|
|
35
35
|
end
|
|
36
36
|
precio_por_dia = price_detail.to_i / dias
|
|
37
|
-
precio_por_dia.to_i.should be_within(
|
|
37
|
+
precio_por_dia.to_i.should be_within(8).of(price_assistance.to_i * (@page.manage_data.adt+@page.manage_data.cnn+@page.manage_data.inf))
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
Cuando(/^muestro el popup de la cobertura completa$/) do
|
|
@@ -20,6 +20,11 @@ Entonces(/^(?:verifico|valido) los valores del desglose del checkout$/) do
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
Entonces(/^(?:verifico|valido) los valores del desglose del checkout con multipleoneway$/) do
|
|
24
|
+
@itinerario_checkout = @page.datos_itinerario
|
|
25
|
+
@itinerario_checkout.validar_suma_desgloce.should be_within(4).of(@itinerario_checkout.tarifas['total'].value)
|
|
26
|
+
end
|
|
27
|
+
|
|
23
28
|
Y(/^(?:verifico|valido) que se muestren la caja de clientes felices$/) do
|
|
24
29
|
if @page.clientes_felices_element.present?
|
|
25
30
|
happy_clients = @page.clientes_felices_element
|
|
@@ -39,8 +39,28 @@ Entonces(/^espero que termine de cargar la pagina ida y vuelta separada$/) do
|
|
|
39
39
|
puts "URL: #{@page.url}"
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
Entonces(/^cargo los itinerarios$/) do
|
|
43
|
-
@page.
|
|
42
|
+
Entonces(/^cargo los itinerarios de ida$/) do
|
|
43
|
+
@itinerarios_ida = @page.cargar_itinerarios_multipleoneway
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Entonces(/^cargo los itinerarios de vuelta$/) do
|
|
47
|
+
@itinerarios_vuelta = @page.cargar_itinerarios_multipleoneway
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
Entonces(/^valido los itinerarios de ida$/) do
|
|
51
|
+
@itinerarios_ida.each do |ida|
|
|
52
|
+
@page.manage_data.city_from_1.airports.should include?(ida.tramo.origen_iata)
|
|
53
|
+
@page.manage_data.city_to_1.airports.should include?(ida.tramo.destino_iata)
|
|
54
|
+
ida.tramo.fecha.should equal(@page.manage_data.date_from_1)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
Entonces(/^valido los itinerarios de vuelta$/) do
|
|
59
|
+
@itinerarios_vuelta.each do |vuelta|
|
|
60
|
+
@page.manage_data.city_to_1.airports.should include?(vuelta.tramo.origen_iata)
|
|
61
|
+
@page.manage_data.city_from_1.airports.should include?(vuelta.tramo.destino_iata)
|
|
62
|
+
vuelta.tramo.fecha.should equal(@page.manage_data.date_to_1)
|
|
63
|
+
end
|
|
44
64
|
end
|
|
45
65
|
|
|
46
66
|
Cuando(/^elijo una opcion de ida$/) do
|
|
@@ -9,7 +9,7 @@ Entonces(/^(?:verifico|valido) el ordenamiento premium economy$/) do
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
Cuando(/^ordeno por "(.*)"$/) do |valor_orden|
|
|
12
|
-
@page.orden_element.select_value(valor_orden)
|
|
12
|
+
@page.orden_element.select_value(valor_orden) if @page.orden_element.present?
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
Entonces(/^levanto los datos de los clusters "(.*?)"$/) do |arg1|
|
|
@@ -16,6 +16,7 @@ Entonces(/^(?:verifico|valido) que funcione el paginado correctamente en resulta
|
|
|
16
16
|
iterator = 2
|
|
17
17
|
while @page.pagina_siguiente_element.present? && iterator < 7
|
|
18
18
|
@page.pagina_siguiente_element.links[0].click
|
|
19
|
+
@page.actualizar_informacion_element.when_not_visible(60)
|
|
19
20
|
step 'espero que termine de cargar la pagina de resultados'
|
|
20
21
|
@page.itinerario_element.should visible("itinerario")
|
|
21
22
|
iterator += 1
|
|
@@ -38,7 +38,7 @@ Entonces(/^verifico que se muestren las reviews de aerolineas$/) do
|
|
|
38
38
|
@page.popup_reviews_aerolineas_element.when_visible(timeout=2)
|
|
39
39
|
doc = Hpricot.parse(@page.popup_reviews_aerolineas_element.html)
|
|
40
40
|
@page.logo_aerolinea_en_matriz(index).should match((doc/"span.logo/img").first.attributes['src'].strip.downcase)
|
|
41
|
-
aerolinea.text.strip.downcase.should equal((doc/"h4.name").inner_text.strip.downcase)
|
|
41
|
+
#aerolinea.text.strip.downcase.should equal((doc/"h4.name").inner_text.strip.downcase)
|
|
42
42
|
@page.close_popup_reviews_aerolineas_element.click
|
|
43
43
|
@page.popup_reviews_aerolineas_element.when_not_visible(timeout=2)
|
|
44
44
|
rescue Selenium::WebDriver::Error::UnknownError
|
|
@@ -38,8 +38,8 @@ end
|
|
|
38
38
|
|
|
39
39
|
Cuando(/^me logueo con usuario "(.*?)" y pass "(.*?)"$/) do |arg1, arg2|
|
|
40
40
|
@page.login_usuario_nibbler_element.when_visible(timeout=20)
|
|
41
|
-
@page.
|
|
42
|
-
@page.
|
|
41
|
+
@page.mail_usuario_nibbler_element.set(arg1)
|
|
42
|
+
@page.pass_usuario_nibbler_element.set(arg2)
|
|
43
43
|
@page.boton_usuario_nibbler_element.click
|
|
44
44
|
sleep(1)
|
|
45
45
|
end
|
|
@@ -4,7 +4,6 @@ module NewCheckout
|
|
|
4
4
|
attr_accessor :ida, :vuelta, :tarifas, :idas, :vueltas
|
|
5
5
|
|
|
6
6
|
def cargar_precios(html)
|
|
7
|
-
byebug
|
|
8
7
|
@tarifas = Hash.new
|
|
9
8
|
|
|
10
9
|
@tarifas["ida"] = cargar_precio_tramo((html/"div.fare-detail-wrappers div.fare-detail-wrapper").first)
|
|
@@ -27,6 +26,24 @@ module NewCheckout
|
|
|
27
26
|
return tarifa_tramo
|
|
28
27
|
end
|
|
29
28
|
|
|
29
|
+
def validar_suma_desgloce(linea = "total|tarifa_adulto|tarifa_adulto_dolar")
|
|
30
|
+
sumaTarifas = 0
|
|
31
|
+
|
|
32
|
+
@tarifas["ida"].each_pair do |key,tarifa|
|
|
33
|
+
if key !~ /#{linea}/
|
|
34
|
+
sumaTarifas += tarifa.valor
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
@tarifas["vuelta"].each_pair do |key,tarifa|
|
|
39
|
+
if key !~ /#{linea}/
|
|
40
|
+
sumaTarifas += tarifa.valor
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
return sumaTarifas.to_i
|
|
45
|
+
end
|
|
46
|
+
|
|
30
47
|
end
|
|
31
48
|
|
|
32
49
|
end
|
|
@@ -9,7 +9,7 @@ module NewCheckout
|
|
|
9
9
|
eval "#{itinerario.downcase}(html)"
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def
|
|
12
|
+
def multipleoneway(html)
|
|
13
13
|
tramos = cargar_tramos((html/"div.outbound-route div.segment"))
|
|
14
14
|
@ida = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
15
15
|
@idas = tramos
|
|
@@ -18,6 +18,15 @@ module NewCheckout
|
|
|
18
18
|
@vueltas = tramos
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
def roundtrip(html)
|
|
22
|
+
tramos = cargar_tramos((html/"div.outbound-route div.segment"))
|
|
23
|
+
@ida = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
24
|
+
@idas = tramos
|
|
25
|
+
tramos = cargar_tramos((html/"div.inbound-route div.segment"))
|
|
26
|
+
@vuelta = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
27
|
+
@vueltas = tramos
|
|
28
|
+
end
|
|
29
|
+
|
|
21
30
|
def oneway(html)
|
|
22
31
|
tramos = cargar_tramos((html/"div.outbound-route div.segment"))
|
|
23
32
|
@ida = DataCluster.new(tramos.first['salida']['nombre'], tramos.last['llegada']['nombre'], tramos.first['salida']['fecha'], tramos.collect{|tramo| tramo['aerolinea']}, escala_to_i((html/"div.outbound-route span.stops").first.inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
|
|
@@ -3,25 +3,31 @@ module Results
|
|
|
3
3
|
attr_accessor :tramo, :tarifas
|
|
4
4
|
|
|
5
5
|
def initialize(html,index)
|
|
6
|
-
|
|
7
|
-
@
|
|
6
|
+
@tarifas = {}
|
|
7
|
+
@tarifas['total'] = Price.new((html/"span.currency").first.inner_text.strip + " " + (html/"span.amount").first.inner_text.strip)
|
|
8
|
+
@tramo = cargar_tramo(html)
|
|
8
9
|
@index = index
|
|
9
10
|
end
|
|
10
11
|
|
|
11
|
-
def cargar_tramo(info_ruta
|
|
12
|
-
aerolineas = (
|
|
12
|
+
def cargar_tramo(info_ruta)
|
|
13
|
+
aerolineas = (info_ruta/"li.airlines img").collect{|aerolinea| aerolinea.attributes['src'].match(/(..).png/)[1].upcase}
|
|
13
14
|
return DataCluster.new( nil, #nombre ciudad salida
|
|
14
15
|
nil, #nombre ciudad llegada
|
|
15
16
|
(info_ruta/"span.date").inner_text.strip, #fecha
|
|
16
17
|
aerolineas, #aerolineas
|
|
17
|
-
escala_to_i((
|
|
18
|
+
escala_to_i((info_ruta/"span.stops-text").inner_text.strip), #escalas
|
|
18
19
|
(info_ruta/"span.airport").first.inner_text.strip.no_accents, #iata ciudad salida
|
|
19
20
|
(info_ruta/"span.airport").last.inner_text.strip.no_accents, #iata ciudad llegada
|
|
20
|
-
Time.parse((
|
|
21
|
-
Time.parse((
|
|
22
|
-
(
|
|
21
|
+
Time.parse((info_ruta/"span.hour").first.inner_text.strip), #horario salida
|
|
22
|
+
Time.parse((info_ruta/"span.hour").last.inner_text.strip), #horario llegada
|
|
23
|
+
(info_ruta/"li.time").inner_text.strip #duracion
|
|
23
24
|
)
|
|
24
25
|
end
|
|
25
26
|
|
|
27
|
+
def escala_to_i(escala)
|
|
28
|
+
return 0 if escala.to_s =~ /(solo vuelo directo)|(Sin escalas)|(Sem escalas)|(Soamente v.o directo)|(Vuelo Directo)|(Directo)/i
|
|
29
|
+
return escala.to_s.gsub(/\D/,'').to_i
|
|
30
|
+
end
|
|
31
|
+
|
|
26
32
|
end
|
|
27
33
|
end
|
|
@@ -14,6 +14,13 @@ module Results
|
|
|
14
14
|
@vueltas = cargar_tramos((html/"div.inbound"))
|
|
15
15
|
@vuelta = @vueltas.first
|
|
16
16
|
end
|
|
17
|
+
|
|
18
|
+
def multipleoneway(html)
|
|
19
|
+
@idas = cargar_tramos((html/"div.outbound"))
|
|
20
|
+
@ida = @idas.first
|
|
21
|
+
@vueltas = cargar_tramos((html/"div.inbound"))
|
|
22
|
+
@vuelta = @vueltas.first
|
|
23
|
+
end
|
|
17
24
|
|
|
18
25
|
def oneway(html)
|
|
19
26
|
@idas = cargar_tramos((html/"div.outbound"))
|
|
@@ -9,7 +9,7 @@ module NewCheckout
|
|
|
9
9
|
div(:tarjetas_guardadas,:id=>"stored-cards")
|
|
10
10
|
div(:nueva_tarjeta,:class=>"new-card-container")
|
|
11
11
|
div(:datos_tarjeta_guardada,:id=>"paymentDefinition.billingAddressDefinition")
|
|
12
|
-
div(:login_usuario_nibbler,:
|
|
12
|
+
div(:login_usuario_nibbler,:class=>"box-main-account")
|
|
13
13
|
|
|
14
14
|
link(:log_out_checkout,:css=>"#checkout-login .log-out")
|
|
15
15
|
link(:log_in_checkout,:css=>"#checkout-login .log-in")
|
|
@@ -23,10 +23,10 @@ module NewCheckout
|
|
|
23
23
|
|
|
24
24
|
text_field(:codigo_seguridad_tarjeta_guardada,:id=>"stored-card-0-security-code")
|
|
25
25
|
|
|
26
|
-
text_field(:mail_usuario_nibbler,:
|
|
27
|
-
text_field(:pass_usuario_nibbler,:
|
|
26
|
+
text_field(:mail_usuario_nibbler,:name=>"username")
|
|
27
|
+
text_field(:pass_usuario_nibbler,:name=>"password")
|
|
28
28
|
|
|
29
|
-
button(:boton_usuario_nibbler,:class=>"
|
|
29
|
+
button(:boton_usuario_nibbler,:class=>"social-comp-common-button social-comp-common-button-primary social-comp-common-button-medium")
|
|
30
30
|
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -9,7 +9,7 @@ module OldCheckout
|
|
|
9
9
|
div(:tarjetas_guardadas,:id=>"stored-cards")
|
|
10
10
|
div(:nueva_tarjeta,:class=>"new-card-container")
|
|
11
11
|
div(:datos_tarjeta_guardada,:id=>"paymentDefinition.billingAddressDefinition")
|
|
12
|
-
div(:login_usuario_nibbler,:
|
|
12
|
+
div(:login_usuario_nibbler,:class=>"box-main-account")
|
|
13
13
|
|
|
14
14
|
link(:log_out_checkout,:css=>"#checkout-login .log-out")
|
|
15
15
|
link(:log_in_checkout,:css=>"#checkout-login .log-in")
|
|
@@ -26,7 +26,7 @@ module OldCheckout
|
|
|
26
26
|
text_field(:mail_usuario_nibbler,:id=>"signin-email")
|
|
27
27
|
text_field(:pass_usuario_nibbler,:id=>"signin-pass")
|
|
28
28
|
|
|
29
|
-
button(:boton_usuario_nibbler,:class=>"
|
|
29
|
+
button(:boton_usuario_nibbler,:class=>"social-comp-common-button social-comp-common-button-primary social-comp-common-button-medium")
|
|
30
30
|
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -12,6 +12,7 @@ module Results
|
|
|
12
12
|
cluster_html = Hpricot.parse(itinerarios_elements[i].html)
|
|
13
13
|
|
|
14
14
|
if itinerarios_elements[i].link(:class,"frequent-flyer").present?
|
|
15
|
+
|
|
15
16
|
if tipo_de_busqueda != "multipledestinations"
|
|
16
17
|
airline = json['result']['data']['items'][i]['itinerariesBox']['frequentFlyerInfo']['airline']['code']
|
|
17
18
|
miles = json['result']['data']['items'][i]['itinerariesBox']['frequentFlyerInfo']['points']['formatted']
|
|
@@ -39,15 +40,6 @@ module Results
|
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
itinerarios_elements[i].link(:class,"frequent-flyer").text.downcase.strip.no_accents.should match(data[airline].last.gsub(/cant/,miles).gsub(/unit/,data["unit"][unit]).downcase.strip.no_accents)
|
|
42
|
-
itinerarios_elements[i].link(:class,"frequent-flyer").click
|
|
43
|
-
popup_pasajero_frecuente_element.when_visible(timeout=20)
|
|
44
|
-
|
|
45
|
-
if popup_pasajero_frecuente_element.present?
|
|
46
|
-
doc = Hpricot.parse(popup_pasajero_frecuente_element.html)
|
|
47
|
-
(doc/"div.popup-content").inner_text.gsub(/\n\n/," ").gsub(/\n/,"").downcase.no_accents.strip.should match(text.downcase + data[airline][0].downcase.strip)
|
|
48
|
-
popup_pasajero_frecuente_element.span(:class,'popup-close-button popup-close').click
|
|
49
|
-
popup_pasajero_frecuente_element.when_not_visible(timeout=20)
|
|
50
|
-
end
|
|
51
43
|
|
|
52
44
|
else
|
|
53
45
|
|
|
@@ -45,12 +45,13 @@ module Results
|
|
|
45
45
|
fecha_seleccionada_element
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
def
|
|
48
|
+
def cargar_itinerarios_multipleoneway
|
|
49
49
|
@clusters = []
|
|
50
50
|
doc=Hpricot.parse(clusters_element.html)
|
|
51
51
|
(doc/"div.cluster").each_with_index do |cluster,i|
|
|
52
52
|
@clusters << Results::MiniCluster.new(cluster,i)
|
|
53
53
|
end
|
|
54
|
+
return @clusters
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
def elegir(index)
|
|
@@ -27,7 +27,7 @@ module Results
|
|
|
27
27
|
text_field(:mail_usuario_nibbler,:id=>"signin-email")
|
|
28
28
|
text_field(:pass_usuario_nibbler,:id=>"signin-pass")
|
|
29
29
|
|
|
30
|
-
button(:boton_usuario_nibbler,:class=>"
|
|
30
|
+
button(:boton_usuario_nibbler,:class=>"social-comp-common-button social-comp-common-button-primary social-comp-common-button-medium")
|
|
31
31
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -72,8 +72,8 @@ class AllPages
|
|
|
72
72
|
|
|
73
73
|
def elegir_idioma()
|
|
74
74
|
if @@site=="US"
|
|
75
|
-
if @browser.span(:class,'nibbler-header-user-menu-icon-flag nibbler--flag-
|
|
76
|
-
@browser.span(:class,'nibbler-header-user-menu-icon-flag nibbler--flag-
|
|
75
|
+
if @browser.span(:class,'nibbler-header-user-menu-icon-flag nibbler--flag-US nibbler--lang-es').present?
|
|
76
|
+
@browser.span(:class,'nibbler-header-user-menu-icon-flag nibbler--flag-US nibbler--lang-es').click
|
|
77
77
|
@browser.li(:class,'nibbler-header-popup-selector-item').links[0].click
|
|
78
78
|
end
|
|
79
79
|
sleep(1)
|
|
@@ -21,6 +21,7 @@ module Thanks
|
|
|
21
21
|
elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
|
|
22
22
|
elements(:links_mas_detalles_gracias,:link,:css=>"#popup-booking-details .stops .number")
|
|
23
23
|
|
|
24
|
+
span(:cluster_doble,:class=>"fare-detail-multipleoneway-title")
|
|
24
25
|
span(:cerrar_popup_desglose_detalles_gracias,:css=>".popup-detail .popup-close-button")
|
|
25
26
|
span(:cerrar_popup_desglose_gracias,:css=>"#popup-booking-details .popup-close-button")
|
|
26
27
|
span(:id_cro_pago_online,:class=>"thanks-reservation-homebanking-ticket-numbers")
|
|
@@ -33,7 +34,11 @@ module Thanks
|
|
|
33
34
|
link(:ver_desglose_gracias,:class=>"detail-handler")
|
|
34
35
|
|
|
35
36
|
def datos_itinerario()
|
|
36
|
-
|
|
37
|
+
if cluster_doble_element.present?
|
|
38
|
+
return NewCheckout::MultipleonewayCluster.new(tipo_de_busqueda,Hpricot.parse(itinerario_element.html))
|
|
39
|
+
else
|
|
40
|
+
return Thanks::Cluster.new(tipo_de_busqueda,Hpricot.parse(desglose_gracias_element.html))
|
|
41
|
+
end
|
|
37
42
|
end
|
|
38
43
|
|
|
39
44
|
end
|
data/features/support/version.rb
CHANGED
|
@@ -10,8 +10,6 @@ Característica: results.itineraries
|
|
|
10
10
|
Cuando realizo la busqueda
|
|
11
11
|
Entonces verifico que la pagina no rompa
|
|
12
12
|
Cuando espero que termine de cargar la pagina de resultados
|
|
13
|
-
Cuando ingreso a resultados con cookie "showFrequentFlyerPoints" al "1"
|
|
14
|
-
Cuando si pruebo streaming, ingreso a resultados streaming
|
|
15
13
|
Entonces verifico que traiga resultados
|
|
16
14
|
Cuando si el site es "MX|AR", verifico el ordenamiento premium economy
|
|
17
15
|
Cuando si el site no es "CO", ordeno por "TOTALFARE_ASCENDING"
|
|
@@ -10,14 +10,17 @@ Característica: results.multipleoneway
|
|
|
10
10
|
Cuando realizo la busqueda
|
|
11
11
|
Entonces verifico que la pagina no rompa
|
|
12
12
|
Cuando espero que termine de cargar la pagina de resultados
|
|
13
|
-
Cuando ingreso a resultados con cookie "showMultipleoneway" al "1"
|
|
14
13
|
Y verifico que traiga resultados
|
|
15
|
-
|
|
14
|
+
Cuando ingreso a resultados con cookie "showMultipleoneway" al "1"
|
|
16
15
|
Y espero que termine de cargar la pagina ida y vuelta separada
|
|
16
|
+
Y verifico que traiga resultados
|
|
17
17
|
Y cierro popups
|
|
18
|
-
Entonces cargo los itinerarios
|
|
18
|
+
Entonces cargo los itinerarios de ida
|
|
19
|
+
Entonces valido los itinerarios de ida
|
|
19
20
|
Cuando elijo una opcion de ida
|
|
20
21
|
Entonces valido que se muestre en la caja de ida
|
|
22
|
+
Entonces cargo los itinerarios de vuelta
|
|
23
|
+
Entonces valido los itinerarios de vuelta
|
|
21
24
|
Y elijo una opcion de vuelta
|
|
22
25
|
Entonces valido que se muestre en la caja de vuelta
|
|
23
26
|
Entonces paso al checkout
|
|
@@ -26,7 +29,7 @@ Característica: results.multipleoneway
|
|
|
26
29
|
Y verifico que ingrese al checkout
|
|
27
30
|
Entonces si existe la opcion de cobertura, elijo "no_chequear" si quiero cobertura
|
|
28
31
|
#Y si el site es "MX", valido que no se muestre la leyenda de tarifas en pesos
|
|
29
|
-
Y valido los valores del desglose del checkout
|
|
32
|
+
Y valido los valores del desglose del checkout con multipleoneway
|
|
30
33
|
Y verifico el pixel de Efrontier
|
|
31
34
|
Y verifico el pixel de trackeame en checkout
|
|
32
35
|
Y valido que no se muestre la leyenda de seguro gratis en el desglose
|
|
@@ -35,14 +38,14 @@ Característica: results.multipleoneway
|
|
|
35
38
|
Y verifico que se muestren la caja de clientes felices
|
|
36
39
|
Y verifico que se muestren las reviews de aerolineas
|
|
37
40
|
Entonces cargo los pasajeros
|
|
38
|
-
Y cargo los datos de la tarjeta
|
|
39
|
-
Y si el site es "AR|MX|PE|
|
|
41
|
+
Y cargo los datos de la tarjeta en el nuevo formulario
|
|
42
|
+
Y si el site es "AR|MX|PE|BR", cargo los datos de facturacion
|
|
40
43
|
Y cargo los datos de contacto
|
|
41
44
|
Y verifico que los datos cargados sean mostrados correctamente al lado del boton comprar
|
|
42
45
|
Cuando acepto y compro
|
|
43
46
|
Entonces espero que termine el pedido de compra
|
|
44
47
|
Y verifico si no trae errores
|
|
45
|
-
Entonces si aparece el popup de no disponibilidad, elijo un itinerario del popup de no disponibilidad
|
|
48
|
+
Entonces si aparece el popup de no disponibilidad, elijo un itinerario para checkout de nuevas formas de pago del popup de no disponibilidad
|
|
46
49
|
Entonces espero que termine de cargar la pagina de gracias
|
|
47
50
|
Y verifico que ingrese a la pagina de gracias
|
|
48
51
|
Y verifico el link de mi despegar
|
|
@@ -51,13 +54,13 @@ Característica: results.multipleoneway
|
|
|
51
54
|
Y verifico los valores del desglose en gracias contra los del checkout
|
|
52
55
|
Y verifico el tag de datalayer
|
|
53
56
|
Y verifico el pixel de Efrontier
|
|
57
|
+
Y verifico el pixel de doubleclick
|
|
54
58
|
Y verifico el pixel de trackeame en gracias
|
|
55
|
-
#Y verifico los datos de la reserva enviados a fenix
|
|
56
59
|
Y cancelo la reserva en el proveedor
|
|
57
60
|
|
|
58
61
|
@br
|
|
59
|
-
@
|
|
62
|
+
@multipleoneway
|
|
60
63
|
Ejemplos:
|
|
61
64
|
|pais|tipo|cabotage|
|
|
62
|
-
|BR |
|
|
65
|
+
|BR |multipleoneway|nil|
|
|
63
66
|
|
data/flights_gui_tests.gemspec
CHANGED
|
@@ -30,7 +30,6 @@ Gem::Specification.new do |gem|
|
|
|
30
30
|
gem.add_dependency('mock_search', '>= 1.0.0')
|
|
31
31
|
gem.add_dependency('mysql2')
|
|
32
32
|
gem.add_dependency('dater')
|
|
33
|
-
#gem.add_dependency('byebug')
|
|
34
33
|
gem.add_dependency('auto_uy_utils')
|
|
35
34
|
gem.add_dependency('roma_automation')
|
|
36
35
|
gem.add_dependency('parallel_tests')
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: flights_gui_tests
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.3.
|
|
4
|
+
version: 2.3.27
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- lgonzalez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-09-
|
|
11
|
+
date: 2015-09-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: henry-container
|