flights_gui_henry_tests 2.0.4 → 2.0.5
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 +1 -1
- data/features/step_definitions/landing/landing_steps.rb +2 -2
- data/features/step_definitions/orders/orders.rb +8 -0
- data/features/step_definitions/results/search_steps.rb +14 -0
- data/features/step_definitions/search/flight_gui_steps.rb +5 -5
- data/features/step_definitions/search/wish_list_steps.rb +0 -2
- 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/clusters.rb +13 -46
- data/features/tests/checkout/aij.feature +49 -0
- data/features/tests/checkout/low_cost.feature +1 -15
- data/features/tests/landing/landing_positive.feature +6 -1
- data/features/tests/search/orders.feature +12 -0
- data/flights_gui_henry_tests.gemspec +1 -1
- data/henry-context.yml +44 -30
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTEzZDViN2I5NzYxYjA5OGY3NjY4ZGEzZTk5OGUxYTAzNjgxODhlNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjIwNzliZjdkZWZmYjI4ZGJiMDFjYTM0MDg3OGMwYzVmNDU0Y2VjZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NGZkZmQ1NzkwMGFiNjRhNzhmMmMyNzZjMDZmODg2YTZhMjgzZDM1MzQzYTc5
|
10
|
+
YzBmYjdjYTE3OTBiMTA3ZTFhNGFiNTY2YWRhYzZmYmZiZTBhM2JhZDE3MGY1
|
11
|
+
MDE0NWNlNGNkMTMyNmIzMWZjYmFjY2M4YjY5NTA3ZGNlOWExZTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NzA5NGIyZDczNjgyYWU5ZjdjMGY5MDJhNjRmOTBjYmFjNDhhODBkZjk4NTU1
|
14
|
+
OWUzY2EwODhmNDc1NzEwM2M2OThiMjk5NDM1NThhNGM3Zjc0OTJiODVjZWQx
|
15
|
+
NGNhMTQ5YzQ1M2RjMWM4YTdhY2Y1YmI3YzM0ZDBiOWM4YjE3NGM=
|
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:
|
@@ -12,7 +12,7 @@ When /^verifico que los precios de las cuotas se muestran correctamente$/ do
|
|
12
12
|
total_2 = doc.inner_text.gsub(/\D/,'').to_i
|
13
13
|
unless radio.attribute_value("data-regular-expressions").nil?
|
14
14
|
keys = JSON.parse(radio.attribute_value("data-regular-expressions")).keys
|
15
|
-
if interes or keys.select{|key| key.match(/(.*)CREDIT(.*)null/)}.first
|
15
|
+
if interes or keys.select{|key| key.match(/(.*)CREDIT(.*)null/)}.first or radio.attribute_value("class").match(/radio-with-interest/)
|
16
16
|
validar_cuota_con_intereses(total_1,total_2)
|
17
17
|
else
|
18
18
|
case keys.first
|
@@ -314,13 +314,13 @@ end
|
|
314
314
|
|
315
315
|
When /^Verifico que el paginado no rompa en la ultima paginas$/ do
|
316
316
|
doc = Hpricot.parse(BROWSER.html)
|
317
|
-
unless (doc/"div.flights-pagination li.page a").
|
317
|
+
unless (doc/"div.flights-pagination li.page a").length==1
|
318
318
|
url_with_filter = BROWSER.url
|
319
319
|
iterator = BROWSER.div(:class,'flights-pagination').lis(:class,'page')[-1].text
|
320
320
|
BROWSER.div(:class,'flights-pagination').lis(:class,'page')[-1].links[0].click
|
321
321
|
Watir::Wait.until(timeout = 5){url_with_filter != BROWSER.url}
|
322
|
+
BROWSER.url.should match("(.+)\?pageIndex\=#{iterator}")
|
322
323
|
end
|
323
|
-
BROWSER.url.should match("(.+)\?pageIndex\=#{iterator}")
|
324
324
|
end
|
325
325
|
|
326
326
|
And /^Verifico que el mensaje de error en el cluster sea correcto$/ do
|
@@ -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
|
@@ -39,6 +39,20 @@ When /^Ingreso a la pagina de resultados en "(.*)" para una busqueda "(.*)" con
|
|
39
39
|
set_cookies(BROWSER)
|
40
40
|
end
|
41
41
|
|
42
|
+
When /^Ingreso a la pagina de resultados en "(.*)" para una busqueda "(.*)" con salida "(.*)", regreso "(.*)", origen "(.*)" y destino "(.*)" de tipo "(.*)"$/ do |site,type,date_from,date_to,from,to,cabotage|
|
43
|
+
set_site(site)
|
44
|
+
@search = Class.const_get("MockSearch#{type.capitalize}").new(site,$ENV,cabotage,{"from"=>from.upcase,"to"=>to.upcase})
|
45
|
+
@search.set_new_date(Date.parse(date_from),Date.parse(date_to))
|
46
|
+
puts @search.generate_url_results_search
|
47
|
+
begin
|
48
|
+
BROWSER.goto(@search.generate_url_results_search)
|
49
|
+
rescue Timeout::Error
|
50
|
+
stop_browser(BROWSER)
|
51
|
+
end
|
52
|
+
set_language(site)
|
53
|
+
set_cookies(BROWSER)
|
54
|
+
end
|
55
|
+
|
42
56
|
When /^Ingreso a la pagina de resultados en "(.*)" para una busqueda "(.*)" que desambigue por "(.*)"$/ do |site,type,city|
|
43
57
|
set_site(site)
|
44
58
|
@search = Class.const_get("MockSearch#{type.capitalize}").new(site,$ENV,"true")
|
@@ -2,14 +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
|
-
validate_cluster_ancillaries(json,type,cluster,i)
|
12
11
|
validate_cluster_payments(cluster)
|
12
|
+
validate_cluster_bussines(cluster)
|
13
13
|
i += 1
|
14
14
|
break if i == 2
|
15
15
|
end
|
@@ -17,7 +17,8 @@ end
|
|
17
17
|
|
18
18
|
Then /^Verifico los cluster nuevos con encabezados$/ do
|
19
19
|
i=0
|
20
|
-
|
20
|
+
class_ = $SITE.match("AR|BR") ? "new" : "old"
|
21
|
+
BROWSER.div(:id,'clusters').divs(:class,"cluster flights-cluster #{class_}Cluster").each do |cluster|
|
21
22
|
validate_cluster_with_headers(@search.type,cluster,i) if cluster.li(:class,'itineraries-title').present?
|
22
23
|
end
|
23
24
|
end
|
@@ -36,7 +37,6 @@ When /^Elijo un itinerario y paso a checkout$/ do
|
|
36
37
|
end
|
37
38
|
|
38
39
|
When /^Elijo un itinerario con proveedor "(.*)" y paso a checkout$/ do |prov|
|
39
|
-
type = $SITE=="US" ? "new" : "old"
|
40
40
|
json = @search.get_results_search_service
|
41
41
|
i = 0
|
42
42
|
page = 1
|
@@ -47,7 +47,7 @@ When /^Elijo un itinerario con proveedor "(.*)" y paso a checkout$/ do |prov|
|
|
47
47
|
BROWSER.div(:class,'pagination').li(:class,'pagination-button next').click
|
48
48
|
step "Espero que termine de cargar"
|
49
49
|
end
|
50
|
-
BROWSER.div(:id,'clusters').divs(:class,"cluster
|
50
|
+
BROWSER.div(:id,'clusters').divs(:class,"cluster").each do |cluster|
|
51
51
|
if json['result']['data']['items'][i]['provider']==prov
|
52
52
|
@item_json = json['result']['data']['items'][i]
|
53
53
|
encontro = true
|
@@ -46,7 +46,6 @@ Then /^Verifico que se muestren en el header el usuario logueado$/ do
|
|
46
46
|
Watir::Wait.until(timeout=20){BROWSER.div(:id,'nibbler-common-header').div(:class,'fb-description').present?}
|
47
47
|
sleep(1)
|
48
48
|
BROWSER.div(:id,'nibbler-common-header').div(:class,'fb-description').strong(:class,'social-name').text.should equal("testvuelos@despegar.com")
|
49
|
-
#BROWSER.div(:id,'nibbler-common-header').li(:class,'nibbler-common-header-favorites nibbler-user nibbler-common-header-favorites-has').should visible("corazon rojo en el header")
|
50
49
|
end
|
51
50
|
|
52
51
|
Then /^Abro la lista de deseos$/ do
|
@@ -54,7 +53,6 @@ Then /^Abro la lista de deseos$/ do
|
|
54
53
|
end
|
55
54
|
|
56
55
|
Then /^Verifico textos y que no se muestren opciones en la lista de deseos$/ do
|
57
|
-
#BROWSER.div(:class,'nibbler-popup-wishlist nibbler-header-popup big').div(:class,'nibbler-common-last-searches nibbler-common-header-favorites-list').should visible("lista de elementos vacio")
|
58
56
|
BROWSER.div(:class,'nibbler-popup-wishlist nibbler-header-popup big').div(:class,'nibbler-common-last-searches nibbler-common-with').should_not visible("lista con deseos")
|
59
57
|
end
|
60
58
|
|
@@ -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").first.inner_text.strip.no_accents == "Bussines")
|
14
|
+
tramo['clase'] = (div/"div.segment span.not-economy-segments").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,22 @@ end
|
|
102
102
|
|
103
103
|
def validar_clase(cluster,route)
|
104
104
|
if cluster.tramos.select{|tramo| tramo['bussines'] }.empty?
|
105
|
-
route
|
105
|
+
puts route.span(:class,'ux-common-icon-rate-star').present?
|
106
|
+
route.span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
107
|
+
else
|
108
|
+
puts route.span(:class,'ux-common-icon-rate-star').present?
|
109
|
+
route.span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
106
110
|
end
|
107
111
|
end
|
108
112
|
|
113
|
+
def validate_cluster_bussines(cluster)
|
114
|
+
if cluster.div(:class,'not-economy-cluster-alert').present?
|
115
|
+
cluster.span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
116
|
+
else
|
117
|
+
cluster.span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
109
121
|
def recorrer_segmentos(route,cluster)
|
110
122
|
route.li(:class,'stops').a(:class,'text').click
|
111
123
|
Watir::Wait.until{BROWSER.div(:class,"flights-popup popup-detail").present?}
|
@@ -141,51 +153,6 @@ def validate_cluster_with_headers(type,cluster,i)
|
|
141
153
|
end
|
142
154
|
end
|
143
155
|
|
144
|
-
def validate_cluster_ancillaries(json,type,cluster,i)
|
145
|
-
j=0
|
146
|
-
if type != "multipledestinations"
|
147
|
-
cluster.div(:class,'itineraries').div(:class,'sub-cluster outbound').ul(:class,'itineraries-group cluster-items-list').lis(:class,'item itinerary cluster-item').each do |route|
|
148
|
-
puts "entra"
|
149
|
-
json['result']['data']['items'][i]['itinerariesBox']['outboundRoutes'][j]['ancillaryTypes'].each do |amenity|
|
150
|
-
puts "paso d"
|
151
|
-
route.li(:class,'ancillaries').span(:class,"icon-ancillaries icon-ancillaries-#{amenity}").should visible
|
152
|
-
# (route.li(:class,'ancillaries').span(:class,"icon-ancillaries icon-ancillaries-#{amenity}")).click
|
153
|
-
# popup = Hpricot.parse(BROWSER.div(:class,'flights-popup popup-ancillary').html)
|
154
|
-
# if amenity == 'INTERNET_ACCESS'
|
155
|
-
# popup.div(:class,'popup-header').inner_text.no_accents.strip.should match(/WIFI/)
|
156
|
-
# else
|
157
|
-
# if amenity == 'MEALS'
|
158
|
-
# popup.div(:class,'popup-header').inner_text.no_accents.strip.should match(/Comidas/)
|
159
|
-
# else amenity == 'BAGGAGE'
|
160
|
-
# popup.div(:class,'popup-header').inner_text.no_accents.strip.should match(/Equipaje por pasajero/)
|
161
|
-
# end
|
162
|
-
# end
|
163
|
-
end
|
164
|
-
j += 1
|
165
|
-
# cerrar_popup
|
166
|
-
end
|
167
|
-
if type == "roundtrip"
|
168
|
-
cluster.div(:class,'itineraries').div(:class,'sub-cluster inbound').ul(:class,'itineraries-group cluster-items-list').lis(:class,'item itinerary cluster-item').each do |route|
|
169
|
-
puts "entra c"
|
170
|
-
json['result']['data']['items'][i]['itinerariesBox']['inboundRoutes'][j]['ancillaryTypes'].each do |amenity|
|
171
|
-
puts "paso"
|
172
|
-
route.li(:class,'ancillaries').span(:class,"icon-ancillaries icon-ancillaries-#{amenity}").should visible
|
173
|
-
end
|
174
|
-
j += 1
|
175
|
-
end
|
176
|
-
else
|
177
|
-
cluster.div(:class,'itineraries').div(:class,'sub-cluster multiple').ul(:class,'itineraries-group cluster-items-list').lis(:class,'item itinerary cluster-item').each do |route|
|
178
|
-
puts "entra"
|
179
|
-
json['result']['data']['items'][i]['itinerary']['routes'][j]['ancillaryTypes'].each do |amenity|
|
180
|
-
puts "paso a"
|
181
|
-
route.li(:class,'ancillaries').span(:class,"icon-ancillaries icon-ancillaries-#{amenity}").should visible
|
182
|
-
end
|
183
|
-
j += 1
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
|
189
156
|
def validate_cluster_payments(cluster)
|
190
157
|
if(cluster.div(:class,'actions').link(:class,'payments').present?)
|
191
158
|
cluster.div(:class,'actions').link(:class,'payments').click
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#language: es
|
2
|
+
@checkout
|
3
|
+
Característica: checkout.aij
|
4
|
+
Se verifica la correcta carga y funcionamiento de la pagina de resultados
|
5
|
+
|
6
|
+
@aij
|
7
|
+
Esquema del escenario: Ingresar a la pagina de resultados
|
8
|
+
Cuando Ingreso a la pagina de resultados en "<pais>" para una busqueda "<tipo>" con salida "<date_from>", regreso "<date_to>", origen "<from>" y destino "<to>" de tipo "<cabotage>"
|
9
|
+
Cuando Espero que termine de cargar
|
10
|
+
Entonces Verifico que traiga resultados
|
11
|
+
Cuando Elijo un itinerario con proveedor "<prov>" y paso a checkout
|
12
|
+
Cuando Verifico que ingrese al checkout
|
13
|
+
Y Verifico el pixel de Efrontier
|
14
|
+
Y Verifico el pixel de trackeame en checkout
|
15
|
+
Y Verifico el tag de remarketing de facebook
|
16
|
+
Entonces verifico que los precios de las cuotas se muestran correctamente
|
17
|
+
Y Verifico que se muestren la caja de clientes felices
|
18
|
+
Entonces Completo el formulario de pasajeros
|
19
|
+
Y Completo el formulario de tarjeta
|
20
|
+
Y Completo los datos de resolucion AFIP
|
21
|
+
Y Completo los datos de contacto
|
22
|
+
Y Si pide factura fiscal, Completo los campos de factura fiscal
|
23
|
+
Y Realizo la compra
|
24
|
+
Entonces Verifico que dirija a la pagina de gracias
|
25
|
+
Entonces Si el checkout me pide mas datos de tarjeta, lleno los datos de tarjeta adicionales
|
26
|
+
Entonces Si se muestra el popup de no disponibilidad, elijo otro vuelo
|
27
|
+
Entonces Si debo completar de vuelta el formulario, completo el formulario
|
28
|
+
Y Verifico que genere id cro
|
29
|
+
Y Verifico el pixel de trackeame en gracias
|
30
|
+
Y Verifico el pixel de Efrontier
|
31
|
+
Y Verifico el segundo tag de google en resultado de checkout
|
32
|
+
#Y Si cumple para pruebas en fenix, Levanto los datos del vuelo
|
33
|
+
#Cuando Si cumple para pruebas en fenix, Inicializo las pruebas en fenix
|
34
|
+
#Entonces Si cumple para pruebas en fenix, Verifico que las pruebas en fenix esten correctas
|
35
|
+
|
36
|
+
@us
|
37
|
+
Ejemplos:
|
38
|
+
|pais|tipo|cabotage|prov|from|to|date_from|date_to|
|
39
|
+
|US|roundtrip|true|AIJ|MEX|GDL|2014-02-28|2014-03-17|
|
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
|
+
|US|oneway|true|AIJ|MEX|CUN|2014-02-19|2014-02-27|
|
43
|
+
@mx
|
44
|
+
Ejemplos:
|
45
|
+
|pais|tipo|cabotage|prov|from|to|date_from|date_to|
|
46
|
+
|MX|roundtrip|true|AIJ|MEX|MTY|2014-02-28|2014-03-17|
|
47
|
+
|MX|oneway|true|AIJ|MEX|GDL|2014-03-28|2014-04-17|
|
48
|
+
|MX|roundtrip|true|AIJ|MEX|CUN|2014-03-01|2014-03-15|
|
49
|
+
|MX|oneway|true|AIJ|MEX|CUN|2014-02-19|2014-02-27|
|
@@ -52,18 +52,4 @@ Característica: checkout.low_cost
|
|
52
52
|
#|US|roundtrip|nil|VOL|MEX|LAS|
|
53
53
|
#|US|oneway|nil|VOL|CUN|LAS|
|
54
54
|
#|US|roundtrip|true|VOL|GDL|MEX|
|
55
|
-
#|US|oneway|nil|VOL|LAX|MEX|
|
56
|
-
@us
|
57
|
-
Ejemplos:
|
58
|
-
|pais|tipo|cabotage|prov|from|to|
|
59
|
-
|US|roundtrip|true|AIJ|MEX|GDL|
|
60
|
-
|US|oneway|true|AIJ|MEX|GDL|
|
61
|
-
|US|roundtrip|true|AIJ|MEX|CUN|
|
62
|
-
|US|oneway|true|AIJ|MEX|CUN|
|
63
|
-
@mx
|
64
|
-
Ejemplos:
|
65
|
-
|pais|tipo|cabotage|prov|from|to|
|
66
|
-
|MX|roundtrip|true|AIJ|MEX|GDL|
|
67
|
-
|MX|oneway|true|AIJ|MEX|GDL|
|
68
|
-
|MX|roundtrip|true|AIJ|MEX|CUN|
|
69
|
-
|MX|oneway|true|AIJ|MEX|CUN|
|
55
|
+
#|US|oneway|nil|VOL|LAX|MEX|
|
@@ -25,7 +25,12 @@ Característica: landing.positive
|
|
25
25
|
Y Verifico que traiga aeropuertos y concuerden con la ciudad buscada
|
26
26
|
Y Verifico que traiga fechas en formato correcto
|
27
27
|
Cuando Elijo un ticket e ingreso a la pagina de resultados
|
28
|
-
|
28
|
+
Cuando Verifico la pagina donde ingresa
|
29
|
+
Cuando Si ingreso resultados, Espero que termine de cargar
|
30
|
+
Entonces Si ingreso resultados, Verifico que sea la pagina de resultados correcta
|
31
|
+
Y Si ingreso resultados, Verifico que traiga resultados
|
32
|
+
Y Si ingreso resultados, Verifico que el valor elejido en landing se encuentre en la lista de resultados
|
33
|
+
Y Si ingreso checkout, Verifico que ingrese al checkout
|
29
34
|
|
30
35
|
@ar
|
31
36
|
@roundtrip
|
@@ -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|
|
@@ -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.5' #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
@@ -13921,36 +13921,6 @@ tasks:
|
|
13921
13921
|
recipients:
|
13922
13922
|
- estebanldh@gmail.com
|
13923
13923
|
- nsimean@despegar.com
|
13924
|
-
- name: checkout.low_cost.us
|
13925
|
-
class_name: Henry::Task::CucumberTask
|
13926
|
-
options:
|
13927
|
-
tags:
|
13928
|
-
- checkout
|
13929
|
-
- low_cost
|
13930
|
-
- us
|
13931
|
-
expand: true
|
13932
|
-
no-source: true
|
13933
|
-
reports:
|
13934
|
-
- format: html
|
13935
|
-
name: ${DATE}_${TASK_NAME}.html
|
13936
|
-
recipients:
|
13937
|
-
- estebanldh@gmail.com
|
13938
|
-
- nsimean@despegar.com
|
13939
|
-
- name: checkout.low_cost.mx
|
13940
|
-
class_name: Henry::Task::CucumberTask
|
13941
|
-
options:
|
13942
|
-
tags:
|
13943
|
-
- checkout
|
13944
|
-
- low_cost
|
13945
|
-
- mx
|
13946
|
-
expand: true
|
13947
|
-
no-source: true
|
13948
|
-
reports:
|
13949
|
-
- format: html
|
13950
|
-
name: ${DATE}_${TASK_NAME}.html
|
13951
|
-
recipients:
|
13952
|
-
- estebanldh@gmail.com
|
13953
|
-
- nsimean@despegar.com
|
13954
13924
|
- name: checkout.error_messages
|
13955
13925
|
class_name: Henry::Task::CucumberTask
|
13956
13926
|
options:
|
@@ -15015,6 +14985,50 @@ tasks:
|
|
15015
14985
|
recipients:
|
15016
14986
|
- estebanldh@gmail.com
|
15017
14987
|
- nsimean@despegar.com
|
14988
|
+
- name: checkout.aij
|
14989
|
+
class_name: Henry::Task::CucumberTask
|
14990
|
+
options:
|
14991
|
+
tags:
|
14992
|
+
- checkout
|
14993
|
+
- aij
|
14994
|
+
expand: true
|
14995
|
+
no-source: true
|
14996
|
+
reports:
|
14997
|
+
- format: html
|
14998
|
+
name: ${DATE}_${TASK_NAME}.html
|
14999
|
+
recipients:
|
15000
|
+
- estebanldh@gmail.com
|
15001
|
+
- nsimean@despegar.com
|
15002
|
+
- name: checkout.aij.us
|
15003
|
+
class_name: Henry::Task::CucumberTask
|
15004
|
+
options:
|
15005
|
+
tags:
|
15006
|
+
- checkout
|
15007
|
+
- aij
|
15008
|
+
- us
|
15009
|
+
expand: true
|
15010
|
+
no-source: true
|
15011
|
+
reports:
|
15012
|
+
- format: html
|
15013
|
+
name: ${DATE}_${TASK_NAME}.html
|
15014
|
+
recipients:
|
15015
|
+
- estebanldh@gmail.com
|
15016
|
+
- nsimean@despegar.com
|
15017
|
+
- name: checkout.aij.mx
|
15018
|
+
class_name: Henry::Task::CucumberTask
|
15019
|
+
options:
|
15020
|
+
tags:
|
15021
|
+
- checkout
|
15022
|
+
- aij
|
15023
|
+
- mx
|
15024
|
+
expand: true
|
15025
|
+
no-source: true
|
15026
|
+
reports:
|
15027
|
+
- format: html
|
15028
|
+
name: ${DATE}_${TASK_NAME}.html
|
15029
|
+
recipients:
|
15030
|
+
- estebanldh@gmail.com
|
15031
|
+
- nsimean@despegar.com
|
15018
15032
|
- name: checkout.chat
|
15019
15033
|
class_name: Henry::Task::CucumberTask
|
15020
15034
|
options:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flights_gui_henry_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lgonzalez,lsimean
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: henry-container
|
@@ -294,6 +294,7 @@ files:
|
|
294
294
|
- features/tests/checkout/error_messages.feature
|
295
295
|
- features/tests/checkout/integration.feature
|
296
296
|
- features/tests/checkout/cupones.feature
|
297
|
+
- features/tests/checkout/aij.feature
|
297
298
|
- features/tests/checkout/chat.feature
|
298
299
|
- features/tests/checkout/seguros.feature
|
299
300
|
- features/tests/checkout/button_cac.feature
|