flights_gui_tests 2.1.1 → 2.1.2

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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/features/step_definitions/checkout/load_steps.rb +1 -1
  3. data/features/step_definitions/checkout/price_jump_steps.rb +19 -1
  4. data/features/step_definitions/results/matrix_steps.rb +1 -0
  5. data/features/step_definitions/results/results_steps.rb +1 -1
  6. data/features/step_definitions/thanks/load_steps.rb +5 -1
  7. data/features/step_definitions/thanks/thanks_steps.rb +22 -9
  8. data/features/support/classes/clusters.rb +1 -0
  9. data/features/support/classes/thanks/cluster.rb +100 -0
  10. data/features/support/env.rb +2 -0
  11. data/features/support/modules/checkout/new_checkout/popup.rb +2 -0
  12. data/features/support/modules/results/matrix/matrix_fare_chart.rb +1 -1
  13. data/features/support/modules/results/recommendation.rb +2 -2
  14. data/features/support/pages/checkout/checkout_page.rb +6 -0
  15. data/features/support/pages/checkout/checkout_page/new_checkout_page.rb +1 -0
  16. data/features/support/pages/thanks/thanks_page.rb +1 -30
  17. data/features/support/pages/thanks/thanks_page/new_thanks_page.rb +40 -0
  18. data/features/support/pages/thanks/thanks_page/old_thanks_page.rb +40 -0
  19. data/features/support/version.rb +1 -1
  20. data/features/tests/checkout/book_ok.feature +2 -2
  21. data/features/tests/checkout/price_jump.feature +54 -1
  22. data/features/tests/results/matrix/matrix_airlines.feature +1 -0
  23. data/features/tests/results/matrix/matrix_fare_chart.feature +1 -0
  24. data/features/tests/results/matrix/matrix_price.feature +1 -0
  25. data/features/tests/results/pagination.feature +0 -1
  26. data/henry-context.yml +31 -0
  27. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60258c7946849467e6d3fc93c4be390e4296dd9b
4
- data.tar.gz: 84952c8c7d1dcdf08131bc69dcff4ff7ab6d3b7f
3
+ metadata.gz: e3930c4f398ca8f78ac9b07d934f9870a589224f
4
+ data.tar.gz: 4fb413a6ceabfe1605ef6bf83b8f406a3d27c050
5
5
  SHA512:
6
- metadata.gz: 094afadf23e7926eb065fe2e95e5be23e5ea36818dd64db2141e0385a7b8d4050c4592dbb9dd27511e5a70c864c763cba25db189063138f1b95ba443d6cb38bf
7
- data.tar.gz: 2cb178f04ed5beec8749fbae103f0cdad5df33ce445057c93b1e2f4b34ed8ad2f3f966b75f90a7620afc11c13a8c07e1faac48011ecbfe67c753ec5665252602
6
+ metadata.gz: 1a7b9b355c7e9d200975eb4597452154adc6e813e95653e197a31c0dd6cd90a8940e706184180eb008ae2c206eb43deb189df04543a6909ed90f666efc358cd2
7
+ data.tar.gz: ba10cd6775ba19f65be4bccd9cf27aa5fed2e13330debedc16149c01f3d5e9230688531e52d29ef5b5eab388fbfc1c02846bb6e27f7260285c74d456d6583a88
@@ -57,7 +57,7 @@ Entonces(/^espero que termine el pedido de compra$/) do
57
57
  puts "No se mostro el popup de transicion de compra"
58
58
  end
59
59
  @page.popup_transicion_compra_element.when_not_visible(timeout=200)
60
- Watir::Wait.until(timeout=200){@page.notificacion_error_cac_element.present? or @page.mensaje_error_ux_element.present? or @page.notificacion_warning_ux_element.present? or @page.checkout_id_cash_element.present? or @page.checkout_id_element.present? or @page.popup_nuevo_vuelo_element.present? or @page.popup_nuevo_precio_element.present? or @page.notificacion_error_element.present? or @page.notificacion_warning_element.present? or @page.notificacion_error_ux_element.present?}
60
+ Watir::Wait.until(timeout=200){@page.desglose_gracias_element.present? or @page.notificacion_error_cac_element.present? or @page.mensaje_error_ux_element.present? or @page.notificacion_warning_ux_element.present? or @page.checkout_id_cash_element.present? or @page.checkout_id_element.present? or @page.popup_nuevo_vuelo_element.present? or @page.popup_nuevo_precio_element.present? or @page.notificacion_error_element.present? or @page.notificacion_warning_element.present? or @page.notificacion_error_ux_element.present?}
61
61
  end
