flights_gui_tests 0.0.30 → 0.0.31
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/checkout/checkout_steps.rb +39 -2
- data/features/step_definitions/checkout/verifications_steps.rb +6 -6
- data/features/step_definitions/page_steps.rb +1 -1
- data/features/step_definitions/results/filters_steps.rb +12 -17
- data/features/step_definitions/results/load_steps.rb +1 -1
- data/features/step_definitions/results/matrix_steps.rb +7 -3
- data/features/step_definitions/results/new_filters_steps.rb +331 -0
- data/features/step_definitions/thanks/thanks_steps.rb +15 -3
- data/features/support/classes/duracion.rb +43 -0
- data/features/support/env.rb +2 -0
- data/features/support/hooks.rb +1 -1
- data/features/support/modules/checkout/datos_de_facturacion.rb +18 -1
- data/features/support/modules/results/matrix/matrix_fare_chart.rb +1 -1
- data/features/support/modules/results/matrix/matrix_price.rb +1 -0
- data/features/support/modules/results/new_filters.rb +145 -0
- data/features/support/pages/all_pages.rb +4 -4
- data/features/support/pages/results/search_page.rb +1 -0
- data/features/support/pages/thanks/thanks_page.rb +3 -0
- data/features/tests/checkout/agency.feature +1 -0
- data/features/tests/checkout/book_ok.feature +2 -1
- data/features/tests/checkout/cac.feature +2 -1
- data/features/tests/checkout/cash_payment.feature +3 -2
- data/features/tests/checkout/compras_duplicadas.feature +2 -1
- data/features/tests/checkout/cupones.feature +2 -1
- data/features/tests/checkout/error_messages.feature +3 -3
- data/features/tests/checkout/fast_checkout.feature +2 -1
- data/features/tests/checkout/low_cost.feature +2 -1
- data/features/tests/checkout/online_payment.feature +3 -2
- data/features/tests/checkout/price_jump.feature +3 -2
- data/features/tests/checkout/providers.feature +2 -1
- data/features/tests/checkout/seguros.feature +2 -1
- data/features/tests/results/matrix/matrix_price.feature +2 -2
- data/features/tests/results/new_filters.feature +104 -0
- data/flights_gui_tests.gemspec +1 -1
- data/henry-context.yml +44 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b4708f3aca9fe2e7758885b634952ec57f2cfa9
|
4
|
+
data.tar.gz: 989169155f7f084ace8f94d41ec93eb4ee4bec4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b46f69c9c8670c96a390b71411082fd90a07a8550e60a6d47d6b04a88dd91ed91af77b68a8d7c5d07e731e34bb619da5e3a616ebfdb6a3768609cc3ebed8aaf0
|
7
|
+
data.tar.gz: e14638a73b15342546aea0792b0d3224b63b75d5e89a6731686ec4bc87d7f9152bcf600ff8c3236398798f47a8e40498a876701662e325f36629f56dc2bfeeea
|
@@ -19,7 +19,7 @@ Entonces(/^elijo un itinerario del popup de no disponibilidad$/) do
|
|
19
19
|
step "verifico que la pagina no rompa"
|
20
20
|
step "cargo los pasajeros"
|
21
21
|
step "cargo los datos de la tarjeta"
|
22
|
-
step "si el site es \"AR|MX|PE\", cargo los datos de facturacion"
|
22
|
+
step "si el site es \"AR|MX|PE|BR\", cargo los datos de facturacion"
|
23
23
|
step "cargo los datos de contacto"
|
24
24
|
step "acepto y compro"
|
25
25
|
step "espero que termine el pedido de compra"
|
@@ -37,6 +37,7 @@ Entonces(/^elijo un itinerario para reserva CAC del popup de no disponibilidad$/
|
|
37
37
|
step "verifico que la pagina no rompa"
|
38
38
|
step "cargo los pasajeros"
|
39
39
|
step "completo los datos para reservas CAC"
|
40
|
+
step "si el site es \"AR|MX|PE|BR\", cargo los datos de facturacion"
|
40
41
|
step "cargo los datos de contacto"
|
41
42
|
step "acepto y compro"
|
42
43
|
step "espero que termine el pedido de compra"
|
@@ -54,7 +55,43 @@ Entonces(/^elijo un itinerario para fast checkout del popup de no disponibilidad
|
|
54
55
|
step "verifico que la pagina no rompa"
|
55
56
|
step "cargo los pasajeros"
|
56
57
|
step "elijo una tarjeta ya guardada"
|
57
|
-
step "si el site es \"AR|MX|PE\", cargo los datos de facturacion"
|
58
|
+
step "si el site es \"AR|MX|PE|BR\", cargo los datos de facturacion"
|
59
|
+
step "cargo los datos de contacto"
|
60
|
+
step "acepto y compro"
|
61
|
+
step "espero que termine el pedido de compra"
|
62
|
+
step "verifico si no trae errores"
|
63
|
+
step "si aparece el popup de no disponibilidad, elijo un itinerario para fast checkout del popup de no disponibilidad"
|
64
|
+
end
|
65
|
+
|
66
|
+
Entonces(/^elijo un itinerario para pago online del popup de no disponibilidad$/) do
|
67
|
+
@popup_no_disponibilidad_page.sumar_aparicion
|
68
|
+
pending("La cantidad de compras supero las #{@popup_no_disponibilidad_page.apariciones} apariciones") if @popup_no_disponibilidad_page.apariciones > 4
|
69
|
+
@popup_no_disponibilidad_page.itinerario_element.when_visible(timeout=60)
|
70
|
+
@popup_no_disponibilidad_page.cargar_itinerarios
|
71
|
+
@itinerario_checkout = @popup_no_disponibilidad_page.elegir_itinerario(0)
|
72
|
+
step "verifico que ingrese al checkout"
|
73
|
+
step "verifico que la pagina no rompa"
|
74
|
+
step "cargo los pasajeros"
|
75
|
+
step "completo el formulario de pago online"
|
76
|
+
step "si el site es \"AR|MX|PE|BR\", cargo los datos de facturacion"
|
77
|
+
step "cargo los datos de contacto"
|
78
|
+
step "acepto y compro"
|
79
|
+
step "espero que termine el pedido de compra"
|
80
|
+
step "verifico si no trae errores"
|
81
|
+
step "si aparece el popup de no disponibilidad, elijo un itinerario para fast checkout del popup de no disponibilidad"
|
82
|
+
end
|
83
|
+
|
84
|
+
Entonces(/^elijo un itinerario para pago por deposito del popup de no disponibilidad$/) do
|
85
|
+
@popup_no_disponibilidad_page.sumar_aparicion
|
86
|
+
pending("La cantidad de compras supero las #{@popup_no_disponibilidad_page.apariciones} apariciones") if @popup_no_disponibilidad_page.apariciones > 4
|
87
|
+
@popup_no_disponibilidad_page.itinerario_element.when_visible(timeout=60)
|
88
|
+
@popup_no_disponibilidad_page.cargar_itinerarios
|
89
|
+
@itinerario_checkout = @popup_no_disponibilidad_page.elegir_itinerario(0)
|
90
|
+
step "verifico que ingrese al checkout"
|
91
|
+
step "verifico que la pagina no rompa"
|
92
|
+
step "cargo los pasajeros"
|
93
|
+
step "completo el formulario de deposito"
|
94
|
+
step "si el site es \"AR|MX|PE|BR\", cargo los datos de facturacion"
|
58
95
|
step "cargo los datos de contacto"
|
59
96
|
step "acepto y compro"
|
60
97
|
step "espero que termine el pedido de compra"
|
@@ -52,20 +52,20 @@ Y(/^verifico que los datos cargados sean mostrados correctamente al lado del bot
|
|
52
52
|
data = ["A","B","C","D","E","F","G","H","I","J","k"]
|
53
53
|
index = 0
|
54
54
|
@page.manage_data.adt.times do |adulto|
|
55
|
-
(doc/"div.ticket-left li.passenger span.names span.first-name")[index].inner_text.should equal("Diego QA#{data[index]}")
|
56
|
-
(doc/"div.ticket-left li.passenger span.names span.last-name")[index].inner_text.should equal("Romero#{data[index]}")
|
55
|
+
(doc/"div.ticket-left li.passenger span.names span.first-name span.value")[index].inner_text.should equal("Diego QA#{data[index]}")
|
56
|
+
(doc/"div.ticket-left li.passenger span.names span.last-name span.value")[index].inner_text.should equal("Romero#{data[index]}")
|
57
57
|
(doc/"div.ticket-left li.passenger span.document span.document-number")[index].inner_text.should equal("3245673#{index}") if (doc/"div.ticket-left li.passenger span.document span.document-number")[index]
|
58
58
|
index += 1
|
59
59
|
end
|
60
60
|
@page.manage_data.cnn.times do |nino|
|
61
|
-
(doc/"div.ticket-left li.passenger span.names span.first-name")[index].inner_text.should equal("Martin QA#{data[index]}")
|
62
|
-
(doc/"div.ticket-left li.passenger span.names span.last-name")[index].inner_text.should equal("Diez jr#{data[index]}")
|
61
|
+
(doc/"div.ticket-left li.passenger span.names span.first-name span.value")[index].inner_text.should equal("Martin QA#{data[index]}")
|
62
|
+
(doc/"div.ticket-left li.passenger span.names span.last-name span.value")[index].inner_text.should equal("Diez jr#{data[index]}")
|
63
63
|
(doc/"div.ticket-left li.passenger span.document span.document-number")[index].inner_text.should equal("4245663#{index}") if (doc/"div.ticket-left li.passenger span.document span.document-number")[index]
|
64
64
|
index += 1
|
65
65
|
end
|
66
66
|
@page.manage_data.inf.times do |bebe|
|
67
|
-
(doc/"div.ticket-left li.passenger span.names span.first-name")[index].inner_text.should equal("Maribel QA#{data[index]}")
|
68
|
-
(doc/"div.ticket-left li.passenger span.names span.last-name")[index].inner_text.should equal("Dias Herr jrb#{data[index]}")
|
67
|
+
(doc/"div.ticket-left li.passenger span.names span.first-name span.value")[index].inner_text.should equal("Maribel QA#{data[index]}")
|
68
|
+
(doc/"div.ticket-left li.passenger span.names span.last-name span.value")[index].inner_text.should equal("Dias Herr jrb#{data[index]}")
|
69
69
|
(doc/"div.ticket-left li.passenger span.document span.document-number")[index].inner_text.should equal("4249966#{index}") if (doc/"div.ticket-left li.passenger span.document span.document-number")[index]
|
70
70
|
index += 1
|
71
71
|
end
|
@@ -13,7 +13,7 @@ end
|
|
13
13
|
Cuando(/^elijo una aerolinea a aplicar$/) do
|
14
14
|
doc = Hpricot.parse(@page.html)
|
15
15
|
options = (doc/"div.ux-flights-filter-airlines")[0]
|
16
|
-
options = (options/"ul.items label").reject{|option| option.attributes["class"].match(/selected|disabled|enabled/)}
|
16
|
+
options = (options/"ul.items label").reject{|option| option.attributes["class"].match(/selected|disabled|enabled/) or option.attributes["for"]=="airport-outbound-unique"}
|
17
17
|
@airline = options[rand(options.length)]
|
18
18
|
@total = (@airline/"span.total").inner_text.strip.to_i
|
19
19
|
end
|
@@ -57,7 +57,7 @@ Cuando(/^elijo un aeropuerto (outbound|inbound) a aplicar$/) do |_class|
|
|
57
57
|
else
|
58
58
|
_clase = 'destiny'
|
59
59
|
end
|
60
|
-
options = (doc/"div.ux-flights-filter-#{_clase}airports
|
60
|
+
options = (doc/"div.ux-flights-filter-#{_clase}airports label").reject{|option| option.attributes["class"].match(/selected|disabled/) or option.attributes["for"].match("unique")}
|
61
61
|
@airport = options[rand(options.length)]
|
62
62
|
@total = (@airport/"span.total").inner_text.strip.to_i
|
63
63
|
end
|
@@ -92,7 +92,7 @@ Cuando(/^elijo una escala a aplicar$/) do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
Entonces(/^filtro por escala$/) do
|
95
|
-
|
95
|
+
@page.browser.checkbox(:id,(@stop/"input").first.attributes['id']).set
|
96
96
|
end
|
97
97
|
|
98
98
|
Entonces(/^verifico que los contadores respecto a las escalas sean correctos$/) do
|
@@ -189,16 +189,13 @@ end
|
|
189
189
|
|
190
190
|
Cuando(/^elijo una duracion (outbound|inbound) a aplicar$/) do |_class|
|
191
191
|
unless((_class=="inbound")and(@page.tipo_de_busqueda=="oneway"))
|
192
|
-
box=@page.browser.div(:class,"ux-common-filter-section ux-common-filter-slider ux-flights-filter-hours-slider ux-flights-filter-duration-slider ux-flights-filter-#{_class}duration-slider")
|
193
|
-
@from_time=box.
|
194
|
-
|
195
|
-
@to_time=box.li(:class,'ux-common-filter-hour-max').spans.first.text
|
196
|
-
puts @to_time
|
192
|
+
box=@page.browser.div(:class,"flights-filter ux-common-filter-section ux-common-filter-slider ux-flights-filter-hours-slider ux-flights-filter-duration-slider ux-flights-filter-#{_class}duration-slider")
|
193
|
+
@from_time=box.span(:class,'flights-slider-min').spans.first.text
|
194
|
+
@to_time=box.span(:class,'flights-slider-max').spans.first.text
|
197
195
|
diff="#{@to_time.split(':')[0].to_i-1}:#{@from_time.split(':')[1]}"
|
198
|
-
puts diff
|
199
196
|
while(@to_time!=diff and @to_time!=@from_time)
|
200
|
-
box.link(:class,'ui-slider-handle ui-state-default ui-corner-all ui-slider-handle-
|
201
|
-
@to_time=box.
|
197
|
+
box.link(:class,'ui-slider-handle ui-state-default ui-corner-all ui-slider-handle-min').send_keys :left
|
198
|
+
@to_time=box.span(:class,'flights-slider-max').spans.first.text
|
202
199
|
end
|
203
200
|
end
|
204
201
|
end
|
@@ -228,18 +225,18 @@ Entonces(/^verifico que la primer pagina muestre correctamente los filtros de du
|
|
228
225
|
(time[0].gsub(/\D/,'').to_i >= @from_time.split(':')[0].to_i).should be_true
|
229
226
|
(time[0].gsub(/\D/,'').to_i <= @to_time.split(':')[0].to_i).should be_true
|
230
227
|
if ((time[0].gsub(/\D/,'').to_i == @from_time.split(':')[0].to_i)and(time[1]))
|
231
|
-
|
228
|
+
time[1].gsub(/\D/,'').to_i.should es_mayor_igual_que(@from_time.split(':')[1].to_i)
|
232
229
|
end
|
233
230
|
if ((time[0].gsub(/\D/,'').to_i == @to_time.split(':')[0].to_i)and(time[1]))
|
234
|
-
|
231
|
+
time[1].gsub(/\D/,'').to_i.should es_menor_igual_que(@to_time.split(':')[1].to_i)
|
235
232
|
end
|
236
233
|
end
|
237
234
|
end
|
238
235
|
end
|
239
236
|
|
240
237
|
Entonces(/^limpio el filtro de duracion (outbound|inbound)$/) do |_class|
|
241
|
-
unless((_class=="inbound")and(@page.tipo_de_busqueda=="oneway"))
|
242
|
-
box=@page.browser.div(:class,"ux-common-filter-section ux-common-filter-slider ux-flights-filter-hours-slider ux-flights-filter-duration-slider ux-flights-filter-#{_class}duration-slider")
|
238
|
+
unless((_class.downcase=="inbound")and(@page.tipo_de_busqueda.downcase=="oneway"))
|
239
|
+
box=@page.browser.div(:class,"flights-filter ux-common-filter-section ux-common-filter-slider ux-flights-filter-hours-slider ux-flights-filter-duration-slider ux-flights-filter-#{_class}duration-slider")
|
243
240
|
box.link(:class,'ux-common-filter-reset').click
|
244
241
|
end
|
245
242
|
end
|
@@ -255,8 +252,6 @@ Cuando(/^Recupero los precios limites de la lista$/) do
|
|
255
252
|
doc = Hpricot.parse(@page.html)
|
256
253
|
@price_down=Price.new((doc/"div#clusters div.cluster #{@li_class} span[@class='price-currency #{Helpers.currency(AllPages.site.upcase)} '] span.currency").first.inner_text + " " + (doc/"div#clusters div.cluster #{@li_class} span[@class='price-currency #{Helpers.currency(AllPages.site.upcase)} '] span.amount").first.inner_text).value
|
257
254
|
@price_up=Price.new((doc/"div#clusters div.cluster #{@li_class} span[@class='price-currency #{Helpers.currency(AllPages.site.upcase)} '] span.currency")[-2].inner_text + " " + (doc/"div#clusters div.cluster #{@li_class} span[@class='price-currency #{Helpers.currency(AllPages.site.upcase)} '] span.amount")[-2].inner_text).value
|
258
|
-
puts @price_down
|
259
|
-
puts @price_up
|
260
255
|
end
|
261
256
|
|
262
257
|
Entonces(/^filtro por precio mayor$/) do
|
@@ -53,7 +53,7 @@ Entonces(/^verifico el nuevo loader$/) do
|
|
53
53
|
unless text.empty?
|
54
54
|
unless text.no_accents.downcase.match("searching flights to #{@page.manage_data.city_to_1.name(AllPages.site).downcase} by|buscando vuelos hacia #{@page.manage_data.city_to_1.name(AllPages.site).downcase} por|procurando voos a #{@page.manage_data.city_to_1.name(AllPages.site).downcase} por")
|
55
55
|
airlines=@page.manage_data.get_indec_airlines($ENV)
|
56
|
-
airlines.should is_empty
|
56
|
+
airlines.should is_empty?
|
57
57
|
end
|
58
58
|
else
|
59
59
|
puts "Fallo la validacion en el loader con el texto de aerolineas"
|
@@ -126,7 +126,7 @@ Cuando(/^verificar que filtre por una celda de la matriz$/) do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
Entonces(/^no se muestra la matriz de precios$/) do
|
129
|
-
(!@page.
|
129
|
+
(!@page.tab_matriz_precio_sin_popup_element.present? and !@page.tab_matriz_precio_element.present?).should be_true
|
130
130
|
end
|
131
131
|
|
132
132
|
Entonces(/^verifico que se muestre la matriz de precios$/) do
|
@@ -138,6 +138,10 @@ Entonces(/^verifico que se muestre la matriz de precios$/) do
|
|
138
138
|
@page.tab_matriz_precio_element.click
|
139
139
|
sleep(2)
|
140
140
|
end
|
141
|
+
if @page.tab_matriz_precio_sin_popup_element.present?
|
142
|
+
@page.tab_matriz_precio_sin_popup_element.click
|
143
|
+
sleep(2)
|
144
|
+
end
|
141
145
|
@page.matriz_precio_element.should visible
|
142
146
|
end
|
143
147
|
|
@@ -223,9 +227,9 @@ Entonces(/^realizo las busquedas para recargar la matriz$/) do
|
|
223
227
|
[0,1,2,3].each do |y|
|
224
228
|
@page.manage_data.set_new_date(@page.manage_data.date_from_1,@page.manage_data.date_to_1+1)
|
225
229
|
begin
|
226
|
-
HTTParty.get(@page.manage_data.generate_url_results_search.gsub(/results/,"data/search") + "/TOTALFARE/ASCENDING/NA/NA/NA/NA/NA?hashForData=#{Digest::MD5.hexdigest(@
|
230
|
+
HTTParty.get(@page.manage_data.generate_url_results_search.gsub(/results/,"data/search") + "/TOTALFARE/ASCENDING/NA/NA/NA/NA/NA?hashForData=#{Digest::MD5.hexdigest(@page.manage_data.generate_url_results_search+'despegar')}",:headers => {"referer" => @page.manage_data.generate_url_results_search})
|
227
231
|
rescue Errno::ECONNRESET,Timeout::Error
|
228
|
-
HTTParty.get(@page.manage_data.generate_url_results_search.gsub(/results/,"data/search") + "/TOTALFARE/ASCENDING/NA/NA/NA/NA/NA?hashForData=#{Digest::MD5.hexdigest(@
|
232
|
+
HTTParty.get(@page.manage_data.generate_url_results_search.gsub(/results/,"data/search") + "/TOTALFARE/ASCENDING/NA/NA/NA/NA/NA?hashForData=#{Digest::MD5.hexdigest(@page.manage_data.generate_url_results_search+'despegar')}",:headers => {"referer" => @page.manage_data.generate_url_results_search})
|
229
233
|
end
|
230
234
|
end
|
231
235
|
@page.manage_data.set_new_date(@page.manage_data.date_from_1+1,date)
|
@@ -0,0 +1,331 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
Cuando(/^elijo una aerolinea a aplicar - filtros nuevo -$/) do
|
3
|
+
if @page.filtro_aerolineas_visible_element.present?
|
4
|
+
@page.filtro_aerolineas_visible_element.click
|
5
|
+
else
|
6
|
+
@page.ver_filtro(@page.ver_filtro_aerolineas_visible_element)
|
7
|
+
end
|
8
|
+
@aerolinea = @page.opciones_aerolineas_elements[rand(@page.opciones_aerolineas_elements.size)]
|
9
|
+
end
|
10
|
+
|
11
|
+
Entonces(/^filtro por aerolinea - filtros nuevo -$/) do
|
12
|
+
@aerolinea.click
|
13
|
+
@page.aplicar_filtros_element.click
|
14
|
+
end
|
15
|
+
|
16
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de aerolineas - filtros nuevo -$/) do
|
17
|
+
group_airlines = [["UA","CM","AM","US","AA","DL"],["LA","4M","XL","4C","JJ","PZ"],["AV","TA","LR"]]
|
18
|
+
doc = Hpricot.parse(@page.html)
|
19
|
+
airlines = []
|
20
|
+
(doc/"div#clusters div.cluster ul.itineraries-group").each do |itineraries|
|
21
|
+
airlines += (itineraries/"li.logo img").collect{|img| img.attributes['src'].match(/\/(.{1,7})\.png/)[1]}
|
22
|
+
airlines += (itineraries/"li.airlines img").collect{|img| img.attributes['src'].match(/\/(.{1,7})\.png/)[1]}
|
23
|
+
airlines += (itineraries/"li.airlinesShort img").collect{|img| img.attributes['src'].match(/\/(.{1,7})\.png/)[1]}
|
24
|
+
group_airlines.each{|airlines_tmp| airlines.concat(airlines_tmp) if airlines_tmp.include?(@aerolinea.value)}
|
25
|
+
end
|
26
|
+
airlines.should include?(@aerolinea.value)
|
27
|
+
end
|
28
|
+
|
29
|
+
Cuando(/^limpio el filtro de aerolineas - filtros nuevo -$/) do
|
30
|
+
@page.remover_filtro_de_aerolinea(@aerolinea.value).click
|
31
|
+
@page.aplicar_filtros_element.click
|
32
|
+
end
|
33
|
+
|
34
|
+
Cuando(/^elijo un aeropuerto de origen a aplicar - filtros nuevo -$/) do
|
35
|
+
if @page.filtro_aeropuertos_visible_element.present?
|
36
|
+
@page.filtro_aeropuertos_visible_element.click
|
37
|
+
else
|
38
|
+
@page.ver_filtro(@page.ver_filtro_aeropuertos_visible_element)
|
39
|
+
end
|
40
|
+
@aeropuerto = @page.opciones_aeropuerto_origen_elements[rand(@page.opciones_aeropuerto_origen_elements.size)]
|
41
|
+
end
|
42
|
+
|
43
|
+
Cuando(/^elijo un aeropuerto de destino a aplicar - filtros nuevo -$/) do
|
44
|
+
if @page.filtro_aeropuertos_visible_element.present?
|
45
|
+
@page.filtro_aeropuertos_visible_element.click unless @page.filtros_aeropuerto_element.present?
|
46
|
+
else
|
47
|
+
@page.ver_filtro(@page.ver_filtro_aeropuertos_visible_element)
|
48
|
+
end
|
49
|
+
@aeropuerto = @page.opciones_aeropuerto_destino_elements[rand(@page.opciones_aeropuerto_destino_elements.size)]
|
50
|
+
end
|
51
|
+
|
52
|
+
Entonces(/^filtro por aeropuerto - filtros nuevo -$/) do
|
53
|
+
@aeropuerto.click
|
54
|
+
@page.aplicar_filtros_element.click
|
55
|
+
end
|
56
|
+
|
57
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de aeropuertos de origen - filtros nuevo -$/) do
|
58
|
+
doc = Hpricot.parse(@page.html)
|
59
|
+
@aeropuerto.value.strip.should equal((doc/"div#clusters div.cluster div.outbound span.airport a").first.inner_text.strip)
|
60
|
+
end
|
61
|
+
|
62
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de aeropuertos de destino - filtros nuevo -$/) do
|
63
|
+
doc = Hpricot.parse(@page.html)
|
64
|
+
@aeropuerto.value.strip.should equal((doc/"div#clusters div.cluster div.inbound span.airport a").first.inner_text.strip)
|
65
|
+
end
|
66
|
+
|
67
|
+
Cuando(/^limpio el filtro de aeropuertos de origen - filtros nuevo -$/) do
|
68
|
+
@page.remover_filtro_de_aeropuerto_origen(@aeropuerto.value).click
|
69
|
+
@page.aplicar_filtros_element.click
|
70
|
+
end
|
71
|
+
|
72
|
+
Cuando(/^limpio el filtro de aeropuertos de destino - filtros nuevo -$/) do
|
73
|
+
@page.remover_filtro_de_aeropuerto_destino(@aeropuerto.value).click
|
74
|
+
@page.aplicar_filtros_element.click
|
75
|
+
end
|
76
|
+
|
77
|
+
Cuando(/^elijo una escala a aplicar - filtros nuevo -$/) do
|
78
|
+
if @page.filtro_escalas_visible_element.present?
|
79
|
+
@page.filtro_escalas_visible_element.click
|
80
|
+
else
|
81
|
+
@page.ver_filtro(@page.ver_filtro_escalas_visible_element)
|
82
|
+
end
|
83
|
+
escalas_habilitadas = @page.opciones_escalas_elements.reject{|escala| escala.class_name.match(/ux-common-filter-disabled/)}
|
84
|
+
@escalas = escalas_habilitadas[rand(escalas_habilitadas.size)]
|
85
|
+
end
|
86
|
+
|
87
|
+
Entonces(/^filtro por escala - filtros nuevo -$/) do
|
88
|
+
@escalas.click
|
89
|
+
@page.aplicar_filtros_element.click
|
90
|
+
end
|
91
|
+
|
92
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de escalas - filtros nuevo -$/) do
|
93
|
+
doc = Hpricot.parse(@page.html)
|
94
|
+
(doc/"div#clusters div.cluster li.stops").each do |stop|
|
95
|
+
applied_stop = @page.cantidad_de_escalas(@escalas.value)
|
96
|
+
stop_displayed = stop.inner_text.gsub(/\D/,'').strip.to_i
|
97
|
+
if applied_stop == 2
|
98
|
+
(applied_stop<=>stop_displayed).should be_true
|
99
|
+
elsif applied_stop == 1
|
100
|
+
(applied_stop>=stop_displayed).should be_true
|
101
|
+
else
|
102
|
+
applied_stop.should equal(stop_displayed)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
Cuando(/^limpio el filtro de escalas - filtros nuevo -$/) do
|
108
|
+
@page.remover_filtro_de_escalas(@escalas.value).click
|
109
|
+
@page.aplicar_filtros_element.click
|
110
|
+
end
|
111
|
+
|
112
|
+
Cuando(/^elijo un horario a aplicar - filtros nuevo -$/) do
|
113
|
+
if @page.filtro_horarios_visible_element.present?
|
114
|
+
@page.filtro_horarios_visible_element.click unless @page.filtros_horarios_element.present?
|
115
|
+
else
|
116
|
+
@page.ver_filtro(@page.ver_filtro_horarios_visible_element)
|
117
|
+
end
|
118
|
+
doc = Hpricot.parse(@page.html)
|
119
|
+
options = (doc/"div#inline-filters-detail-time div.inline-filters-slider-panel")
|
120
|
+
options = (options[0]/"ul.hour-filter-range-links li")
|
121
|
+
@time = options[rand(options.length)]
|
122
|
+
end
|
123
|
+
|
124
|
+
Entonces(/^filtro por horario de ida - filtros nuevo -$/) do
|
125
|
+
@page.browser.div(:id,'inline-filters-detail-time').div(:class=>"inline-filters-slider-panel",:index=>0).link(:text,@time.inner_text).click
|
126
|
+
@page.aplicar_filtros_element.click
|
127
|
+
end
|
128
|
+
|
129
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de horario de ida - filtros nuevo -$/) do
|
130
|
+
doc = Hpricot.parse(@page.html)
|
131
|
+
if @page.remover_ultima_accion_element.present?
|
132
|
+
puts "Disculpe, no encontramos vuelos con el último criterio que ha seleccionado."
|
133
|
+
else
|
134
|
+
case (@time/"a").inner_text.strip
|
135
|
+
when "Mañana"
|
136
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
137
|
+
when "Manhã"
|
138
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
139
|
+
when "Morning"
|
140
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
141
|
+
when "Tarde"
|
142
|
+
maxx, min = Time.parse("19:00"), Time.parse("12:00")
|
143
|
+
when "Afternoon"
|
144
|
+
maxx, min = Time.parse("19:00"), Time.parse("12:00")
|
145
|
+
when "Noche"
|
146
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
147
|
+
when "Noite"
|
148
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
149
|
+
when "Night"
|
150
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
151
|
+
when "Madrugada"
|
152
|
+
maxx, min = Time.parse("05:00"),Time.parse("00:00")
|
153
|
+
when "Dawn"
|
154
|
+
maxx, min = Time.parse("05:00"),Time.parse("00:00")
|
155
|
+
end
|
156
|
+
(doc/"div#clusters div.cluster div.outbound ul.itineraries-group li.itinerary").each do |itineraries|
|
157
|
+
hour = Time.parse((itineraries/"li.leave span.hour").inner_text.strip)
|
158
|
+
(hour <= maxx and hour >= min).should be_true
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
Cuando(/^limpio el filtro de horario de ida - filtros nuevo -$/) do
|
164
|
+
@page.remover_filtro_de_horario_de_ida_element.click
|
165
|
+
@page.aplicar_filtros_element.click
|
166
|
+
end
|
167
|
+
|
168
|
+
Entonces(/^filtro por horario de vuelta - filtros nuevo -$/) do
|
169
|
+
@page.browser.div(:id,'inline-filters-detail-time').div(:class=>"inline-filters-slider-panel",:index=>1).link(:text,@time.inner_text).click
|
170
|
+
@page.aplicar_filtros_element.click
|
171
|
+
end
|
172
|
+
|
173
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de horario de vuelta - filtros nuevo -$/) do
|
174
|
+
doc = Hpricot.parse(@page.html)
|
175
|
+
if @page.remover_ultima_accion_element.present?
|
176
|
+
puts "Disculpe, no encontramos vuelos con el último criterio que ha seleccionado."
|
177
|
+
else
|
178
|
+
case (@time/"a").inner_text.strip
|
179
|
+
when "Mañana"
|
180
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
181
|
+
when "Manhã"
|
182
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
183
|
+
when "Morning"
|
184
|
+
maxx, min = Time.parse("12:00"), Time.parse("05:00")
|
185
|
+
when "Tarde"
|
186
|
+
maxx, min = Time.parse("19:00"), Time.parse("12:00")
|
187
|
+
when "Afternoon"
|
188
|
+
maxx, min = Time.parse("19:00"), Time.parse("12:00")
|
189
|
+
when "Noche"
|
190
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
191
|
+
when "Noite"
|
192
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
193
|
+
when "Night"
|
194
|
+
maxx, min = Time.parse("00:00")+(24*60*60),Time.parse("19:00")
|
195
|
+
when "Madrugada"
|
196
|
+
maxx, min = Time.parse("05:00"),Time.parse("00:00")
|
197
|
+
when "Dawn"
|
198
|
+
maxx, min = Time.parse("05:00"),Time.parse("00:00")
|
199
|
+
end
|
200
|
+
(doc/"div#clusters div.cluster div.inbound ul.itineraries-group li.itinerary").each do |itineraries|
|
201
|
+
hour = Time.parse((itineraries/"li.leave span.hour").inner_text.strip)
|
202
|
+
(hour <= maxx and hour >= min).should be_true
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
Cuando(/^limpio el filtro de horario de vuelta - filtros nuevo -$/) do
|
208
|
+
@page.remover_filtro_de_horario_de_vuelta_element.click
|
209
|
+
@page.aplicar_filtros_element.click
|
210
|
+
end
|
211
|
+
|
212
|
+
Cuando(/^recupero los precios limites de la lista - filtros nuevo -$/) do
|
213
|
+
if @page.filtro_precio_visible_element.present?
|
214
|
+
@page.filtro_precio_visible_element.click unless @page.filtros_precio_element.present?
|
215
|
+
else
|
216
|
+
@page.ver_filtro(@page.ver_filtro_precio_visible_element)
|
217
|
+
end
|
218
|
+
@price_down=Price.new(@page.valor_minimo(@page.filtros_precio_element).text).value
|
219
|
+
@price_up=Price.new(@page.valor_maximo(@page.filtros_precio_element).text).value
|
220
|
+
end
|
221
|
+
|
222
|
+
Entonces(/^filtro por precio mayor - filtros nuevo -$/) do
|
223
|
+
@page.execute_script("javascript:void($('#inline-filters-detail-price .price-max').val(''))")
|
224
|
+
@page.nuevo_filtro_precio_mayor_element.set(@price_up+3)
|
225
|
+
price=@page.nuevo_filtro_precio_mayor_element.value.to_i
|
226
|
+
while(price>@price_up)
|
227
|
+
@page.slider_nuevo_precio_mayor_element.send_keys :left
|
228
|
+
price=@page.nuevo_filtro_precio_mayor_element.value.to_i
|
229
|
+
end
|
230
|
+
@price_up=price
|
231
|
+
@page.aplicar_filtros_element.click
|
232
|
+
step "espero que termine de cargar la pagina de resultados"
|
233
|
+
end
|
234
|
+
|
235
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de precio - filtros nuevo -$/) do
|
236
|
+
doc = Hpricot.parse(@page.html)
|
237
|
+
@page.cargar_itinerarios
|
238
|
+
@page.datos_de_itinerarios.each do |itinerario|
|
239
|
+
if AllPages.site.match("MX|UY|PE|BR|CR|PA")
|
240
|
+
itinerario.tarifas['tarifa_adulto'].value.should es_mayor_igual_que(@price_down)
|
241
|
+
itinerario.tarifas['tarifa_adulto'].value.should es_menor_igual_que(@price_up)
|
242
|
+
else
|
243
|
+
itinerario.tarifas['total'].value.should es_mayor_igual_que(@price_down)
|
244
|
+
itinerario.tarifas['total'].value.should es_menor_igual_que(@price_up)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
Entonces(/^filtro por precio menor - filtros nuevo -$/) do
|
250
|
+
@page.execute_script("javascript:void($('#inline-filters-detail-price .price-min').val(''))")
|
251
|
+
@page.nuevo_filtro_precio_menor_element.set(@price_down-2)
|
252
|
+
price=@page.nuevo_filtro_precio_menor_element.value.to_i
|
253
|
+
while(price<@price_down)
|
254
|
+
@page.slider_nuevo_precio_menor_element.send_keys :right
|
255
|
+
price=@page.filtro_precio_menor_element.value.to_i
|
256
|
+
end
|
257
|
+
@price_down=price
|
258
|
+
@page.aplicar_filtros_element.click
|
259
|
+
step "espero que termine de cargar la pagina de resultados"
|
260
|
+
end
|
261
|
+
|
262
|
+
Cuando(/^limpio el filtro de precio - filtros nuevo -$/) do
|
263
|
+
@page.remover_filtro_de_precio_element.click
|
264
|
+
@page.aplicar_filtros_element.click
|
265
|
+
end
|
266
|
+
|
267
|
+
Cuando(/^elijo una duracion de salida a aplicar - filtros nuevo -$/) do
|
268
|
+
if @page.filtro_duracion_visible_element.present?
|
269
|
+
@page.filtro_duracion_visible_element.click unless @page.filtros_duracion_element.present?
|
270
|
+
else
|
271
|
+
@page.ver_filtro(@page.ver_filtro_duracion_visible_element)
|
272
|
+
end
|
273
|
+
@from_time=@page.devolver_duracion(@page.valor_minimo(@page.nuevo_filtro_duracion_salida_element).text)
|
274
|
+
@to_time =@page.devolver_duracion(@page.valor_maximo(@page.nuevo_filtro_duracion_salida_element).text)
|
275
|
+
end
|
276
|
+
|
277
|
+
Entonces(/^filtro por duracion de salida - filtros nuevo -$/) do
|
278
|
+
diff=Duracion.new(@to_time.horas-1,@from_time.minutos)
|
279
|
+
while(@to_time!=diff and @to_time!=@from_time)
|
280
|
+
@page.slider_nuevo_filtro_duracion_salida_element.send_keys :left
|
281
|
+
@to_time = @page.devolver_duracion(@page.valor_maximo(@page.nuevo_filtro_duracion_salida_element).text)
|
282
|
+
end
|
283
|
+
@page.aplicar_filtros_element.click
|
284
|
+
end
|
285
|
+
|
286
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de duracion de salida - filtros nuevo -$/) do
|
287
|
+
doc = Hpricot.parse(@page.html)
|
288
|
+
(doc/"div#clusters div.cluster div.outbound ul.itineraries-group li.itinerary").each do |itineraries|
|
289
|
+
time = @page.devolver_duracion((itineraries/"li.time span").inner_text)
|
290
|
+
time.should es_mayor_igual_que(@from_time)
|
291
|
+
time.should es_menor_igual_que(@to_time)
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
Entonces(/^limpio el filtro de duracion de salida - filtros nuevo -$/) do
|
296
|
+
@page.remover_filtro_de_duracion_de_ida_element.click
|
297
|
+
@page.aplicar_filtros_element.click
|
298
|
+
end
|
299
|
+
|
300
|
+
Cuando(/^elijo una duracion de llegada a aplicar - filtros nuevo -$/) do
|
301
|
+
if @page.filtro_duracion_visible_element.present?
|
302
|
+
@page.filtro_duracion_visible_element.click unless @page.filtros_duracion_element.present?
|
303
|
+
else
|
304
|
+
@page.ver_filtro(@page.ver_filtro_duracion_visible_element)
|
305
|
+
end
|
306
|
+
@from_time=@page.devolver_duracion(@page.valor_minimo(@page.nuevo_filtro_duracion_llegada_element).text)
|
307
|
+
@to_time =@page.devolver_duracion(@page.valor_maximo(@page.nuevo_filtro_duracion_llegada_element).text)
|
308
|
+
end
|
309
|
+
|
310
|
+
Entonces(/^filtro por duracion de llegada - filtros nuevo -$/) do
|
311
|
+
diff=Duracion.new(@to_time.horas-1,@from_time.minutos)
|
312
|
+
while(@to_time!=diff and @to_time!=@from_time)
|
313
|
+
@page.slider_nuevo_filtro_duracion_llegada_element.send_keys :left
|
314
|
+
@to_time=@page.devolver_duracion(@page.valor_maximo(@page.nuevo_filtro_duracion_llegada_element).text)
|
315
|
+
end
|
316
|
+
@page.aplicar_filtros_element.click
|
317
|
+
end
|
318
|
+
|
319
|
+
Entonces(/^verifico que la primer pagina muestre correctamente los filtros de duracion de llegada - filtros nuevo -$/) do
|
320
|
+
doc = Hpricot.parse(@page.html)
|
321
|
+
(doc/"div#clusters div.cluster div.inbound ul.itineraries-group li.itinerary").each do |itineraries|
|
322
|
+
time = @page.devolver_duracion((itineraries/"li.time span").inner_text)
|
323
|
+
time.should es_mayor_igual_que(@from_time)
|
324
|
+
time.should es_menor_igual_que(@to_time)
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
Entonces(/^limpio el filtro de duracion de llegada - filtros nuevo -$/) do
|
329
|
+
@page.remover_filtro_de_duracion_de_vuelta_element.click
|
330
|
+
@page.aplicar_filtros_element.click
|
331
|
+
end
|