flights_gui_tests 2.4.35 → 2.4.36

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: 9c91708478539f950ea0e91880d1bdc72e471139
4
- data.tar.gz: 6917ac4becedfa947459cc8a1348d64a0d5e4168
3
+ metadata.gz: 14dddf7334786add2ea11c69dca635e046806b54
4
+ data.tar.gz: 4445fa425c302d2e8e8f78e7fba9b53319779652
5
5
  SHA512:
6
- metadata.gz: e0258bafeab4c1789ad20ed53ee44467061ca315365643c9af7962b8851de5a9c96766d97d4cfcdcb83d8c001ce69ee837ea9caa4ab994caf4d7810dae16cf9f
7
- data.tar.gz: 5e3abcff9e959a89770909d17356736c64f55140bea64be4aaa3a7f595629851d0c17bf6d164a88ae5294267fdfba96c0edd8a74602a471b5049e9363ca9b5bd
6
+ metadata.gz: 79c6d7c94ec1665e1305b0d081d462119af4209033f3e9611cdc6c8905f8039c581ba46215e97d0bdfd78cf25f581359b8ca942804eeb64c0199b28beea5b5fe
7
+ data.tar.gz: 89bc704883bc09d6d5197598fdd29ebaf17ac6600eed4fee7bd2f1f927a4ea4bd3c0a94c85704762b80e656d2c2c8e5af4a1fa5f6f498c6cf43af87f19f54ab5
@@ -74,16 +74,6 @@ Entonces(/^(?:verifico|valido) que (?:traiga|vengan|tenga) resultados$/) do
74
74
  @page.definir_nuevo_cluster(true) #seteo el itinerario que viene por default
75
75
  end
76
76
 
77
- Cuando(/^ingreso a resultados streaming$/) do
78
- step "fuerzo el abztesting de \"streaming\" al \"#{$HENRY_PARAMS['streaming'].to_i}\""
79
- @page = Results::SearchPage.new($browser)
80
- step "realizo la busqueda"
81
- step "verifico que la pagina no rompa"
82
- step "espero que termine de cargar la pagina de resultados"
83
- step "espero que termine de cargar la pagina de streaming de resultados"
84
- step "cierro popups"
85
- end
86
-
87
77
  Cuando(/^ingreso a resultados con cookie "(.+)" al "(.+)"$/) do |key,value|
88
78
  step "fuerzo el abztesting de \"#{key}\" al \"#{value}\""
89
79
  @page = Results::SearchPage.new($browser)
@@ -91,8 +81,10 @@ Cuando(/^ingreso a resultados con cookie "(.+)" al "(.+)"$/) do |key,value|
91
81
  step "verifico que la pagina no rompa"
92
82
  step "espero que termine de cargar la pagina de resultados"
93
83
  step "cierro popups"
84
+ @page.cargar_valores_abtesting
85
+ puts @page.abtesting
94
86
  end
95
87
 
96
- Entonces(/^pruebo streaming$/) do
97
- $HENRY_PARAMS["streaming"].should be_true
88
+ Entonces(/^pruebo angular$/) do
89
+ step "ingreso a resultados con cookie \"useAngular\" al \"1\"" if $HENRY_PARAMS['angular']
98
90
  end
@@ -58,13 +58,15 @@ module NewCheckout
58
58
 
59
59
  elements(:tipos_de_pago,:radio,:css=>"#paymentDefinition input.radio")
60
60
 
61
+ element(:descuento,:span,:css=>".payment_discount .amount")
62
+
61
63
  span(:desc_fecha_deposito,:css=>"#cash-installment .installment-description-info")
62
64
  span(:desc_pasos_deposito,:css=>"#cash-installment .installment-detail-text")
63
65
  span(:precio_final,:id=>"total-price")
64
66
  span(:precio_final_combo,:css=>"#installments-price .total")
65
67
  span(:desglose_de_cuotas,:css=>"#installments-price .installments-detail")
66
68
 
67
- li(:medio_de_pago_seleccionado,:css=>"#paymentDefinition .selected")
69
+ span(:medio_de_pago_seleccionado,:css=>".card-info .installment-details-content .installments-detail")
68
70
  li(:medio_de_subpago_seleccionado,:css=>".list .sub-selected")
69
71
 
70
72
  divs(:opciones_pago,:class=>'installment-info')
@@ -196,6 +198,7 @@ module NewCheckout
196
198
 
197
199
  def verificar_tipos_de_pago
198
200
  interes = nil
201
+ precio_con_descuento = descuento_element.text if descuento_element.present?
199
202
  doc=Hpricot.parse(precio_final_element.html)
