flights_gui_tests 2.4.35 → 2.4.36

Sign up to get free protection for your applications and to get access to all the features.
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