flights_gui_henry_tests 2.4.7 → 2.5.0
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/step_definitions/checkout/checkout_steps.rb +3 -3
- data/features/step_definitions/checkout/cupones_steps.rb +18 -17
- data/features/step_definitions/checkout/price_difference_steps.rb +50 -2
- data/features/step_definitions/filter/matrix_steps.rb +0 -1
- data/features/step_definitions/search/flight_gui_steps.rb +24 -14
- data/features/support/env.rb +1 -1
- data/features/support/lib/clusters/checkout_cluster.rb +56 -59
- data/features/support/lib/helpers/browser.rb +6 -14
- data/features/tests/checkout/cupones.feature +4 -4
- data/features/tests/checkout/low_cost.feature +1 -4
- data/features/tests/checkout/price_difference.feature +7 -140
- data/features/tests/checkout/providers.feature +2 -19
- data/features/tests/checkout/seguros.feature +20 -1
- data/features/tests/search/searches.feature +2 -3
- data/flights_gui_henry_tests.gemspec +1 -1
- data/henry-context.yml +36 -6
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
ZmIyZmE3NDhjZmVhODRiNGU3ZmFjYmUxZWJmYjNiYjNhODA3OGY1OA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
ZjRlN2UzYzdiMGFhODQwYzFiMmQxOTZmYTU5ODIwZTNjODUwYjI3MA==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
YWU5ZTJhZGJmOGYwYmVhMzE2ZGM5ODRkZjkyMTI5MDk1ZDVjMmY0N2Y3MWI2
|
|
10
|
+
OWE2NTgxZWQyZmUzMjQ4OGQzNDEwMTcyZGQ3MWNkODFlM2ExN2ZmN2FjMTI2
|
|
11
|
+
MGI1OWNmZDBlZDNkMTUxYTQ1NDAxN2E0N2M5ZDMxNDE3Yjg4ZTI=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
NDMxNmM4YTc2NjBkNTI2YTQ4NDBkNDdlMzkyYzZjZjBhMDAzZTVlODNkYjhk
|
|
14
|
+
YzUzOGEzZTcxNmE3NTFjZWRhM2NmYmIzNTYyMDg1MWI4MDE1ZDliNTY1Yjc5
|
|
15
|
+
MGQ5ZTJiODQ2YzZhMjUwYmJlODE4OWMyOTg0NzRmZDdlOTI5NjM=
|
|
@@ -139,11 +139,11 @@ Then /^Valido los valores del desglose del checkout$/ do
|
|
|
139
139
|
@itinerario_checkout = CheckoutCluster.new(@search.description,Hpricot.parse(BROWSER.div(:id,'detail').html))
|
|
140
140
|
@itinerario_checkout.validarSumaDesgloce.should be_within(4).of(@itinerario_checkout.tarifas['total'].value)
|
|
141
141
|
unless @itinerario_checkout.tarifas['adt'].valor.zero?
|
|
142
|
-
@itinerario_checkout.tarifas['adt'].valor.should
|
|
142
|
+
@itinerario_checkout.tarifas['adt'].valor.should be_within(4).of(@itinerario_checkout.tarifas['tarifa_adulto'].valor * @search.adt)
|
|
143
143
|
end
|
|
144
144
|
@itinerario.tarifas.each_pair do |key,value|
|
|
145
145
|
if @itinerario_checkout.tarifas[key] and !value.zero? and value.currency == @itinerario_checkout.tarifas[key].currency
|
|
146
|
-
value.should
|
|
146
|
+
value.value.should be_within(4).of(@itinerario_checkout.tarifas[key].value)
|
|
147
147
|
end
|
|
148
148
|
end
|
|
149
149
|
end
|
|
@@ -193,7 +193,7 @@ When /^Verifico que se muestre el banner de cancelacion$/ do
|
|
|
193
193
|
BROWSER.div(:id,'cancellation-advice').should visible("banner de cancelacion")
|
|
194
194
|
BROWSER.div(:id,'cancellation-advice').div(:class,'ux-common-message-content').p(:index,0).text.strip.should equal("¡Compre tranquilo!")
|
|
195
195
|
BROWSER.div(:id,'cancellation-advice').div(:class,'ux-common-message-content').p(:index,1).text.no_accents.strip.should equal("Si necesita cancelar su compra puede hacerlo gratis desde Mi Despegar hasta las 22 hs. del dia de hoy.")
|
|
196
|
-
elsif $SITE=="BR" and value < 50 and provider=="
|
|
196
|
+
elsif $SITE=="BR" and value < 50 and provider=="TAM"
|
|
197
197
|
BROWSER.div(:id,'cancellation-advice').should visible("banner de cancelacion")
|
|
198
198
|
BROWSER.div(:id,'cancellation-advice').div(:class,'ux-common-message-content').p(:index,0).text.strip.should equal("Compre tranquilo! Cancele no mesmo dia sem custo*!")
|
|
199
199
|
BROWSER.div(:id,'cancellation-advice').div(:class,'ux-common-message-content').p(:index,1).text.no_accents.strip.should equal("* Caso necessite cancelar sua compra, voce podera cancelar sem nenhum custo desde MeuDecolar ate as 20 hrs do mesmo dia da compra.")
|
|
@@ -3,29 +3,30 @@ And /^permite cupon de descuento$/ do
|
|
|
3
3
|
($SITE=="AR" and $ENV.match("produccion|beta")).should be_true
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
-
And /^Completo con un cupon de descuento
|
|
6
|
+
And /^Completo con un cupon de descuento con numero "(.*)"$/ do |num|
|
|
7
7
|
container = BROWSER.fieldset(:id,'additionals')
|
|
8
8
|
container.checkbox(:id,'vouchers').set(true)
|
|
9
|
-
container.text_field(:id,'voucher-
|
|
9
|
+
container.text_field(:id,'voucher-email').set("bookingvuelos@despegar.com")
|
|
10
|
+
container.text_field(:id,'voucher-code-0').set(num)
|
|
11
|
+
container.link(:id,'validate-voucher').click
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
And /^
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
And /^Verifico el mensaje de cupon invalido$/ do
|
|
15
|
+
begin
|
|
16
|
+
Watir::Wait.until(timeout = 30){BROWSER.div(:id,'coupon-error').present?}
|
|
17
|
+
rescue Timeout::Error
|
|
18
|
+
|
|
17
19
|
end
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
end
|
|
20
|
+
BROWSER.div(:id,'coupon-error').should visible("error de cupon invalido")
|
|
21
|
+
BROWSER.div(:id,'coupon-error').text.no_accents.should match("El codigo ingresado no existe|That is not a valid code|O codigo inserido nao existe")
|
|
22
|
+
end
|
|
22
23
|
|
|
23
|
-
And /^Verifico
|
|
24
|
-
step "Verifico que la pagina no rompa"
|
|
24
|
+
And /^Verifico el mensaje de cupon valido$/ do
|
|
25
25
|
begin
|
|
26
|
-
Watir::Wait.until(timeout =
|
|
26
|
+
Watir::Wait.until(timeout = 30){BROWSER.div(:id,'coupon-error').present?}
|
|
27
27
|
rescue Timeout::Error
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
end
|
|
30
|
-
BROWSER.div(:
|
|
31
|
-
|
|
30
|
+
BROWSER.div(:id,'coupon-error').should visible("error de cupon invalido")
|
|
31
|
+
BROWSER.div(:id,'coupon-error').text.no_accents.should match("El codigo ingresado no existe|That is not a valid code|O codigo inserido nao existe")
|
|
32
|
+
end
|
|
@@ -1,7 +1,55 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
Then /^completo el mail de contacto para forzar cambio de precio$/ do
|
|
3
|
-
|
|
3
|
+
itinerario = CheckoutCluster.new(@search.description,Hpricot.parse(BROWSER.div(:id,'detail').html))
|
|
4
|
+
price = (itinerario.tarifas["total"].valor * 0.1).to_i
|
|
5
|
+
puts price
|
|
4
6
|
container = BROWSER.fieldset(:id,'contact')
|
|
5
7
|
container.text_field(:id,"contact-email").set("mockedbooking_priceDifference_#{price}_#{price}@despegar.com")
|
|
6
8
|
container.text_field(:id,"contact-email-repeat").set("mockedbooking_priceDifference_#{price}_#{price}@despegar.com")
|
|
7
|
-
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Then /^Verifico el popup de cambio de precio$/ do
|
|
12
|
+
@popup.div(:class,'popup-button button-yes').should visible("boton aceptar cambio de precio")
|
|
13
|
+
@popup.div(:class,'popup-link').should visible("boton ver otros vuelos")
|
|
14
|
+
doc = Hpricot.parse(@popup.div(:id,'popup-price-difference-template').html)
|
|
15
|
+
@precio_final = Price.new((doc/"p.paragraph span.currency").last.inner_text.strip + " " + (doc/"p.paragraph span.amount").last.inner_text.strip)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When /^Espero que cargue el popup de cambio de precio$/ do
|
|
19
|
+
begin
|
|
20
|
+
Watir::Wait.until(timeout=20){BROWSER.div(:id,'popup-price-difference').present?}
|
|
21
|
+
rescue Watir::Wait::TimeoutError
|
|
22
|
+
pending("No se mostro el popup de cambio de precio")
|
|
23
|
+
end
|
|
24
|
+
@popup = BROWSER.div(:id,'popup-price-difference')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
And /^Elijo el mismo vuelo que cambio de precio$/ do
|
|
28
|
+
@popup.div(:class,'popup-button button-yes').click
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
And /^Verifico que el nuevo precio final sea el correcto$/ do
|
|
32
|
+
BROWSER.div(:id,'ticket').link(:class,'ux-shared-checkout-thanks-more').should visible("Link para popup de detalle de vuelo")
|
|
33
|
+
BROWSER.div(:id,'ticket').link(:class,'ux-shared-checkout-thanks-more').click
|
|
34
|
+
Watir::Wait.until(timeout = 20){BROWSER.div(:id,'popup-booking-details').present?}
|
|
35
|
+
popup_detalle_vuelo = Hpricot.parse(BROWSER.div(:id,'popup-booking-details').html)
|
|
36
|
+
popup_detalle_vuelo.inner_text.empty?.should_not be_true
|
|
37
|
+
@monto_total=(popup_detalle_vuelo/"span#total-price span.amount").inner_text.gsub(/\.|\,/,'').to_i
|
|
38
|
+
@precio_final.value.should be_within(3).of(@monto_total)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
And /^Espero que cargue las preguntas de riesgo$/ do
|
|
42
|
+
Watir::Wait.until(timeout=300){(BROWSER.form(:id,'form').present? and BROWSER.form(:id,'form').div(:class,/item section radio-group group/).present?) or BROWSER.em(:class =>'checkout-id').present?}
|
|
43
|
+
sleep(1)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
And /^se muestran las preguntas de riesgo$/ do
|
|
47
|
+
BROWSER.form(:id,'form').should visible
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
And /^Completo las preguntas de riesgo$/ do
|
|
51
|
+
BROWSER.divs(:class,/item section radio-group group/).to_a.each do |section|
|
|
52
|
+
section.radio(:class,'radio checkout-radio').set()
|
|
53
|
+
end
|
|
54
|
+
BROWSER.link(:id,'submit').click
|
|
55
|
+
end
|
|
@@ -115,7 +115,6 @@ end
|
|
|
115
115
|
|
|
116
116
|
#Se verifica la existencia de otra fecha con precio y se levantan las fechas
|
|
117
117
|
And /^Verifico que exista otra fecha con precio en la matriz de precios$/ do
|
|
118
|
-
debugger
|
|
119
118
|
doc = Hpricot.parse(BROWSER.div(:id,'price-suggestion-matrix').html)
|
|
120
119
|
if (doc/"li.price-suggestion-matrix-price-CHEAPEST").first
|
|
121
120
|
option="price-suggestion-matrix-price-CHEAPEST"
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
When /^Elijo un itinerario y paso a checkout$/ do
|
|
3
3
|
json = @search.get_results_search_service
|
|
4
|
-
|
|
5
|
-
@
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
index = BROWSER.div(:id,'clusters').divs(:class,'cluster')[1].present? ? 1 : 0
|
|
5
|
+
@item_json = json['result']['data']['items'][index]
|
|
6
|
+
@itinerario = ResultsCluster.new(@search.description,Hpricot.parse(BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].html))
|
|
7
|
+
if BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].span(:class,'tickets-left-text').present?
|
|
8
|
+
@ultimos_lugares = BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].span(:class,'tickets-left-text').text.strip.no_accents.match(/(\d)/) ? BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].span(:class,'tickets-left-text').text.strip.no_accents.match(/(\d)/)[0].to_i : 1
|
|
8
9
|
else
|
|
9
10
|
@ultimos_lugares = nil
|
|
10
11
|
end
|
|
11
|
-
BROWSER.div(:id,'clusters').divs(:class,'cluster')[
|
|
12
|
-
BROWSER.div(:id,'clusters').divs(:class,'cluster')[
|
|
12
|
+
BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].radio(:id,"#{index}-outbound-0").click if BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].radio(:id,"#{index}-outbound-0").present?
|
|
13
|
+
BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].radio(:id,"#{index}-inbound-0").click if BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].radio(:id,"#{index}-inbound-0").present?
|
|
13
14
|
begin
|
|
14
|
-
BROWSER.div(:id,'clusters').divs(:class,'cluster')[
|
|
15
|
+
BROWSER.div(:id,'clusters').divs(:class,'cluster')[index].link(:class,'buy btn-buy flights-button').click
|
|
15
16
|
rescue Timeout::Error
|
|
16
17
|
stop_browser(BROWSER)
|
|
17
18
|
end
|
|
@@ -130,13 +131,24 @@ Then /^Completo el formulario de pasajeros$/ do
|
|
|
130
131
|
end
|
|
131
132
|
|
|
132
133
|
And /^Completo el formulario de tarjeta$/ do
|
|
133
|
-
|
|
134
|
+
provider = @item_json ? @item_json["provider"] : data["result"]["data"]["items"][0]["provider"]
|
|
135
|
+
container = BROWSER.fieldset(:id,'payment')
|
|
134
136
|
container.div(:class,"installment-info").text.downcase.no_accents.match(/debito/) ? container.radio(:id,"installment-1").click : container.radio(:id,"installment-0").click
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
if provider == "VOL"
|
|
138
|
+
container.select_list(:id,'card-brand').select("American Express")
|
|
139
|
+
container.text_field(:id,'card-number').set("345678000000007")
|
|
140
|
+
container.text_field(:id,'security-code').set("1234")
|
|
141
|
+
container.text_field(:id,"billing-address-city").set("Y Ciudad") if container.text_field(:id,"billing-address-city").present?
|
|
142
|
+
container.text_field(:id,"billing-address-street").set("Y Calle") if container.text_field(:id,"billing-address-street").present?
|
|
143
|
+
else
|
|
144
|
+
container.select_list(:id,'card-brand').select("Visa")
|
|
145
|
+
container.text_field(:id,'card-number').set("4242424242424242")
|
|
146
|
+
container.text_field(:id,'security-code').set("123")
|
|
147
|
+
container.text_field(:id,"billing-address-city").set("Ciudad") if container.text_field(:id,"billing-address-city").present?
|
|
148
|
+
container.text_field(:id,"billing-address-street").set("Calle") if container.text_field(:id,"billing-address-street").present?
|
|
149
|
+
end
|
|
150
|
+
container.select_list(:id,'card-expiration-month').select('10')
|
|
138
151
|
container.select_list(:id,'card-expiration-year').select(Date.today.year+1)
|
|
139
|
-
container.text_field(:id,'security-code').set("123")
|
|
140
152
|
container.text_field(:id,"other-bank-name").set("/Banco Emisor/") if container.text_field(:id,"other-bank-name").present?
|
|
141
153
|
container.text_field(:id,"owner-name").set("Diego Qa Romero") if container.text_field(:id,"owner-name").present?
|
|
142
154
|
container.select_list(:id,'owner-gender').select_value("MALE") if container.select_list(:id,'owner-gender').present?
|
|
@@ -150,9 +162,7 @@ And /^Completo el formulario de tarjeta$/ do
|
|
|
150
162
|
end
|
|
151
163
|
###############BillingAddressDefinition############################################################################################
|
|
152
164
|
container.select_list(:id,'billing-address-state').options[4].select if container.select_list(:id,"billing-address-state").present?
|
|
153
|
-
container.text_field(:id,"billing-address-city").set("Ciudad") if container.text_field(:id,"billing-address-city").present?
|
|
154
165
|
container.text_field(:id,"billing-address-postal-code").set("12345") if container.text_field(:id,"billing-address-postal-code").present?
|
|
155
|
-
container.text_field(:id,"billing-address-street").set("Calle") if container.text_field(:id,"billing-address-street").present?
|
|
156
166
|
container.text_field(:id,"billing-address-number").set("470") if container.text_field(:id,"billing-address-number").present?
|
|
157
167
|
end
|
|
158
168
|
|
data/features/support/env.rb
CHANGED
|
@@ -42,7 +42,7 @@ def add_cookie(type)
|
|
|
42
42
|
when 'FSM' then "fsm-rest=beta"
|
|
43
43
|
when 'CHAS' then "chas-flight=beta"
|
|
44
44
|
when 'DEBASE' then "flights-dbs-new=flights-dbs-new-b"
|
|
45
|
-
else "landing-f-gui=beta|results-f-gui=beta|chkf-app=beta
|
|
45
|
+
else "landing-f-gui=beta|results-f-gui=beta|chkf-app=beta"
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -4,75 +4,72 @@ class CheckoutCluster
|
|
|
4
4
|
|
|
5
5
|
def initialize(itinerario,html,page = 0)
|
|
6
6
|
self.load_prices((html/"div.price-info"))
|
|
7
|
-
|
|
7
|
+
eval "#{itinerario.downcase}(html)"
|
|
8
8
|
end
|
|
9
9
|
def roundtrip(html)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
self.load_data_from((html/"div#itinerary div[@class='route outbound-route row-col']"))
|
|
11
|
+
self.load_data_to((html/"div#itinerary div[@class='route inbound-route row-col']"))
|
|
12
|
+
end
|
|
13
|
+
def oneway(html)
|
|
14
|
+
self.load_data_from((html/"div#itinerary div[@class='route outbound-route row-col']"))
|
|
15
|
+
@nro_vuelo_vuelta = -1
|
|
16
|
+
end
|
|
17
|
+
def multipledestinations(html)
|
|
18
|
+
self.load_data_from((html/"div#itinerary div[@class='route outbound-route row-col']"))
|
|
19
|
+
self.load_data_to((html/"div#itinerary div[@class='route outbound-route row-col']").last)
|
|
20
|
+
end
|
|
21
|
+
def load_data_from(div_datos)
|
|
22
22
|
@idas = Array.new
|
|
23
23
|
(div_datos/"div.segment").each do |div_datos_ida|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def load_data_to(div_datos)
|
|
24
|
+
origen = (div_datos/"span.cities").first.inner_html.to_s.match("(.*)\<span class=\"separator\"\>\<\/span\>(.*)")[1].strip.no_accents
|
|
25
|
+
destino= (div_datos/"span.cities").last.inner_html.to_s.match("(.*)\<span class=\"separator\"\>\<\/span\>(.*)")[2].strip.no_accents
|
|
26
|
+
origen_iata = (div_datos/"li.outbound a")[0].inner_text.strip
|
|
27
|
+
destino_iata = (div_datos/"li.inbound a")[-1].inner_text.strip
|
|
28
|
+
fecha = (div_datos_ida/"li.outbound span.date")[0] ? (div_datos_ida/"li.outbound span.date")[0].inner_text.strip.no_accents : (div_datos_ida/"li.inbound span.date")[0].inner_text.strip.no_accents
|
|
29
|
+
escala = (div_datos/"span.stops a").inner_text.strip.empty? ? "Sin escalas" : (div_datos/"span.stops a").inner_text.to_i
|
|
30
|
+
aerolinea = Array.new
|
|
31
|
+
i = 0
|
|
32
|
+
(div_datos_ida/"span.airline-logo//img").each do |aer|
|
|
33
|
+
aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
|
|
34
|
+
i = i + 1
|
|
35
|
+
end
|
|
36
|
+
hou_sal_ida = Time.parse((div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)") ? (div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents : (div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents)
|
|
37
|
+
hou_lle_ida = Time.parse((div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)") ? (div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents : (div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents)
|
|
38
|
+
@idas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida)
|
|
39
|
+
end
|
|
40
|
+
@nro_vuelo_ida = 0
|
|
41
|
+
@ida = @idas[@nro_vuelo_ida]
|
|
42
|
+
end
|
|
43
|
+
def load_data_to(div_datos)
|
|
45
44
|
@vueltas = Array.new
|
|
46
45
|
(div_datos/"div.segment").each do |div_datos_vuelta|
|
|
47
46
|
origen = (div_datos/"span.cities").first.inner_html.to_s.match("(.*)\<span class=\"separator\"\>\<\/span\>(.*)")[1].strip.no_accents
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
47
|
+
destino= (div_datos/"span.cities").last.inner_html.to_s.match("(.*)\<span class=\"separator\"\>\<\/span\>(.*)")[2].strip.no_accents
|
|
48
|
+
origen_iata = (div_datos/"li.outbound a")[0].inner_text.strip
|
|
49
|
+
destino_iata = (div_datos/"li.inbound a")[-1].inner_text.strip
|
|
50
|
+
fecha = (div_datos_vuelta/"li.outbound span.date")[0] ? (div_datos_vuelta/"li.outbound span.date")[0].inner_text.strip.no_accents : (div_datos_vuelta/"li.inbound span.date")[0].inner_text.strip.no_accents
|
|
51
|
+
escala = (div_datos/"span.stops a").inner_text.strip.empty? ? "Sin escalas" : (div_datos/"span.stops a").inner_text.to_i
|
|
52
|
+
aerolinea = Array.new
|
|
53
|
+
i = 0
|
|
54
|
+
(div_datos_vuelta/"span.airline-logo//img").each do |aer|
|
|
55
|
+
aerolinea << aer.attributes['src'].match(/(..).png/)[1].upcase
|
|
56
|
+
i = i + 1
|
|
57
|
+
end
|
|
58
|
+
hou_sal_ida = Time.parse((div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)") ? (div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents : (div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents)
|
|
59
|
+
hou_lle_ida = Time.parse((div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)") ? (div_datos/"li.outbound").last.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents : (div_datos/"li.outbound").first.inner_html.to_s.match("(.*)\<\/span\>(.*)hs(.*)\<a(.*)")[2].strip.no_accents)
|
|
60
|
+
@vueltas << DataCluster.new(origen,destino,fecha, aerolinea, escala_to_i(escala),origen_iata,destino_iata,hou_sal_ida,hou_lle_ida)
|
|
62
61
|
end
|
|
63
62
|
@nro_vuelo_vuelta = 0
|
|
64
63
|
@vuelta = @vueltas[@nro_vuelo_vuelta]
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def load_prices(p_html)
|
|
68
|
-
|
|
64
|
+
end
|
|
65
|
+
def load_prices(p_html)
|
|
69
66
|
@tarifas = Hash.new
|
|
70
67
|
if (p_html/"span#secondary-currency").empty?
|
|
71
68
|
@tarifas['tarifa_adulto'] = Price.new((p_html/"li.adult-price span[@class='price-currency'] span.currency").first.inner_text.strip + " " + (p_html/"li.adult-price span[@class='price-currency'] span.amount").first.inner_text.strip)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
else
|
|
70
|
+
@tarifas['tarifa_adulto'] = Price.new((p_html/"div.adult-price-conversion span#local-currency span.code").first.inner_text.strip + " " + (p_html/"div.adult-price-conversion span#local-currency span.amount").first.inner_text.strip)
|
|
71
|
+
end
|
|
72
|
+
|
|
76
73
|
adt = (p_html/"li.adult_fare").select{|li| li.inner_text.no_accents.downcase =~ /adulto|adult/}.first
|
|
77
74
|
@tarifas['adt'] = adt ? Price.new((adt/"span.currency").first.inner_text.strip + " " + (adt/"span.amount").first.inner_text.strip) : Price.new("$ 0",true)
|
|
78
75
|
|
|
@@ -98,8 +95,8 @@ class CheckoutCluster
|
|
|
98
95
|
@tarifas['total'] = (p_html/"li.#{campo} span.currency").empty? ? Price.new("$ 0",true) : Price.new((p_html/"li.#{campo} span.currency").first.inner_text.strip + " " + (p_html/"li.#{campo} span.amount").first.inner_text.strip)
|
|
99
96
|
end
|
|
100
97
|
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
def validarSumaDesgloce(linea = "total|tarifa_adulto|tarifa_adulto_dolar")
|
|
99
|
+
|
|
103
100
|
sumaTarifas = 0
|
|
104
101
|
@tarifas.each_pair do |key,tarifa|
|
|
105
102
|
if key !~ /#{linea}/
|
|
@@ -109,6 +106,6 @@ class CheckoutCluster
|
|
|
109
106
|
|
|
110
107
|
return sumaTarifas.to_i
|
|
111
108
|
|
|
112
|
-
|
|
109
|
+
end
|
|
113
110
|
|
|
114
111
|
end
|
|
@@ -139,24 +139,16 @@ end
|
|
|
139
139
|
def set_language(site)
|
|
140
140
|
begin
|
|
141
141
|
if site=="US"
|
|
142
|
-
if BROWSER.li(:class,'nibbler-common-header-language
|
|
143
|
-
BROWSER.li(:class,'nibbler-common-header-language
|
|
144
|
-
BROWSER.
|
|
145
|
-
end
|
|
146
|
-
if BROWSER.li(:class,'ux-common-header-language nibbler-user').image(:src,/es.png/).present?
|
|
147
|
-
BROWSER.li(:class,'ux-common-header-language nibbler-user').links[0].click
|
|
148
|
-
BROWSER.div(:class,'popup-languages nibbler-header-popup big').image(:src,/en.png/).click
|
|
142
|
+
if BROWSER.li(:class,'nibbler-common-header-language').image(:src,/es.png/).present?
|
|
143
|
+
BROWSER.li(:class,'nibbler-common-header-language').links[0].click
|
|
144
|
+
BROWSER.execute_script("javascript:void($(\".nibbler-common-header-language-popup a\").click());")
|
|
149
145
|
end
|
|
150
146
|
end
|
|
151
147
|
rescue Selenium::WebDriver::Error::UnknownError
|
|
152
148
|
if site=="US"
|
|
153
|
-
if BROWSER.li(:class,'nibbler-common-header-language
|
|
154
|
-
BROWSER.li(:class,'nibbler-common-header-language
|
|
155
|
-
BROWSER.
|
|
156
|
-
end
|
|
157
|
-
if BROWSER.li(:class,'ux-common-header-language nibbler-user').image(:src,/es.png/).present?
|
|
158
|
-
BROWSER.li(:class,'ux-common-header-language nibbler-user').links[0].click
|
|
159
|
-
BROWSER.div(:class,'popup-languages nibbler-header-popup big').image(:src,/en.png/).click
|
|
149
|
+
if BROWSER.li(:class,'nibbler-common-header-language').image(:src,/es.png/).present?
|
|
150
|
+
BROWSER.li(:class,'nibbler-common-header-language').links[0].click
|
|
151
|
+
BROWSER.execute_script("javascript:void($(\".nibbler-common-header-language-popup a\").click());")
|
|
160
152
|
end
|
|
161
153
|
end
|
|
162
154
|
rescue Timeout::Error
|
|
@@ -15,10 +15,10 @@ Característica: checkout.cupones
|
|
|
15
15
|
Y Completo los datos de resolucion AFIP
|
|
16
16
|
Y Completo los datos de contacto
|
|
17
17
|
Y Si pide factura fiscal, Completo los campos de factura fiscal
|
|
18
|
-
Y Completo con un cupon de descuento
|
|
19
|
-
Y
|
|
20
|
-
|
|
21
|
-
Y
|
|
18
|
+
Y Completo con un cupon de descuento con numero "XXXXXXXXXX"
|
|
19
|
+
Y Verifico el mensaje de cupon invalido
|
|
20
|
+
Y Si permite cupon de descuento, Completo con un cupon de descuento con numero "H82IRUHC1E"
|
|
21
|
+
Y Verifico el mensaje de cupon valido
|
|
22
22
|
Y Realizo la compra
|
|
23
23
|
Entonces Verifico que dirija a la pagina de gracias
|
|
24
24
|
Entonces Si el checkout me pide mas datos de tarjeta, lleno los datos de tarjeta adicionales
|
|
@@ -16,7 +16,7 @@ Característica: checkout.low_cost
|
|
|
16
16
|
Y Verifico el pixel de Efrontier
|
|
17
17
|
Y Verifico el pixel de trackeame en checkout
|
|
18
18
|
Y Verifico el tag de remarketing de facebook
|
|
19
|
-
|
|
19
|
+
Entonces verifico que los precios de las cuotas se muestran correctamente
|
|
20
20
|
Y Verifico que se muestren la caja de clientes felices
|
|
21
21
|
Entonces Completo el formulario de pasajeros
|
|
22
22
|
Y Completo el formulario de tarjeta
|
|
@@ -32,9 +32,6 @@ Característica: checkout.low_cost
|
|
|
32
32
|
Y Verifico el pixel de trackeame en gracias
|
|
33
33
|
Y Verifico el pixel de Efrontier
|
|
34
34
|
Y Verifico el segundo tag de google en resultado de checkout
|
|
35
|
-
#Y Si cumple para pruebas en fenix, Levanto los datos del vuelo
|
|
36
|
-
#Cuando Si cumple para pruebas en fenix, Inicializo las pruebas en fenix
|
|
37
|
-
#Entonces Si cumple para pruebas en fenix, Verifico que las pruebas en fenix esten correctas
|
|
38
35
|
|
|
39
36
|
@br
|
|
40
37
|
Ejemplos:
|
|
@@ -17,14 +17,17 @@ Característica: checkout.price_difference
|
|
|
17
17
|
Y Si pide factura fiscal, Completo los campos de factura fiscal
|
|
18
18
|
Y completo el mail de contacto para forzar cambio de precio
|
|
19
19
|
Y Realizo la compra
|
|
20
|
+
Cuando Espero que cargue el popup de cambio de precio
|
|
21
|
+
Entonces Verifico el popup de cambio de precio
|
|
22
|
+
Y Elijo el mismo vuelo que cambio de precio
|
|
23
|
+
Y Espero que cargue las preguntas de riesgo
|
|
24
|
+
Y Si se muestran las preguntas de riesgo, Completo las preguntas de riesgo
|
|
20
25
|
Entonces Verifico que dirija a la pagina de gracias
|
|
21
26
|
Entonces Si el checkout me pide mas datos de tarjeta, lleno los datos de tarjeta adicionales
|
|
22
27
|
Entonces Si se muestra el popup de no disponibilidad, elijo otro vuelo
|
|
23
28
|
Entonces Si debo completar de vuelta el formulario, completo el formulario
|
|
24
29
|
Y Verifico que genere id cro
|
|
25
|
-
Y
|
|
26
|
-
#Cuando Si cumple para pruebas en fenix, Inicializo las pruebas en fenix
|
|
27
|
-
#Entonces Si cumple para pruebas en fenix, Verifico que las pruebas en fenix esten correctas
|
|
30
|
+
Y Verifico que el nuevo precio final sea el correcto
|
|
28
31
|
|
|
29
32
|
@ar
|
|
30
33
|
@roundtrip
|
|
@@ -85,140 +88,4 @@ Característica: checkout.price_difference
|
|
|
85
88
|
@multipledestinations
|
|
86
89
|
Ejemplos:
|
|
87
90
|
|pais|tipo|cabotage|
|
|
88
|
-
|US |multipledestinations|nil|
|
|
89
|
-
@uy
|
|
90
|
-
@roundtrip
|
|
91
|
-
Ejemplos:
|
|
92
|
-
|pais|tipo|cabotage|
|
|
93
|
-
|UY |roundtrip|nil|
|
|
94
|
-
@uy
|
|
95
|
-
@oneway
|
|
96
|
-
Ejemplos:
|
|
97
|
-
|pais|tipo|cabotage|
|
|
98
|
-
|UY |oneway|nil|
|
|
99
|
-
@uy
|
|
100
|
-
@multipledestinations
|
|
101
|
-
Ejemplos:
|
|
102
|
-
|pais|tipo|cabotage|
|
|
103
|
-
|UY |multipledestinations|nil|
|
|
104
|
-
@pe
|
|
105
|
-
@roundtrip
|
|
106
|
-
Ejemplos:
|
|
107
|
-
|pais|tipo|cabotage|
|
|
108
|
-
|PE |roundtrip|nil|
|
|
109
|
-
@pe
|
|
110
|
-
@oneway
|
|
111
|
-
Ejemplos:
|
|
112
|
-
|pais|tipo|cabotage|
|
|
113
|
-
|PE |oneway|nil|
|
|
114
|
-
@pe
|
|
115
|
-
@multipledestinations
|
|
116
|
-
Ejemplos:
|
|
117
|
-
|pais|tipo|cabotage|
|
|
118
|
-
|PE |multipledestinations|nil|
|
|
119
|
-
@co
|
|
120
|
-
@roundtrip
|
|
121
|
-
Ejemplos:
|
|
122
|
-
|pais|tipo|cabotage|
|
|
123
|
-
|CO |roundtrip|nil|
|
|
124
|
-
@co
|
|
125
|
-
@oneway
|
|
126
|
-
Ejemplos:
|
|
127
|
-
|pais|tipo|cabotage|
|
|
128
|
-
|CO |oneway|nil|
|
|
129
|
-
@co
|
|
130
|
-
@multipledestinations
|
|
131
|
-
Ejemplos:
|
|
132
|
-
|pais|tipo|cabotage|
|
|
133
|
-
|CO |multipledestinations|nil|
|
|
134
|
-
@cr
|
|
135
|
-
@roundtrip
|
|
136
|
-
Ejemplos:
|
|
137
|
-
|pais|tipo|cabotage|
|
|
138
|
-
|CR |roundtrip|nil|
|
|
139
|
-
@cr
|
|
140
|
-
@oneway
|
|
141
|
-
Ejemplos:
|
|
142
|
-
|pais|tipo|cabotage|
|
|
143
|
-
|CR |oneway|nil|
|
|
144
|
-
@cr
|
|
145
|
-
@multipledestinations
|
|
146
|
-
Ejemplos:
|
|
147
|
-
|pais|tipo|cabotage|
|
|
148
|
-
|CR |multipledestinations|nil|
|
|
149
|
-
@ve
|
|
150
|
-
@roundtrip
|
|
151
|
-
Ejemplos:
|
|
152
|
-
|pais|tipo|cabotage|
|
|
153
|
-
|VE |roundtrip|nil|
|
|
154
|
-
@ve
|
|
155
|
-
@oneway
|
|
156
|
-
Ejemplos:
|
|
157
|
-
|pais|tipo|cabotage|
|
|
158
|
-
|VE |oneway|nil|
|
|
159
|
-
@ve
|
|
160
|
-
@multipledestinations
|
|
161
|
-
Ejemplos:
|
|
162
|
-
|pais|tipo|cabotage|
|
|
163
|
-
|VE |multipledestinations|nil|
|
|
164
|
-
@pa
|
|
165
|
-
@roundtrip
|
|
166
|
-
Ejemplos:
|
|
167
|
-
|pais|tipo|cabotage|
|
|
168
|
-
|PA |roundtrip|nil|
|
|
169
|
-
@pa
|
|
170
|
-
@oneway
|
|
171
|
-
Ejemplos:
|
|
172
|
-
|pais|tipo|cabotage|
|
|
173
|
-
|PA |oneway|nil|
|
|
174
|
-
@pa
|
|
175
|
-
@multipledestinations
|
|
176
|
-
Ejemplos:
|
|
177
|
-
|pais|tipo|cabotage|
|
|
178
|
-
|PA |multipledestinations|nil|
|
|
179
|
-
@ec
|
|
180
|
-
@roundtrip
|
|
181
|
-
Ejemplos:
|
|
182
|
-
|pais|tipo|cabotage|
|
|
183
|
-
|EC |roundtrip|nil|
|
|
184
|
-
@ec
|
|
185
|
-
@oneway
|
|
186
|
-
Ejemplos:
|
|
187
|
-
|pais|tipo|cabotage|
|
|
188
|
-
|EC |oneway|nil|
|
|
189
|
-
@ec
|
|
190
|
-
@multipledestinations
|
|
191
|
-
Ejemplos:
|
|
192
|
-
|pais|tipo|cabotage|
|
|
193
|
-
|EC |multipledestinations|nil|
|
|
194
|
-
@cl
|
|
195
|
-
@roundtrip
|
|
196
|
-
Ejemplos:
|
|
197
|
-
|pais|tipo|cabotage|
|
|
198
|
-
|CL |roundtrip|nil|
|
|
199
|
-
@cl
|
|
200
|
-
@oneway
|
|
201
|
-
Ejemplos:
|
|
202
|
-
|pais|tipo|cabotage|
|
|
203
|
-
|CL |oneway|nil|
|
|
204
|
-
@cl
|
|
205
|
-
@multipledestinations
|
|
206
|
-
Ejemplos:
|
|
207
|
-
|pais|tipo|cabotage|
|
|
208
|
-
|CL |multipledestinations|nil|
|
|
209
|
-
@pr
|
|
210
|
-
@roundtrip
|
|
211
|
-
Ejemplos:
|
|
212
|
-
|pais|tipo|cabotage|
|
|
213
|
-
|PR |roundtrip|nil|
|
|
214
|
-
@pr
|
|
215
|
-
@oneway
|
|
216
|
-
Ejemplos:
|
|
217
|
-
|pais|tipo|cabotage|
|
|
218
|
-
|PR |oneway|nil|
|
|
219
|
-
@pr
|
|
220
|
-
@multipledestinations
|
|
221
|
-
Ejemplos:
|
|
222
|
-
|pais|tipo|cabotage|
|
|
223
|
-
|PR |multipledestinations|nil|
|
|
224
|
-
|
|
91
|
+
|US |multipledestinations|nil|
|
|
@@ -13,7 +13,6 @@ Característica: checkout.providers
|
|
|
13
13
|
Entonces Verifico que traiga resultados
|
|
14
14
|
Cuando Elijo un itinerario y paso a checkout
|
|
15
15
|
Cuando Verifico que ingrese al checkout
|
|
16
|
-
#Y Verifico que se muestre el banner de cancelacion
|
|
17
16
|
Y Valido los valores del desglose del checkout
|
|
18
17
|
Y Verifico el pixel de Efrontier
|
|
19
18
|
Y Verifico el pixel de trackeame en checkout
|
|
@@ -36,10 +35,7 @@ Característica: checkout.providers
|
|
|
36
35
|
Y Verifico el segundo tag de google en resultado de checkout
|
|
37
36
|
Y Verifico el link de mi despegar
|
|
38
37
|
Y Levanto los datos del vuelo
|
|
39
|
-
|
|
40
|
-
#Cuando Si cumple para pruebas en fenix, Inicializo las pruebas en fenix
|
|
41
|
-
#Entonces Si cumple para pruebas en fenix, Verifico que las pruebas en fenix esten correctas
|
|
42
|
-
|
|
38
|
+
|
|
43
39
|
@us
|
|
44
40
|
Ejemplos:
|
|
45
41
|
|pais|tipo|cabotage|prov|from|to|date_from|date_to|
|
|
@@ -53,17 +49,4 @@ Característica: checkout.providers
|
|
|
53
49
|
|MX|roundtrip|true|VOL|MEX|MTY|2014-02-28|2014-03-17|
|
|
54
50
|
|MX|oneway|true|VOL|MEX|GDL|2014-03-28|2014-04-17|
|
|
55
51
|
|MX|roundtrip|true|VOL|MEX|CUN|2014-03-01|2014-03-15|
|
|
56
|
-
|MX|oneway|true|VOL|MEX|CUN|2014-02-19|2014-02-27|
|
|
57
|
-
@br
|
|
58
|
-
Ejemplos:
|
|
59
|
-
|pais|tipo|cabotage|prov|from|to|
|
|
60
|
-
|BR|roundtrip|nil|GDS|RIO|BUE|
|
|
61
|
-
|BR|oneway|nil|GDS|SAO|BUE|
|
|
62
|
-
|BR|roundtrip|nil|GDS|BUE|RIO|
|
|
63
|
-
|BR|oneway|nil|GDS|MIA|RIO|
|
|
64
|
-
|BR|roundtrip|nil|GDS|SAO|MIA|
|
|
65
|
-
|BR|oneway|nil|GDS|SAO|WAS|
|
|
66
|
-
|BR|roundtrip|nil|GDS|SCL|RIO|
|
|
67
|
-
|BR|oneway|nil|GDS|SAO|BUE|
|
|
68
|
-
|BR|roundtrip|nil|GDS|SAO|BCN|
|
|
69
|
-
|BR|oneway|nil|GDS|BCN|RIO|
|
|
52
|
+
|MX|oneway|true|VOL|MEX|CUN|2014-02-19|2014-02-27|
|
|
@@ -8,6 +8,9 @@ Característica: checkout.seguros
|
|
|
8
8
|
Cuando Ingreso a la pagina de resultados en "<pais>" para una busqueda "<tipo>" con origen "<from>" y destino "<to>" de tipo "<cabotage>"
|
|
9
9
|
Cuando Espero que termine de cargar
|
|
10
10
|
Entonces Verifico que traiga resultados
|
|
11
|
+
Cuando Seteo el proveedor "<prov>"
|
|
12
|
+
Cuando Espero que termine de cargar
|
|
13
|
+
Entonces Verifico que traiga resultados
|
|
11
14
|
Cuando Elijo un itinerario y paso a checkout
|
|
12
15
|
Cuando Verifico que ingrese al checkout
|
|
13
16
|
Cuando Se encuentra la opcion de cobertura
|
|
@@ -22,6 +25,7 @@ Característica: checkout.seguros
|
|
|
22
25
|
Y Elijo "<seguro>" si quiero cobertura
|
|
23
26
|
Entonces Completo el formulario de pasajeros
|
|
24
27
|
Y Completo el formulario de tarjeta
|
|
28
|
+
Y Si pide factura fiscal, Completo los campos de factura fiscal
|
|
25
29
|
Y Completo los datos de contacto
|
|
26
30
|
Y Realizo la compra
|
|
27
31
|
Entonces Verifico que dirija a la pagina de gracias
|
|
@@ -34,4 +38,19 @@ Característica: checkout.seguros
|
|
|
34
38
|
Ejemplos:
|
|
35
39
|
|pais|prov|tipo|seguro|from|to|cabotage|
|
|
36
40
|
|MX|GDS|roundtrip|chequear|BUE|MIA|nil|
|
|
37
|
-
|MX|GDS|roundtrip|no_chequear|BUE|BCN|nil|
|
|
41
|
+
|MX|GDS|roundtrip|no_chequear|BUE|BCN|nil|
|
|
42
|
+
@ar
|
|
43
|
+
Ejemplos:
|
|
44
|
+
|pais|prov|tipo|seguro|from|to|cabotage|
|
|
45
|
+
|AR|GDS|roundtrip|chequear|BUE|MIA|nil|
|
|
46
|
+
|AR|GDS|roundtrip|no_chequear|BUE|BCN|nil|
|
|
47
|
+
@br
|
|
48
|
+
Ejemplos:
|
|
49
|
+
|pais|prov|tipo|seguro|from|to|cabotage|
|
|
50
|
+
|BR|GDS|roundtrip|chequear|BUE|MIA|nil|
|
|
51
|
+
|BR|GDS|roundtrip|no_chequear|BUE|BCN|nil|
|
|
52
|
+
@us
|
|
53
|
+
Ejemplos:
|
|
54
|
+
|pais|prov|tipo|seguro|from|to|cabotage|
|
|
55
|
+
|US|GDS|roundtrip|chequear|BUE|MIA|nil|
|
|
56
|
+
|US|GDS|roundtrip|no_chequear|BUE|BCN|nil|
|
|
@@ -31,9 +31,8 @@ Característica: search.searches
|
|
|
31
31
|
Cuando Verifico que ingrese al checkout
|
|
32
32
|
Entonces Verifico que la pagina no rompa
|
|
33
33
|
Y Verifico si se muestran los beneficios en checkout
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
#Y Verifico que se muestren la caja de clientes felices
|
|
34
|
+
Y Verifico el banner de ultimos lugares en checkout
|
|
35
|
+
Y Verifico que se muestren la caja de clientes felices
|
|
37
36
|
|
|
38
37
|
|
|
39
38
|
@ar
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
gem.require_paths = ["lib"] #Usualmente es solo lib -> ["lib"]
|
|
17
17
|
|
|
18
|
-
gem.version = '2.
|
|
18
|
+
gem.version = '2.5.0' #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
|
@@ -16861,13 +16861,12 @@ tasks:
|
|
|
16861
16861
|
recipients:
|
|
16862
16862
|
- estebanldh@gmail.com
|
|
16863
16863
|
- nsimean@despegar.com
|
|
16864
|
-
- name: checkout.
|
|
16864
|
+
- name: checkout.seguros
|
|
16865
16865
|
class_name: Henry::Task::CucumberTask
|
|
16866
16866
|
options:
|
|
16867
16867
|
tags:
|
|
16868
16868
|
- checkout
|
|
16869
|
-
-
|
|
16870
|
-
- br
|
|
16869
|
+
- seguros
|
|
16871
16870
|
expand: true
|
|
16872
16871
|
no-source: true
|
|
16873
16872
|
reports:
|
|
@@ -16876,12 +16875,13 @@ tasks:
|
|
|
16876
16875
|
recipients:
|
|
16877
16876
|
- estebanldh@gmail.com
|
|
16878
16877
|
- nsimean@despegar.com
|
|
16879
|
-
- name: checkout.seguros
|
|
16878
|
+
- name: checkout.seguros.mx
|
|
16880
16879
|
class_name: Henry::Task::CucumberTask
|
|
16881
16880
|
options:
|
|
16882
16881
|
tags:
|
|
16883
16882
|
- checkout
|
|
16884
16883
|
- seguros
|
|
16884
|
+
- mx
|
|
16885
16885
|
expand: true
|
|
16886
16886
|
no-source: true
|
|
16887
16887
|
reports:
|
|
@@ -16890,13 +16890,43 @@ tasks:
|
|
|
16890
16890
|
recipients:
|
|
16891
16891
|
- estebanldh@gmail.com
|
|
16892
16892
|
- nsimean@despegar.com
|
|
16893
|
-
- name: checkout.seguros.
|
|
16893
|
+
- name: checkout.seguros.ar
|
|
16894
16894
|
class_name: Henry::Task::CucumberTask
|
|
16895
16895
|
options:
|
|
16896
16896
|
tags:
|
|
16897
16897
|
- checkout
|
|
16898
16898
|
- seguros
|
|
16899
|
-
-
|
|
16899
|
+
- ar
|
|
16900
|
+
expand: true
|
|
16901
|
+
no-source: true
|
|
16902
|
+
reports:
|
|
16903
|
+
- format: html
|
|
16904
|
+
name: ${DATE}_${TASK_NAME}.html
|
|
16905
|
+
recipients:
|
|
16906
|
+
- estebanldh@gmail.com
|
|
16907
|
+
- nsimean@despegar.com
|
|
16908
|
+
- name: checkout.seguros.br
|
|
16909
|
+
class_name: Henry::Task::CucumberTask
|
|
16910
|
+
options:
|
|
16911
|
+
tags:
|
|
16912
|
+
- checkout
|
|
16913
|
+
- seguros
|
|
16914
|
+
- br
|
|
16915
|
+
expand: true
|
|
16916
|
+
no-source: true
|
|
16917
|
+
reports:
|
|
16918
|
+
- format: html
|
|
16919
|
+
name: ${DATE}_${TASK_NAME}.html
|
|
16920
|
+
recipients:
|
|
16921
|
+
- estebanldh@gmail.com
|
|
16922
|
+
- nsimean@despegar.com
|
|
16923
|
+
- name: checkout.seguros.us
|
|
16924
|
+
class_name: Henry::Task::CucumberTask
|
|
16925
|
+
options:
|
|
16926
|
+
tags:
|
|
16927
|
+
- checkout
|
|
16928
|
+
- seguros
|
|
16929
|
+
- us
|
|
16900
16930
|
expand: true
|
|
16901
16931
|
no-source: true
|
|
16902
16932
|
reports:
|
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.
|
|
4
|
+
version: 2.5.0
|
|
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-
|
|
11
|
+
date: 2014-06-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: henry-container
|