flights_gui_tests 0.3.6 → 0.3.7
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/results_steps.rb +7 -0
- data/features/support/classes/clusters/results/new_details_cluster.rb +36 -0
- data/features/support/env.rb +2 -5
- data/features/support/modules/results/itineraries/bussines.rb +14 -1
- data/features/support/modules/results/itineraries/details.rb +74 -15
- data/features/support/modules/results/itineraries/payments.rb +23 -4
- data/features/support/modules/results/itineraries.rb +22 -0
- data/features/support/pages/all_pages.rb +5 -1
- data/features/support/pages/checkout/popup_results_page.rb +2 -2
- data/features/support/pages/results/search_page.rb +5 -8
- data/features/tests/results/new_itineraries.feature +103 -0
- data/flights_gui_tests.gemspec +1 -1
- data/henry-context.yml +209 -58
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c153164b1e036e15f116b161901a481fa4a2dd19
|
4
|
+
data.tar.gz: e0757cdb69ea3619f290263734a25a8a787342ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99062fa8fb25be26eda97915c1e111eb2174ea29402682546d2cbd8d27d4b264f143902dadf9dfc0fa0098e7cfdad04e0f21e1c427693731f3b1ebee69f78f4e
|
7
|
+
data.tar.gz: 48dcadba6d236ee6d43379741922f75a8f4965266664b2061bc44cfea7ffae6a387dd26b6860e0fac3164751279525f83b8fa769bcb2551bf58eed09f657075b
|
@@ -33,7 +33,10 @@ end
|
|
33
33
|
|
34
34
|
Entonces(/^recorro y (?:verifico|valido) cada itinerario$/) do
|
35
35
|
json = @page.manage_data.get_results_search_service("TOTALFARE")
|
36
|
+
@page.cerrar_popup_alerta_element.click if @page.cerrar_popup_alerta_element.present?
|
37
|
+
@page.cerrar_popup_cantidad_visitantes_element.click if @page.cerrar_popup_cantidad_visitantes_element.present?
|
36
38
|
i=0
|
39
|
+
$num = 0
|
37
40
|
@page.itinerarios_elements.each do |itinerario|
|
38
41
|
_itinerario = ResultsCluster.new(@page.tipo_de_busqueda,Hpricot.parse(itinerario.html))
|
39
42
|
@page.validar_millas(json,i)
|
@@ -54,4 +57,8 @@ Y(/^(?:verifico|valido) el popup de alertas$/) do
|
|
54
57
|
@page.cerrar_popup_alertas_element.click
|
55
58
|
sleep(1)
|
56
59
|
end
|
60
|
+
end
|
61
|
+
|
62
|
+
Cuando(/^defino nuevos itinerarios$/) do
|
63
|
+
@page.definir_nuevo_itinerario
|
57
64
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class NewDetailsCluster
|
3
|
+
attr_accessor :tramos, :duracion
|
4
|
+
def initialize(p_html)
|
5
|
+
@duracion = (p_html/"span.inline-detail-title span.inline-detail-total-duration span.inline-detail-total-duration-time").inner_text.strip.no_accents
|
6
|
+
@tramos = []
|
7
|
+
(p_html/"div.inline-detail-content div.inline-detail-data").each do |div|
|
8
|
+
tramo = Hash.new
|
9
|
+
if (div/"div.segment span.not-economy-segments").first.nil?
|
10
|
+
tramo['bussines'] = nil
|
11
|
+
tramo['clase'] = (div/"span.inline-detail-flight-cabinType span.inline-detail-flight-data-description").first.inner_text.strip.no_accents
|
12
|
+
else
|
13
|
+
tramo['bussines'] = true
|
14
|
+
tramo['clase'] = (div/"span.inline-detail-flight-cabinType span.inline-detail-flight-data-description").first.inner_text.strip.no_accents
|
15
|
+
end
|
16
|
+
tramo['ciudad_origen'] = (div/"span.inline-detail-airport-description").first.inner_text.gsub(/\-(.*)/,'').strip.no_accents
|
17
|
+
tramo['fecha_origen'] = Date.parse_new_details((div/"span.inline-detail-airport-date").first.inner_text.strip.gsub(/Sale:/,'').no_accents)
|
18
|
+
tramo['hora_origen'] = (div/"span.inline-detail-airport-hour").first.inner_text.empty? ? Time.parse((div/"span.inline-detail-airport-hour").last.inner_text.strip.no_accents) : Time.parse((div/"span.inline-detail-airport-hour").first.inner_text.strip.no_accents)
|
19
|
+
tramo['ciudad_destino'] = (div/"span.inline-detail-airport-description").last.inner_text.gsub(/\-(.*)/,'').strip.no_accents
|
20
|
+
tramo['hora_destino'] = (div/"span.inline-detail-airport-hour").last.inner_text.empty? ? Time.parse((div/"span.inline-detail-airport-hour").first.inner_text.strip.no_accents) : Time.parse((div/"span.inline-detail-airport-hour").last.inner_text.strip.no_accents)
|
21
|
+
@tramos << tramo
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
text = String.new
|
27
|
+
@tramos.each_with_index do |tramo,i|
|
28
|
+
text << "[Tramo #{i}: "
|
29
|
+
tramo.each_pair do |key,value|
|
30
|
+
text << "#{key}:#{value} - "
|
31
|
+
end
|
32
|
+
text << "]"
|
33
|
+
end
|
34
|
+
return text
|
35
|
+
end
|
36
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -44,11 +44,7 @@ require_relative 'modules/results/recommendation'
|
|
44
44
|
require_relative 'modules/results/matrix/matrix_airline'
|
45
45
|
require_relative 'modules/results/matrix/matrix_price'
|
46
46
|
require_relative 'modules/results/matrix/matrix_fare_chart'
|
47
|
-
require_relative 'modules/results/itineraries
|
48
|
-
require_relative 'modules/results/itineraries/bussines'
|
49
|
-
require_relative 'modules/results/itineraries/payments'
|
50
|
-
require_relative 'modules/results/itineraries/details'
|
51
|
-
require_relative 'modules/results/itineraries/data'
|
47
|
+
require_relative 'modules/results/itineraries'
|
52
48
|
|
53
49
|
require_relative 'modules/checkout/pasajeros'
|
54
50
|
require_relative 'modules/checkout/tarjeta'
|
@@ -78,6 +74,7 @@ require_relative 'classes/clusters/results_cluster'
|
|
78
74
|
require_relative 'classes/clusters/results/landing_cluster'
|
79
75
|
require_relative 'classes/clusters/results/render_cluster'
|
80
76
|
require_relative 'classes/clusters/results/details_cluster'
|
77
|
+
require_relative 'classes/clusters/results/new_details_cluster'
|
81
78
|
require_relative 'classes/clusters/checkout_cluster'
|
82
79
|
|
83
80
|
# carga de parametros globales
|
@@ -6,12 +6,25 @@ module Results
|
|
6
6
|
include PageObject
|
7
7
|
|
8
8
|
def validar_vuelo_bussines(i)
|
9
|
-
|
9
|
+
unless @nuevo_itinerario
|
10
|
+
if itinerarios_elements[i].div(:class,'not-economy-cluster-alert').present?
|
11
|
+
itinerarios_elements[i].span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
12
|
+
else
|
13
|
+
itinerarios_elements[i].span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
14
|
+
end
|
15
|
+
else
|
16
|
+
new_validar_vuelo_bussines(i)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def new_validar_vuelo_bussines(i)
|
21
|
+
if itinerarios_elements[i].div(:class,'not-economy-cluster-alert alert').present?
|
10
22
|
itinerarios_elements[i].span(:class,'ux-common-icon-rate-star').should visible("icono de bussines")
|
11
23
|
else
|
12
24
|
itinerarios_elements[i].span(:class,'ux-common-icon-rate-star').should_not visible("icono de bussines")
|
13
25
|
end
|
14
26
|
end
|
27
|
+
|
15
28
|
end
|
16
29
|
end
|
17
30
|
end
|
@@ -7,22 +7,28 @@ module Results
|
|
7
7
|
link(:mostrar_mas_itinerarios,:class=>"toggle-clusters show-clusters")
|
8
8
|
div(:popup_detail,:class=>'flights-popup popup-detail')
|
9
9
|
|
10
|
+
elements(:new_popup_detail,:div,:class=>'inline-detail')
|
11
|
+
|
10
12
|
def validar_mas_detalles(json,i,itinerario)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
13
|
+
unless @nuevo_itinerario
|
14
|
+
j=0
|
15
|
+
mostrar_mas_itinerarios_element.click if mostrar_mas_itinerarios_element.present?
|
16
|
+
rutas_ida(itinerarios_elements[i]).each do |route|
|
17
|
+
cluster_detail = recorrer_segmentos(route,itinerario.idas[j])
|
18
|
+
j += 1
|
19
|
+
cerrar_popup
|
20
|
+
validar_clase(cluster_detail,route)
|
21
|
+
end
|
22
|
+
k=0
|
23
|
+
rutas_vuelta(itinerarios_elements[i]).each do |route|
|
24
|
+
cluster_detail = recorrer_segmentos(route,itinerario.vueltas[k])
|
25
|
+
k += 1
|
26
|
+
cerrar_popup
|
27
|
+
validar_clase(cluster_detail,route)
|
28
|
+
end
|
29
|
+
else
|
30
|
+
new_validar_mas_detalles(json,i,itinerario)
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
28
34
|
def validar_clase(cluster,route)
|
@@ -75,6 +81,59 @@ module Results
|
|
75
81
|
popup_detail_element.span(:class,'popup-close-button popup-close').click
|
76
82
|
sleep(0.5)
|
77
83
|
end
|
84
|
+
|
85
|
+
def new_cerrar_popup(route)
|
86
|
+
route.li(:class,'detail').links[0].click
|
87
|
+
sleep(0.5)
|
88
|
+
end
|
89
|
+
|
90
|
+
def new_reglas_de_vuelo(i)
|
91
|
+
popup = new_popup_detail_elements[i]
|
92
|
+
popup.div(:class,'top-box').a(:class,'show-rules show-cluster-rules').should visible
|
93
|
+
popup.div(:class,'rules').should_not visible
|
94
|
+
popup.div(:class,'top-box').a(:class,'show-rules show-cluster-rules').click
|
95
|
+
popup.div(:class,'rules').should visible
|
96
|
+
popup.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/)
|
97
|
+
end
|
98
|
+
|
99
|
+
def new_recorrer_segmentos(route,cluster,i)
|
100
|
+
begin
|
101
|
+
route.li(:class,'detail').links[0].click
|
102
|
+
rescue Selenium::WebDriver::Error::ElementNotVisibleError
|
103
|
+
byebug
|
104
|
+
end
|
105
|
+
new_popup_detail_elements[i].when_visible(timeout=20)
|
106
|
+
doc = Hpricot.parse(new_popup_detail_elements[i].html)
|
107
|
+
detail = NewDetailsCluster.new(doc)
|
108
|
+
detail.duracion.should match(/#{cluster.duracion}/)
|
109
|
+
detail.tramos.first['ciudad_origen'].should match(cluster.origen)
|
110
|
+
detail.tramos.last['ciudad_destino'].should match(cluster.destino)
|
111
|
+
cluster.fecha.should equal(detail.tramos.first['fecha_origen'])
|
112
|
+
cluster.hou_sal_ida.should equal(detail.tramos.first['hora_origen'])
|
113
|
+
new_reglas_de_vuelo(i)
|
114
|
+
return detail
|
115
|
+
end
|
116
|
+
|
117
|
+
def new_validar_mas_detalles(json,i,itinerario)
|
118
|
+
j=0
|
119
|
+
mostrar_mas_itinerarios_element.click if mostrar_mas_itinerarios_element.present?
|
120
|
+
rutas_ida(itinerarios_elements[i]).each do |route|
|
121
|
+
cluster_detail = new_recorrer_segmentos(route,itinerario.idas[j],$num)
|
122
|
+
j += 1
|
123
|
+
$num += 1
|
124
|
+
new_cerrar_popup(route)
|
125
|
+
validar_clase(cluster_detail,route)
|
126
|
+
end
|
127
|
+
k=0
|
128
|
+
rutas_vuelta(itinerarios_elements[i]).each do |route|
|
129
|
+
cluster_detail = new_recorrer_segmentos(route,itinerario.vueltas[k],$num)
|
130
|
+
k += 1
|
131
|
+
$num += 1
|
132
|
+
new_cerrar_popup(route)
|
133
|
+
validar_clase(cluster_detail,route)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
78
137
|
end
|
79
138
|
end
|
80
139
|
end
|
@@ -9,20 +9,39 @@ module Results
|
|
9
9
|
span(:cerrar_popup_cuotas,:css=>"#popup-payments .popup-close-button")
|
10
10
|
|
11
11
|
def validar_popup_cuotas(i)
|
12
|
-
|
12
|
+
unless @nuevo_itinerario
|
13
|
+
if(itinerarios_elements[i].div(:class,'actions').link(:class,'payments').present?)
|
14
|
+
itinerarios_elements[i].radio(:id,/outbound/).click if itinerarios_elements[i].radio(:id,/outbound/).present?
|
15
|
+
itinerarios_elements[i].radio(:id,/inbound/).click if itinerarios_elements[i].radio(:id,/inbound/).present?
|
16
|
+
itinerarios_elements[i].div(:class,'actions').link(:class,'payments').click
|
17
|
+
popup_cuotas_element.when_visible(timeout=20)
|
18
|
+
popup = Hpricot.parse(popup_cuotas_element.html)
|
19
|
+
sleep(0.5)
|
20
|
+
popup_cuotas_element.span(:class,'popup-close-button popup-close').click
|
21
|
+
popup_cuotas_element.when_not_visible(timeout=20)
|
22
|
+
else
|
23
|
+
itinerarios_elements[i].div(:class,'actions').text.should_not match("pagos|cuotas|installments|juros")
|
24
|
+
end
|
25
|
+
else
|
26
|
+
new_validar_popup_cuotas(i)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def new_validar_popup_cuotas(i)
|
31
|
+
if(itinerarios_elements[i].link(:text,/pagos|cuotas|installments|juros/).present?)
|
13
32
|
itinerarios_elements[i].radio(:id,/outbound/).click if itinerarios_elements[i].radio(:id,/outbound/).present?
|
14
33
|
itinerarios_elements[i].radio(:id,/inbound/).click if itinerarios_elements[i].radio(:id,/inbound/).present?
|
15
|
-
itinerarios_elements[i].
|
34
|
+
itinerarios_elements[i].link(:text,/pagos|cuotas|installments|juros/).click
|
16
35
|
popup_cuotas_element.when_visible(timeout=20)
|
17
36
|
popup = Hpricot.parse(popup_cuotas_element.html)
|
18
37
|
sleep(0.5)
|
19
38
|
popup_cuotas_element.span(:class,'popup-close-button popup-close').click
|
20
39
|
popup_cuotas_element.when_not_visible(timeout=20)
|
21
40
|
else
|
22
|
-
itinerarios_elements[i].div(:class,'
|
41
|
+
itinerarios_elements[i].div(:class,'fare-container').text.should_not match("pagos|cuotas|installments|juros")
|
23
42
|
end
|
24
43
|
end
|
25
|
-
|
44
|
+
|
26
45
|
end
|
27
46
|
end
|
28
47
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require_relative 'itineraries/miles'
|
3
|
+
require_relative 'itineraries/bussines'
|
4
|
+
require_relative 'itineraries/payments'
|
5
|
+
require_relative 'itineraries/details'
|
6
|
+
require_relative 'itineraries/data'
|
7
|
+
|
8
|
+
module Results
|
9
|
+
module Itineraries
|
10
|
+
|
11
|
+
include Results::Itineraries::Miles
|
12
|
+
include Results::Itineraries::Bussines
|
13
|
+
include Results::Itineraries::Payments
|
14
|
+
include Results::Itineraries::Details
|
15
|
+
include Results::Itineraries::Data
|
16
|
+
|
17
|
+
def definir_nuevo_itinerario()
|
18
|
+
@nuevo_itinerario = true
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -2,7 +2,7 @@ module Checkout
|
|
2
2
|
class PopupResultsPage < AllPages
|
3
3
|
include PageObject
|
4
4
|
|
5
|
-
elements(:buscar,:link,:class=>"buy btn-buy
|
5
|
+
elements(:buscar,:link,:class=>"buy btn-buy")
|
6
6
|
elements(:opciones_ida,:radio,:css=>"div.outbound input")
|
7
7
|
elements(:opciones_vuelta,:radio,:css=>"div.inbound input")
|
8
8
|
elements(:itinerarios, :div, :css=>"#clusters .cluster")
|
@@ -19,7 +19,7 @@ module Checkout
|
|
19
19
|
def elegir_itinerario(index)
|
20
20
|
itinerarios_elements[index].div(:class,'sub-cluster outbound').radios[0].click unless tipo_de_busqueda=="multipledestinations"
|
21
21
|
itinerarios_elements[index].div(:class,'sub-cluster inbound').radios[0].click if tipo_de_busqueda=="roundtrip"
|
22
|
-
|
22
|
+
@browser.execute_script("javascript:void($('.buy').click())")
|
23
23
|
return @datos_de_itinerarios[index]
|
24
24
|
end
|
25
25
|
|
@@ -7,11 +7,7 @@ module Results
|
|
7
7
|
include Results::Matriz::MatrizAerolinea
|
8
8
|
include Results::Matriz::MatrizPrice
|
9
9
|
include Results::Matriz::MatrizFareChart
|
10
|
-
include Results::Itineraries
|
11
|
-
include Results::Itineraries::Bussines
|
12
|
-
include Results::Itineraries::Payments
|
13
|
-
include Results::Itineraries::Details
|
14
|
-
include Results::Itineraries::Data
|
10
|
+
include Results::Itineraries
|
15
11
|
include Results::SearchParams
|
16
12
|
include Results::Filters
|
17
13
|
include Results::NewFilters
|
@@ -39,8 +35,8 @@ module Results
|
|
39
35
|
elements(:itinerarios, :div, :css=>"#clusters .cluster")
|
40
36
|
elements(:detalle_precio_itinerario, :li, :css=>"#clusters .cluster .fare-detail li")
|
41
37
|
|
42
|
-
# element(:ofertas_personalizadas ,:
|
43
|
-
# element(:ofertas_por_pais ,:
|
38
|
+
# element(:ofertas_personalizadas ,:a ,:css=>"div#flight-offers-international a.flight-offer")
|
39
|
+
# element(:ofertas_por_pais ,:a ,:css=>"div#flight-offers-domestic a.flight-offer")
|
44
40
|
element(:itinerario, :div, :css=>"#clusters .cluster")
|
45
41
|
element(:desglose,:li,:css=>"#clusters .cluster .fare-detail li")
|
46
42
|
element(:precio_itinerario, :span, :css=>".cluster .fare .price-currency")
|
@@ -128,6 +124,7 @@ module Results
|
|
128
124
|
|
129
125
|
def last_minute?
|
130
126
|
return (manage_data.date_from_1 - Date.today).to_i < 2
|
131
|
-
end
|
127
|
+
end
|
128
|
+
|
132
129
|
end
|
133
130
|
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#language: es
|
2
|
+
@results
|
3
|
+
Característica: results.new_itineraries
|
4
|
+
Se verifica que los cluster contengan datos y funcionalidad correcta.
|
5
|
+
|
6
|
+
@new_itineraries
|
7
|
+
Esquema del escenario: Se recorren los nuevos clusters, por cada uno se validan datos consistentes con la busqueda y funcionamiento de popups
|
8
|
+
Dado como un usuario de '<pais>'
|
9
|
+
* ingreso una busqueda '<tipo>' del tipo '<cabotage>'
|
10
|
+
Cuando realizo la busqueda
|
11
|
+
Entonces verifico que la pagina no rompa
|
12
|
+
Cuando espero que termine de cargar la pagina de resultados
|
13
|
+
Entonces verifico que traiga resultados
|
14
|
+
Cuando fuerzo el abztesting de "clusterStyle" al "15"
|
15
|
+
Cuando si el site es "MX", fuerzo el abztesting de "filters" al "15"
|
16
|
+
Y ingreso una busqueda '<tipo>' del tipo '<cabotage>'
|
17
|
+
Y realizo la busqueda
|
18
|
+
Cuando verifico que la pagina no rompa
|
19
|
+
Cuando espero que termine de cargar la pagina de resultados
|
20
|
+
Entonces verifico que traiga resultados
|
21
|
+
Cuando si el site es "MX|AR", verifico el ordenamiento premium economy
|
22
|
+
Cuando ordeno por "TOTALFARE_ASCENDING"
|
23
|
+
Cuando espero que termine de cargar la pagina de resultados
|
24
|
+
Cuando defino nuevos itinerarios
|
25
|
+
Entonces recorro y verifico cada itinerario
|
26
|
+
|
27
|
+
@ar
|
28
|
+
Ejemplos:
|
29
|
+
|pais|tipo|cabotage|
|
30
|
+
|AR |roundtrip|true|
|
31
|
+
|AR |multipledestinations|true|
|
32
|
+
|AR |oneway|nil|
|
33
|
+
@br
|
34
|
+
Ejemplos:
|
35
|
+
|pais|tipo|cabotage|
|
36
|
+
|BR |oneway|true|
|
37
|
+
|BR |roundtrip|true|
|
38
|
+
@co
|
39
|
+
Ejemplos:
|
40
|
+
|pais|tipo|cabotage|
|
41
|
+
|CO |roundtrip|true|
|
42
|
+
|CO |oneway|nil|
|
43
|
+
|CO |multipledestinations|nil|
|
44
|
+
@mx
|
45
|
+
Ejemplos:
|
46
|
+
|pais|tipo|cabotage|
|
47
|
+
|MX |roundtrip|true|
|
48
|
+
|MX |oneway|nil|
|
49
|
+
|MX |multipledestinations|nil|
|
50
|
+
@ve
|
51
|
+
Ejemplos:
|
52
|
+
|pais|tipo|cabotage|
|
53
|
+
|VE |roundtrip|true|
|
54
|
+
|VE |oneway|true|
|
55
|
+
|VE |multipledestinations|true|
|
56
|
+
@cl
|
57
|
+
Ejemplos:
|
58
|
+
|pais|tipo|cabotage|
|
59
|
+
|CL |roundtrip|nil|
|
60
|
+
|CL |oneway|nil|
|
61
|
+
|CL |multipledestinations|nil|
|
62
|
+
@cr
|
63
|
+
Ejemplos:
|
64
|
+
|pais|tipo|cabotage|
|
65
|
+
|CR |roundtrip|true|
|
66
|
+
|CR |oneway|true|
|
67
|
+
|CR |multipledestinations|nil|
|
68
|
+
@ec
|
69
|
+
Ejemplos:
|
70
|
+
|pais|tipo|cabotage|
|
71
|
+
|EC |multipledestinations|true|
|
72
|
+
|EC |roundtrip|nil|
|
73
|
+
|EC |oneway|nil|
|
74
|
+
@pa
|
75
|
+
Ejemplos:
|
76
|
+
|pais|tipo|cabotage|
|
77
|
+
|PA |oneway|true|
|
78
|
+
|PA |multipledestinations|true|
|
79
|
+
|PA |roundtrip|nil|
|
80
|
+
@pe
|
81
|
+
Ejemplos:
|
82
|
+
|pais|tipo|cabotage|
|
83
|
+
|PE |roundtrip|true|
|
84
|
+
|PE |oneway|true|
|
85
|
+
|PE |multipledestinations|nil|
|
86
|
+
@us
|
87
|
+
Ejemplos:
|
88
|
+
|pais|tipo|cabotage|
|
89
|
+
|US |roundtrip|true|
|
90
|
+
|US |oneway|true|
|
91
|
+
|US |multipledestinations|nil|
|
92
|
+
@uy
|
93
|
+
Ejemplos:
|
94
|
+
|pais|tipo|cabotage|
|
95
|
+
|UY |multipledestinations|true|
|
96
|
+
|UY |roundtrip|nil|
|
97
|
+
|UY |oneway|nil|
|
98
|
+
@pr
|
99
|
+
Ejemplos:
|
100
|
+
|pais|tipo|cabotage|
|
101
|
+
|PR |multipledestinations|true|
|
102
|
+
|PR |roundtrip|nil|
|
103
|
+
|PR |oneway|nil|
|
data/flights_gui_tests.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
14
14
|
|
15
15
|
gem.require_paths = ["lib"] # Usualmente es solo lib -> ["lib"]
|
16
16
|
|
17
|
-
gem.version = '0.3.
|
17
|
+
gem.version = '0.3.7' # La version se debe incrementar cada vez que se desea publicar una nueva version del test.
|
18
18
|
|
19
19
|
gem.add_dependency('henry-container', '>= 0.1.39')
|
20
20
|
gem.add_dependency('page-object')
|
data/henry-context.yml
CHANGED
@@ -2121,6 +2121,215 @@ tasks:
|
|
2121
2121
|
recipients:
|
2122
2122
|
- estebanldh@gmail.com
|
2123
2123
|
- nsimean@despegar.com
|
2124
|
+
- name: results.new_itineraries
|
2125
|
+
class_name: Henry::Task::CucumberTask
|
2126
|
+
options:
|
2127
|
+
tags:
|
2128
|
+
- results
|
2129
|
+
- new_itineraries
|
2130
|
+
expand: true
|
2131
|
+
no-source: true
|
2132
|
+
reports:
|
2133
|
+
- format: html
|
2134
|
+
name: ${DATE}_${TASK_NAME}.html
|
2135
|
+
recipients:
|
2136
|
+
- estebanldh@gmail.com
|
2137
|
+
- nsimean@despegar.com
|
2138
|
+
- name: results.new_itineraries.ar
|
2139
|
+
class_name: Henry::Task::CucumberTask
|
2140
|
+
options:
|
2141
|
+
tags:
|
2142
|
+
- results
|
2143
|
+
- new_itineraries
|
2144
|
+
- ar
|
2145
|
+
expand: true
|
2146
|
+
no-source: true
|
2147
|
+
reports:
|
2148
|
+
- format: html
|
2149
|
+
name: ${DATE}_${TASK_NAME}.html
|
2150
|
+
recipients:
|
2151
|
+
- estebanldh@gmail.com
|
2152
|
+
- nsimean@despegar.com
|
2153
|
+
- name: results.new_itineraries.br
|
2154
|
+
class_name: Henry::Task::CucumberTask
|
2155
|
+
options:
|
2156
|
+
tags:
|
2157
|
+
- results
|
2158
|
+
- new_itineraries
|
2159
|
+
- br
|
2160
|
+
expand: true
|
2161
|
+
no-source: true
|
2162
|
+
reports:
|
2163
|
+
- format: html
|
2164
|
+
name: ${DATE}_${TASK_NAME}.html
|
2165
|
+
recipients:
|
2166
|
+
- estebanldh@gmail.com
|
2167
|
+
- nsimean@despegar.com
|
2168
|
+
- name: results.new_itineraries.co
|
2169
|
+
class_name: Henry::Task::CucumberTask
|
2170
|
+
options:
|
2171
|
+
tags:
|
2172
|
+
- results
|
2173
|
+
- new_itineraries
|
2174
|
+
- co
|
2175
|
+
expand: true
|
2176
|
+
no-source: true
|
2177
|
+
reports:
|
2178
|
+
- format: html
|
2179
|
+
name: ${DATE}_${TASK_NAME}.html
|
2180
|
+
recipients:
|
2181
|
+
- estebanldh@gmail.com
|
2182
|
+
- nsimean@despegar.com
|
2183
|
+
- name: results.new_itineraries.mx
|
2184
|
+
class_name: Henry::Task::CucumberTask
|
2185
|
+
options:
|
2186
|
+
tags:
|
2187
|
+
- results
|
2188
|
+
- new_itineraries
|
2189
|
+
- mx
|
2190
|
+
expand: true
|
2191
|
+
no-source: true
|
2192
|
+
reports:
|
2193
|
+
- format: html
|
2194
|
+
name: ${DATE}_${TASK_NAME}.html
|
2195
|
+
recipients:
|
2196
|
+
- estebanldh@gmail.com
|
2197
|
+
- nsimean@despegar.com
|
2198
|
+
- name: results.new_itineraries.ve
|
2199
|
+
class_name: Henry::Task::CucumberTask
|
2200
|
+
options:
|
2201
|
+
tags:
|
2202
|
+
- results
|
2203
|
+
- new_itineraries
|
2204
|
+
- ve
|
2205
|
+
expand: true
|
2206
|
+
no-source: true
|
2207
|
+
reports:
|
2208
|
+
- format: html
|
2209
|
+
name: ${DATE}_${TASK_NAME}.html
|
2210
|
+
recipients:
|
2211
|
+
- estebanldh@gmail.com
|
2212
|
+
- nsimean@despegar.com
|
2213
|
+
- name: results.new_itineraries.cl
|
2214
|
+
class_name: Henry::Task::CucumberTask
|
2215
|
+
options:
|
2216
|
+
tags:
|
2217
|
+
- results
|
2218
|
+
- new_itineraries
|
2219
|
+
- cl
|
2220
|
+
expand: true
|
2221
|
+
no-source: true
|
2222
|
+
reports:
|
2223
|
+
- format: html
|
2224
|
+
name: ${DATE}_${TASK_NAME}.html
|
2225
|
+
recipients:
|
2226
|
+
- estebanldh@gmail.com
|
2227
|
+
- nsimean@despegar.com
|
2228
|
+
- name: results.new_itineraries.cr
|
2229
|
+
class_name: Henry::Task::CucumberTask
|
2230
|
+
options:
|
2231
|
+
tags:
|
2232
|
+
- results
|
2233
|
+
- new_itineraries
|
2234
|
+
- cr
|
2235
|
+
expand: true
|
2236
|
+
no-source: true
|
2237
|
+
reports:
|
2238
|
+
- format: html
|
2239
|
+
name: ${DATE}_${TASK_NAME}.html
|
2240
|
+
recipients:
|
2241
|
+
- estebanldh@gmail.com
|
2242
|
+
- nsimean@despegar.com
|
2243
|
+
- name: results.new_itineraries.ec
|
2244
|
+
class_name: Henry::Task::CucumberTask
|
2245
|
+
options:
|
2246
|
+
tags:
|
2247
|
+
- results
|
2248
|
+
- new_itineraries
|
2249
|
+
- ec
|
2250
|
+
expand: true
|
2251
|
+
no-source: true
|
2252
|
+
reports:
|
2253
|
+
- format: html
|
2254
|
+
name: ${DATE}_${TASK_NAME}.html
|
2255
|
+
recipients:
|
2256
|
+
- estebanldh@gmail.com
|
2257
|
+
- nsimean@despegar.com
|
2258
|
+
- name: results.new_itineraries.pa
|
2259
|
+
class_name: Henry::Task::CucumberTask
|
2260
|
+
options:
|
2261
|
+
tags:
|
2262
|
+
- results
|
2263
|
+
- new_itineraries
|
2264
|
+
- pa
|
2265
|
+
expand: true
|
2266
|
+
no-source: true
|
2267
|
+
reports:
|
2268
|
+
- format: html
|
2269
|
+
name: ${DATE}_${TASK_NAME}.html
|
2270
|
+
recipients:
|
2271
|
+
- estebanldh@gmail.com
|
2272
|
+
- nsimean@despegar.com
|
2273
|
+
- name: results.new_itineraries.pe
|
2274
|
+
class_name: Henry::Task::CucumberTask
|
2275
|
+
options:
|
2276
|
+
tags:
|
2277
|
+
- results
|
2278
|
+
- new_itineraries
|
2279
|
+
- pe
|
2280
|
+
expand: true
|
2281
|
+
no-source: true
|
2282
|
+
reports:
|
2283
|
+
- format: html
|
2284
|
+
name: ${DATE}_${TASK_NAME}.html
|
2285
|
+
recipients:
|
2286
|
+
- estebanldh@gmail.com
|
2287
|
+
- nsimean@despegar.com
|
2288
|
+
- name: results.new_itineraries.us
|
2289
|
+
class_name: Henry::Task::CucumberTask
|
2290
|
+
options:
|
2291
|
+
tags:
|
2292
|
+
- results
|
2293
|
+
- new_itineraries
|
2294
|
+
- us
|
2295
|
+
expand: true
|
2296
|
+
no-source: true
|
2297
|
+
reports:
|
2298
|
+
- format: html
|
2299
|
+
name: ${DATE}_${TASK_NAME}.html
|
2300
|
+
recipients:
|
2301
|
+
- estebanldh@gmail.com
|
2302
|
+
- nsimean@despegar.com
|
2303
|
+
- name: results.new_itineraries.uy
|
2304
|
+
class_name: Henry::Task::CucumberTask
|
2305
|
+
options:
|
2306
|
+
tags:
|
2307
|
+
- results
|
2308
|
+
- new_itineraries
|
2309
|
+
- uy
|
2310
|
+
expand: true
|
2311
|
+
no-source: true
|
2312
|
+
reports:
|
2313
|
+
- format: html
|
2314
|
+
name: ${DATE}_${TASK_NAME}.html
|
2315
|
+
recipients:
|
2316
|
+
- estebanldh@gmail.com
|
2317
|
+
- nsimean@despegar.com
|
2318
|
+
- name: results.new_itineraries.pr
|
2319
|
+
class_name: Henry::Task::CucumberTask
|
2320
|
+
options:
|
2321
|
+
tags:
|
2322
|
+
- results
|
2323
|
+
- new_itineraries
|
2324
|
+
- pr
|
2325
|
+
expand: true
|
2326
|
+
no-source: true
|
2327
|
+
reports:
|
2328
|
+
- format: html
|
2329
|
+
name: ${DATE}_${TASK_NAME}.html
|
2330
|
+
recipients:
|
2331
|
+
- estebanldh@gmail.com
|
2332
|
+
- nsimean@despegar.com
|
2124
2333
|
- name: results.itineraries
|
2125
2334
|
class_name: Henry::Task::CucumberTask
|
2126
2335
|
options:
|
@@ -9512,51 +9721,6 @@ tasks:
|
|
9512
9721
|
recipients:
|
9513
9722
|
- estebanldh@gmail.com
|
9514
9723
|
- nsimean@despegar.com
|
9515
|
-
- name: prueba.busqueda
|
9516
|
-
class_name: Henry::Task::CucumberTask
|
9517
|
-
options:
|
9518
|
-
tags:
|
9519
|
-
- prueba
|
9520
|
-
- busqueda
|
9521
|
-
expand: true
|
9522
|
-
no-source: true
|
9523
|
-
reports:
|
9524
|
-
- format: html
|
9525
|
-
name: ${DATE}_${TASK_NAME}.html
|
9526
|
-
recipients:
|
9527
|
-
- estebanldh@gmail.com
|
9528
|
-
- nsimean@despegar.com
|
9529
|
-
- name: prueba.busqueda.ar
|
9530
|
-
class_name: Henry::Task::CucumberTask
|
9531
|
-
options:
|
9532
|
-
tags:
|
9533
|
-
- prueba
|
9534
|
-
- busqueda
|
9535
|
-
- ar
|
9536
|
-
expand: true
|
9537
|
-
no-source: true
|
9538
|
-
reports:
|
9539
|
-
- format: html
|
9540
|
-
name: ${DATE}_${TASK_NAME}.html
|
9541
|
-
recipients:
|
9542
|
-
- estebanldh@gmail.com
|
9543
|
-
- nsimean@despegar.com
|
9544
|
-
- name: prueba.busqueda.ar.roundtrip
|
9545
|
-
class_name: Henry::Task::CucumberTask
|
9546
|
-
options:
|
9547
|
-
tags:
|
9548
|
-
- prueba
|
9549
|
-
- busqueda
|
9550
|
-
- ar
|
9551
|
-
- roundtrip
|
9552
|
-
expand: true
|
9553
|
-
no-source: true
|
9554
|
-
reports:
|
9555
|
-
- format: html
|
9556
|
-
name: ${DATE}_${TASK_NAME}.html
|
9557
|
-
recipients:
|
9558
|
-
- estebanldh@gmail.com
|
9559
|
-
- nsimean@despegar.com
|
9560
9724
|
- name: checkout.low_cost
|
9561
9725
|
class_name: Henry::Task::CucumberTask
|
9562
9726
|
options:
|
@@ -12475,19 +12639,6 @@ tasks:
|
|
12475
12639
|
recipients:
|
12476
12640
|
- estebanldh@gmail.com
|
12477
12641
|
- nsimean@despegar.com
|
12478
|
-
- name: prueba
|
12479
|
-
class_name: Henry::Task::CucumberTask
|
12480
|
-
options:
|
12481
|
-
tags:
|
12482
|
-
- prueba
|
12483
|
-
expand: true
|
12484
|
-
no-source: true
|
12485
|
-
reports:
|
12486
|
-
- format: html
|
12487
|
-
name: ${DATE}_${TASK_NAME}.html
|
12488
|
-
recipients:
|
12489
|
-
- estebanldh@gmail.com
|
12490
|
-
- nsimean@despegar.com
|
12491
12642
|
- name: checkout
|
12492
12643
|
class_name: Henry::Task::CucumberTask
|
12493
12644
|
options:
|
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: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lgonzalez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: henry-container
|
@@ -248,6 +248,7 @@ files:
|
|
248
248
|
- features/support/classes/clusters/data/data.rb
|
249
249
|
- features/support/classes/clusters/results/details_cluster.rb
|
250
250
|
- features/support/classes/clusters/results/landing_cluster.rb
|
251
|
+
- features/support/classes/clusters/results/new_details_cluster.rb
|
251
252
|
- features/support/classes/clusters/results/render_cluster.rb
|
252
253
|
- features/support/classes/clusters/results_cluster.rb
|
253
254
|
- features/support/classes/date.rb
|
@@ -274,6 +275,7 @@ files:
|
|
274
275
|
- features/support/modules/pages/cookies.rb
|
275
276
|
- features/support/modules/pages/tags.rb
|
276
277
|
- features/support/modules/results/filters.rb
|
278
|
+
- features/support/modules/results/itineraries.rb
|
277
279
|
- features/support/modules/results/itineraries/bussines.rb
|
278
280
|
- features/support/modules/results/itineraries/data.rb
|
279
281
|
- features/support/modules/results/itineraries/details.rb
|
@@ -335,6 +337,7 @@ files:
|
|
335
337
|
- features/tests/results/matrix/matrix_fare_chart.feature
|
336
338
|
- features/tests/results/matrix/matrix_price.feature
|
337
339
|
- features/tests/results/new_filters.feature
|
340
|
+
- features/tests/results/new_itineraries.feature
|
338
341
|
- features/tests/results/orders.feature
|
339
342
|
- features/tests/results/pagination.feature
|
340
343
|
- features/tests/results/recommendation.feature
|