flights_gui_tests 0.4.3 → 0.4.5

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/features/step_definitions/checkout/checkout_steps.rb +1 -0
  3. data/features/step_definitions/checkout/load_steps.rb +18 -5
  4. data/features/step_definitions/page_steps.rb +1 -32
  5. data/features/step_definitions/results/filters_steps.rb +34 -55
  6. data/features/step_definitions/results/load_steps.rb +3 -1
  7. data/features/step_definitions/results/new_filters_steps.rb +85 -137
  8. data/features/step_definitions/results/results_steps.rb +14 -4
  9. data/features/step_definitions/thanks/load_steps.rb +2 -1
  10. data/features/support/classes/clusters/results/details_cluster.rb +1 -1
  11. data/features/support/classes/clusters/results/new_details_cluster.rb +1 -1
  12. data/features/support/modules/checkout/checkout.rb +1 -0
  13. data/features/support/modules/checkout/clusters/cluster.rb +86 -0
  14. data/features/support/modules/results/filters.rb +15 -0
  15. data/features/support/modules/results/itineraries.rb +7 -2
  16. data/features/support/modules/results/itineraries/bussines.rb +1 -1
  17. data/features/support/modules/results/itineraries/cluster.rb +104 -0
  18. data/features/support/modules/results/itineraries/details.rb +1 -1
  19. data/features/support/modules/results/itineraries/payments.rb +1 -1
  20. data/features/support/modules/results/new_filters.rb +27 -55
  21. data/features/support/pages/all_pages.rb +1 -1
  22. data/features/support/pages/checkout/checkout_page.rb +1 -0
  23. data/features/support/pages/checkout/new_checkout_page.rb +1 -1
  24. data/features/support/pages/results/search_page.rb +16 -4
  25. data/features/tests/checkout/agency.feature +1 -23
  26. data/features/tests/checkout/book_ok.feature +1 -0
  27. data/features/tests/checkout/cac.feature +2 -0
  28. data/features/tests/checkout/cash_payment.feature +2 -1
  29. data/features/tests/checkout/compras_duplicadas.feature +1 -0
  30. data/features/tests/checkout/cupones.feature +2 -1
  31. data/features/tests/checkout/error_messages.feature +1 -0
  32. data/features/tests/checkout/online_payment.feature +2 -1
  33. data/features/tests/checkout/price_jump.feature +2 -2
  34. data/features/tests/checkout/seguros.feature +2 -0
  35. data/features/tests/results/basefare.feature +6 -5
  36. data/features/tests/results/busquedas_promo.feature +0 -0
  37. data/features/tests/results/filters.feature +7 -6
  38. data/features/tests/results/itineraries.feature +6 -5
  39. data/features/tests/results/matrix/matrix_price.feature +6 -0
  40. data/features/tests/results/new_filters.feature +18 -14
  41. data/features/tests/results/search.feature +10 -1
  42. data/features/tests/results/wish_list.feature +6 -0
  43. data/flights_gui_tests.gemspec +1 -1
  44. data/henry-context.yml +6 -97
  45. metadata +4 -4
  46. data/features/data/promos.csv +0 -30
  47. data/features/tests/results/new_itineraries.feature +0 -103
@@ -38,7 +38,7 @@ Entonces(/^recorro y (?:verifico|valido) cada itinerario$/) do
38
38
  i=0
39
39
  $num = 0
40
40
  @page.itinerarios_elements.each do |itinerario|
41
- _itinerario = ResultsCluster.new(@page.tipo_de_busqueda,Hpricot.parse(itinerario.html))
41
+ _itinerario = @page.cargar_itinerario(itinerario)
42
42
  @page.validar_millas(json,i)
43
43
  @page.validar_mas_detalles(json,i,_itinerario)
44
44
  @page.validar_detalles_itinerario(i)
@@ -59,6 +59,16 @@ Y(/^(?:verifico|valido) el popup de alertas$/) do
59
59
  end
60
60
  end
61
61
 
