flights_gui_tests 2.3.38 → 2.3.39

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05ba2b6193418b9d76aee91ad4b9763e779f2e47
4
- data.tar.gz: b565d8600184414e623123f2b4ce3bd3b75fb148
3
+ metadata.gz: cd67bc4d8f5f87089ea2d31a96e02e914e684135
4
+ data.tar.gz: b218729030d51c82c3692b45b67af965a2783273
5
5
  SHA512:
6
- metadata.gz: c57133199bca8e2515b46cade064c7a7a93609e89264a84d13f8a1ff82c041970cb20390daf6041955b2750dff839bdffe5b6182440fe66f72709b5ab6eb62b9
7
- data.tar.gz: 489e514105b34ef8433cec4dff6dc39491bd65452c404bf5715dd6f1681a1aa92269cc943abfe5beb1eed2418bc639a57a92373ce18c35e6b1f1428bac873770
6
+ metadata.gz: 150a43ba32803450cb933be93b3e64e06475e468b883fa35ab6d55cda6068f43e9690196cd51dd2f2c96718947bedb66ca780717a35cb7083a43d9b0d07baf53
7
+ data.tar.gz: df69891a302ab4ec4d62bedd8a5a3f28e8ce66c88d69fa75c45db2d9d8c611fa6dc4dbe9a8718725f3c9ef8c93b8bedfea30f83b72e0714339e5df71cfc47e66
@@ -32,7 +32,7 @@ Entonces(/^(?:verifico|valido) que vuelva al checkout correctamente$/) do
32
32
  end
33
33
 
34
34
  Entonces(/^(?:verifico|valido) los pasos para hacer el pago online$/) do
35
- @page.mensaje_alerta_element.text.no_accents.should equal("Recuerde que el pago debera ser realizado antes de las 20hs, de lo contrario su reserva sera cancelada.")
35
+ @page.mensaje_alerta_cash_element.text.no_accents.should equal("Recuerde que el pago debera ser realizado antes de las 20hs, de lo contrario su reserva sera cancelada.")
36
36
  @page.checkout_id_cash_element.should visible("numero de reserva")
37
37
  @page.pasos_pago_online_elements.length.should equal(8)
38
38
  @page.checkout_id_cash_element.text.should match(@id_reserva)
@@ -12,8 +12,8 @@ Y(/^comparo los datos de cluster contra los detalles$/) do
12
12
  (item.tramos.first["fecha_origen"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].idas[j].fecha.strftime("%d%m"))
13
13
  (item.tramos.first["hora_origen"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].idas[j].hou_sal_ida.strftime("%d%m"))
14
14
  item.duracion.to_s.should match((@page.datos_de_itinerarios[i].idas[j].duracion).to_s)
15
- item.tramos.first["ciudad_destino"].should match(@page.datos_de_itinerarios[i].idas[j].destino.no_accents.strip)
16
- (item.tramos.first["hora_destino"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].idas[j].hou_lle_ida.strftime("%d%m"))
15
+ item.tramos.last["ciudad_destino"].should match(@page.datos_de_itinerarios[i].idas[j].destino.no_accents.strip)
16
+ (item.tramos.last["hora_destino"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].idas[j].hou_lle_ida.strftime("%d%m"))
17
17
  end
18
18
  detail["vueltas"].each_with_index do |item,j|
19
19
  item.tramos.first["clase"].should be_true
@@ -22,8 +22,8 @@ Y(/^comparo los datos de cluster contra los detalles$/) do
22
22
  (item.tramos.first["fecha_origen"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].vueltas[j].fecha.strftime("%d%m"))
23
23
  (item.tramos.first["hora_origen"].strftime("%H%M")).should match(@page.datos_de_itinerarios[i].vueltas[j].hou_sal_ida.strftime("%H%M"))
24
24
  item.duracion.to_s.should match((@page.datos_de_itinerarios[i].vueltas[j].duracion).to_s)
25
- item.tramos.first["ciudad_destino"].should match(@page.datos_de_itinerarios[i].vueltas[j].destino.no_accents.strip)
26
- (item.tramos.first["hora_destino"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].vueltas[j].hou_lle_ida.strftime("%d%m"))
25
+ item.tramos.last["ciudad_destino"].should match(@page.datos_de_itinerarios[i].vueltas[j].destino.no_accents.strip)
26
+ (item.tramos.last["hora_destino"].strftime("%d%m")).should match(@page.datos_de_itinerarios[i].vueltas[j].hou_lle_ida.strftime("%d%m"))
27
27
  end
28
28
  end
29
29
  end
@@ -16,7 +16,7 @@ end
16
16
  Y(/^(?:verifico|valido) que la ciudad destino sea la que se eligio$/) do
17
17
  doc = Hpricot.parse(@page.html)
18
18
  ciudades = (doc/"div.mainTitle/h1").inner_text.strip.no_accents
