flights_gui_henry_tests 2.0.7 → 2.0.8
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 +8 -8
- data/features/data/sites.yml +1 -0
- data/features/step_definitions/checkout/checkout_steps.rb +5 -7
- data/features/step_definitions/checkout/error_messages.rb +0 -1
- data/features/step_definitions/landing/landing_home_steps.rb +1 -1
- data/features/step_definitions/landing/landing_steps.rb +1 -1
- data/features/step_definitions/orders/orders.rb +8 -0
- data/features/step_definitions/results/results_steps.rb +5 -0
- data/features/step_definitions/search/flight_gui_steps.rb +8 -7
- data/features/support/lib/clusters/details/details_cluster.rb +7 -1
- data/features/support/lib/clusters/results_cluster.rb +27 -4
- data/features/support/lib/helpers/checkout.rb +0 -2
- data/features/support/lib/helpers/clusters.rb +12 -2
- data/features/tests/checkout/aij.feature +3 -3
- data/features/tests/search/orders.feature +12 -0
- data/features/tests/search/searches.feature +0 -15
- data/flights_gui_henry_tests.gemspec +1 -1
- data/henry-context.yml +0 -63
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2JjZWNlNDRkYWY1NjcxNmNjM2Q2MTlkODBmODkxYjU3YWQwZmE4OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTg4OGM1NThiZjIyOTA4MTE5YmU4MjU5NzJiZjdhMDc5MTU1NTcwNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTNmOTJkNTk3YjE4NjVhZTI3Yzg4NzZjMWY3Njk5YWMxOTNkZjRmMTY5MmFm
|
10
|
+
Y2ZiMjJiOGRhMGE5OTc1N2ZkMGYxZTNkMzYxYmRiMWVhNTJmZTg2MzhlYjdi
|
11
|
+
MDcwYWY2YjEzMTNkOWRlZTEzMjk2N2Y3NzIwYmZjZGFkMTBjNWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTE5MGY5Y2VhY2M1ODU1YTY2YjU0NDEyNDVmYTlkZjFiMDdjZGEwMzY1YmFj
|
14
|
+
YjhiYTFjN2RiNTVkZmY4N2VhZjg4NDg5NzBjMDg2OTc1ZDRhYWEwOGQ1NDVh
|
15
|
+
MDYxY2Y0ZTlkYjA0OWNlZWM0MmRhMWMzOTE3ZWU2MjA4ZjkxZTg=
|
data/features/data/sites.yml
CHANGED
@@ -12,6 +12,7 @@ MX:
|
|
12
12
|
- {code: "MEX", airports: ["MEX", "TLC"], name: "Ciudad de Mexico|Cidade do Mexico"}
|
13
13
|
- {code: "GDL", airports: ["GDL"], name: "Guadalajara"}
|
14
14
|
- {code: "CUN", airports: ["CUN"], name: "Cancun"}
|
15
|
+
- {code: "MTY", airports: ["MTY"], name: "Monterrey"}
|
15
16
|
PE:
|
16
17
|
- {code: "LIM", airports: ["LIM"], name: "Lima"}
|
17
18
|
VE:
|
@@ -8,11 +8,12 @@ When /^verifico que los precios de las cuotas se muestran correctamente$/ do
|
|
8
8
|
radios.each do |radio|
|
9
9
|
if radio.present?
|
10
10
|
radio.click
|
11
|
+
sleep(0.5)
|
11
12
|
doc=Hpricot.parse(BROWSER.span(:id,'total-price').html)
|
12
13
|
total_2 = doc.inner_text.gsub(/\D/,'').to_i
|
13
14
|
unless radio.attribute_value("data-regular-expressions").nil?
|
14
15
|
keys = JSON.parse(radio.attribute_value("data-regular-expressions")).keys
|
15
|
-
if interes or
|
16
|
+
if interes or radio.attribute_value("class").match(/radio-with-interest/)
|
16
17
|
validar_cuota_con_intereses(total_1,total_2)
|
17
18
|
else
|
18
19
|
case keys.first
|
@@ -20,9 +21,9 @@ When /^verifico que los precios de las cuotas se muestran correctamente$/ do
|
|
20
21
|
when /(.*)CREDIT(.*)null$/ then validar_cuota_con_intereses(total_1,total_2)
|
21
22
|
when /(.*)CREDIT(.*)$/ then validar_cuota_sin_intereses(total_1,total_2)
|
22
23
|
end
|
23
|
-
|
24
|
-
doc=Hpricot.parse(BROWSER.div(:id,'card-group').html)
|
25
|
-
(doc/'select#card-brand option').collect{|option| option.attributes['value']}.sort.should equal(keys.sort)
|
24
|
+
keys.uniq.length.should equal(keys.length)
|
25
|
+
# doc=Hpricot.parse(BROWSER.div(:id,'card-group').html)
|
26
|
+
# (doc/'select#card-brand option').collect{|option| option.attributes['value']}.sort.should equal(keys.sort)
|
26
27
|
end
|
27
28
|
else
|
28
29
|
interes = true
|
@@ -135,9 +136,7 @@ Then /^se elijio otro vuelo$/ do
|
|
135
136
|
end
|
136
137
|
|
137
138
|
Then /^Valido los valores del desglose del checkout$/ do
|
138
|
-
puts @itinerario.tarifas
|
139
139
|
@itinerario_checkout = CheckoutCluster.new(@search.description,Hpricot.parse(BROWSER.div(:id,'detail').html))
|
140
|
-
puts @itinerario_checkout.tarifas
|
141
140
|
@itinerario_checkout.validarSumaDesgloce.should be_within(4).of(@itinerario_checkout.tarifas['total'].value)
|
142
141
|
unless @itinerario_checkout.tarifas['adt'].valor.zero?
|
143
142
|
@itinerario_checkout.tarifas['adt'].valor.should equal(@itinerario_checkout.tarifas['tarifa_adulto'].valor * @search.adt)
|
@@ -188,7 +187,6 @@ end
|
|
188
187
|
|
189
188
|
When /^Verifico que se muestre el banner de cancelacion$/ do
|
190
189
|
value = get_abtesting "showFreeCancelMessage"
|
191
|
-
puts value
|
192
190
|
if $SITE=="EC" and value < 50
|
193
191
|
BROWSER.div(:id,'cancellation-advice').should visible("banner de cancelacion")
|
194
192
|
BROWSER.div(:id,'cancellation-advice').div(:class,'ux-common-message-content').p(:index,0).text.strip.should equal("¡Compre tranquilo!")
|
@@ -259,6 +259,5 @@ And /^Verifico las nacionalidades de los pasajeros$/ do
|
|
259
259
|
container.select_list(:id,'nationality-0').select_value("BR")
|
260
260
|
container.span(:id,'nationality-0-invalid_custom_nationality').should visible("error en la nacionalidad")
|
261
261
|
container.span(:id,'nationality-0-invalid_custom_nationality').text.no_accents.should match("En cumplimiento de la resolucion 5499, solo podran comprar en este sitio residentes de la Republica Argentina.|Pasajes aereos internacionales solo para la venta de residentes de la Republica Bolivariana de Venezuela conformes al Art 2 de la providencia 124 de Cadivi.")
|
262
|
-
BROWSER.div(:id,'agreement.value').label(:class,'label').text.no_accents.should match("y declaro que todos los pasajeros son residentes de la Republica Argentina|y declaro ser residente de la Republica Bolivariana de Venezuela")
|
263
262
|
end
|
264
263
|
end
|
@@ -55,7 +55,7 @@ end
|
|
55
55
|
When /^que se muestre la descripcion de vuelos mas baratos$/ do
|
56
56
|
BROWSER.div(:class,'cheapest-flights').should visible
|
57
57
|
BROWSER.div(:class,'cheapest-flights').h3(:class,'main-title').text.no_accents.downcase.should match("vuelos mas baratos en despegar.com|cheapest flights in despegar.com|vuelos economicos en despegar.com|garanta suas passagens aereas no decolar.com")
|
58
|
-
BROWSER.div(:class,'cheapest-flights').text.no_accents.should match("Welcome to Despegar.com|
|
58
|
+
BROWSER.div(:class,'cheapest-flights').text.no_accents.should match("Welcome to Despegar.com|Encontre no Decolar.com Passagens aereas pelo melhor preco|Bienvenidos a Despegar.com")
|
59
59
|
end
|
60
60
|
|
61
61
|
When /^que se muestren las opiniones de pasajeros$/ do
|
@@ -250,7 +250,7 @@ When /^Elijo un ticket e ingreso a la pagina de resultados$/ do
|
|
250
250
|
|
251
251
|
BROWSER.div(:class,'sub-cluster outbound').radio(:id,"0-outbound-0").set
|
252
252
|
BROWSER.div(:class,'sub-cluster inbound').radio(:id,"0-inbound-0").set if @clusters.first.vuelta
|
253
|
-
BROWSER.div(:id,'clusters').div(:class
|
253
|
+
BROWSER.div(:id,'clusters').div(:class,"cluster").link(:class,"buy btn-buy flights-button").click
|
254
254
|
BROWSER.div(:id,'searchPopup').select_list(:class,'adultsSelect flights-select').select(3)
|
255
255
|
BROWSER.div(:id,'searchPopup').select_list(:class,'childsSelect flights-select').select(2)
|
256
256
|
["3","4"].each_with_index do | age, j |
|
@@ -64,4 +64,12 @@ Then /^Verifico ordenamiento TOTALFARE_DESCENDING$/ do
|
|
64
64
|
after.value.should is_greater_equal_than(cluster.tarifas['total'].value)
|
65
65
|
after = cluster.tarifas['total']
|
66
66
|
end
|
67
|
+
end
|
68
|
+
|
69
|
+
Then /^Verifico ordenamiento DURATION_ASCENDING$/ do
|
70
|
+
after = @clusters.first.duracion
|
71
|
+
@clusters.each do |cluster|
|
72
|
+
after.should_not is_greater_than(cluster.duracion)
|
73
|
+
after = cluster.duracion
|
74
|
+
end
|
67
75
|
end
|
@@ -10,11 +10,16 @@ And /^Verifico si se muestran los beneficios en resultados$/ do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
And /^Verifico si se muestran los beneficios en checkout$/ do
|
13
|
+
value = get_abtesting "showBenefits"
|
13
14
|
if @benefits
|
14
15
|
BROWSER.div(:class,'benefit-alert').should visible("beneficios en checkout")
|
15
16
|
BROWSER.div(:class,'benefit-alert').span(:class,'smile icon-smile main-sprite').should visible("icono smile en checkout")
|
16
17
|
BROWSER.div(:class,'benefit-alert').p(:class,'text').should visible("texto de beneficio en checkout")
|
17
18
|
BROWSER.div(:class,'benefit-alert').p(:class,'text').text.should equal(@text_benefits)
|
19
|
+
elsif $SITE=="AR" and value < 50
|
20
|
+
BROWSER.div(:id,'benefit-advice-list').should visible("lista de beneficios en checkout")
|
21
|
+
BROWSER.div(:id,'benefit-advice-list').span(:class,'ux-common-icon-smile').should visible("icono smile en checkout")
|
22
|
+
(BROWSER.div(:id,'benefit-advice-list').lis(:class,'item').length > 0).should be_true
|
18
23
|
else
|
19
24
|
BROWSER.div(:class,'benefit-alert').should_not visible("beneficios en checkout")
|
20
25
|
end
|
@@ -2,13 +2,14 @@
|
|
2
2
|
Then /^Verifico cada cluster "(.*)"$/ do |type|
|
3
3
|
json = @search.get_results_search_service
|
4
4
|
i=0
|
5
|
-
BROWSER.div(:id,'clusters').divs(:class,
|
5
|
+
BROWSER.div(:id,'clusters').divs(:class,"cluster").each do |cluster|
|
6
6
|
itinerary = ResultsCluster.new(type,Hpricot.parse(cluster.html))
|
7
7
|
validate_cluster_miles(json,type,cluster,i)
|
8
8
|
validate_cluster_details(json,type,cluster,i,itinerary)
|
9
9
|
validate_itins_cluster_details(json,type,cluster,i)
|
10
10
|
validate_fare_detail(json,cluster,i)
|
11
11
|
validate_cluster_payments(cluster)
|
12
|
+
validate_cluster_bussines(cluster)
|
12
13
|
i += 1
|
13
14
|
break if i == 2
|
14
15
|
end
|
@@ -16,7 +17,8 @@ end
|
|
16
17
|
|
17
18
|
Then /^Verifico los cluster nuevos con encabezados$/ do
|
18
19
|
i=0
|
19
|
-
|
20
|
+
class_ = $SITE.match("AR|BR") ? "new" : "old"
|
21
|
+
BROWSER.div(:id,'clusters').divs(:class,"cluster flights-cluster #{class_}Cluster").each do |cluster|
|
20
22
|
validate_cluster_with_headers(@search.type,cluster,i) if cluster.li(:class,'itineraries-title').present?
|
21
23
|
end
|
22
24
|
end
|
@@ -35,7 +37,6 @@ When /^Elijo un itinerario y paso a checkout$/ do
|
|
35
37
|
end
|
36
38
|
|
37
39
|
When /^Elijo un itinerario con proveedor "(.*)" y paso a checkout$/ do |prov|
|
38
|
-
type = $SITE=="US" ? "new" : "old"
|
39
40
|
json = @search.get_results_search_service
|
40
41
|
i = 0
|
41
42
|
page = 1
|
@@ -46,7 +47,7 @@ When /^Elijo un itinerario con proveedor "(.*)" y paso a checkout$/ do |prov|
|
|
46
47
|
BROWSER.div(:class,'pagination').li(:class,'pagination-button next').click
|
47
48
|
step "Espero que termine de cargar"
|
48
49
|
end
|
49
|
-
BROWSER.div(:id,'clusters').divs(:class,"cluster
|
50
|
+
BROWSER.div(:id,'clusters').divs(:class,"cluster").each do |cluster|
|
50
51
|
if json['result']['data']['items'][i]['provider']==prov
|
51
52
|
@item_json = json['result']['data']['items'][i]
|
52
53
|
encontro = true
|
@@ -94,7 +95,7 @@ Then /^Completo el formulario de pasajeros$/ do
|
|
94
95
|
container.text_field(:id,"passenger-first-name-#{index}").set("Martin QA" + plus_name[index]) if container.text_field(:id,"passenger-first-name-#{index}").present?
|
95
96
|
container.text_field(:id,"passenger-last-name-#{index}").set("Diez" + plus_name[index]) if container.text_field(:id,"passenger-last-name-#{index}").present?
|
96
97
|
container.select_list(:id,"nationality-#{index}").select_value($SITE) if container.select_list(:id,"nationality-#{index}").present?
|
97
|
-
container.select_list(:id,"document-type-#{index}").select_value("PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
98
|
+
container.select_list(:id,"document-type-#{index}").select_value($SITE.match("AR") ? "LOCAL" : "PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
98
99
|
container.text_field(:id,"document-number-#{index}").set("3245673#{index}") if container.text_field(:id,"document-number-#{index}").present?
|
99
100
|
container.select_list(:id,"passenger-birthday-day-#{index}").select(index+1) if container.select_list(:id,"passenger-birthday-day-#{index}").present?
|
100
101
|
container.select_list(:id,"passenger-birthday-month-#{index}").select(3) if container.select_list(:id,"passenger-birthday-month-#{index}").present?
|
@@ -106,7 +107,7 @@ Then /^Completo el formulario de pasajeros$/ do
|
|
106
107
|
container.text_field(:id,"passenger-first-name-#{index}").set("Diego qa" + plus_name[index]) if container.text_field(:id,"passenger-first-name-#{index}").present?
|
107
108
|
container.text_field(:id,"passenger-last-name-#{index}").set("Romero jr" + plus_name[index]) if container.text_field(:id,"passenger-last-name-#{index}").present?
|
108
109
|
container.select_list(:id,"nationality-#{index}").select_value($SITE) if container.select_list(:id,"nationality-#{index}").present?
|
109
|
-
container.select_list(:id,"document-type-#{index}").select_value("PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
110
|
+
container.select_list(:id,"document-type-#{index}").select_value($SITE.match("AR") ? "LOCAL" : "PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
110
111
|
container.text_field(:id,"document-number-#{index}").set("3012343#{index}") if container.text_field(:id,"document-number-#{index}").present?
|
111
112
|
container.select_list(:id,"passenger-birthday-day-#{index}").select(index+2) if container.select_list(:id,"passenger-birthday-day-#{index}").present?
|
112
113
|
container.select_list(:id,"passenger-birthday-month-#{index}").select(5) if container.select_list(:id,"passenger-birthday-month-#{index}").present?
|
@@ -118,7 +119,7 @@ Then /^Completo el formulario de pasajeros$/ do
|
|
118
119
|
container.text_field(:id,"passenger-first-name-#{index}").set("Maribel qa" + plus_name[index]) if container.text_field(:id,"passenger-first-name-#{index}").present?
|
119
120
|
container.text_field(:id,"passenger-last-name-#{index}").set("Dias Herr jrb" + plus_name[index]) if container.text_field(:id,"passenger-last-name-#{index}").present?
|
120
121
|
container.select_list(:id,"nationality-#{index}").select_value($SITE) if container.select_list(:id,"nationality-#{index}").present?
|
121
|
-
container.select_list(:id,"document-type-#{index}").select_value("PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
122
|
+
container.select_list(:id,"document-type-#{index}").select_value($SITE.match("AR") ? "LOCAL" : "PASSPORT") if container.select_list(:id,"document-type-#{index}").present?
|
122
123
|
container.text_field(:id,"document-number-#{index}").set("4569734#{index}") if container.text_field(:id,"document-number-#{index}").present?
|
123
124
|
container.select_list(:id,"passenger-birthday-day-#{index}").select(index+3) if container.select_list(:id,"passenger-birthday-day-#{index}").present?
|
124
125
|
container.select_list(:id,"passenger-birthday-month-#{index}").select(7) if container.select_list(:id,"passenger-birthday-month-#{index}").present?
|
@@ -6,7 +6,13 @@ class DetailsCluster
|
|
6
6
|
@tramos = []
|
7
7
|
(p_html/"div.popup-container div.popup-content div.detail").each do |div|
|
8
8
|
tramo = Hash.new
|
9
|
-
|
9
|
+
if (div/"div.segment span.not-economy-segments").first.nil?
|
10
|
+
tramo['bussines'] = nil
|
11
|
+
tramo['clase'] = (div/"div.segment span.class").first.inner_text.strip.no_accents
|
12
|
+
else
|
13
|
+
tramo['bussines'] = ((div/"div.segment span.not-economy-segments span.not-economy-segments-description").first.inner_text.strip.no_accents == "Business")
|
14
|
+
tramo['clase'] = (div/"div.segment span.not-economy-segments span.not-economy-segments-description").first.inner_text.strip.no_accents
|
15
|
+
end
|
10
16
|
tramo['ciudad_origen'] = (div/"li.departure span.location span.data").first.inner_text.strip.no_accents
|
11
17
|
tramo['fecha_origen'] = Date.parse_new_details((div/"li.departure span.date span.day").first.inner_text.strip.no_accents)
|
12
18
|
tramo['hora_origen'] = Time.parse((div/"li.departure span.date span.hour").first.inner_text.strip.no_accents)
|
@@ -40,8 +40,8 @@ class ResultsCluster
|
|
40
40
|
aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
|
41
41
|
i = i + 1
|
42
42
|
end
|
43
|
-
hou_sal_ida = Time.parse((div_datos_ida/"li.leave
|
44
|
-
hou_lle_ida = Time.parse((div_datos_ida/"li.arrive
|
43
|
+
hou_sal_ida = Time.parse((div_datos_ida/"li.leave span.hour").inner_text.strip)
|
44
|
+
hou_lle_ida = Time.parse((div_datos_ida/"li.arrive span.hour").inner_text.strip)
|
45
45
|
@idas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
|
46
46
|
end
|
47
47
|
@nro_vuelo_ida = 0
|
@@ -69,8 +69,8 @@ class ResultsCluster
|
|
69
69
|
aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
|
70
70
|
i = i + 1
|
71
71
|
end
|
72
|
-
hou_sal_ida = Time.parse((div_datos_vuelta/"li.leave
|
73
|
-
hou_lle_ida = Time.parse((div_datos_vuelta/"li.arrive
|
72
|
+
hou_sal_ida = Time.parse((div_datos_vuelta/"li.leave span.hour").inner_text.strip)
|
73
|
+
hou_lle_ida = Time.parse((div_datos_vuelta/"li.arrive span.hour").inner_text.strip)
|
74
74
|
@vueltas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida,duracion)
|
75
75
|
end
|
76
76
|
@nro_vuelo_vuelta = 0
|
@@ -142,4 +142,27 @@ class ResultsCluster
|
|
142
142
|
(vueltas + @idas.collect{|vuelta| vuelta.escalas}).sort
|
143
143
|
end
|
144
144
|
|
145
|
+
def duracion
|
146
|
+
menor_ida = menor_duracion(@idas.collect{|ida| ida.duracion})
|
147
|
+
menor_vuelta = @vueltas ? menor_duracion(@vueltas.collect{|ida| ida.duracion}) : 0
|
148
|
+
|
149
|
+
return menor_vuelta + menor_ida
|
150
|
+
end
|
151
|
+
|
152
|
+
def menor_duracion(rutas)
|
153
|
+
totales = []
|
154
|
+
rutas.each do |custom|
|
155
|
+
if custom.match("^(.*)h (.*)m$")
|
156
|
+
total = custom.match("^(.*)h (.*)m$")[1].to_i * 60
|
157
|
+
total += custom.match("^(.*)h (.*)m$")[2].to_i
|
158
|
+
elsif custom.match("^(.*)h$")
|
159
|
+
total = custom.match("^(.*)h$")[1].to_i * 60
|
160
|
+
else
|
161
|
+
total = custom.match("^(.*)m$")[1].to_i
|
162
|
+
end
|
163
|
+
totales << total
|
164
|
+
end
|
165
|
+
return totales.sort.first
|
166
|
+
end
|
167
|
+
|
145
168
|
end
|
@@ -102,10 +102,20 @@ end
|
|
102
102
|
|
103
103
|
def validar_clase(cluster,route)
|
104
104
|
if cluster.tramos.select{|tramo| tramo['bussines'] }.empty?
|
105
|
-
route.span(:class,'ux-common-icon-rate-star').
|
105
|
+
route.span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
106
|
+
else
|
107
|
+
route.span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
106
108
|
end
|
107
109
|
end
|
108
110
|
|
111
|
+
def validate_cluster_bussines(cluster)
|
112
|
+
if cluster.div(:class,'not-economy-cluster-alert').present?
|
113
|
+
cluster.span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
114
|
+
else
|
115
|
+
cluster.span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
109
119
|
def recorrer_segmentos(route,cluster)
|
110
120
|
route.li(:class,'stops').a(:class,'text').click
|
111
121
|
Watir::Wait.until{BROWSER.div(:class,"flights-popup popup-detail").present?}
|
@@ -126,7 +136,7 @@ def reglas_de_vuelo()
|
|
126
136
|
popup.div(:class,'detail').div(:class,'detail-footer').div(:class,'rules').should_not visible
|
127
137
|
popup.div(:class,'top-box').a(:class,'show-rules').click
|
128
138
|
popup.div(:class,'detail').div(:class,'detail-footer').div(:class,'rules').should visible
|
129
|
-
popup.div(:class,'detail').div(:class,'detail-footer').div(:class,'rules').div(:class,'text').text.strip.no_accents.should match(/El boleto que usted esta comprando est.{1,2} sujeto a reglas y restricciones impuestas por la aerol.{1,2}nea transportadora|No incluye impuestos, no reembolsable, aplica penalidad|Estos tickets No permiten cambios NI devoluciones parciales|O bilhete que voc.{1,2} est.{1,2} para adquirir est.{1,2} sujeito a regras e restri.{1,2}.{1,2}es impostas pela companhia a.{1,2}rea transportadora/)
|
139
|
+
popup.div(:class,'detail').div(:class,'detail-footer').div(:class,'rules').div(:class,'text').text.strip.no_accents.should match(/The ticket you are booking is subject to the airline rules and restrictions|El boleto que usted esta comprando est.{1,2} sujeto a reglas y restricciones impuestas por la aerol.{1,2}nea transportadora|No incluye impuestos, no reembolsable, aplica penalidad|Estos tickets No permiten cambios NI devoluciones parciales|O bilhete que voc.{1,2} est.{1,2} para adquirir est.{1,2} sujeito a regras e restri.{1,2}.{1,2}es impostas pela companhia a.{1,2}rea transportadora/)
|
130
140
|
end
|
131
141
|
|
132
142
|
def validate_cluster_with_headers(type,cluster,i)
|
@@ -37,13 +37,13 @@ Característica: checkout.aij
|
|
37
37
|
Ejemplos:
|
38
38
|
|pais|tipo|cabotage|prov|from|to|date_from|date_to|
|
39
39
|
|US|roundtrip|true|AIJ|MEX|GDL|2014-02-28|2014-03-17|
|
40
|
-
|US|oneway|true|AIJ|MEX|
|
41
|
-
|US|roundtrip|true|AIJ|MEX|
|
40
|
+
|US|oneway|true|AIJ|MEX|MTY|2014-03-28|2014-04-17|
|
41
|
+
|US|roundtrip|true|AIJ|MEX|MTY|2014-03-01|2014-03-15|
|
42
42
|
|US|oneway|true|AIJ|MEX|CUN|2014-02-19|2014-02-27|
|
43
43
|
@mx
|
44
44
|
Ejemplos:
|
45
45
|
|pais|tipo|cabotage|prov|from|to|date_from|date_to|
|
46
|
-
|MX|roundtrip|true|AIJ|MEX|
|
46
|
+
|MX|roundtrip|true|AIJ|MEX|MTY|2014-02-28|2014-03-17|
|
47
47
|
|MX|oneway|true|AIJ|MEX|GDL|2014-03-28|2014-04-17|
|
48
48
|
|MX|roundtrip|true|AIJ|MEX|CUN|2014-03-01|2014-03-15|
|
49
49
|
|MX|oneway|true|AIJ|MEX|CUN|2014-02-19|2014-02-27|
|
@@ -19,58 +19,70 @@ Característica: search.orders
|
|
19
19
|
|pais|tipo|order|
|
20
20
|
|AR |roundtrip|STOPSCOUNT_ASCENDING|
|
21
21
|
|AR |oneway|TOTALFARE_ASCENDING|
|
22
|
+
|AR |roundtrip|DURATION_ASCENDING|
|
22
23
|
@br
|
23
24
|
Ejemplos:
|
24
25
|
|pais|tipo|order|
|
25
26
|
|BR |roundtrip|STOPSCOUNT_ASCENDING|
|
26
27
|
|BR |oneway|TOTALFARE_ASCENDING|
|
28
|
+
|BR |oneway|DURATION_ASCENDING|
|
27
29
|
@cl
|
28
30
|
Ejemplos:
|
29
31
|
|pais|tipo|order|
|
30
32
|
|CL |roundtrip|STOPSCOUNT_ASCENDING|
|
31
33
|
|CL |oneway|TOTALFARE_ASCENDING|
|
34
|
+
|CL |roundtrip|DURATION_ASCENDING|
|
32
35
|
@co
|
33
36
|
Ejemplos:
|
34
37
|
|pais|tipo|order|
|
35
38
|
|CO |roundtrip|STOPSCOUNT_ASCENDING|
|
36
39
|
|CO |oneway|TOTALFARE_ASCENDING|
|
40
|
+
|CO |oneway|DURATION_ASCENDING|
|
37
41
|
@cr
|
38
42
|
Ejemplos:
|
39
43
|
|pais|tipo|order|
|
40
44
|
|CR |roundtrip|STOPSCOUNT_ASCENDING|
|
41
45
|
|CR |oneway|TOTALFARE_ASCENDING|
|
46
|
+
|CR |roundtrip|DURATION_ASCENDING|
|
42
47
|
@pa
|
43
48
|
Ejemplos:
|
44
49
|
|pais|tipo|order|
|
45
50
|
|PA |roundtrip|STOPSCOUNT_ASCENDING|
|
46
51
|
|PA |oneway|TOTALFARE_ASCENDING|
|
52
|
+
|PA |oneway|DURATION_ASCENDING|
|
47
53
|
@ec
|
48
54
|
Ejemplos:
|
49
55
|
|pais|tipo|order|
|
50
56
|
|EC |roundtrip|STOPSCOUNT_ASCENDING|
|
51
57
|
|EC |oneway|TOTALFARE_ASCENDING|
|
58
|
+
|EC |roundtrip|DURATION_ASCENDING|
|
52
59
|
@mx
|
53
60
|
Ejemplos:
|
54
61
|
|pais|tipo|order|
|
55
62
|
|MX |roundtrip|STOPSCOUNT_ASCENDING|
|
56
63
|
|MX |oneway|TOTALFARE_ASCENDING|
|
64
|
+
|MX |oneway|DURATION_ASCENDING|
|
57
65
|
@pe
|
58
66
|
Ejemplos:
|
59
67
|
|pais|tipo|order|
|
60
68
|
|PE |roundtrip|STOPSCOUNT_ASCENDING|
|
61
69
|
|PE |oneway|TOTALFARE_ASCENDING|
|
70
|
+
|PE |roundtrip|DURATION_ASCENDING|
|
62
71
|
@uy
|
63
72
|
Ejemplos:
|
64
73
|
|pais|tipo|order|
|
65
74
|
|UY |roundtrip|STOPSCOUNT_ASCENDING|
|
66
75
|
|UY |oneway|TOTALFARE_ASCENDING|
|
76
|
+
|UY |oneway|DURATION_ASCENDING|
|
67
77
|
@us
|
68
78
|
Ejemplos:
|
69
79
|
|pais|tipo|order|
|
70
80
|
|US |roundtrip|STOPSCOUNT_ASCENDING|
|
71
81
|
|US |oneway|TOTALFARE_ASCENDING|
|
82
|
+
|US |roundtrip|DURATION_ASCENDING|
|
72
83
|
@ve
|
73
84
|
Ejemplos:
|
74
85
|
|pais|tipo|order|
|
75
86
|
|VE |roundtrip|STOPSCOUNT_ASCENDING|
|
76
87
|
|VE |oneway|TOTALFARE_ASCENDING|
|
88
|
+
|VE |oneway|DURATION_ASCENDING|
|
@@ -47,21 +47,6 @@ Característica: search.searches
|
|
47
47
|
Ejemplos:
|
48
48
|
|pais|tipo|cabotage|
|
49
49
|
|AR |multipledestinations|nil|
|
50
|
-
@br
|
51
|
-
@roundtrip
|
52
|
-
Ejemplos:
|
53
|
-
|pais|tipo|cabotage|
|
54
|
-
|BR |roundtrip|nil|
|
55
|
-
@br
|
56
|
-
@oneway
|
57
|
-
Ejemplos:
|
58
|
-
|pais|tipo|cabotage|
|
59
|
-
|BR |oneway|true|
|
60
|
-
@br
|
61
|
-
@multipledestinations
|
62
|
-
Ejemplos:
|
63
|
-
|pais|tipo|cabotage|
|
64
|
-
|BR |multipledestinations|nil|
|
65
50
|
@co
|
66
51
|
@roundtrip
|
67
52
|
Ejemplos:
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
gem.require_paths = ["lib"] #Usualmente es solo lib -> ["lib"]
|
17
17
|
|
18
|
-
gem.version = '2.0.
|
18
|
+
gem.version = '2.0.8' #La version se debe incrementar cada vez que se desea publicar una nueva version del test.
|
19
19
|
|
20
20
|
gem.add_dependency('henry-container', '>= 0.1.39')
|
21
21
|
gem.add_dependency('watir-webdriver')
|
data/henry-context.yml
CHANGED
@@ -270,69 +270,6 @@ tasks:
|
|
270
270
|
recipients:
|
271
271
|
- estebanldh@gmail.com
|
272
272
|
- nsimean@despegar.com
|
273
|
-
- name: search.searches.br
|
274
|
-
class_name: Henry::Task::CucumberTask
|
275
|
-
options:
|
276
|
-
tags:
|
277
|
-
- search
|
278
|
-
- searches
|
279
|
-
- br
|
280
|
-
expand: true
|
281
|
-
no-source: true
|
282
|
-
reports:
|
283
|
-
- format: html
|
284
|
-
name: ${DATE}_${TASK_NAME}.html
|
285
|
-
recipients:
|
286
|
-
- estebanldh@gmail.com
|
287
|
-
- nsimean@despegar.com
|
288
|
-
- name: search.searches.br.roundtrip
|
289
|
-
class_name: Henry::Task::CucumberTask
|
290
|
-
options:
|
291
|
-
tags:
|
292
|
-
- search
|
293
|
-
- searches
|
294
|
-
- br
|
295
|
-
- roundtrip
|
296
|
-
expand: true
|
297
|
-
no-source: true
|
298
|
-
reports:
|
299
|
-
- format: html
|
300
|
-
name: ${DATE}_${TASK_NAME}.html
|
301
|
-
recipients:
|
302
|
-
- estebanldh@gmail.com
|
303
|
-
- nsimean@despegar.com
|
304
|
-
- name: search.searches.br.oneway
|
305
|
-
class_name: Henry::Task::CucumberTask
|
306
|
-
options:
|
307
|
-
tags:
|
308
|
-
- search
|
309
|
-
- searches
|
310
|
-
- br
|
311
|
-
- oneway
|
312
|
-
expand: true
|
313
|
-
no-source: true
|
314
|
-
reports:
|
315
|
-
- format: html
|
316
|
-
name: ${DATE}_${TASK_NAME}.html
|
317
|
-
recipients:
|
318
|
-
- estebanldh@gmail.com
|
319
|
-
- nsimean@despegar.com
|
320
|
-
- name: search.searches.br.multipledestinations
|
321
|
-
class_name: Henry::Task::CucumberTask
|
322
|
-
options:
|
323
|
-
tags:
|
324
|
-
- search
|
325
|
-
- searches
|
326
|
-
- br
|
327
|
-
- multipledestinations
|
328
|
-
expand: true
|
329
|
-
no-source: true
|
330
|
-
reports:
|
331
|
-
- format: html
|
332
|
-
name: ${DATE}_${TASK_NAME}.html
|
333
|
-
recipients:
|
334
|
-
- estebanldh@gmail.com
|
335
|
-
- nsimean@despegar.com
|
336
273
|
- name: search.searches.co
|
337
274
|
class_name: Henry::Task::CucumberTask
|
338
275
|
options:
|