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 +4 -4
- data/features/step_definitions/results/load_steps.rb +4 -12
- data/features/support/modules/checkout/new_checkout/tarjeta.rb +25 -24
- data/features/support/modules/results/itineraries/data.rb +2 -2
- data/features/support/modules/results/itineraries/details.rb +2 -2
- data/features/support/modules/results/itineraries/payments.rb +3 -1
- data/features/support/pages/results/search_page.rb +2 -2
- data/features/support/version.rb +1 -1
- data/features/tests/results/basefare.feature +0 -1
- data/features/tests/results/filters.feature +0 -1
- data/features/tests/results/itineraries.feature +1 -0
- data/features/tests/results/search.feature +1 -0
- data/features/tests/results/search_full.feature +0 -8
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 14dddf7334786add2ea11c69dca635e046806b54
|
|
4
|
+
data.tar.gz: 4445fa425c302d2e8e8f78e7fba9b53319779652
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
97
|
-
$HENRY_PARAMS[
|
|
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
|
-
|
|
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
|
-
|
|
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 /
|
|
220
|
-
when /(.*)CREDIT(.*)
|
|
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
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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').
|
|
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').
|
|
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').
|
|
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').
|
|
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].
|
|
155
|
-
execute_script("javascript:void($('##{itinerarios_elements[index].
|
|
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
|
data/features/support/version.rb
CHANGED
|
@@ -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.
|
|
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-
|
|
11
|
+
date: 2016-03-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: henry-container
|