flights_gui_tests 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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