200
203
  total_1 = doc.inner_text.gsub(/\D/,'').to_i
201
204
  radios = tipos_de_pago_elements
@@ -204,21 +207,15 @@ module NewCheckout
204
207
  if radio.present? and !radio.disabled?
205
208
  radio.click
206
209
  sleep(0.5)
207
- begin
208
- total_2=Hpricot.parse(precio_final_element.html).inner_text.gsub(/\D/,'').to_i
209
- rescue Watir::Exception::UnknownObjectException
210
- sleep(2)
211
- total_2=Hpricot.parse(precio_final_element.html).inner_text.gsub(/\D/,'').to_i
212
- end
210
+ total_2=Hpricot.parse(precio_final_element.html).inner_text.gsub(/\D/,'').to_i
213
211
  unless radio.attribute_value("data-regular-expressions").nil?
214
212
  keys = JSON.parse(radio.attribute_value("data-regular-expressions")).keys
215
213
  if interes or radio.attribute_value("class").match(/radio-with-interest/)
216
- validar_cuota_con_intereses(total_1,total_2)
214
+ validar_cuota_con_intereses(total_1,total_2,precio_con_descuento)
217
215
  else
218
216
  case keys.first
219
- when /1(.*)CREDIT(.*)null$/ then validar_cuota_un_pago()
220
- when /(.*)CREDIT(.*)null$/ then validar_cuota_con_intereses(total_1,total_2)
221
- when /(.*)CREDIT(.*)$/ then validar_cuota_sin_intereses(total_1,total_2)
217
+ when /(.*)CREDIT(.*)null$/ then validar_cuota_con_intereses(total_1,total_2,precio_con_descuento)
218
+ when /(.*)CREDIT(.*)$/ then validar_cuota_sin_intereses(total_1,total_2,precio_con_descuento)
222
219
  end
223
220
  keys.uniq.length.should equal(keys.length)
224
221
  end
@@ -233,24 +230,24 @@ module NewCheckout
233
230
  end
234
231
  end
235
232
 
236
- def validar_cuota_un_pago()
237
-
238
- end
239
-
240
- def validar_cuota_sin_intereses(total_1,total_2)
241
- if medio_de_pago_seleccionado_element.div(:class,"installments-price").present?
242
- doc = Hpricot.parse(medio_de_pago_seleccionado_element.div(:class,"installments-price").html)
243
- inicial = (doc/"span.first-installment").inner_text.downstrip.gsub(/\.|\,/,'').match(/(\d+)$/)[1].to_i
244
- valor_restantes = (doc/"span.all-installments/span.currency/span.amount").inner_text.gsub(/\.|\,/,'').to_i
245
- cant_restantes = (doc/"span.all-installments").inner_text.gsub(/\.|\,/,'').match(/\+ (\d+)/)[1].to_i
233
+ def validar_cuota_sin_intereses(total_1,total_2,precio_con_descuento)
234
+ if medio_de_pago_seleccionado_element.present?
235
+ doc = Hpricot.parse(medio_de_pago_seleccionado_element.html)
236
+ inicial = (doc/"span.first-price").inner_text.downstrip.gsub(/\.|\,/,'').match(/(\d+)$/)[1].to_i
237
+ valor_restantes = (doc/"span.others-price").inner_text.gsub(/\.|\,/,'').to_i
238
+ cant_restantes = (doc/"span.others-quantity").inner_text.to_i
246
239
  (inicial + (cant_restantes * valor_restantes)).should be_within(3).of(total_2)
247
- total_1.should be_within(3).of(total_2)
240
+ if precio_con_descuento and !descuento_element.present?
241
+ (total_1+precio_con_descuento.to_i).should be_within(3).of(total_2)
242
+ else
243
+ total_1.should be_within(3).of(total_2)
244
+ end
248
245
  else
249
246
  total_1.should equal(total_2)
250
247
  end
251
248
  end
252
249
 
253
- def validar_cuota_con_intereses(total_1,total_2)
250
+ def validar_cuota_con_intereses(total_1,total_2,precio_con_descuento)
254
251
  if medio_de_subpago_seleccionado_element.present?
255
252
  doc = Hpricot.parse(medio_de_subpago_seleccionado_element.html)
256
253
  unless (doc/"span.interest").inner_text.empty?
@@ -259,7 +256,11 @@ module NewCheckout
259
256
  cant_restantes = (doc/"span.all-installments").inner_text.downstrip.gsub(/\./,'').match(/\+ (\d{1,2})/)[1].to_i