62
62
 
63
63
  Y(/^(?:verifico|valido) si no trae errores$/) do
@@ -64,4 +64,22 @@ Entonces(/^elijo otro itinerario$/) do
64
64
  @itinerario_checkout = @popup_no_disponibilidad_page.elegir_itinerario(0)
65
65
  step "verifico que ingrese al checkout"
66
66
  step "verifico que la pagina no rompa"
67
- end
67
+ end
68
+
69
+ Cuando(/^espero que cargue el nuevo popup de cambio de precio$/) do
70
+ begin
71
+ @page.new_popup_price_jump_element.when_visible(timeout=60)
72
+ rescue Watir::Wait::TimeoutError
73
+ pending("No se mostro el popup de cambio de precio")
74
+ end
75
+ end
76
+
77
+ Entonces(/^verifico el nuevo popup de cambio de precio$/) do
78
+ @page.opcion_si_new_price_jump_element.should visible("boton aceptar cambio de precio")
79
+ @page.link_new_price_jump_element.should visible("boton ver otros vuelos")
80
+ doc = Hpricot.parse(@page.new_popup_price_jump_element.html)
81
+ @itinerario_checkout = @page.datos_itinerario
82
+ @precio_inicial = Price.new((doc/"p.paragraph span.currency").first.inner_text.strip + " " + (doc/"p.paragraph span.amount").first.inner_text.strip)
83
+ @itinerario_checkout.tarifas['total'].value.should be_within(2).of(@precio_inicial.value)
84
+ @precio_final = Price.new((doc/"p.paragraph span.currency").last.inner_text.strip + " " + (doc/"p.paragraph span.amount").last.inner_text.strip)
85
+ end
@@ -120,6 +120,7 @@ Cuando(/^(?:verifico|valido) que filtre por una celda de la matriz$/) do
120
120
  @page.manage_data.set_from_date(Date.parse("#{(month_bar).attributes['data-outbound-date']}"))
121
121
  @page.barra_precio_minimo_element.div(:class,'fare-chart-bar-content').click
122
122
  step "espero que termine de cargar la pagina de resultados"
123
+ step "espero que termine de cargar la pagina de streaming de resultados"
123
124
  step "ingreso a la matriz de tendencia de precios"
124
125
  step "verifico el l&f de la matriz de tendencia de precios"
125
126
  step "verifico que la matriz cumpla con el rango de fechas de la busqueda"