62
- Cuando(/^defino nuevos itinerarios$/) do
63
- @page.definir_nuevo_itinerario
64
- end
62
+ Cuando(/^defino cluster a utilizar$/) do
63
+ step "fuerzo el abztesting de \"clusterStyle\" al \"#{$HENRY_PARAMS['cluster'].to_i}\""
64
+ @page.definir_nuevo_cluster($HENRY_PARAMS['cluster'].to_i<50) #seteo el cluster parametrizado
65
+ end
66
+
67
+ Y(/^verifico el banner de cancelacion en el dia en resultados$/) do
68
+ @page.mensaje_cancelacion_element.when_visible(timeout=5)
69
+ @page.mensaje_cancelacion_element.should visible("mensaje cancelacion")
70
+ end
71
+
72
+ Y(/^verifico el banner de cancelacion en el dia en checkout$/) do
73
+ @page.mensaje_cancelacion_element.should visible("mensaje cancelacion")
74
+ end
@@ -6,7 +6,8 @@ end
6
6
 
7
7
  Entonces(/^(?:verifico|valido) que ingrese a la pagina de gracias$/) do
8
8
  @page.checkout_id_element.should visible("Checkout ID")
9
- puts @page.checkout_id_element.text
9
+ puts " URL: #{@page.url}"
10
+ puts " IDCRO: #{@page.checkout_id_element.text}"
10
11
  @id_reserva = @page.checkout_id_element.text
11
12
  end
12
13
 
@@ -14,7 +14,7 @@ class DetailsCluster
14
14
  tramo['clase'] = (div/"div.segment span.not-economy-segments span.not-economy-segments-description").first.inner_text.strip.no_accents
15
15
  end
16
16
  tramo['ciudad_origen'] = (div/"li.departure span.location span.data").first.inner_text.strip.no_accents
17
- tramo['fecha_origen'] = Date.parse_new_details((div/"li.departure span.date span.day").first.inner_text.strip.no_accents)
17
+ tramo['fecha_origen'] = Date.parse_new_result((div/"li.departure span.date span.day").first.inner_text.strip.no_accents)
18
18
  tramo['hora_origen'] = Time.parse((div/"li.departure span.date span.hour").first.inner_text.strip.no_accents)
19
19
  tramo['ciudad_destino'] = (div/"li.arrival span.location span.data").last.inner_text.strip.no_accents
20
20
  tramo['hora_destino'] = Time.parse((div/"li.arrival span.date span.hour").last.inner_text.strip.no_accents)
@@ -14,7 +14,7 @@ class NewDetailsCluster
14
14
  tramo['clase'] = (div/"span.inline-detail-flight-cabinType span.inline-detail-flight-data-description").first.inner_text.strip.no_accents
15
15
  end
16
16
  tramo['ciudad_origen'] = (div/"span.inline-detail-airport-description").first.inner_text.gsub(/\-(.*)/,'').strip.no_accents
17
- tramo['fecha_origen'] = Date.parse_new_details((div/"span.inline-detail-airport-date").first.inner_text.strip.gsub(/Sale:/,'').no_accents)
17
+ tramo['fecha_origen'] = Date.parse_new_result((div/"span.inline-detail-airport-date").first.inner_text.strip.gsub(/Sale:/,'').no_accents)
18
18
  tramo['hora_origen'] = (div/"span.inline-detail-airport-hour").first.inner_text.empty? ? Time.parse((div/"span.inline-detail-airport-hour").last.inner_text.strip.no_accents) : Time.parse((div/"span.inline-detail-airport-hour").first.inner_text.strip.no_accents)
19
19
  tramo['ciudad_destino'] = (div/"span.inline-detail-airport-description").last.inner_text.gsub(/\-(.*)/,'').strip.no_accents
20
20
  tramo['hora_destino'] = (div/"span.inline-detail-airport-hour").last.inner_text.empty? ? Time.parse((div/"span.inline-detail-airport-hour").first.inner_text.strip.no_accents) : Time.parse((div/"span.inline-detail-airport-hour").last.inner_text.strip.no_accents)
@@ -15,3 +15,4 @@ require_relative 'new_checkout/errores'
15
15
  require_relative 'new_checkout/fast_checkout'