260
257
  valor_restantes = (doc/"span.all-installments/span.price/span.currency/span.amount").inner_text.gsub(/\.|\,/,'').to_i
261
258
  (inicial + (cant_restantes * valor_restantes)).should be_within(2).of(total_2)
262
- costo_financiero.should equal(total_2 - total_1)
259
+ if precio_con_descuento
260
+ costo_financiero.should equal(total_2 - total_1 - precio_con_descuento.to_i)
261
+ else
262
+ costo_financiero.should equal(total_2 - total_1)
263
+ end
263
264
  end
264
265
  end
265
266
  end
@@ -11,13 +11,13 @@ module Results
11
11
 
12
12
  def validar_detalles_itinerario(i)
13
13
  if tipo_de_busqueda != "multipledestinations"
14
- outbound = itinerarios_elements[i].div(:class,'itineraries').div(:class,'sub-cluster outbound').div(:class,'item data')
14
+ outbound = itinerarios_elements[i].div(:class,'itineraries').spans(:class,'sub-cluster')[0].div(:class,'item data')
15
15
  (manage_data.city_from_1.airports.include?(outbound.spans(:class,'airport')[0].text)).should be_true
16
16
  (manage_data.city_to_1.airports.include?(outbound.spans(:class,'airport')[1].text)).should be_true
17
17
  outbound.span(:class,'city-departure').text.no_accents.downcase.gsub(",","").strip.should equal(manage_data.city_from_1.name_lang[AllPages.lang].downcase) unless outbound.span(:class,'city-departure').text.downcase.no_accents.gsub(",","").strip.match("toluca|campinas|fort lauderdale")
18
18
  outbound.span(:class,'city-arrival').text.no_accents.downcase.gsub(",","").strip.should match(manage_data.city_to_1.name_lang[AllPages.lang].downcase) unless outbound.span(:class,'city-arrival').text.downcase.no_accents.gsub(",","").strip.match("toluca|campinas|fort lauderdale")
19
19
  if tipo_de_busqueda == "roundtrip"
20
- inbound = itinerarios_elements[i].div(:class,'itineraries').div(:class,'sub-cluster inbound').div(:class,'item data')
20
+ inbound = itinerarios_elements[i].div(:class,'itineraries').spans(:class,'sub-cluster')[1].div(:class,'item data')
21
21
  (manage_data.city_to_1.airports.include?(inbound.spans(:class,'airport')[0].text)).should be_true
22
22
  (manage_data.city_from_1.airports.include?(inbound.spans(:class,'airport')[1].text)).should be_true
23
23
  inbound.span(:class,'city-departure').text.no_accents.downcase.gsub(",","").strip.should match(manage_data.city_to_1.name_lang[AllPages.lang].downcase) unless inbound.span(:class,'city-departure').text.downcase.no_accents.gsub(",","").strip.match("toluca|campinas|fort lauderdale")
@@ -61,12 +61,12 @@ module Results
61
61
  if tipo_de_busqueda=="multipledestinations"
62
62
  return []
63
63
  else
64
- return itinerario.div(:class,'itineraries').div(:class,'sub-cluster outbound').ul(:class,'itineraries-group cluster-items-list').lis(:class,"item itinerary cluster-item")
64
+ return itinerario.div(:class,'itineraries').spans(:class,'sub-cluster')[0].ul(:class,'itineraries-group cluster-items-list').lis(:class,"item itinerary cluster-item")
65
65
  end
66
66
  end
67
67
  def rutas_vuelta(itinerario)
68
68
  if tipo_de_busqueda=="roundtrip"
69
- return itinerario.div(:class,'itineraries').div(:class,'sub-cluster inbound').ul(:class,'itineraries-group cluster-items-list').lis(:class,"item itinerary cluster-item")
69
+ return itinerario.div(:class,'itineraries').spans(:class,'sub-cluster')[1].ul(:class,'itineraries-group cluster-items-list').lis(:class,"item itinerary cluster-item")
70
70
  else
71
71
  return []
72
72
  end
@@ -6,9 +6,11 @@ module Results
6
6
  include PageObject
7
7
 
8
8
  div(:popup_cuotas,:id=>"popup-payments")
9
-
10
9
  span(:cerrar_popup_cuotas,:css=>"#popup-payments .popup-close-button")
11
10
 
11
+ div(:popup_cuotas_angular,:id=>"popup-payments-angular")
12
+ span(:cerrar_popup_cuotas_angular,:css=>"#popup-payments-angular .popup-close-button")
13
+
12
14
  def validar_popup_cuotas(i)