19
- ciudad_destino = ciudades.match(/ (para|a|to) ([^,]+)/)[2].strip
19
+ ciudad_destino = ciudades.match(/ (para|a|to) ([^,]+) desde (.+)/)[2].strip
20
20
  @page.ciudad_elegida.downcase.should equal(ciudad_destino.downcase) unless @page.ciudad_elegida.match(/Guarullos|Panama|Santiago|Mexico/)
21
21
  end
22
22
 
@@ -92,7 +92,7 @@ end
92
92
 
93
93
  Cuando(/^(?:verifico|valido) que el paginado no rompa en la ultima paginas de landing$/) do
94
94
  doc = Hpricot.parse(@page.html)
95
- unless (doc/"div.flights-pagination li.page a").length==1
95
+ unless (doc/"div.flights-pagination li.page a").length==1 or @page.paginas_elements[-1].nil?
96
96
  url_with_filter = @page.url
97
97
  iterator = @page.paginas_elements[-1].text
98
98
  @page.paginas_elements[-1].links[0].click
@@ -39,6 +39,8 @@ Y(/^(?:verifico|valido) la pagina donde ingresa$/) do
39
39
  @page_results = Results::SearchPage.new($browser)
40
40
  @page_checkout = Checkout::NewCheckoutPage.new($browser)
41
41
  puts " URL: #{@page.url}"
42
+ @page.elegir_idioma
43
+ @page.cargar_valores_abtesting
42
44
  Watir::Wait.until(timeout = 300){@page_results.carga_element.present? or @page_results.itinerario_element.present? or @page_checkout.pasajeros_element.present? or @page_checkout.notificacion_warning_element.present?}
43
45
  if @page_checkout.pasajeros_element.present? or @page_checkout.notificacion_warning_element.present?
44
46
  @page = @page_checkout
@@ -50,19 +50,19 @@ end
50
50
 
51
51
  Entonces(/^(?:verifico|valido) que si la url no tiene el seoPath, se redirige a la pagina que si lo tiene$/) do
52
52
  @page.ir(@path_landing[1])
53
- sleep(0.5)
53
+ sleep(1)
54
54
  @page.url.strip.should equal(@path_landing.to_s.gsub(/\?(.+)/,'').strip)
55
55
  end
56
56
 
57
57
  Entonces(/^(?:verifico|valido) que si el seoPath esta mal escrito, se redirige a la pagina con el seoPath correcto$/) do
58
58
  @page.ir(@path_landing[1]+"qwerty")
59
- sleep(0.5)
59
+ sleep(1)
60
60
  @page.url.strip.should equal(@path_landing.to_s.strip.to_s.gsub(/\?(.+)/,'').strip)
61
61
  end
62
62
 
63
63
  Entonces(/^(?:verifico|valido) que si se pone un codigo de aeropuerto en vez de uno de cuidad, se redirige a la ciudad del aeropuerto$/) do
