flights_gui_tests 0.0.1

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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/features/data/host.yml +78 -0
  4. data/features/data/miles.yml +216 -0
  5. data/features/data/sites.yml +44 -0
  6. data/features/data/tag_microsoft.yml +68 -0
  7. data/features/step_definitions/checkout/checkout_steps.rb +24 -0
  8. data/features/step_definitions/checkout/form_steps.rb +20 -0
  9. data/features/step_definitions/checkout/load_steps.rb +36 -0
  10. data/features/step_definitions/conditional_steps.rb +12 -0
  11. data/features/step_definitions/cookies_steps.rb +8 -0
  12. data/features/step_definitions/flights_tracker/flights_tracker_steps.rb +30 -0
  13. data/features/step_definitions/landing/itineraries_steps.rb +75 -0
  14. data/features/step_definitions/landing/landing_steps.rb +59 -0
  15. data/features/step_definitions/landing/load_steps.rb +30 -0
  16. data/features/step_definitions/page_steps.rb +18 -0
  17. data/features/step_definitions/results/basefare_steps.rb +65 -0
  18. data/features/step_definitions/results/desambiguation_steps.rb +144 -0
  19. data/features/step_definitions/results/errors_steps.rb +23 -0
  20. data/features/step_definitions/results/filters_steps.rb +301 -0
  21. data/features/step_definitions/results/load_steps.rb +52 -0
  22. data/features/step_definitions/results/matrix_steps.rb +213 -0
  23. data/features/step_definitions/results/order_steps.rb +49 -0
  24. data/features/step_definitions/results/pagination_steps.rb +29 -0
  25. data/features/step_definitions/results/recommendation_steps.rb +75 -0
  26. data/features/step_definitions/results/results_steps.rb +40 -0
  27. data/features/step_definitions/results/reviews_steps.rb +16 -0
  28. data/features/step_definitions/results/tags_steps.rb +102 -0
  29. data/features/step_definitions/results/wish_list_steps.rb +114 -0
  30. data/features/step_definitions/thanks/load_steps.rb +10 -0
  31. data/features/step_definitions/thanks/thanks_steps.rb +12 -0
  32. data/features/support/classes/clusters/checkout_cluster.rb +117 -0
  33. data/features/support/classes/clusters/data/data.rb +33 -0
  34. data/features/support/classes/clusters/results/details_cluster.rb +36 -0
  35. data/features/support/classes/clusters/results/landing_cluster.rb +29 -0
  36. data/features/support/classes/clusters/results/render_cluster.rb +83 -0
  37. data/features/support/classes/clusters/results_cluster.rb +171 -0
  38. data/features/support/classes/date.rb +26 -0
  39. data/features/support/classes/element.rb +23 -0
  40. data/features/support/classes/price.rb +66 -0
  41. data/features/support/classes/process_manager.rb +104 -0
  42. data/features/support/classes/string.rb +16 -0
  43. data/features/support/env.rb +94 -0
  44. data/features/support/hooks.rb +20 -0
  45. data/features/support/matchers.rb +108 -0
  46. data/features/support/modules/accessor.rb +26 -0
  47. data/features/support/modules/browser.rb +80 -0
  48. data/features/support/modules/checkout/datos_de_facturacion.rb +64 -0
  49. data/features/support/modules/checkout/informacion_de_contacto.rb +30 -0
  50. data/features/support/modules/checkout/pasajeros.rb +71 -0
  51. data/features/support/modules/checkout/tarjeta.rb +71 -0
  52. data/features/support/modules/element.rb +12 -0
  53. data/features/support/modules/helpers.rb +64 -0
  54. data/features/support/modules/pages/cookies.rb +33 -0
  55. data/features/support/modules/pages/tags.rb +27 -0
  56. data/features/support/modules/results/filters.rb +37 -0
  57. data/features/support/modules/results/itineraries/bussines.rb +17 -0
  58. data/features/support/modules/results/itineraries/data.rb +25 -0
  59. data/features/support/modules/results/itineraries/details.rb +80 -0
  60. data/features/support/modules/results/itineraries/miles.rb +64 -0
  61. data/features/support/modules/results/itineraries/payments.rb +27 -0
  62. data/features/support/modules/results/matrix/matrix_airline.rb +52 -0
  63. data/features/support/modules/results/matrix/matrix_fare_chart.rb +21 -0
  64. data/features/support/modules/results/matrix/matrix_price.rb +18 -0
  65. data/features/support/modules/results/recommendation.rb +29 -0
  66. data/features/support/modules/results/search_params.rb +21 -0
  67. data/features/support/modules/results/wish_list.rb +33 -0
  68. data/features/support/pages/all_pages.rb +95 -0
  69. data/features/support/pages/checkout/checkout_page.rb +45 -0
  70. data/features/support/pages/checkout/popup_results_page.rb +39 -0
  71. data/features/support/pages/flights_tracker/search_page.rb +54 -0
  72. data/features/support/pages/landing/search_page.rb +94 -0
  73. data/features/support/pages/results/desambiguation_airports_page.rb +16 -0
  74. data/features/support/pages/results/desambiguation_city_page.rb +20 -0
  75. data/features/support/pages/results/search_page.rb +101 -0
  76. data/features/support/pages/thanks/thanks_page.rb +7 -0
  77. data/features/tests/checkout/book_ok.feature +209 -0
  78. data/features/tests/flights_tracker/search.feature +65 -0
  79. data/features/tests/landing/search.feature +152 -0
  80. data/features/tests/results/basefare.feature +90 -0
  81. data/features/tests/results/desambiguation/airports.feature +89 -0
  82. data/features/tests/results/desambiguation/city.feature +87 -0
  83. data/features/tests/results/errors.feature +198 -0
  84. data/features/tests/results/filters.feature +113 -0
  85. data/features/tests/results/itineraries.feature +93 -0
  86. data/features/tests/results/matrix/matrix_airlines.feature +46 -0
  87. data/features/tests/results/matrix/matrix_fare_chart.feature +41 -0
  88. data/features/tests/results/matrix/matrix_price.feature +41 -0
  89. data/features/tests/results/orders.feature +89 -0
  90. data/features/tests/results/pagination.feature +74 -0
  91. data/features/tests/results/recommendation.feature +111 -0
  92. data/features/tests/results/reviews_airlines.feature +84 -0
  93. data/features/tests/results/search.feature +209 -0
  94. data/features/tests/results/wish_list.feature +55 -0
  95. data/flights_gui_tests.gemspec +34 -0
  96. data/henry-context.yml +4938 -0
  97. metadata +306 -0
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ Entonces(/^verifico el ordenamiento premium economy$/) do
3
+ value=@page.recuperar_valor_abtesting("defaultSortingStrategy")
4
+ itin=@page.itinerarios_elements[2]
5
+ if value.to_i > 60 and @page.cluster_bussines_element.present?
6
+ puts itin.class_name
7
+ itin.class_name.should equal("cluster newCluster not-economy-cluster")
8
+ end
9
+ end
10
+
11
+ Cuando(/^ordeno por "(.*)"$/) do |valor_orden|
12
+ @page.orden_element.select_value(valor_orden)
13
+ end
14
+
15
+ Entonces(/^levanto los datos de los clusters "(.*?)"$/) do |arg1|
16
+ @page.cargar_itinerarios
17
+ end
18
+
19
+ Entonces(/^verifico ordenamiento STOPSCOUNT_ASCENDING$/) do
20
+ after = @page.datos_de_itinerarios.first
21
+ @page.datos_de_itinerarios.each do |cluster|
22
+ after.total_escalas.last.should_not es_mayor_que(cluster.total_escalas.last)
23
+ after = cluster
24
+ end
25
+ end
26
+
27
+ Entonces(/^verifico ordenamiento TOTALFARE_ASCENDING$/) do
28
+ after = @page.datos_de_itinerarios.first.tarifas['total']
29
+ @page.datos_de_itinerarios.each do |cluster|
30
+ after.value.should_not es_mayor_que(cluster.tarifas['total'].value)
31
+ after = cluster.tarifas['total']
32
+ end
33
+ end
34
+
35
+ Entonces(/^verifico ordenamiento DURATION_ASCENDING$/) do
36
+ after = @page.datos_de_itinerarios.first.duracion
37
+ @page.datos_de_itinerarios.each do |cluster|
38
+ after.should_not es_mayor_que(cluster.duracion)
39
+ after = cluster.duracion
40
+ end
41
+ end
42
+
43
+ Entonces(/^verifico ordenamiento FARE_ASCENDING$/) do
44
+ after = @page.datos_de_itinerarios.first.tarifas['tarifa_adulto']
45
+ @page.datos_de_itinerarios.each do |cluster|
46
+ after.value.should_not es_mayor_que(cluster.tarifas['tarifa_adulto'].value)
47
+ after = cluster.tarifas['tarifa_adulto']
48
+ end
49
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding : utf-8 -*-
2
+ Cuando(/^vuelvo a la primer pagina en resultados$/) do
3
+ @page.actualizar_informacion_element.when_not_visible(timeout=60)
4
+ while @page.pagina_previa_element.present?
5
+ @page.pagina_previa_element.links[0].click
6
+ begin
7
+ @page.actualizar_informacion_element.when_not_visible(timeout=60)
8
+ rescue Timeout::Error, Watir::Wait::TimeoutError
9
+ pending("Timeout al volver a la primer pagina")
10
+ end
11
+ end
12
+ sleep(1)
13
+ end
14
+
15
+ Entonces(/^verifico que funcione el paginado correctamente en resultados$/) do
16
+ iterator = 2
17
+ while(@page.pagina_previa_element.present? and iterator < 7)do
18
+ @page.pagina_previa_element.links[0].click
19
+ step "espero que termine de cargar la pagina de resultados"
20
+ iterator += 1
21
+ end
22
+ end
23
+
24
+ Entonces(/^verifico que el paginado no traiga mas de "(.*?)" paginas en resultados$/) do |arg1|
25
+ doc = Hpricot.parse(@page.html)
26
+ if (doc/"li.page ")[-2]
27
+ ((doc/"li.page ")[-2].inner_text.to_i <= arg1.to_i).should be_true
28
+ end
29
+ end
@@ -0,0 +1,75 @@
1
+ # encoding: utf-8
2
+ Entonces(/^verifico que exista el icono de enviar recomendacion$/) do
3
+ @page.icono_mail_element.should visible
4
+ end
5
+
6
+ Cuando(/^hago click en el icono de enviar recomendacion$/) do
7
+ @page.primera_opcion_ida_element.click if @page.primera_opcion_ida_element.present?
8
+ @page.primera_opcion_vuelta_element.click if @page.primera_opcion_vuelta_element.present?
9
+ @page.icono_mail_element.click
10
+ end
11
+
12
+ Entonces(/^verifico que cargue el contenido del popup$/) do
13
+ @page.popup_vuelos_element.when_visible()
14
+ end
15
+
16
+ Entonces(/^verifico que el asunto sea correcto "(.*?)"$/) do |arg1|
17
+ @page.asunto_recomendacion_element.placeholder.strip.should match(arg1)
18
+ end
19
+
20
+ Entonces(/^verifico que el comentario por default sea correcto "(.*?)"$/) do |arg1|
21
+ @page.comentario_recomendacion_element.value.strip.match(arg1).should be_true
22
+ end
23
+
24
+ Cuando(/^hago click en el boton de enviar$/) do
25
+ sleep(1)
26
+ @page.browser.execute_script("javascript:void($('#popup-email .flights-send-button').click());")
27
+ sleep(2)
28
+ end
29
+
30
+ Entonces(/^verifico que el nombre del remitente sea un campo obligatorio$/) do
31
+ @page.error_nombre_recomendacion_element.should visible
32
+ end
33
+
34
+ Entonces(/^verifico que el mail del remitente sea un campo obligatorio$/) do
35
+ @page.error_mail_remitente_recomendacion_element.should visible
36
+ end
37
+
38
+ Entonces(/^verifico que el mail del destinatario sea un campo obligatorio$/) do
39
+ @page.error_mail_destinatario_recomendacion_element.should visible
40
+ end
41
+
42
+ Cuando(/^completo el mail del remitente "(.*?)"$/) do |arg1|
43
+ @page.mail_remitente_recomendacion_element.set(arg1)
44
+ end
45
+
46
+ Entonces(/^verifico que el mail del remitente tenga un formato valido$/) do
47
+ @page.error_mail_remitente_recomendacion_element.should visible
48
+ end
49
+
50
+ Cuando(/^completo el mail del destinatario "(.*?)"$/) do |arg1|
51
+ @page.mail_destinatario_recomendacion_element.set(arg1)
52
+ end
53
+
54
+ Entonces(/^verifico que el mail del destinatario tenga un formato valido$/) do
55
+ @page.error_mail_destinatario_recomendacion_element.should visible
56
+ end
57
+
58
+ Cuando(/^completo el nombre del remitente "(.*?)"$/) do |arg1|
59
+ @page.nombre_recomendacion_element.set(arg1)
60
+ end
61
+
62
+ Entonces(/^verifico que se haya enviado correctamente el email$/) do
63
+ @page.mail_recomendacion_enviado_element.when_visible(timeout=60)
64
+ end
65
+
66
+ Entonces(/^verifico que el texto de feedback este bien formado "(.*?)"$/) do |arg1|
67
+ @page.mail_recomendacion_enviado_element.text.strip.should match(arg1)
68
+ end
69
+
70
+ Cuando(/^recorro el resto de los clusters$/) do
71
+ doc = Hpricot.parse(@page.html)
72
+ (doc/"div.cluster").each do |cluster|
73
+ (!(cluster/"span[@class='main-sprite icon-mail icon cluster-actions-icon']").empty?).should be_true
74
+ end
75
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding : utf-8 -*-
2
+ Cuando(/^verifico que no se muestre la leyenda de mejor precio garantizado en resultados$/) do
3
+ if AllPages.site=="CO"
4
+ @page.link_mejor_precio_element.should_not visible("Link de garantia de mejor precio garantizado")
5
+ @page.header_mejor_precio_element.should_not visible("Header de garantia de mejor precio garantizado")
6
+ end
7
+ end
8
+
9
+ Cuando(/^verifico que las datos de la pagina sean consistente a la busqueda realizada$/) do
10
+ unless @page.tipo_de_busqueda=="multipledestinations"
11
+ html = Hpricot.parse(@page.html)
12
+ (html/"span.search-info").inner_text.no_accents.downcase.should match(@page.manage_data.city_from_1.name.downcase)
13
+ (html/"span.search-info").inner_text.no_accents.downcase.should match(@page.manage_data.city_to_1.name.downcase)
14
+ (!(html/"div.search").length.zero?).should be_true
15
+ (!(html/"div#flights-alerts").length.zero?).should be_true if @page.tipo_de_busqueda=="roundtrip"
16
+ (!(html/"div#filters").length.zero?).should be_true
17
+ end
18
+ end
19
+
20
+ Cuando(/^elijo un itinerario y paso a checkout$/) do
21
+ @page.cargar_itinerarios
22
+ @index, permitida = @page.sanear_itinerarios(["DL"])
23
+ pending("Se encontraron solo vuelos de delta") unless permitida
24
+ @itinerario = @page.elegir_itinerario(@index)
25
+ end
26
+
27
+ Entonces(/^recorro y verifico cada itinerario$/) do
28
+ json = @page.manage_data.get_results_search_service("TOTALFARE")
29
+ i=0
30
+ @page.itinerarios_elements.each do |itinerario|
31
+ _itinerario = ResultsCluster.new(@page.tipo_de_busqueda,Hpricot.parse(itinerario.html))
32
+ @page.validar_millas(json,i)
33
+ @page.validar_mas_detalles(json,i,_itinerario)
34
+ @page.validar_detalles_itinerario(i)
35
+ @page.validar_popup_cuotas(i)
36
+ @page.validar_vuelo_bussines(i)
37
+ i += 1
38
+ break if i == 2
39
+ end
40
+ end
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+ Cuando(/^(?:verifico|valido) las reviews de aerolineas$/) do
3
+ @page.aerolineas_en_matriz.should_not is_empty?
4
+ @page.aerolineas_en_matriz.each_with_index do |aerolinea,index|
5
+ @page.siguiente_aerolinea_element.click until aerolinea.present?
6
+ aerolinea.when_visible(timeout=5)
7
+ aerolinea.click
8
+ @page.popup_reviews_aerolineas_element.when_visible(timeout=10)
9
+ doc = Hpricot.parse(@page.popup_reviews_aerolineas_element.html)
10
+ @page.logo_aerolinea_en_matriz(index).should match((doc/"span.logo/img").first.attributes['src'].strip.downcase)
11
+ @page.nombre_aerolinea_en_matriz(index).should equal((doc/"h4.name").inner_text.strip.downcase)
12
+ aerolinea.text.should match((doc/"span.popup-reviews-summary-points-container span").first.inner_text)
13
+ @page.close_popup_reviews_aerolineas_element.click
14
+ @page.popup_reviews_aerolineas_element.when_not_visible(timeout=10)
15
+ end
16
+ end
@@ -0,0 +1,102 @@
1
+ # encoding : utf-8
2
+ Cuando(/^levanto los tag que deben mostrarse segun la ciudad buscada para una busqueda "(.*)"$/) do |type|
3
+ cities = YAML.load(File.open("features/data/tag_microsoft.yml"))
4
+ if type == "multipledestinations"
5
+ to_city = @page.manage_data.city_to_3.code
6
+ else
7
+ to_city = @page.manage_data.city_to_1.code
8
+ end
9
+ @temp = cities[AllPages.site].select{|city| city['City']==to_city}
10
+ if @temp.empty?
11
+ @temp = cities[AllPages.site].select{|city| city['City']=="DEF"}
12
+ end
13
+ end
14
+
15
+ Entonces(/^verifico que se muestre en el codigo fuente$/) do
16
+ @page.buscar_tag_por_src("view.atdmt.com").should_not is_empty?
17
+ @temp[0]["Tag"].match(@page.buscar_tag_por_src("view.atdmt.com").first.attributes['src']).should be_true
18
+ end
19
+
20
+ Y(/^verifico el segundo tag de google en resultado$/) do
21
+ tag_script = @page.buscar_script_con_texto("google_custom_params")
22
+ tag_script.first.should be_true
23
+ (tag_script.length == 1).should be_true
24
+ vars = tag_script.first.inner_text.split(";")
25
+ vars.delete_at(-1)
26
+ tmp = Hash.new
27
+ vars.each do |option|
28
+ (tmp[option.strip.match(/var (.+) \= (.+)/)[1]]=option.gsub(/"|\n/,'').match(/var (.+) \= (.+)/)[2].to_s) unless option.strip.match("document.write")
29
+ end
30
+ tmp['google_conversion_id'].should match("\\d")
31
+ tmp['google_conversion_label'].should match("(.+)")
32
+ if @page.tipo_de_busqueda == "oneway"
33
+ match = @page.url.match(/\/(...)\/(...)\/(....\-..\-..)\//)
34
+ tmp['google_custom_params'].should match("{ CustomA: '#{AllPages.site}',CustomB: 'D',CustomC: '2',CustomD: '1',CustomCD: '2-1',CustomE: '#{match[1].upcase}',CustomF: '#{match[2].upcase}',CustomH: '.',CustomI: '.',CustomJ: '#{match[3].upcase}'}")
35
+ elsif @page.tipo_de_busqueda == "roundtrip"
36
+ match = @page.url.match(/\/(...)\/(...)\/(....\-..\-..)\/(....\-..\-..)/)
37
+ tmp['google_custom_params'].should match("{ CustomA: '#{AllPages.site}',CustomB: 'D',CustomC: '2',CustomD: '1',CustomCD: '2-1',CustomE: '#{match[1].upcase}',CustomF: '#{match[2].upcase}',CustomH: '.',CustomI: '.',CustomJ: '#{match[3].upcase}',CustomK: '#{match[4].upcase}'}")
38
+ end
39
+ end
40
+
41
+ Y(/^verifico el primer tag de google en resultado$/) do
42
+ tag_script = @page.buscar_script_con_texto("google_conversion_language")
43
+ tag_script.first.should be_true
44
+ (tag_script.length == 1).should be_true
45
+ vars = tag_script.first.inner_text.split(";")
46
+ vars.delete_at(-1)
47
+ tmp = Hash.new
48
+ vars.each{|option| tmp[option.strip.match(/var (.+) \= (.+)/)[1]]=option.gsub(/"|\n/,'').match(/var (.+) \= (.+)/)[2].to_s }
49
+ tmp['google_conversion_id'].should match("\\d")
50
+ tmp['google_conversion_language'].should match("en")
51
+ tmp['google_conversion_format'].should match("3")
52
+ tmp['google_conversion_color'].should match("666666")
53
+ tmp['google_conversion_label'].should match(".+")
54
+ tmp['google_conversion_value'].should match(0)
55
+ tag_noscript = @page.buscar_noscript_con_html("googleadservices")[0]
56
+ tag_noscript.inner_html.gsub(/\n\r/,'').should match("(.+)\/\/www.googleadservices.com\/pagead\/conversion\/#{tmp['google_conversion_id']}\/(.+)")
57
+ @page.buscar_elemento_html("script[@src='http://www.googleadservices.com/pagead/conversion.js']").should_not is_empty?
58
+ end
59
+
60
+ Y(/^verifico el tag de groovinads/)do
61
+ @page.buscar_tag_por_src("groovinads").should_not is_empty?
62
+ @page.buscar_tag_por_src("groovinads").first.attributes['src'].strip.no_accents.gsub(/\n\r/,'').should match('http:\/\/ads01.groovinads.com\/grv\/track\/bhpx.os\?idc\=81\&sku\=\{SKU\}\&idcategory\=\{IDCATEGORY\}|http:\/\/ads01.groovinads.com\/grv\/track\/bhpx.os\?idc\=81&sku\=%7BSKU%7D&idcategory\=%7BIDCATEGORY%7D')
63
+ end
64
+
65
+ Y(/^verifico el logger en (resultado|home) de (landing|fgui)$/) do |page,product|
66
+ @page.buscar_tag_por_src("logger").should_not is_empty?
67
+ @page.buscar_tag_por_src("logger").first.attributes['src'].strip.no_accents.gsub(/\n\r/,'').should match("(.+)logger.asp.{1,3}pagina\=\/shop\/flights\/results\/#{@page.tipo_de_busqueda}\/#{@page.manage_data.path}(.+)")
68
+ end
69
+
70
+ Y(/^verifico el tag de canonical$/) do
71
+ if @page.tipo_de_busqueda == "roundtrip"
72
+ tag_canonical = @page.buscar_elemento_html("link[@rel='canonical']")
73
+ tag_canonical.should_not is_empty?
74
+ tag_canonical.first.attributes['href'].should match("#{@page.manage_data.generate_url_landing_search(@page.manage_data.city_from_1.code.downcase,@page.manage_data.city_to_1.code.downcase)}/")
75
+ end
76
+ end
77
+
78
+ Y(/^verifico el tag de remarketing de facebook$/) do
79
+ tag_script = @page.buscar_script_con_texto("fb_param")
80
+ tag_script.first.should be_true
81
+ (tag_script.length == 1).should be_true
82
+ tag_script.first.inner_text.should match("connect.facebook.net\/en\_US\/fp.js")
83
+ tag_noscript = @page.buscar_noscript_con_html("facebook")[0]
84
+ tag_noscript.should be_true
85
+ end
86
+
87
+ Y(/^verifico el tag de facebook$/) do
88
+ tag_script = @page.buscar_script_con_texto("fb_param")
89
+ tag_script.first.should be_true
90
+ (tag_script.length == 1).should be_true
91
+ tag_noscript = @page.buscar_noscript_con_html("facebook")[0]
92
+ tag_noscript.inner_html.gsub(/\n\r/,'').should match('(.+)www.facebook.com\/offsite_event.php\?id\=(.+)')
93
+ end
94
+
95
+ Y(/^verifico el pixel de e-planning$/) do
96
+ tag_script = @page.buscar_elemento_html("script[@language='JavaScript']")
97
+ tag_script.first.inner_html.empty?.should_not be_true
98
+ (tag_script.length == 1).should be_true
99
+ tag_planning = @page.buscar_script_con_texto("planning")
100
+ tag_planning.first.inner_html.empty?.should_not be_true
101
+ (tag_planning.length >= 1).should be_true
102
+ end
@@ -0,0 +1,114 @@
1
+ # encoding: utf-8
2
+ Cuando(/^me deslogueo como usuario$/) do
3
+ @page.item_usuario_nibbler_element.click
4
+ @page.popup_usuario_nibbler_element.when_visible
5
+ @page.cerrar_sesion_usuario_nibbler_element.click if @page.cerrar_sesion_usuario_nibbler_element.present?
6
+ @page.cerrar_popup_usuario_nibbler_element.click if @page.cerrar_popup_usuario_nibbler_element.present?
7
+ end
8
+
9
+ Cuando(/^abro el popup de registro$/) do
10
+ @page.icono_favoritos_element.click
11
+ @page.login_usuario_nibbler_element.when_visible
12
+ end
13
+
14
+ Entonces(/^verifico links y textos del popup de registro$/) do
15
+ popup=@page.login_usuario_nibbler_element
16
+ data_popup = Hpricot.parse(popup.html)
17
+ (data_popup/"div.nibbler-common-overlay-header").length.should equal(1)
18
+ (data_popup/"div.nibbler-common-overlay-body").length.should equal(1)
19
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row").length.should equal(2)
20
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div.nibbler-common-grid-col6").length.should equal(2)
21
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div.nibbler-common-grid-col6 a.nibbler-common-icon-facebook").length.should equal(1)
22
+ #(data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div.nibbler-common-grid-col6 span.nibbler-common-icon-google").length.should equal(1)
23
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div.nibbler-common-grid-col6 div.nibbler-selfservices-tabs li.nibbler-tab").length.should equal(2)
24
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div#nibbler-selfservice-sign-in-despegar form#nibbler-login-form input#signin-email").length.should equal(1)
25
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div#nibbler-selfservice-sign-in-despegar form#nibbler-login-form input#signin-pass").length.should equal(1)
26
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div#nibbler-selfservice-sign-in-despegar button.nibbler-selfservice-pass-button").length.should equal(2)
27
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div#nibbler-selfservice-sign-in-despegar form#nibbler-register-form input#signup-email").length.should equal(1)
28
+ (data_popup/"div.nibbler-common-overlay-body div.nibbler-common-grid-row div#nibbler-selfservice-sign-in-despegar form#nibbler-register-form input#signup-pass").length.should equal(1)
29
+ popup.li(:class=>'nibbler-tab',:index=>0).click
30
+ sleep(0.5)
31
+ popup.form(:id,'nibbler-login-form').should visible("formulario de login")
32
+ popup.li(:class=>'nibbler-tab',:index=>1).click
33
+ sleep(0.5)
34
+ popup.form(:id,'nibbler-register-form').should visible("formulario de registro")
35
+ popup.li(:class=>'nibbler-tab',:index=>0).click
36
+ sleep(0.5)
37
+ end
38
+
39
+ Cuando(/^me logueo con usuario "(.*?)" y pass "(.*?)"$/) do |arg1, arg2|
40
+ @page.mail_usuario_nibbler_element.set(arg1)
41
+ @page.pass_usuario_nibbler_element.set(arg2)
42
+ @page.boton_usuario_nibbler_element.click
43
+ sleep(1)
44
+ end
45
+
46
+ Cuando(/^limpio la lista de deseos$/) do
47
+ sleep(1)
48
+ @page.browser.execute_script("javascript:void($('.nibbler-common-last-searches-footer-clear-all').click());")
49
+ sleep(2)
50
+ end
51
+
52
+ Cuando(/^cierro la lista de deseos$/) do
53
+ @page.browser.execute_script("javascript:void($('.nibbler-common-overlay-close').click())")
54
+ sleep(1)
55
+ end
56
+
57
+ Cuando(/^abro la lista de deseos$/) do
58
+ @page.icono_favoritos_element.click
59
+ end
60
+
61
+ Entonces(/^verifico textos y que no se muestren opciones en la lista de deseos$/) do
62
+ @page.itinerario_favorito_element.should_not visible("lista con deseos")
63
+ end
64
+
65
+ Cuando(/^elijo un itinerario como deseado$/) do
66
+ @page.primera_opcion_ida_element.click if @page.primera_opcion_ida_element.present?
67
+ @page.primera_opcion_vuelta_element.click if @page.primera_opcion_vuelta_element.present?
68
+ @page.icono_favoritos_cluster_element.should visible("icono de deseado")
69
+ @page.icono_favoritos_cluster_element.click
70
+ cluster = ResultsCluster.new(@page.tipo_de_busqueda,Hpricot.parse(@page.itinerarios_elements.first.html))
71
+ end
72
+
73
+ Entonces(/^verifico que el itinerario deseado quede marcado$/) do
74
+ sleep(1)
75
+ @page.icono_favoritos_cluster_marcado_element.should visible("icono de deseado seleccionado")
76
+ sleep(1)
77
+ end
78
+
79
+ Entonces(/^verifico que el itinerario deseado quede en la lista de deseos$/) do
80
+ sleep(1)
81
+ @page.itinerario_favorito_element.should visible("lista con deseos")
82
+ end
83
+
84
+ Cuando(/^elijo el itinerario de la lista de deseos$/) do
85
+ @url = @page.url
86
+ @page.browser.execute_script("javascript:void($('.nibbler-common-header-favorites-popup .nibbler-common-last-searches-body-content-title').click())")
87
+ end
88
+
89
+ Entonces(/^verifico que dirija correctamente a la pagina de resultados$/) do
90
+ @url.downcase.should match("#{@page.url.gsub(/\?(.*)/,'').downcase}")
91
+ end
92
+
93
+ Entonces(/^verifico que el itinerario deseado este marcado correctamente$/) do
94
+ sleep(2)
95
+ unless @page.error_favoritos_element.present?
96
+ @page.primera_opcion_ida_element.set?.should be_true if@page.primera_opcion_ida_element.present?
97
+ @page.primera_opcion_vuelta_element.set?.should be_true if @page.primera_opcion_vuelta_element.present?
98
+ @page.icono_favoritos_cluster_marcado_element.should visible("icono de deseado seleccionado")
99
+ @page.corazon_lista_precios_element.should visible("icono de deseado en lista de precios")
100
+ end
101
+ end
102
+
103
+ Cuando(/^elimino el itinerario de la lista de deseos$/) do
104
+ sleep(1)
105
+ @page.browser.execute_script("javascript:void($('.nibbler-common-last-searches-footer-clear-all').click());")
106
+ sleep(2)
107
+ @page.browser.execute_script("javascript:void($('.nibbler-common-last-searches-footer-clear-all').click());")
108
+ sleep(2)
109
+ end
110
+
111
+ Entonces(/^verifico que no se muestre en el header el usuario logueado$/) do
112
+ @page.usuario_logueado_element.should_not visible("usuario logueado")
113
+ @page.corazon_usuario_nibbler_element.should_not visible("corazon rojo en el header")
114
+ end
@@ -0,0 +1,10 @@
1
+ # encodign: utf-8
2
+ Cuando(/^espero que termine de cargar la pagina de gracias$/) do
3
+ @page = Thanks::ThanksPage.new($browser)
4
+ @page.checkout_id_element.when_visible(timeout=60)
5
+ end
6
+
7
+ Entonces(/^verifico que ingrese a la pagina de gracias$/) do
8
+ @page.checkout_id_element.should visible("Checkout ID")
9
+ puts @page.checkout_id_element.text
10
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ Entonces(/^verifico el link de mi despegar$/) do
3
+ # express the regexp above with the code you wish you had
4
+ end
5
+
6
+ Entonces(/^verifico los datos del vuelo comprado$/) do
7
+ # express the regexp above with the code you wish you had
8
+ end
9
+
10
+ Entonces(/^verifico el tag de datalayer$/) do
11
+ # express the regexp above with the code you wish you had
12
+ end