13
15
  if(itinerarios_elements[i].link(:text,/pagos|cuotas|installments|juros/).present?)
14
16
  itinerarios_elements[i].radio(:id,/outbound/).click if itinerarios_elements[i].radio(:id,/outbound/).present?
@@ -151,8 +151,8 @@ module Results
151
151
 
152
152
  def elegir_itinerario(index)
153
153
  cerrar_popup_alerta_element.click if cerrar_popup_alerta_element.present?
154
- execute_script("javascript:void($('##{itinerarios_elements[index].div(:class,'sub-cluster outbound').li(:class,'radio').radios[0].id}').click())") unless tipo_de_busqueda=="multipledestinations"
155
- execute_script("javascript:void($('##{itinerarios_elements[index].div(:class,'sub-cluster inbound').li(:class,'radio').radios[0].id}').click())") if tipo_de_busqueda=="roundtrip"
154
+ execute_script("javascript:void($('##{itinerarios_elements[index].divs(:class,'sub-cluster')[0].li(:class,'radio').radios[0].id}').click())") unless tipo_de_busqueda=="multipledestinations"
155
+ execute_script("javascript:void($('##{itinerarios_elements[index].divs(:class,'sub-cluster')[1].li(:class,'radio').radios[0].id}').click())") if tipo_de_busqueda=="roundtrip"
156
156
  boton_comprar = itinerarios_elements[index].links(:class,/buy/).select{|boton| boton.present?}
157
157
  begin
158
158
  boton_comprar.first.click
@@ -1,3 +1,3 @@
1
1
  module FlightsGui
2
- VERSION = "2.4.35"
2
+ VERSION = "2.4.36"
3
3
  end
@@ -10,7 +10,6 @@ Característica: results.basefare
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
14
13
  Entonces verifico que traiga resultados
15
14
  Y verifico los textos de las opciones del combo
16
15
  Y verifico las ociones de ordenamiento
@@ -13,7 +13,6 @@ Característica: results.filters
13
13
  Entonces verifico que traiga resultados
14
14
  Entonces elijo moneda local
15
15
  Cuando espero que termine de cargar la pagina de resultados
16
- Cuando si pruebo streaming, ingreso a resultados streaming
17
16
  Entonces verifico que la pagina no rompa
18
17
  Y cierro popups
19
18
  Cuando abro los filtros de aerolineas
@@ -10,6 +10,7 @@ Característica: results.itineraries
10
10
  Cuando realizo la busqueda
11
11
  Entonces verifico que la pagina no rompa
12
12
  Cuando espero que termine de cargar la pagina de resultados
13
+ Cuando pruebo angular
13
14
  Entonces verifico que traiga resultados
14
15
  Cuando si el ordenamiento es YIELD, ordeno por "TOTAL_FARE_YIELD_ASCENDING"
15
16
  Cuando si el ordenamiento no es YIELD, ordeno por "TOTALFARE_ASCENDING"
@@ -10,6 +10,7 @@ Característica: results.search
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 pruebo angular
13
14
  Entonces verifico que traiga resultados
14
15
  Y cierro popups
15
16
  Y verifico el popup de alertas
@@ -11,17 +11,9 @@ Característica: results.search_full
11
11
  Entonces verifico que la pagina no rompa
12
12
  Cuando espero que termine de cargar la pagina de resultados
13
13
  Entonces verifico que traiga resultados
14
- #Cuando si el site es "AR|BR", levanto los tag que deben mostrarse segun la ciudad buscada para una busqueda "<tipo>"
15
- #Entonces si el site es "AR|BR", verifico que se muestre en el codigo fuente
16
14
  Y cierro popups
17
15
  Y si el site no es "IN|CN|PT", verifico el primer tag de google en resultado
18
- #Y verifico el segundo tag de google en resultado
19
- #Y verifico el tag de groovinads
20
- #Y si el site no es "IN|CN|PT", verifico el logger en resultado de fgui
21
16
  Y verifico el tag de canonical
22
- #Y si el site es "AR", verifico el tag de remarketing de facebook
23
- #Y si el site es "MX|CO|BR", verifico el tag de facebook
24
- #Y si el site no es "IN|CN|PT", verifico el pixel de e-planning
25
17
  Y cierro popups
26
18
  Y verifico el popup de alertas
27
19
  Y verifico que no se muestre la leyenda de mejor precio garantizado en resultados
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.4.35
4
+ version: 2.4.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - lgonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-26 00:00:00.000000000 Z
11
+ date: 2016-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: henry-container