@@ -12,7 +12,7 @@ Cuando(/^(?:verifico|valido) que las datos de la pagina sean consistente a la bu
12
12
  (html/"span.search-info").inner_text.no_accents.downcase.should match(@page.manage_data.city_from_1.name_lang[AllPages.lang].downcase)
13
13
  (html/"span.search-info").inner_text.no_accents.downcase.should match(@page.manage_data.city_to_1.name_lang[AllPages.lang].downcase)
14
14
  (!(html/"div.ux-search").length.zero?).should be_true
15
- (!(html/"div#flights-alerts").length.zero?).should be_true if @page.tipo_de_busqueda=="roundtrip" and !AllPages.internacional
15
+ (!(html/"div.flights-alerts").length.zero?).should be_true if @page.tipo_de_busqueda=="roundtrip" and !AllPages.internacional
16
16
  (!(html/"div#inline-filters-VERTICAL_FILTERS-wrapper").length.zero?).should be_true
17
17
  end
18
18
  end
@@ -1,6 +1,10 @@
1
1
  # encoding: utf-8
2
2
  Cuando(/^espero que termine de cargar la pagina de gracias$/) do
3
- @page = Thanks::ThanksPage.new($browser)
3
+ if @page.new_thanks?
4
+ @page = Thanks::NewThanksPage.new($browser)
5
+ else
6
+ @page = Thanks::OldThanksPage.new($browser)
7
+ end
4
8
  Watir::Wait.until(timeout=120){@page.checkout_id_element.present? or @page.checkout_id_cash_element.present?}
5
9
  end
6
10
 
@@ -1,15 +1,28 @@
1
1
  # encoding: utf-8
2
2
  Entonces(/^(?:verifico|valido) el link de mi despegar$/) do
3
- if AllPages.site=~/BR|PT/
4
- @page.link_mi_despegar_element.text.no_accents.downcase.should match("em caso de duvidas, acesse")
5
- @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
6
- elsif AllPages.site=~/CN|US|IN/
7
- @page.link_mi_despegar_element.text.no_accents.downcase.should match("if you have any questions, login to my bookings")
8
- @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
3
+ if @page.new_thanks?
4
+ if AllPages.site=~/BR|PT/
5
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("Administre a sua (compra|solicitacao de compra) pela Minha Reserva")
6
+ @page.link_mi_despegar_element.link(:class,"booking-button eva-button-secondary-medium").should visible
7
+ elsif AllPages.site=~/CN|US|IN/
8
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("if you have any questions, login to my bookings")
9
+ @page.link_mi_despegar_element.link(:class,"booking-button eva-button-secondary-medium").should visible
10
+ else
11
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("Manage your (purchase|request) from My Booking")
12
+ @page.link_mi_despegar_element.link(:class,"booking-button eva-button-secondary-medium").should visible
13
+ end
9
14
  else
10
- @page.link_mi_despegar_element.text.no_accents.downcase.should match("ante cualquier consulta, ingresa a")
11
- @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
12
- end
15
+ if AllPages.site=~/BR|PT/
16
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("em caso de duvidas, acesse")
17
+ @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
18
+ elsif AllPages.site=~/CN|US|IN/
19
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("if you have any questions, login to my bookings")
20
+ @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
21
+ else
22
+ @page.link_mi_despegar_element.text.no_accents.downcase.should match("ante cualquier consulta, ingresa a")
23
+ @page.link_mi_despegar_element.link(:id,"my-despegar-link").should visible
24
+ end
25
+ end
13
26
  end
14
27
 
15
28
  Y(/^(?:verifico|valido) los valores del desglose en gracias contra los del checkout/) do
@@ -8,4 +8,5 @@ require_relative 'results/new_details_cluster'
8
8
  require_relative 'checkout/old_cluster'
9
9
  require_relative 'checkout/new_cluster'
10
10
  require_relative 'checkout/render_cluster'
11
+ require_relative 'thanks/cluster'
11
12
  require_relative 'landing/cluster'
@@ -0,0 +1,100 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Thanks
3
+ class Cluster
4
+ attr_accessor :ida, :vuelta, :tarifas, :idas, :vueltas
5
+
6
+ def initialize(itinerario,html,page = 0)
7
+ @fechas = []
8
+ self.cargar_precios((html/"div.prices"))
9
+ eval "#{itinerario.downcase}(html)"
10
+ end
11
+
12
+ def roundtrip(html)
13
+ tramos = cargar_tramos((html/"div.outbound-route div.segment"))
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").inner_text.strip), tramos.first['salida']['iata'], tramos.last['llegada']['iata'], tramos.first['salida']['horario'], tramos.last['llegada']['horario'])
15
+ tramos = cargar_tramos((html/"div.inbound-route div.segment"))
16
+ @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'])
17
+ end
18
+
19
+ def oneway(html)
20
+ tramos = cargar_tramos((html/"div.outbound-route div.segment"))
21
+ @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'])
22
+ end
23
+
24
+ def multipledestinations(html)
25
+ data = (html/"div.outbound-route div.segment")
26
+ data_final = data.delete(data.last)
27
+ tramos = cargar_tramos(data)
28
+ @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'])
29
+ tramos = cargar_tramos([data_final])
30
+ @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'])
31
+ end
32
+
33
+ def cargar_tramos(lista_tramos)
34
+ tramos = Array.new
35
+ lista_tramos.each{ |segmento| tramos << cargar_tramo(segmento)}
36
+ return tramos
37
+ end
38
+
39
+ def cargar_tramo(segmento)
40
+ tramo = Hash.new
41
+ tramo['aerolinea'] = (segmento/"li.airline-data img").first.attributes['src'].match(/(..).png/)[1].upcase
42
+ tramo['salida'] = cargar_vuelo((segmento/"li.flight").first)
43
+ tramo['llegada'] = cargar_vuelo((segmento/"li.flight").last)
44
+ return tramo
45
+ end
46
+
47
+ def cargar_vuelo(vuelo)
48
+ vuelo_tmp = Hash.new
49
+ vuelo_tmp['iata'] = (vuelo/"a.city-code").inner_text.strip
50
+ vuelo_tmp['nombre'] = (vuelo/"li.location-name").inner_text.strip.no_accents
51
+ vuelo_tmp['fecha'] = (vuelo/"li.date").inner_text.strip.no_accents
52
+ @fechas << vuelo_tmp['fecha']
53
+ vuelo_tmp['horario'] = (vuelo/"li.time").inner_text.gsub(/hs/,'').strip
54
+ return vuelo_tmp
55
+ end
56
+
57
+ def cargar_precios(html)
58
+ @tarifas = Hash.new
59
+ if (html/".adult-price span.price-currency").first
60
+ @tarifas['tarifa_adulto'] = Price.new((html/".adult-price span.price-currency").first.inner_text.strip)
61
+ else
62
+ @tarifas['tarifa_adulto'] = Price.new((html/"div.adult-price-conversion span#local-currency").first.inner_text.strip)
63
+ end
64
+ @tarifas['adt'] = Price.new((html/"li.adult_fare span.price-currency").first.inner_text.strip)
65
+ @tarifas['cnn'] = (html/"li.child_fare").first ? Price.new((html/"li.child_fare span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
66
+ @tarifas['inf'] = (html/"li.infant_fare").first ? Price.new((html/"li.infant_fare span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
67
+ @tarifas['tasas'] = (html/"li.taxes").first ? Price.new((html/"li.taxes span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
68
+ @tarifas['cargos'] = (html/"li.charges").first ? Price.new((html/"li.charges span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
69
+ @tarifas['afip'] = (html/"li.tax_afip").first ? Price.new((html/"li.tax_afip span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
70
+ @tarifas['encargos'] = (html/"li.service_taxes").first ? Price.new((html/"li.service_taxes span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
71
+ @tarifas['seguros'] = (html/"li.destination_service_insurance").first ? Price.new((html/"li.destination_service_insurance span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
72
+ @tarifas['descuento'] = (html/"li.payment_discount").first ? Price.new((html/"li.payment_discount span.price-currency").first.inner_text.strip) : Price.new("$ 0",true)
73
+ @tarifas['total'] = (html/"span#total-price").first ? Price.new((html/"span#total-price").first.inner_text.strip) : Price.new("$ 0",true)
74
+ end
75
+
76
+ def validar_suma_desgloce(linea = "total|tarifa_adulto|tarifa_adulto_dolar")
77
+ sumaTarifas = 0
78
+ @tarifas.each_pair do |key,tarifa|
79
+ if key !~ /#{linea}/
80
+ sumaTarifas += tarifa.valor
81
+ end
82
+ end
83
+ return sumaTarifas.to_i
84
+ end
85
+
86
+ def escala_to_i(escala)
87
+ return 0 if escala.to_s =~ /(solo vuelo directo)|(Sin escalas)|(Sem escalas)|(Soamente v.o directo)|(Vuelo Directo)/i
88
+ return escala.to_s.gsub(/\D/,'').to_i
89
+ end
90
+
91
+ def fechas
92
+ @fechas.collect{|fecha| Date.parse_new_result(fecha)}.uniq
93
+ end
94
+
95
+ def fechas_fix
96
+ @fechas.join(" | ")
97
+ end
98
+
99
+ end
100
+ end
@@ -60,6 +60,8 @@ require_relative 'pages/checkout/checkout_page/old_checkout_page'
60
60
  require_relative 'pages/checkout/checkout_page/new_checkout_page'
61
61
  require_relative 'pages/checkout/popup_results_page'
62
62
  require_relative 'pages/thanks/thanks_page'
63
+ require_relative 'pages/thanks/thanks_page/new_thanks_page'
64
+ require_relative 'pages/thanks/thanks_page/old_thanks_page'
63
65
  require_relative 'pages/landing/search_page'
64
66
  require_relative 'pages/landing/new_landing_page'
65
67
 
@@ -13,8 +13,10 @@ module NewCheckout
13
13
  div(:popup_compra_duplicada,:id=>"popup-duplicated-transaction")
14
14
  div(:opcion_no_compra_duplicada,:css=>"#popup-duplicated-transaction .button-no")
15
15
  div(:opcion_si_compra_duplicada,:css=>"#popup-duplicated-transaction .button-yes")
16
+ div(:new_popup_price_jump,:id=>"popup-price-difference-template")
16
17
  div(:popup_price_jump,:id=>"popup-price-difference")
17
18
  div(:opcion_si_price_jump,:css=>"#popup-price-difference .button-yes")
19
+ div(:opcion_si_new_price_jump,:css=>"#popup-price-difference-template .button-yes")
18
20
  div(:cerrar_popup_chat,:css=>"#dtalk-container .ux-header-close")
19
21
  span(:cerrar_popup_cobertura,:css=>".popup-upselling-coverage .popup-close-button")
20
22
  span(:cerrar_popup_cantidad_visitantes,:css=>"#searches-count-alert-popup .popup-close-button")
@@ -5,7 +5,7 @@ module Results
5
5
 
6
6
  include PageObject
7
7
 
8
- div(:tab_matriz_tendencia_precio,:class=>'flights-tab-header flights-title-tooltip flights-tab-fareChart')
8
+ div(:tab_matriz_tendencia_precio,:class=>'flights-tab-fareChart')
9
9
  div(:matriz_fare_chart,:id=>'fare-chart')
10
10
  div(:fare_chart_principal,:class=>"fare-chart-main")
11
11
  div(:fare_chart_secundario,:class=>"fare-chart-secondary")
@@ -7,8 +7,8 @@ module Results
7
7
 
8
8
  span(:icono_mail,:css=>".icons .icon")
9
9
 
10
- radio(:primera_opcion_ida,:id=>"0-outbound-0")
11
- radio(:primera_opcion_vuelta,:id=>"0-inbound-0")
10
+ radio(:primera_opcion_ida,:id=>/outbound-0/)
11
+ radio(:primera_opcion_vuelta,:id=>/inbound-0/)
12
12
 
13
13
  div(:popup_vuelos,:class=>"flights-popup")
14
14
  div(:popup_mail,:id=>"popup-email")
@@ -16,6 +16,8 @@ module Checkout
16
16
 
17
17
  divs(:secciones_preguntas_riesgo,:class=>"item section radio-group group")
18
18
 
19
+ div(:desglose_gracias,:class=>"boxes")
20
+
19
21
  li(:asistencia_gratuita,:class=>"item destination_service_insurance free")
20
22
 
21
23
  def cargar_url(tipo,ambiente,cabotaje="nil",params={})
@@ -95,5 +97,9 @@ module Checkout
95
97
  @provider
96
98
  end
97
99
 
100
+ def new_thanks?
101
+ desglose_gracias_element.present?
102
+ end
103
+
98
104
  end
99
105
  end
@@ -29,6 +29,7 @@ module Checkout
29
29
  div(:cupon_exito,:id=>"voucher-success")
30
30
  div(:clientes_felices,:id=>"happy-clients")
31
31
  div(:link_price_jump,:css=>"#popup-price-difference .popup-link")
32
+ div(:link_new_price_jump,:css=>"#popup-price-difference-template .popup-link")
32
33
  div(:mensaje_cancelacion,:id=>"cancellation-advice")
33
34
  div(:mensaje_cancelacion_en_el_dia,:id=>"last-minute-advice")
34
35
  div(:mensaje_error_emision_last_minute,:class=>"ux-common-message ux-common-message-error ")
@@ -5,32 +5,6 @@ module Thanks
5
5
  include Pages::Tags
6
6
 
7
7
  include PageObject
8
-
9
- element(:checkout_id,:em,:class=>"checkout-id")
10
- element(:checkout_id_cash,:span,:class=>"checkout-id")
11
-
12
- div(:popup_desglose_gracias,:id=>"popup-booking-details")
13
- div(:popup_asistencia_al_viajero,:id=>"insurance-recommendation-popup")
14
- div(:overlay_asistencia_al_viajero,:id=>"insurance-recommendation-popup-overlay")
15
- div(:cerrar_popup_asistencia_al_viajero,:css=>"#insurance-recommendation-popup .flights-message-close")
16
- div(:popup_desglose_detalles_gracias,:class=>"flights-popup popup-detail")
17
- div(:link_mi_despegar,:class=>"ux-shared-checkout-thanks-ticket-cont")
18
- div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
19
- div(:datos_deposito,:class=>"thanks-reservation-info")
20
-
21
- elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
22
- elements(:links_mas_detalles_gracias,:link,:css=>"#popup-booking-details .stops .number")
23
-
24
- span(:cerrar_popup_desglose_detalles_gracias,:css=>".popup-detail .popup-close-button")
25
- span(:cerrar_popup_desglose_gracias,:css=>"#popup-booking-details .popup-close-button")
26
- span(:id_cro_pago_online,:class=>"thanks-reservation-homebanking-ticket-numbers")
27
- span(:precio_pago_online,:class=>"thanks-reservation-homebanking-price")
28
- span(:valor_desglose_ingresos_brutos,:css=>".local_taxes .price-currency")
29
- span(:valor_desglose_total,:css=>".total .price-currency")
30
- spans(:pasos_deposito,:class=>"thanks-reservation-info-data")
31
-
32
- link(:imprimir_datos_deposito,:id=>"thanks-reservation-cash-print")
33
- link(:ver_desglose_gracias,:class=>"ux-shared-checkout-thanks-more")
34
8
 
35
9
  def get_results_search_service(type="TOTALFARE")
36
10
  if $HENRY_PARAMS["streaming"]
@@ -45,9 +19,6 @@ module Thanks
45
19
  json["result"] = self.manage_data.get_results_search_service_streaming(type).first["arg"]
46
20
  return json
47
21
  end
48
-
49
- def datos_itinerario()
50
- return NewCheckout::Cluster.new(tipo_de_busqueda,Hpricot.parse(popup_desglose_gracias_element.html))
51
- end
22
+
52
23
  end
53
24
  end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ module Thanks
3
+ class NewThanksPage < ThanksPage
4
+
5
+ include Pages::Tags
6
+
7
+ include PageObject
8
+
9
+ element(:checkout_id,:span,:class=>"number")
10
+ element(:checkout_id_cash,:span,:class=>"number")
11
+
12
+ div(:desglose_gracias,:class=>"boxes")
13
+ div(:popup_asistencia_al_viajero,:id=>"insurance-recommendation-popup")
14
+ div(:overlay_asistencia_al_viajero,:id=>"insurance-recommendation-popup-overlay")
15
+ div(:cerrar_popup_asistencia_al_viajero,:css=>"#insurance-recommendation-popup .flights-message-close")
16
+ div(:popup_desglose_detalles_gracias,:class=>"flights-popup popup-detail")
17
+ div(:link_mi_despegar,:id=>"self-service")
18
+ div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
19
+ div(:datos_deposito,:class=>"thanks-reservation-info")
20
+
21
+ elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
22
+ elements(:links_mas_detalles_gracias,:link,:css=>"#popup-booking-details .stops .number")
23
+
24
+ span(:cerrar_popup_desglose_detalles_gracias,:css=>".popup-detail .popup-close-button")
25
+ span(:cerrar_popup_desglose_gracias,:css=>"#popup-booking-details .popup-close-button")
26
+ span(:id_cro_pago_online,:class=>"thanks-reservation-homebanking-ticket-numbers")
27
+ span(:precio_pago_online,:class=>"thanks-reservation-homebanking-price")
28
+ span(:valor_desglose_ingresos_brutos,:css=>".local_taxes .price-currency")
29
+ span(:valor_desglose_total,:css=>".total .price-currency")
30
+ spans(:pasos_deposito,:class=>"thanks-reservation-info-data")
31
+
32
+ link(:imprimir_datos_deposito,:id=>"thanks-reservation-cash-print")
33
+ link(:ver_desglose_gracias,:class=>"detail-handler")
34
+
35
+ def datos_itinerario()
36
+ return Thanks::Cluster.new(tipo_de_busqueda,Hpricot.parse(desglose_gracias_element.html))
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ module Thanks
3
+ class OldThanksPage < ThanksPage
4
+
5
+ include Pages::Tags
6
+
7
+ include PageObject
8
+
9
+ element(:checkout_id,:em,:class=>"checkout-id")
10
+ element(:checkout_id_cash,:span,:class=>"checkout-id")
11
+
12
+ div(:popup_desglose_gracias,:id=>"popup-booking-details")
13
+ div(:popup_asistencia_al_viajero,:id=>"insurance-recommendation-popup")
14
+ div(:overlay_asistencia_al_viajero,:id=>"insurance-recommendation-popup-overlay")
15
+ div(:cerrar_popup_asistencia_al_viajero,:css=>"#insurance-recommendation-popup .flights-message-close")
16
+ div(:popup_desglose_detalles_gracias,:class=>"flights-popup popup-detail")
17
+ div(:link_mi_despegar,:class=>"ux-shared-checkout-thanks-ticket-cont")
18
+ div(:mensaje_alerta,:class=>"ux-common-message ux-common-message-warning ")
19
+ div(:datos_deposito,:class=>"thanks-reservation-info")
20
+
21
+ elements(:pasos_pago_online,:div,:class=>"thanks-reservation-homebanking-step")
22
+ elements(:links_mas_detalles_gracias,:link,:css=>"#popup-booking-details .stops .number")
23
+
24
+ span(:cerrar_popup_desglose_detalles_gracias,:css=>".popup-detail .popup-close-button")
25
+ span(:cerrar_popup_desglose_gracias,:css=>"#popup-booking-details .popup-close-button")
26
+ span(:id_cro_pago_online,:class=>"thanks-reservation-homebanking-ticket-numbers")
27
+ span(:precio_pago_online,:class=>"thanks-reservation-homebanking-price")
28
+ span(:valor_desglose_ingresos_brutos,:css=>".local_taxes .price-currency")
29
+ span(:valor_desglose_total,:css=>".total .price-currency")
30
+ spans(:pasos_deposito,:class=>"thanks-reservation-info-data")
31
+
32
+ link(:imprimir_datos_deposito,:id=>"thanks-reservation-cash-print")
33
+ link(:ver_desglose_gracias,:class=>"ux-shared-checkout-thanks-more")
34
+
35
+ def datos_itinerario()
36
+ return NewCheckout::Cluster.new(tipo_de_busqueda,Hpricot.parse(popup_desglose_gracias_element.html))
37
+ end
38
+
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module FlightsGui
2
- VERSION = "2.1.1"
2
+ VERSION = "2.1.2"
3
3
  end
@@ -17,7 +17,7 @@ Característica: checkout.book_ok
17
17
  Y espero que termine de cargar la pagina de checkout
18
18
  Y verifico que ingrese al checkout
19
19
  Entonces si ingreso por keeper, ingreso al checkout con cookie "useNewBookingProvider" al "0"
20
- Entonces si el site es "MX", elijo "no_chequear" si quiero cobertura
20
+ Entonces si existe la opcion de cobertura, elijo "no_chequear" si quiero cobertura
21
21
  Y valido los valores del desglose del checkout
22
22
  Y verifico el pixel de Efrontier
23
23
  Y verifico el pixel de trackeame en checkout
@@ -44,7 +44,7 @@ Característica: checkout.book_ok
44
44
  Y verifico el tag de datalayer
45
45
  Y verifico el pixel de Efrontier
46
46
  Y verifico el pixel de trackeame en gracias
47
- Y verifico los datos de la reserva enviados a fenix
47
+ #Y verifico los datos de la reserva enviados a fenix
48
48
  Y cancelo la reserva en el proveedor
49
49
 
50
50
  @pt
@@ -112,4 +112,57 @@ Característica: checkout.price_jump
112
112
  @oneway
113
113
  Ejemplos:
114
114
  |pais|tipo|cabotage|
115
- |BR |oneway|nil|
115
+ |BR |oneway|nil|
116
+
117
+ @price_jump
118
+ Esquema del escenario: Se ingresa al checkout para forzar cambio de precio y validar popup y valores mostrados en checkout y gracias.
119
+ Dado como un usuario de '<pais>'
120
+ * ingreso una busqueda '<tipo>' del tipo '<cabotage>'
121
+ Cuando realizo la busqueda
122
+ Entonces verifico que la pagina no rompa
123
+ Cuando espero que termine de cargar la pagina de resultados
124
+ Entonces verifico que traiga resultados
125
+ Y cierro popups
126
+ Cuando elijo un itinerario y paso a checkout
127
+ Entonces verifico que la pagina no rompa
128
+ Y espero que termine de cargar la pagina de checkout
129
+ Y verifico que ingrese al checkout
130
+ Entonces cargo los pasajeros
131
+ Y cargo los datos de la tarjeta
132
+ Y elijo mas de una cuota con intereses
133
+ Y si existe la opcion de cobertura, elijo "no_chequear" si quiero cobertura
134
+ Y si el site es "AR|MX|PE|BR", cargo los datos de facturacion
135
+ Y cargo los datos de contacto
136
+ Y completo el mail de contacto para forzar cambio de precio
137
+ Cuando acepto y compro
138
+ Cuando espero que cargue el nuevo popup de cambio de precio
139
+ Entonces verifico el nuevo popup de cambio de precio
140
+ Y elijo otro vuelo por el que cambio de vuelo
141
+ Cuando espero que termine de cargar la pagina de checkout
142
+ Entonces si el checkout me pide mas datos de tarjeta, cargo los datos de la tarjeta
143
+ Entonces si aparece el popup de no disponibilidad, elijo otro itinerario
144
+ Y elijo mas de una cuota con intereses
145
+ Y completo el mail de contacto para forzar cambio de precio
146
+ Y si el site es "AR|MX|PE|BR", cargo los datos de facturacion
147
+ Cuando acepto y compro
148
+ Cuando espero que cargue el nuevo popup de cambio de precio
149
+ Entonces verifico el nuevo popup de cambio de precio
150
+ Y elijo el mismo vuelo que cambio de precio
151
+ Y espero que cargue las preguntas de riesgo
152
+ Y si se muestran las preguntas de riesgo, completo las preguntas de riesgo
153
+ Entonces espero que termine el pedido de compra
154
+ Y verifico si no trae errores
155
+ Entonces si aparece el popup de no disponibilidad, elijo un itinerario para checkout de nuevas formas de pago del popup de no disponibilidad
156
+ Entonces espero que termine de cargar la pagina de gracias
157
+ Y verifico que ingrese a la pagina de gracias
158
+ Y verifico el popup de asistencia al viajero
159
+ Y verifico el link de mi despegar
160
+ Y verifico los datos del vuelo comprado
161
+ Y verifico que el nuevo precio final sea el correcto
162
+ Y verifico el tag de datalayer
163
+
164
+ @co
165
+ @oneway
166
+ Ejemplos:
167
+ |pais|tipo|cabotage|
168
+ |CO |oneway|nil|
@@ -10,6 +10,7 @@ Característica: results.matrix_airlines
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 si pruebo streaming, ingreso a resultados streaming
13
14
  Entonces verifico que traiga resultados
14
15
  Cuando elijo en la matriz una aerolinea a aplicar
15
16
  Entonces filtro por matriz una aerolinea
@@ -10,6 +10,7 @@ Característica: results.matrix_fare_chart
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 si pruebo streaming, ingreso a resultados streaming
13
14
  Entonces verifico que traiga resultados
14
15
  Y ingreso a la matriz de tendencia de precios
15
16
  Y verifico el mensaje de aclaracion de precio de matriz de tendencia de precios
@@ -10,6 +10,7 @@ Característica: results.matrix_price
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 si pruebo streaming, ingreso a resultados streaming
13
14
  Entonces verifico que traiga resultados
14
15
  Y si no se muestra la matriz de precios, realizo las busquedas para recargar la matriz
15
16
  Cuando espero que termine de cargar la pagina de resultados
@@ -48,7 +48,6 @@ Característica: results.pagination
48
48
  |pais|tipo|cabotage|x|
49
49
  |BR |roundtrip|true|10|
50
50
  |BR |oneway|true|10|
51
- |BR |multipledestinations|true|10|
52
51
  @co
53
52
  Ejemplos:
54
53
  |pais|tipo|cabotage|x|
data/henry-context.yml CHANGED
@@ -12208,6 +12208,37 @@ tasks:
12208
12208
  recipients:
12209
12209
  - estebanldh@gmail.com
12210
12210
  - nsimean@despegar.com
12211
+ - name: checkout.price_jump.co
12212
+ class_name: Henry::Task::CucumberTask
12213
+ options:
12214
+ tags:
12215
+ - checkout
12216
+ - price_jump
12217
+ - co
12218
+ expand: true
12219
+ no-source: true
12220
+ reports:
12221
+ - format: html
12222
+ name: ${DATE}_${TASK_NAME}.html
12223
+ recipients:
12224
+ - estebanldh@gmail.com
12225
+ - nsimean@despegar.com
12226
+ - name: checkout.price_jump.co.oneway
12227
+ class_name: Henry::Task::CucumberTask
12228
+ options:
12229
+ tags:
12230
+ - checkout
12231
+ - price_jump
12232
+ - co
12233
+ - oneway
12234
+ expand: true
12235
+ no-source: true
12236
+ reports:
12237
+ - format: html
12238
+ name: ${DATE}_${TASK_NAME}.html
12239
+ recipients:
12240
+ - estebanldh@gmail.com
12241
+ - nsimean@despegar.com
12211
12242
  - name: checkout.braspag
12212
12243
  class_name: Henry::Task::CucumberTask
12213
12244
  options:
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.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - lgonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-26 00:00:00.000000000 Z
11
+ date: 2015-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: henry-container
@@ -293,6 +293,7 @@ files:
293
293
  - features/support/classes/results/old_cluster.rb
294
294
  - features/support/classes/results/old_details_cluster.rb
295
295
  - features/support/classes/string.rb
296
+ - features/support/classes/thanks/cluster.rb
296
297
  - features/support/env.rb
297
298
  - features/support/hooks.rb
298
299
  - features/support/matchers.rb
@@ -346,6 +347,8 @@ files:
346
347
  - features/support/pages/results/desambiguation_city_page.rb
347
348
  - features/support/pages/results/search_page.rb
348
349
  - features/support/pages/thanks/thanks_page.rb
350
+ - features/support/pages/thanks/thanks_page/new_thanks_page.rb
351
+ - features/support/pages/thanks/thanks_page/old_thanks_page.rb
349
352
  - features/support/version.rb
350
353
  - features/tests/black_list/busquedas_promo.feature
351
354
  - features/tests/black_list/cac.feature