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 +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
|