64
64
  @page.ir(@path_landing[1].gsub(/\/...\/...\//,"/ccs/eze/"))
65
- sleep(0.5)
65
+ sleep(1)
66
66
  if AllPages.lang=="pt"
67
67
  @page.url.strip.should equal(@path_landing[1].to_s.gsub(/\/...\/...\//,"/ccs/bue/")+@path_landing[2]+"-buenos+aires-saindo-de-caracas")
68
68
  elsif AllPages.lang=="en"
@@ -74,27 +74,27 @@ end
74
74
 
75
75
  Entonces(/^(?:verifico|valido) que si se pone algun caracter en mayuscula, se redirige a todo minuscula$/) do
76
76
  @page.ir(@path_landing[1] + @path_landing[2].upcase + @path_landing[3])
77
- sleep(0.5)
77
+ sleep(1)
78
78
  @page.url.strip.should equal(@path_landing.to_s.strip)
79
79
  end
80
80
 
81
81
  Entonces(/^(?:verifico|valido) que si la url tiene parametros, se deben conservar en la redireccion$/) do
82
82
  @page.ir(@path_landing[1] + "qwerty?param=value")
83
- sleep(0.5)
83
+ sleep(1)
84
84
  @page.url.strip.should equal("#{@path_landing.to_s.strip.to_s.gsub(/\?(.+)/,'').strip}?param=value")
85
85
  end
86
86
 
87
87
  Entonces(/^(?:verifico|valido) que la url para sem funcione correctamente con un ciudad con resultados sin seoPath$/) do
88
88
  match = @path_landing[1].match(/(.+)(vuelos|passagens-aereas|flights)\/(...)\/(...)\//)
89
89
  @page.ir("#{match[1]}#{match[2]}/handler/#{match[3]}/#{match[4]}")
90
- sleep(0.5)
90
+ sleep(1)
91
91
  @page.url.strip.should equal(@path_landing.to_s.strip.gsub(/\?(.+)/,''))
92
92
  end
93
93
 
94
94
  Entonces(/^(?:verifico|valido) que la url para sem funcione correctamente con un ciudad sin resultados sin seoPath$/) do
95
95
  match = @path_landing[1].match(/(.+)(vuelos|passagens-aereas|flights)\/(...)\/(...)\//)
96
96
  @page.ir("#{match[1]}#{match[2]}/handler/#{match[3]}/KLP")
97
- sleep(0.5)
97
+ sleep(1)
98
98
  @page.url.strip.should equal("#{match[1]}#{match[2].to_s.gsub(/\?(.+)/,'').strip}/")
99
99
  end
100
100
 
@@ -54,6 +54,7 @@ Cuando(/^espero que (?:termine|finalize|acabe) de cargar la pagina de resultados
54
54
  @page.carga_element.when_not_visible(timeout=200)
55
55
  @page.actualizar_filtro_element.when_not_visible(timeout=120)
56
56
  @page.barra_progreso_element.when_not_visible(timeout=200)
57
+ @page.loader_element.when_not_visible(timeout=100)
57
58
  end
58
59
 
59
60
  Cuando(/^espero que (?:termine|finalize|acabe) de cargar la pagina de streaming de resultados$/) do
@@ -3,7 +3,7 @@ Cuando(/^espero que termine de cargar la pagina de gracias$/) do
3
3
  if @page.new_thanks?
4
4
  @page = Thanks::NewThanksPage.new($browser)
5
5
  else
6
- @page = Thanks::OldThanksPage.new($browser)
6
+ @page = Thanks::NewThanksPage.new($browser)
7
7
  end
8
8
  Watir::Wait.until(timeout=120){@page.checkout_id_element.present? or @page.checkout_id_cash_element.present?}
9
9
  end
@@ -26,6 +26,7 @@ Entonces(/^(?:verifico|valido) el link de mi despegar$/) do
26
26
  end
27
27
 
28
28
  Y(/^(?:verifico|valido) los valores del desglose en gracias contra los del checkout/) do
29
+ @itinerario_gracias = @page.datos_itinerario
29
30
  unless @cambio_precio
30
31
  @itinerario_gracias.validar_suma_desgloce.should be_within(4).of(@itinerario_gracias.tarifas['total'].value)
31
32
  unless @itinerario_gracias.tarifas['adt'].nil? or @itinerario_gracias.tarifas['adt'].valor.zero? or @itinerario_gracias.tarifas['tarifa_adulto'].nil?
@@ -1,85 +1,85 @@
1
1
  # -*- encoding : utf-8 -*-
2
- class LandingCluster < Results::OldCluster
2
+ class LandingCluster < Results::NewCluster
3
3
 
4
4
 
5
- def load_data_from(div_datos)
6
- @idas = Array.new
7
- (div_datos/"li.itinerary").each do |div_datos_ida|
8
- duracion = (div_datos_ida/"li.time").inner_text.strip
9
- origen = (div_datos/"span.city-departure").first.inner_text.gsub(/,/,'').strip.no_accents
10
- destino= (div_datos/"span.city-arrival").first.inner_text.gsub(/,/,'').strip.no_accents
11
- origen_iata = (div_datos/"a")[0].inner_text.strip
12
- destino_iata = (div_datos/"a")[1].inner_text.strip
13
- fecha = (div_datos_ida/"li.date").first.inner_text.strip.no_accents
14
- escala = (div_datos_ida/"li.stops/a").inner_text.strip.empty? ? "Sin escalas" : (div_datos_ida/"li.stops/a").inner_text.to_i
15
- aerolinea = Array.new
16
- i = 0
17
- (div_datos_ida/"li.airlinesShort//img").each do |aer|
18
- aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
19
- i = i + 1
20
- end
21
- (div_datos_ida/"li.airlines//img").each do |aer|
22
- aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
23
- i = i + 1
24
- end
25
- hou_sal_ida = Time.parse((div_datos_ida/"li.leave span.hour").inner_text.strip)
26
- hou_lle_ida = Time.parse((div_datos_ida/"li.arrive span.hour").inner_text.strip)
27
- @idas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
28
- end
29
- @nro_vuelo_ida = 0
30
- @ida = @idas[@nro_vuelo_ida]
31
- end
32
- def load_data_to(div_datos)
33
- @vueltas = Array.new
34
- (div_datos/"li.itinerary").each do |div_datos_vuelta|
35
- duracion = (div_datos_vuelta/"li.time").inner_text.strip
36
- origen = (div_datos/"span.city-departure").first.inner_text.gsub(/,/,'').strip.no_accents
37
- destino= (div_datos/"span.city-arrival").first.inner_text.gsub(/,/,'').strip.no_accents
38
- origen_iata = (div_datos/"a")[0].inner_text.strip
39
- destino_iata = (div_datos/"a")[1].inner_text.strip
40
- fecha = (div_datos_vuelta/"li.date").last.inner_text.strip.no_accents
41
- escala = (div_datos_vuelta/"li.stops/a").inner_text.strip.empty? ? "Sin escalas" : (div_datos_vuelta/"li.stops/a").inner_text.to_i
42
- aerolinea = Array.new
43
- i = 0
44
- (div_datos_vuelta/"li.airlinesShort//img").each do |aer|
45
- aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
46
- i = i + 1
47
- end
48
- (div_datos_vuelta/"li.airlines//img").each do |aer|
49
- aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
50
- i = i + 1
51
- end
52
- hou_sal_ida = Time.parse((div_datos_vuelta/"li.leave span.hour").inner_text.strip)
53
- hou_lle_ida = Time.parse((div_datos_vuelta/"li.arrive span.hour").inner_text.strip)
54
- @vueltas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
55
- end
56
- @nro_vuelo_vuelta = 0
57
- @vuelta = @vueltas[@nro_vuelo_vuelta]
58
- end
5
+ # def load_data_from(div_datos)
6
+ # @idas = Array.new
7
+ # (div_datos/"li.itinerary").each do |div_datos_ida|
8
+ # duracion = (div_datos_ida/"li.time").inner_text.strip
9
+ # origen = (div_datos/"span.city-departure").first.inner_text.gsub(/,/,'').strip.no_accents
10
+ # destino= (div_datos/"span.city-arrival").first.inner_text.gsub(/,/,'').strip.no_accents
11
+ # origen_iata = (div_datos/"a")[0].inner_text.strip
12
+ # destino_iata = (div_datos/"a")[1].inner_text.strip
13
+ # fecha = (div_datos_ida/"li.date").first.inner_text.strip.no_accents
14
+ # escala = (div_datos_ida/"li.stops/a").inner_text.strip.empty? ? "Sin escalas" : (div_datos_ida/"li.stops/a").inner_text.to_i
15
+ # aerolinea = Array.new
16
+ # i = 0
17
+ # (div_datos_ida/"li.airlinesShort//img").each do |aer|
18
+ # aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
19
+ # i = i + 1
20
+ # end
21
+ # (div_datos_ida/"li.airlines//img").each do |aer|
22
+ # aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
23
+ # i = i + 1
24
+ # end
25
+ # hou_sal_ida = Time.parse((div_datos_ida/"li.leave span.hour").inner_text.strip)
26
+ # hou_lle_ida = Time.parse((div_datos_ida/"li.arrive span.hour").inner_text.strip)
27
+ # @idas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
28
+ # end
29
+ # @nro_vuelo_ida = 0
30
+ # @ida = @idas[@nro_vuelo_ida]
31
+ # end
32
+ # def load_data_to(div_datos)
33
+ # @vueltas = Array.new
34
+ # (div_datos/"li.itinerary").each do |div_datos_vuelta|
35
+ # duracion = (div_datos_vuelta/"li.time").inner_text.strip
36
+ # origen = (div_datos/"span.city-departure").first.inner_text.gsub(/,/,'').strip.no_accents
37
+ # destino= (div_datos/"span.city-arrival").first.inner_text.gsub(/,/,'').strip.no_accents
38
+ # origen_iata = (div_datos/"a")[0].inner_text.strip
39
+ # destino_iata = (div_datos/"a")[1].inner_text.strip
40
+ # fecha = (div_datos_vuelta/"li.date").last.inner_text.strip.no_accents
41
+ # escala = (div_datos_vuelta/"li.stops/a").inner_text.strip.empty? ? "Sin escalas" : (div_datos_vuelta/"li.stops/a").inner_text.to_i
42
+ # aerolinea = Array.new
43
+ # i = 0
44
+ # (div_datos_vuelta/"li.airlinesShort//img").each do |aer|
45
+ # aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
46
+ # i = i + 1
47
+ # end
48
+ # (div_datos_vuelta/"li.airlines//img").each do |aer|
49
+ # aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
50
+ # i = i + 1
51
+ # end
52
+ # hou_sal_ida = Time.parse((div_datos_vuelta/"li.leave span.hour").inner_text.strip)
53
+ # hou_lle_ida = Time.parse((div_datos_vuelta/"li.arrive span.hour").inner_text.strip)
54
+ # @vueltas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
55
+ # end
56
+ # @nro_vuelo_vuelta = 0
57
+ # @vuelta = @vueltas[@nro_vuelo_vuelta]
58
+ # end
59
59
 
60
- def load_prices(p_html)
60
+ # def load_prices(p_html)
61
61
 
62
- @tarifas = Hash.new
63
- @tarifas['tarifa_adulto'] = Price.new((p_html/"span.price-currency span.currency").first.inner_text.strip + " " + (p_html/"span.price-currency span.amount").first.inner_text.strip)
64
- @tarifas['tarifa_adulto_dolar'] = Price.new((p_html/"span.price-currency span.currency").last.inner_text.strip + " " + (p_html/"span.price-currency span.amount").last.inner_text.strip)
65
- @tarifas['adt'] = (p_html/"ul.fare-detail//li").empty? ? Price.new("$ 0",true) : Price.new(((p_html/"ul.fare-detail//li").select{|li| li.inner_text.no_accents.downcase =~ /adulto/}.first/"span[@class='price-currency ARS']").inner_text.strip)
62
+ # @tarifas = Hash.new
63
+ # @tarifas['tarifa_adulto'] = Price.new((p_html/"span.price-currency span.currency").first.inner_text.strip + " " + (p_html/"span.price-currency span.amount").first.inner_text.strip)
64
+ # @tarifas['tarifa_adulto_dolar'] = Price.new((p_html/"span.price-currency span.currency").last.inner_text.strip + " " + (p_html/"span.price-currency span.amount").last.inner_text.strip)
65
+ # @tarifas['adt'] = (p_html/"ul.fare-detail//li").empty? ? Price.new("$ 0",true) : Price.new(((p_html/"ul.fare-detail//li").select{|li| li.inner_text.no_accents.downcase =~ /adulto/}.first/"span[@class='price-currency ARS']").inner_text.strip)
66
66
 
67
- adt = (p_html/"li").select{|li| li.inner_text.no_accents.downcase =~ /adulto/}.first
68
- @tarifas['adt'] = adt ? Price.new((adt/"span.currency").first.inner_text.strip + " " + (adt/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
67
+ # adt = (p_html/"li").select{|li| li.inner_text.no_accents.downcase =~ /adulto/}.first
68
+ # @tarifas['adt'] = adt ? Price.new((adt/"span.currency").first.inner_text.strip + " " + (adt/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
69
69
 
70
- tasas = (p_html/"li.taxes-price").empty? ? (p_html/"li[@class='taxDetail.OTHER-price']").first : (p_html/"li.taxes-price").first
71
- @tarifas['tasas'] = tasas ? Price.new((tasas/"span.currency").first.inner_text.strip + " " + (tasas/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
70
+ # tasas = (p_html/"li.taxes-price").empty? ? (p_html/"li[@class='taxDetail.OTHER-price']").first : (p_html/"li.taxes-price").first
71
+ # @tarifas['tasas'] = tasas ? Price.new((tasas/"span.currency").first.inner_text.strip + " " + (tasas/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
72
72
 
73
- cargos = (p_html/"li.charges-price").first
74
- @tarifas['cargos'] = cargos ? Price.new((cargos/"span.currency").first.inner_text.strip + " " + (cargos/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
73
+ # cargos = (p_html/"li.charges-price").first
74
+ # @tarifas['cargos'] = cargos ? Price.new((cargos/"span.currency").first.inner_text.strip + " " + (cargos/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
75
75
 
76
- afip = (p_html/"li[@class='taxDetail.ZK-price']").first
77
- @tarifas['afip'] = afip ? Price.new((afip/"span.currency").first.inner_text.strip + " " + (afip/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
76
+ # afip = (p_html/"li[@class='taxDetail.ZK-price']").first
77
+ # @tarifas['afip'] = afip ? Price.new((afip/"span.currency").first.inner_text.strip + " " + (afip/"span.amount").first.inner_text.strip,true) : Price.new("$ 0",true)
78
78
 
79
- @tarifas['encargos'] = Price.new("$ 0",true)
79
+ # @tarifas['encargos'] = Price.new("$ 0",true)
80
80
 
81
- campo = (p_html/"li").empty? ? "total" : "fare"
82
- @tarifas['total'] = (p_html/"li.#{campo}-price span.currency").empty? ? Price.new("$ 0",true) : Price.new((p_html/"li.#{campo}-price span.currency").first.inner_text.strip + " " + (p_html/"li.#{campo}-price span.amount").first.inner_text.strip)
83
- end
81
+ # campo = (p_html/"li").empty? ? "total" : "fare"
82
+ # @tarifas['total'] = (p_html/"li.#{campo}-price span.currency").empty? ? Price.new("$ 0",true) : Price.new((p_html/"li.#{campo}-price span.currency").first.inner_text.strip + " " + (p_html/"li.#{campo}-price span.amount").first.inner_text.strip)
83
+ # end
84
84
 
85
85
  end
@@ -7,7 +7,7 @@ module Checkout
7
7
 
8
8
  element(:pasajeros,:fieldset,:id=>"passengers")
9
9
  element(:checkout_id,:em,:class=>"checkout-id")
10
- element(:checkout_id_cash,:span,:class=>"checkout-id")
10
+ element(:checkout_id_cash,:span,:class=>"number")
11
11
 
12
12
  link(:comprar,:id=>"submit")
13
13
  link(:cupon_validar,:id=>"validate-voucher")
@@ -14,6 +14,7 @@ module Landing
14
14
  elements(:filtros_salidas,:checkbox,:css=>".ux-flights-filter-departures input")
15
15
  elements(:paginas,:li,:css=>".flights-pagination .page")
16
16
  elements(:detalle_precio_itinerario, :li, :css=>"#clusters .cluster .fare-detail li")
17
+ elements(:new_popup_detail,:div,:class=>'inline-detail')
17
18
 
18
19
  element(:precio_itinerario, :span, :css=>".cluster .fare .price-currency")
19
20
  element(:precio_itinerario_mx, :span, :css=>".cluster .total-price-only .price-currency")
@@ -40,12 +41,12 @@ module Landing
40
41
  radio_button(:vuelo_roundtrip,:id=>"roundtrip")
41
42
 
42
43
  select_list(:orden,:id=>"orderby")
43
- select_list(:adultos,:css=>"#searchPopup .adultsSelect")
44
- select_list(:menores,:css=>"#searchPopup .childsSelect")
45
- select_list(:edad,:css=>"#searchPopup .selectAge")
44
+ select_list(:adultos,:css=>"#search-popup .adults-select")
45
+ select_list(:menores,:css=>"#search-popup .childs-select")
46
+ select_list(:edad,:css=>"#search-popup .select-age")
46
47
  select_list(:moneda,:id=>"currency")
47
48
 
48
- link(:buscar_popup,:css=>"#searchPopup .flights-search-button")
49
+ link(:buscar_popup,:css=>"#search-popup .search-button")
49
50
 
50
51
  li(:pagina_previa,:class=>"pagination-button prev")
51
52
  li(:pagina_siguiente,:class=>"pagination-button next")
@@ -77,7 +78,7 @@ module Landing
77
78
  opciones_vuelta_elements[index].click if tipo_de_busqueda=="roundtrip"
78
79
  boton_comprar = itinerarios_elements[index].links(:class,/buy/).select{|boton| boton.present?}
79
80
  boton_comprar.first.click
80
- sleep(0.5)
81
+ adultos_element.when_visible(timeout=10)
81
82
  adultos_element.select(2)
82
83
  menores_element.select(1)
83
84
  edad_element.select_value(4)
@@ -96,24 +97,29 @@ module Landing
96
97
  def cargar_detalles_itinerarios()
97
98
  clusters = Array.new
98
99
  doc = Hpricot.parse(lista_itinerarios_element.html)
100
+ k = 0
99
101
  (doc/"div.cluster").each_with_index do |cluster,i|
100
102
  _cluster = {"idas"=>Array.new,"vueltas"=>Array.new}
101
103
  (cluster/"div.outbound li.cluster-item").each_with_index do |item,j|
102
104
  itinerarios_elements[i].div(:class,'sub-cluster outbound').span(:class,'showMoreItineraries').click if itinerarios_elements[i].div(:class,'sub-cluster outbound').span(:class,'showMoreItineraries').present?
103
- itinerarios_elements[i].div(:class,"sub-cluster outbound").li(:class=>'item itinerary cluster-item',:index=>j).li(:class,'stops').link(:class,'text').click
104
- _cluster["idas"] << OldDetailsCluster.new(Hpricot.parse(popup_detalles_element.html))
105
- popup_detalles_element.span(:class,'popup-close-button popup-close').click
105
+ itinerarios_elements[i].div(:class,'sub-cluster outbound').lis(:class,'detail')[j].links[0].span(:class,'text').click
106
+ new_popup_detail_elements[k].when_visible(timeout=20)
107
+ _cluster["idas"] << NewDetailsCluster.new(Hpricot.parse(new_popup_detail_elements[k].html))
108
+ itinerarios_elements[i].div(:class,'sub-cluster outbound').li(:class,'detail').span(:class,'itinerary-detail-hide').click
106
109
  sleep(0.25)
110
+ k = k + 1
107
111
  end
108
112
  (cluster/"div.inbound li.cluster-item").each_with_index do |item,j|
109
113
  itinerarios_elements[i].div(:class,'sub-cluster inbound').span(:class,'showMoreItineraries').click if itinerarios_elements[i].div(:class,'sub-cluster inbound').span(:class,'showMoreItineraries').present?
110
- itinerarios_elements[i].div(:class,"sub-cluster inbound").li(:class=>'item itinerary cluster-item',:index=>j).li(:class,'stops').link(:class,'text').click
111
- _cluster["vueltas"] << OldDetailsCluster.new(Hpricot.parse(popup_detalles_element.html))
112
- popup_detalles_element.span(:class,'popup-close-button popup-close').click
114
+ itinerarios_elements[i].div(:class,'sub-cluster inbound').lis(:class,'detail')[j].links[0].span(:class,'text').click
115
+ new_popup_detail_elements[k].when_visible(timeout=20)
116
+ _cluster["vueltas"] << NewDetailsCluster.new(Hpricot.parse(new_popup_detail_elements[k].html))
117
+ itinerarios_elements[i].div(:class,'sub-cluster inbound').li(:class,'detail').span(:class,'itinerary-detail-hide').click
113
118
  sleep(0.25)
119
+ k = k + 1
114
120
  end
115
121
  clusters << _cluster
116
- break if i > 2
122
+ break if i > 1
117
123
  end
118
124
  return clusters
119
125
  end
@@ -25,6 +25,7 @@ module Results
25
25
  link(:link_mejor_precio,:id=>"best-price")
26
26
 
27
27
  span(:header_mejor_precio,:class=>"nibbler-common-header-bestprice-inside ")
28
+ span(:loader,:class=>"loader-content")
28
29
 
29
30
  li(:pagina_previa,:class=>"pagination-button prev")
30
31
  li(:pagina_siguiente,:class=>"pagination-button next")
@@ -17,6 +17,7 @@ module Thanks
17
17
  div(:link_mi_despegar,:id=>"self-service")
18
18
  div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
19
19
  div(:datos_deposito,:class=>"thanks-reservation-info")
20
+ p(:mensaje_alerta_cash,:class=>"delay")
20
21
 
21
22
  elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
22
23
  elements(:links_mas_detalles_gracias,:link,:css=>"#popup-booking-details .stops .number")
@@ -7,7 +7,7 @@ module Thanks
7
7
  include PageObject
8
8
 
9
9
  element(:checkout_id,:em,:class=>"checkout-id")
10
- element(:checkout_id_cash,:span,:class=>"checkout-id")
10
+ element(:checkout_id_cash,:span,:class=>"number")
11
11
 
12
12
  div(:popup_desglose_gracias,:id=>"popup-booking-details")
13
13
  div(:popup_asistencia_al_viajero,:id=>"insurance-recommendation-popup")
@@ -15,7 +15,7 @@ module Thanks
15
15
  div(:cerrar_popup_asistencia_al_viajero,:css=>"#insurance-recommendation-popup .message-close")
16
16
  div(:popup_desglose_detalles_gracias,:class=>"flights-popup popup-detail")
17
17
  div(:link_mi_despegar,:class=>"ux-shared-checkout-thanks-ticket-cont")
18
- div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
18
+ p(:mensaje_alerta,:class=>"delay")
19
19
  div(:datos_deposito,:class=>"thanks-reservation-info")
20
20
 
21
21
  elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
@@ -1,3 +1,3 @@
1
1
  module FlightsGui
2
- VERSION = "2.3.38"
2
+ VERSION = "2.3.39"
3
3
  end
@@ -34,7 +34,6 @@ Característica: checkout.online_payment
34
34
  Entonces espero que termine de cargar la pagina de gracias
35
35
  Y verifico que ingrese a la pagina de gracias para pago cash
36
36
  Y verifico el popup de asistencia al viajero
37
- Y verifico los datos del vuelo comprado
38
37
  Y verifico los valores del desglose en gracias contra los del checkout
39
38
  Y verifico los pasos para hacer el pago online
40
39
  Y verifico el tag de datalayer
@@ -9,7 +9,6 @@ Característica: landing.filters
9
9
  * ingreso una pagina de landing del tipo '<tipo>'
10
10
  Cuando realizo la busqueda
11
11
  Entonces verifico que la pagina no rompa
12
- Entonces si el site es "AR|CO|VE", ingreso y espero que cargue la vieja pagina de landing
13
12
  Y verifico que traiga resultados de landing
14
13
  Cuando elijo el tipo de vuelo "<tipo>"
15
14
  Entonces verifico que la pagina no rompa
@@ -17,37 +16,41 @@ Característica: landing.filters
17
16
  Y verifico que la url sea la correcta
18
17
  Entonces elijo moneda local como precio de filtrado
19
18
  Cuando verifico que se muestren los filtros de estadia
20
- Cuando elijo una aerolinea a aplicar
19
+ Cuando abro los filtros de aerolineas
20
+ Cuando elijo una aerolinea a aplicar - filtros nuevo -
21
21
  Entonces filtro por aerolinea
22
22
  Cuando espero que termine de cargar la pagina de landing
23
23
  Entonces verifico que la pagina no rompa
24
24
  Y verifico que la primer pagina muestre correctamente los filtros de aerolineas
25
- Cuando limpio el filtro de aerolineas
25
+ Cuando abro los filtros de aerolineas
26
+ Cuando limpio el filtro de aerolineas - filtros nuevo -
26
27
  Cuando espero que termine de cargar la pagina de landing
27
28
  Entonces verifico que la pagina no rompa
28
- Cuando elijo un aeropuerto outbound a aplicar
29
+ Cuando abro los filtros de aeropuertos
30
+ Cuando elijo un aeropuerto de origen a aplicar - filtros nuevo -
29
31
  Entonces filtro por aeropuerto
30
32
  Cuando espero que termine de cargar la pagina de landing
31
33
  Entonces verifico que la pagina no rompa
32
34
  Y verifico que la primer pagina muestre correctamente los filtros de aeropuertos outbound
33
- Cuando limpio el filtro de aeropuertos de salida
35
+ Cuando abro los filtros de aeropuertos
36
+ Cuando limpio el filtro de aeropuertos de origen - filtros nuevo -
34
37
  Cuando espero que termine de cargar la pagina de landing
35
- Cuando elijo una escala a aplicar
38
+ Cuando abro los filtros de escalas
39
+ Cuando elijo una escala a aplicar - filtros nuevo -
36
40
  Entonces filtro por escala
37
41
  Cuando espero que termine de cargar la pagina de landing
38
42
  Entonces verifico que la pagina no rompa
39
43
  Y verifico que la primer pagina muestre correctamente los filtros de escalas
40
- Cuando limpio el filtro de escalas
44
+ Cuando abro los filtros de escalas
45
+ Cuando limpio el filtro de escalas - filtros nuevo -
41
46
  Cuando espero que termine de cargar la pagina de landing
42
- Cuando elijo un horario outbound a aplicar
43
- Entonces filtro por horario outbound
47
+ Cuando abro los filtros de horarios
48
+ Cuando elijo un horario a aplicar - filtros nuevo -
49
+ Entonces filtro por horario de ida - filtros nuevo -
44
50
  Cuando espero que termine de cargar la pagina de landing
45
51
  Y verifico que traiga resultados de landing
46
52
  Entonces verifico que la pagina no rompa
47
- Y verifico que la primer pagina muestre correctamente los filtros de horario outbound
48
- Cuando limpio el filtro de horario outbound
49
- Cuando espero que termine de cargar la pagina de landing
50
- Entonces verifico que la pagina no rompa
53
+ Y valido que la primer pagina muestre correctamente los filtros de horario de ida - filtros nuevo -
51
54
 
52
55
  @ar
53
56
  @roundtrip
@@ -9,7 +9,6 @@ Característica: landing.integration
9
9
  * ingreso una pagina de landing del tipo '<tipo>'
10
10
  Cuando realizo la busqueda
11
11
  Entonces verifico que la pagina no rompa
12
- Entonces si el site es "AR|CO|VE", ingreso y espero que cargue la vieja pagina de landing
13
12
  Y verifico que traiga resultados de landing
14
13
  Cuando elijo el tipo de vuelo "<tipo>"
15
14
  Entonces verifico que la pagina no rompa
@@ -9,7 +9,6 @@ Característica: landing.long_tail
9
9
  * ingreso una pagina de landing del tipo '<tipo>'
10
10
  Cuando realizo la busqueda
11
11
  Entonces verifico que la pagina no rompa
12
- Entonces si el site es "AR|CO|VE", ingreso y espero que cargue la vieja pagina de landing
13
12
  Y verifico que traiga resultados de landing
14
13
  Cuando elijo el tipo de vuelo "<tipo>"
15
14
  Entonces verifico que la pagina no rompa
@@ -24,12 +24,12 @@ Característica: landing.negative
24
24
  Y verifico que si la fecha de ida ingresada es posterior a la fecha de vuelta de error
25
25
  Y verifico que si la url no tiene el seoPath, se redirige a la pagina que si lo tiene
26
26
  Y verifico que si el seoPath esta mal escrito, se redirige a la pagina con el seoPath correcto
27
- Y verifico que si se pone un codigo de aeropuerto en vez de uno de cuidad, se redirige a la ciudad del aeropuerto
28
27
  Y verifico que si se pone algun caracter en mayuscula, se redirige a todo minuscula
29
28
  Y verifico que si la url tiene parametros, se deben conservar en la redireccion
30
29
  Y verifico que la url para sem funcione correctamente con un ciudad con resultados sin seoPath
31
30
  Y verifico que la url para sem funcione correctamente con un ciudad sin resultados sin seoPath
32
31
  Y verifico que la url de landing para el destino "lrl" no rompa
32
+ Y verifico que si se pone un codigo de aeropuerto en vez de uno de cuidad, se redirige a la ciudad del aeropuerto
33
33
 
34
34
  @pt
35
35
  @roundtrip
@@ -9,7 +9,6 @@ Característica: landing.search
9
9
  * ingreso una pagina de landing del tipo '<tipo>'
10
10
  Cuando realizo la busqueda
11
11
  Entonces verifico que la pagina no rompa
12
- Entonces si el site es "AR|CO|VE", ingreso y espero que cargue la vieja pagina de landing
13
12
  Y verifico que traiga resultados de landing
14
13
  Cuando elijo el tipo de vuelo "<tipo>"
15
14
  Entonces verifico que la pagina no rompa
@@ -28,7 +28,6 @@ Característica: results.multipleoneway
28
28
  Y espero que termine de cargar la pagina de checkout
29
29
  Y verifico que ingrese al checkout
30
30
  Entonces si existe la opcion de cobertura, elijo "no_chequear" si quiero cobertura
31
- #Y si el site es "MX", valido que no se muestre la leyenda de tarifas en pesos
32
31
  Y valido los valores del desglose del checkout con multipleoneway
33
32
  Y verifico el pixel de Efrontier
34
33
  Y verifico el pixel de trackeame en checkout
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.38
4
+ version: 2.3.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - lgonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-02 00:00:00.000000000 Z
11
+ date: 2015-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: henry-container