16
16
  require_relative 'new_checkout/datos_de_facturacion'
17
17
  require_relative 'new_checkout/informacion_de_contacto'
18
+ require_relative 'clusters/cluster'
@@ -0,0 +1,86 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Checkout
3
+ class Cluster
4
+ attr_accessor :ida, :vuelta, :tarifas, :idas, :vueltas
5
+
6
+ def initialize(itinerario,html,page = 0)
7
+ self.cargar_precios((html/"div.prices"))
8
+ eval "#{itinerario.downcase}(html)"
9
+ end
10
+
11
+ def roundtrip(html)
12
+ tramos = cargar_tramos((html/"div.outbound-route div.segment"))
13
+ @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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
14
+ tramos = cargar_tramos((html/"div.inbound-route div.segment"))
15
+ @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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
16
+ end
17
+
18
+ def oneway(html)
19
+ tramos = cargar_tramos((html/"div.outbound-route div.segment"))
20
+ @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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
21
+ end
22
+
23
+ def multipledestinations(html)
24
+ data = (html/"div.outbound-route div.segment")
25
+ data_final = data.delete(data.last)
26
+ tramos = cargar_tramos(data)
27
+ @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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
28
+ tramos = cargar_tramos([data_final])
29
+ @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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
30
+ end
31
+
32
+ def cargar_tramos(lista_tramos)
33
+ tramos = Array.new
34
+ lista_tramos.each{ |segmento| tramos << cargar_tramo(segmento)}
35
+ return tramos
36
+ end
37
+
38
+ def cargar_tramo(segmento)
39
+ tramo = Hash.new
40
+ tramo['aerolinea'] = (segmento/"li.airline-data img").first.attributes['src'].match(/(..).png/)[1].upcase
41
+ tramo['salida'] = cargar_vuelo((segmento/"li.flight").first)
42
+ tramo['llegada'] = cargar_vuelo((segmento/"li.flight").last)
43
+ return tramo
44
+ end
45
+
46
+ def cargar_vuelo(vuelo)
47
+ vuelo_tmp = Hash.new
48
+ vuelo_tmp['iata'] = (vuelo/"a.city-code").inner_text.strip
49
+ vuelo_tmp['nombre'] = (vuelo/"li.location-name").inner_text.strip.no_accents
50
+ vuelo_tmp['fecha'] = (vuelo/"li.date").inner_text.strip.no_accents
51
+ vuelo_tmp['horario'] = (vuelo/"li.time").inner_text.gsub(/hs/,'').strip
52
+ return vuelo_tmp
53
+ end
54
+
55
+ def cargar_precios(html)
56
+ @tarifas = Hash.new
57
+ @tarifas['tarifa_adulto'] = Price.new((html/"div.adult-price span.price-currency").first.inner_text.strip)
58
+ @tarifas['adt'] = Price.new((html/"li.adult_fare span.price-currency").first.inner_text.strip)
59
+ @tarifas['cnn'] = (html/"li.child_fare").first ? Price.new((html/"li.child_fare span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
60
+ @tarifas['inf'] = (html/"li.infant_fare").first ? Price.new((html/"li.infant_fare span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
61
+ @tarifas['tasas'] = (html/"li.taxes").first ? Price.new((html/"li.taxes span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
62
+ @tarifas['cargos'] = (html/"li.charges").first ? Price.new((html/"li.charges span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
63
+ @tarifas['afip'] = (html/"li.tax_afip").first ? Price.new((html/"li.tax_afip span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
64
+ @tarifas['encargos'] = (html/"li.taxes_services").first ? Price.new((html/"li.taxes_services span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
65
+ @tarifas['total'] = (html/"li.total span.price-currency").first ? Price.new((html/"li.total span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
66
+ end
67
+
68
+ def validar_suma_desgloce(linea = "total|tarifa_adulto|tarifa_adulto_dolar")
69
+ sumaTarifas = 0
70
+ @tarifas.each_pair do |key,tarifa|
71
+ if key !~ /#{linea}/
72
+ sumaTarifas += tarifa.valor
73
+ end
74
+ end
75
+ return sumaTarifas.to_i
76
+ end
77
+
78
+ alias :validarSumaDesgloce :validar_suma_desgloce
79
+
80
+ def escala_to_i(escala)
81
+ return 0 if escala.to_s =~ /(solo vuelo directo)|(Sin escalas)|(Sem escalas)|(Soamente v.o directo)|(Vuelo Directo)/i
82
+ return escala.to_s.gsub(/\D/,'').to_i
83
+ end
84
+
85
+ end
86
+ end
@@ -33,6 +33,21 @@ module Results
33
33
  link(:slider_precio_mayor,:class=>"ui-slider-handle ui-state-default ui-corner-all ui-slider-handle-max")
34
34
  link(:slider_precio_menor,:class=>"ui-slider-handle ui-state-default ui-corner-all ui-slider-handle-min")
35
35
 
36
+ def devolver_duracion_filtro_viejo(duracion)
37
+ time = duracion.strip.split(':')
38
+ if time.length==1
39
+ aux = time.first
40
+ if(aux.match(/h/))
41
+ _duracion=Duracion.new(aux.gsub(/\D/,'').to_i,"00")
42
+ else
43
+ _duracion=Duracion.new("00",aux.gsub(/\D/,'').to_i)
44
+ end
45
+ else
46
+ _duracion = Duracion.new(time[0].gsub(/\D/,'').to_i,time[1].gsub(/\D/,'').to_i)
47
+ end
48
+ return _duracion
49
+ end
50
+
36
51
  end
37
52
 
38
53
  end
@@ -4,6 +4,7 @@ require_relative 'itineraries/bussines'
4
4
  require_relative 'itineraries/payments'
5
5
  require_relative 'itineraries/details'
6
6
  require_relative 'itineraries/data'
7
+ require_relative 'itineraries/cluster'
7
8
 
8
9
  module Results
9
10
  module Itineraries
@@ -14,8 +15,12 @@ module Results
14
15
  include Results::Itineraries::Details
15
16
  include Results::Itineraries::Data
16
17
 
17
- def definir_nuevo_itinerario()
18
- @nuevo_itinerario = true
18
+ def definir_nuevo_cluster(valor)
19
+ @nuevo_cluster = valor
20
+ end
21
+
22
+ def nuevo_cluster?
23
+ return nuevo_cluster
19
24
  end
20
25
 
21
26
  end
@@ -6,7 +6,7 @@ module Results
6
6
  include PageObject
7
7
 
8
8
  def validar_vuelo_bussines(i)
9
- unless @nuevo_itinerario
9
+ unless @nuevo_cluster
10
10
  if itinerarios_elements[i].div(:class,'not-economy-cluster-alert').present?
11
11
  itinerarios_elements[i].span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
12
12
  else
@@ -0,0 +1,104 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Results
3
+ class NewCluster
4
+ attr_accessor :ida, :vuelta, :tarifas, :idas, :vueltas
5
+
6
+ def initialize(itinerario,html,page = 0)
7
+ self.cargar_precios((html/"div.fare-container"))
8
+ eval "#{itinerario.downcase}(html)"
9
+ end
10
+
11
+ def roundtrip(html)
12
+ @idas = cargar_tramos((html/"div.outbound"))
13
+ @ida = @idas.first
14
+ @vueltas = cargar_tramos((html/"div.inbound"))
15
+ @vuelta = @vueltas.first
16
+ end
17
+
18
+ def oneway(html)
19
+ @idas = cargar_tramos((html/"div.outbound"))
20
+ @ida = @idas.first
21
+ end
22
+
23
+ def multipledestinations(html)
24
+ data = (html/"div.multiple")
25
+ @idas = cargar_tramos(data.first)
26
+ @ida = @idas.first
27
+ @vueltas = @idas
28
+ @vuelta = @vueltas.last
29
+ end
30
+
31
+ def cargar_tramos(lista_tramos)
32
+ tramos = Array.new
33
+ (lista_tramos/"li.cluster-item").each{ |segmento| tramos << cargar_tramo((lista_tramos/"div.data"),segmento)}
34
+ return tramos
35
+ end
36
+
37
+ def cargar_tramo(info_ruta,segmento)
38
+ aerolineas = (segmento/"li.airlines img").collect{|aerolinea| aerolinea.attributes['src'].match(/(..).png/)[1].upcase}
39
+ return DataCluster.new( (info_ruta/"span.city-departure").inner_text.strip.no_accents.gsub(/,/,''), #nombre ciudad salida
40
+ (info_ruta/"span.city-arrival").inner_text.strip.no_accents.gsub(/,/,''), #nombre ciudad llegada
41
+ (info_ruta/"span.date").inner_text.strip, #fecha
42
+ aerolineas, #aerolineas
43
+ escala_to_i((segmento/"span.stops-text").inner_text.strip), #escalas
44
+ (info_ruta/"span.airport").first.inner_text.strip.no_accents, #iata ciudad salida
45
+ (info_ruta/"span.airport").last.inner_text.strip.no_accents, #iata ciudad llegada
46
+ Time.parse((segmento/"span.hour").first.inner_text.strip), #horario salida
47
+ Time.parse((segmento/"span.hour").last.inner_text.strip), #horario llegada
48
+ (segmento/"li.time").inner_text.strip #duracion
49
+ )
50
+ end
51
+
52
+ def cargar_precios(html)
53
+ @tarifas = Hash.new
54
+ @tarifas['tarifa_adulto_dolar'] = Price.new((html/"span.price-currency span.currency").first.inner_text.strip + " " + (html/"span.price-currency span.amount").first.inner_text.strip)
55
+ if (html/"span[@class='price-currency #{Helpers.currency(AllPages.site)} '] span.currency").first
56
+ @tarifas['tarifa_adulto'] = Price.new((html/"span[@class='price-currency #{Helpers.currency(AllPages.site)} '] span.currency").first.inner_text.strip + " " + (html/"span[@class='price-currency #{Helpers.currency(AllPages.site)} '] span.amount").first.inner_text.strip)
57
+ else
58
+ @tarifas['tarifa_adulto'] = @tarifas['tarifa_adulto_dolar']
59
+ end
60
+
61
+ adt = (html/"li").select{|li| li.inner_text.no_accents.downcase =~ /adulto/}.first
62
+ @tarifas['adt'] = adt ? Price.new((adt/"span.currency").first.inner_text.strip + " " + (adt/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
63
+
64
+ cnn = (html/"li").select{|li| li.inner_text.no_accents.downcase =~ /nino/}.first
65
+ @tarifas['cnn'] = cnn ? Price.new((cnn/"span.currency").first.inner_text.strip + " " + (cnn/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
66
+
67
+ inf = (html/"li").select{|li| li.inner_text.no_accents.downcase =~ /bebe/}.first
68
+ @tarifas['inf'] = inf ? Price.new((inf/"span.currency").first.inner_text.strip + " " + (inf/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
69
+
70
+ tasas = (html/"li.taxes-price").empty? ? (html/"li[@class='taxDetail.OTHER-price']").first : (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
+
73
+ cargos = (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
+
76
+ afip = (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
+
79
+ @tarifas['encargos'] = Price.new("$ 0",true)
80
+
81
+ campo = (html/"li").empty? ? "total" : "fare"
82
+ @tarifas['total'] = (html/"li.#{campo}-price span.currency").empty? ? Price.new("$ 0",true) : Price.new((html/"li.#{campo}-price span.currency").first.inner_text.strip + " " + (html/"li.#{campo}-price span.amount").first.inner_text.strip)
83
+
84
+ end
85
+
86
+ def validar_suma_desgloce(linea = "total|tarifa_adulto|tarifa_adulto_dolar")
87
+ sumaTarifas = 0
88
+ @tarifas.each_pair do |key,tarifa|
89
+ if key !~ /#{linea}/
90
+ sumaTarifas += tarifa.valor
91
+ end
92
+ end
93
+ return sumaTarifas.to_i
94
+ end
95
+
96
+ alias :validarSumaDesgloce :validar_suma_desgloce
97
+
98
+ def escala_to_i(escala)
99
+ return 0 if escala.to_s =~ /(solo vuelo directo)|(Sin escalas)|(Sem escalas)|(Soamente v.o directo)|(Vuelo Directo)|(Directo)/i
100
+ return escala.to_s.gsub(/\D/,'').to_i
101
+ end
102
+
103
+ end
104
+ end
@@ -10,7 +10,7 @@ module Results
10
10
  elements(:new_popup_detail,:div,:class=>'inline-detail')
11
11
 
12
12
  def validar_mas_detalles(json,i,itinerario)
13
- unless @nuevo_itinerario
13
+ unless @nuevo_cluster
14
14
  j=0
15
15
  mostrar_mas_itinerarios_element.click if mostrar_mas_itinerarios_element.present?
16
16
  rutas_ida(itinerarios_elements[i]).each do |route|
@@ -9,7 +9,7 @@ module Results
9
9
  span(:cerrar_popup_cuotas,:css=>"#popup-payments .popup-close-button")
10
10
 
11
11
  def validar_popup_cuotas(i)
12
- unless @nuevo_itinerario
12
+ unless @nuevo_cluster
13
13
  if(itinerarios_elements[i].div(:class,'actions').link(:class,'payments').present?)
14
14
  itinerarios_elements[i].radio(:id,/outbound/).click if itinerarios_elements[i].radio(:id,/outbound/).present?
15
15
  itinerarios_elements[i].radio(:id,/inbound/).click if itinerarios_elements[i].radio(:id,/inbound/).present?
@@ -8,7 +8,7 @@ module Results
8
8
  div(:filtros_nuevos,:id=>"inline-filters")
9
9
  div(:popup_mas_filtros,:id=>"inline-filters-item-more-tooltip")
10
10
 
11
- div(:filtros_precio,:id=>"inline-filters-detail-price")
11
+ div(:filtros_precio,:class=>"inline-filters-detail-price")
12
12
  div(:filtros_escalas,:id=>"inline-filters-detail-scales")
13
13
  div(:filtros_horarios,:id=>"inline-filters-detail-time")
14
14
  div(:filtros_aeropuerto,:id=>"inline-filters-detail-airports")
@@ -18,23 +18,23 @@ module Results
18
18
 
19
19
  div(:filtros_aplicados,:class=>"inline-filters-applied")
20
20
 
21
- span(:filtro_precio_visible,:css=>"div#inline-filters li.inline-filters-item-price span.inline-filters-item-content")
22
- span(:filtro_aerolineas_visible,:css=>"div#inline-filters li.inline-filters-item-airlines span.inline-filters-item-content")
23
- span(:filtro_horarios_visible,:css=>"div#inline-filters li.inline-filters-item-time span.inline-filters-item-content")
24
- span(:filtro_aeropuertos_visible,:css=>"div#inline-filters li.inline-filters-item-airports span.inline-filters-item-content")
25
- span(:filtro_duracion_visible,:css=>"div#inline-filters li.inline-filters-item-duration span.inline-filters-item-content")
26
- span(:filtro_escalas_visible,:css=>"div#inline-filters li.inline-filters-item-scales span.inline-filters-item-content")
27
- span(:filtro_alianzas_visible,:css=>"div#inline-filters li.inline-filters-item-alliances span.inline-filters-item-content")
21
+ div(:filtro_precio_visible,:class=>"inline-filters-detail inline-filters-detail-price")
22
+ div(:filtro_aerolineas_visible,:class=>"inline-filters-detail inline-filters-detail-airlines")
23
+ div(:filtro_horarios_visible,:class=>"inline-filters-detail inline-filters-detail-time")
24
+ div(:filtro_aeropuertos_visible,:class=>"inline-filters-detail inline-filters-detail-airports")
25
+ div(:filtro_duracion_visible,:class=>"inline-filters-detail inline-filters-detail-duration")
26
+ div(:filtro_escalas_visible,:class=>"inline-filters-detail inline-filters-detail-scales")
27
+ div(:filtro_alianzas_visible,:class=>"inline-filters-detail inline-filters-detail-alliances")
28
28
 
29
29
  span(:mas_filtros,:css=>"div#inline-filters li.inline-filters-item-more span.inline-filters-item-content")
30
30
 
31
- span(:ver_filtro_precio_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-price span.inline-filters-item-content")
32
- span(:ver_filtro_escalas_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-scales span.inline-filters-item-content")
33
- span(:ver_filtro_horarios_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-time span.inline-filters-item-content")
34
- span(:ver_filtro_aeropuertos_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-airports span.inline-filters-item-content")
35
- span(:ver_filtro_duracion_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-duration span.inline-filters-item-content")
36
- span(:ver_filtro_aerolineas_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-airlines span.inline-filters-item-content")
37
- span(:ver_filtro_alianzas_visible,:css=>"div#inline-filters-item-more-tooltip li.inline-filters-item-alliances span.inline-filters-item-content")
31
+ li(:ver_filtro_precio_visible,:class=>"inline-filters-item inline-filters-item-price inline-fitlers-detail-title")
32
+ li(:ver_filtro_escalas_visible,:class=>"inline-filters-item inline-filters-item-scales inline-fitlers-detail-title")
33
+ li(:ver_filtro_horarios_visible,:class=>"inline-filters-item inline-filters-item-time inline-fitlers-detail-title")
34
+ li(:ver_filtro_aeropuertos_visible,:class=>"inline-filters-item inline-filters-item-airports inline-fitlers-detail-title")
35
+ li(:ver_filtro_duracion_visible,:class=>"inline-filters-item inline-filters-item-duration inline-fitlers-detail-title")
36
+ li(:ver_filtro_aerolineas_visible,:class=>"inline-filters-item inline-filters-item-airlines inline-fitlers-detail-title")
37
+ li(:ver_filtro_alianzas_visible,:class=>"inline-filters-item inline-filters-item-alliances inline-fitlers-detail-title")
38
38
 
39
39
  elements(:opciones_aeropuerto_origen,:input,:name=>"inline-filters-airport-outbound")
40
40
  elements(:opciones_aeropuerto_destino,:input,:name=>"inline-filters-airport-inbound")
@@ -47,21 +47,25 @@ module Results
47
47
  span(:remover_filtro_de_horario_de_ida,:id=>"inline-filters-time-outbound-slider-applied")
48
48
  span(:remover_filtro_de_horario_de_vuelta,:id=>"inline-filters-time-inbound-slider-applied")
49
49
  span(:remover_filtro_de_precio,:id=>"inline-filters-price-slider-applied")
50
+ checkbox(:remover_filtro_de_aerolinea,:id=>"inline-filters-airlines-all")
51
+ checkbox(:remover_filtro_de_aeropuerto_origen,:id=>"inline-filters-airport-outbound-all")
52
+ checkbox(:remover_filtro_de_aeropuerto_destino,:id=>"inline-filters-airport-inbound-all")
53
+ checkbox(:remover_filtro_de_escalas,:id=>"inline-filters-stops-all")
50
54
 
51
55
  span(:remover_filtro_de_duracion_de_ida,:id=>"inline-filters-duration-outbound-slider-applied")
52
56
  span(:remover_filtro_de_duracion_de_vuelta,:id=>"inline-filters-duration-inbound-slider-applied")
53
57
 
54
- text_field(:nuevo_filtro_precio_menor,:css=>"div#inline-filters-detail-price span.ux-common-filter-price-min input.price-min")
55
- text_field(:nuevo_filtro_precio_mayor,:css=>"div#inline-filters-detail-price span.ux-common-filter-price-max input.price-max")
58
+ text_field(:nuevo_filtro_precio_menor,:css=>"div.inline-filters-detail-price span.ux-common-filter-price-min input.price-min")
59
+ text_field(:nuevo_filtro_precio_mayor,:css=>"div.inline-filters-detail-price span.ux-common-filter-price-max input.price-max")
56
60
 
57
- div(:nuevo_filtro_duracion_salida,:css=>"div#inline-filters-detail-duration div#inline-filters-duration-outbound-slider")
58
- div(:nuevo_filtro_duracion_llegada,:css=>"div#inline-filters-detail-duration div#inline-filters-duration-inbound-slider")
61
+ div(:nuevo_filtro_duracion_salida,:css=>"div.inline-filters-detail-duration div#inline-filters-duration-outbound-slider")
62
+ div(:nuevo_filtro_duracion_llegada,:css=>"div.inline-filters-detail-duration div#inline-filters-duration-inbound-slider")
59
63
 
60
- link(:slider_nuevo_precio_mayor,:css=>"div#inline-filters-detail-price .ui-slider-handle-max")
61
- link(:slider_nuevo_precio_menor,:css=>"div#inline-filters-detail-price .ui-slider-handle-min")
64
+ link(:slider_nuevo_precio_mayor,:css=>"div.inline-filters-detail-price .ui-slider-handle-max")
65
+ link(:slider_nuevo_precio_menor,:css=>"div.inline-filters-detail-price .ui-slider-handle-min")
62
66
 
63
- link(:slider_nuevo_filtro_duracion_salida,:css=>"div#inline-filters-detail-duration div#inline-filters-duration-outbound-slider .ui-slider-handle-min")
64
- link(:slider_nuevo_filtro_duracion_llegada,:css=>"div#inline-filters-detail-duration div#inline-filters-duration-inbound-slider .ui-slider-handle-min")
67
+ link(:slider_nuevo_filtro_duracion_salida,:css=>"div.inline-filters-detail-duration div#inline-filters-duration-outbound-slider .ui-slider-handle-min")
68
+ link(:slider_nuevo_filtro_duracion_llegada,:css=>"div.inline-filters-detail-duration div#inline-filters-duration-inbound-slider .ui-slider-handle-min")
65
69
 
66
70
  def se_muestra_filtro_de_alianzas(alianza)
67
71
  return browser.span(:id,"inline-filters-alliances-#{alianza}-applied")
@@ -71,38 +75,6 @@ module Results
71
75
  return browser.span(:id,"inline-filters-alliances-#{alianza}-applied").span(:class,"inline-filters-applied-description-remove")
72
76
  end
73
77
 
74
- def se_muestra_filtro_de_aerolinea(aerolinea)
75
- return browser.span(:id,"inline-filters-airlines-#{aerolinea}-applied")
76
- end
77
-
78
- def remover_filtro_de_aerolinea(aerolinea)
79
- return browser.span(:id,"inline-filters-airlines-#{aerolinea}-applied").span(:class,"inline-filters-applied-description-remove")
80
- end
81
-
82
- def se_muestra_filtro_de_aeropuerto_origen(aeropuerto)
83
- return browser.span(:id,"inline-filters-airport-outbound-#{aeropuerto}-applied")
84
- end
85
-
86
- def remover_filtro_de_aeropuerto_origen(aeropuerto)
87
- return browser.span(:id,"inline-filters-airport-outbound-#{aeropuerto}-applied").span(:class,"inline-filters-applied-description-remove")
88
- end
89
-
90
- def se_muestra_filtro_de_aeropuerto_destino(aeropuerto)
91
- return browser.span(:id,"inline-filters-airport-inbound-#{aeropuerto}-applied")
92
- end
93
-
94
- def remover_filtro_de_aeropuerto_destino(aeropuerto)
95
- return browser.span(:id,"inline-filters-airport-inbound-#{aeropuerto}-applied").span(:class,"inline-filters-applied-description-remove")
96
- end
97
-
98
- def se_muestra_filtro_de_escalas(escalas)
99
- return browser.span(:id,"inline-filters-stops-#{escalas}-applied")
100
- end
101
-
102
- def remover_filtro_de_escalas(escalas)
103
- return browser.span(:id,"inline-filters-stops-#{escalas}-applied").span(:class,"inline-filters-applied-description-remove")
104
- end
105
-
106
78
  def ver_filtro(filtro)
107
79
  mas_filtros_element.click
108
80
  popup_mas_filtros_element.when_visible