aruba-win-fix 0.14.2

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 (324) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +188 -0
  6. data/.simplecov +34 -0
  7. data/.travis.yml +47 -0
  8. data/.yardopts +8 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +83 -0
  11. data/History.md +579 -0
  12. data/LICENSE +20 -0
  13. data/README.md +226 -0
  14. data/Rakefile +49 -0
  15. data/TODO.md +13 -0
  16. data/appveyor.yml +32 -0
  17. data/aruba.gemspec +48 -0
  18. data/bin/aruba +7 -0
  19. data/config/.gitignore +1 -0
  20. data/cucumber.yml +26 -0
  21. data/features/.nav +72 -0
  22. data/features/api/command/find_command.feature +83 -0
  23. data/features/api/command/last_command_started.feature +50 -0
  24. data/features/api/command/last_command_stopped.feature +89 -0
  25. data/features/api/command/run.feature +414 -0
  26. data/features/api/command/run_simple.feature +242 -0
  27. data/features/api/command/send_signal.feature +53 -0
  28. data/features/api/command/stderr.feature +46 -0
  29. data/features/api/command/stdout.feature +46 -0
  30. data/features/api/command/stop.feature +131 -0
  31. data/features/api/command/stop_all_commands.feature +53 -0
  32. data/features/api/command/terminate_all_commands.feature +53 -0
  33. data/features/api/command/which.feature +37 -0
  34. data/features/api/core/expand_path.feature +88 -0
  35. data/features/api/environment/append_environment_variable.feature +128 -0
  36. data/features/api/environment/delete_environment_variable.feature +63 -0
  37. data/features/api/environment/prepend_environment_variable.feature +128 -0
  38. data/features/api/environment/set_environment_variable.feature +376 -0
  39. data/features/api/filesystem/cd.feature +184 -0
  40. data/features/api/filesystem/create_directory.feature +57 -0
  41. data/features/api/filesystem/disk_usage.feature +152 -0
  42. data/features/api/filesystem/does_exist.feature +62 -0
  43. data/features/api/filesystem/fixtures.feature +104 -0
  44. data/features/api/filesystem/is_absolute.feature +48 -0
  45. data/features/api/filesystem/is_directory.feature +53 -0
  46. data/features/api/filesystem/is_file.feature +54 -0
  47. data/features/api/filesystem/is_relative.feature +48 -0
  48. data/features/api/filesystem/move.feature +119 -0
  49. data/features/api/text/extract_text.feature +87 -0
  50. data/features/api/text/replace_variables.feature +45 -0
  51. data/features/api/text/sanitize_text.feature +228 -0
  52. data/features/api/text/unescape_text.feature +127 -0
  53. data/features/cli/console.feature +52 -0
  54. data/features/cli/init.feature +79 -0
  55. data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
  56. data/features/configuration/command_runtime_environment.feature +129 -0
  57. data/features/configuration/console_history_file.feature +38 -0
  58. data/features/configuration/exit_timeout.feature +52 -0
  59. data/features/configuration/fixtures_directories.feature +38 -0
  60. data/features/configuration/fixtures_path_prefix.feature +23 -0
  61. data/features/configuration/home_directory.feature +80 -0
  62. data/features/configuration/io_timeout.feature +30 -0
  63. data/features/configuration/keep_ansi.feature +30 -0
  64. data/features/configuration/log_level.feature +38 -0
  65. data/features/configuration/physical_block_size.feature +53 -0
  66. data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
  67. data/features/configuration/root_directory.feature +30 -0
  68. data/features/configuration/startup_wait_time.feature +48 -0
  69. data/features/configuration/usage.feature +159 -0
  70. data/features/configuration/working_directory.feature +33 -0
  71. data/features/development/build.feature +15 -0
  72. data/features/development/test.feature +24 -0
  73. data/features/getting_started/cleanup.feature +67 -0
  74. data/features/getting_started/install.feature +8 -0
  75. data/features/getting_started/run_commands.feature +177 -0
  76. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  77. data/features/getting_started/writing_good_feature_tests.feature +38 -0
  78. data/features/hooks/after/command.feature +44 -0
  79. data/features/hooks/before/command.feature +71 -0
  80. data/features/matchers/collection/include_an_object.feature +72 -0
  81. data/features/matchers/directory/have_sub_directory.feature +110 -0
  82. data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
  83. data/features/matchers/file/be_existing_executable.feature +88 -0
  84. data/features/matchers/file/be_existing_file.feature +82 -0
  85. data/features/matchers/file/have_file_content.feature +123 -0
  86. data/features/matchers/file/have_file_size.feature +107 -0
  87. data/features/matchers/path/be_an_absolute_path.feature +74 -0
  88. data/features/matchers/path/be_an_existing_path.feature +97 -0
  89. data/features/matchers/path/have_permissions.feature +118 -0
  90. data/features/matchers/timeouts.feature +48 -0
  91. data/features/platforms/jruby.feature +14 -0
  92. data/features/rspec/integration.feature +179 -0
  93. data/features/step_definitions/aruba_dev_steps.rb +56 -0
  94. data/features/step_definitions/hooks.rb +96 -0
  95. data/features/steps/command/debug.feature +92 -0
  96. data/features/steps/command/exit_statuses.feature +136 -0
  97. data/features/steps/command/in_process.feature +485 -0
  98. data/features/steps/command/interactive.feature +90 -0
  99. data/features/steps/command/output.feature +588 -0
  100. data/features/steps/command/run.feature +66 -0
  101. data/features/steps/command/send_signal.feature +104 -0
  102. data/features/steps/command/shell.feature +155 -0
  103. data/features/steps/command/stderr.feature +68 -0
  104. data/features/steps/command/stdout.feature +109 -0
  105. data/features/steps/command/stop.feature +313 -0
  106. data/features/steps/core/announce.feature +283 -0
  107. data/features/steps/environment/append_environment_variable.feature +52 -0
  108. data/features/steps/environment/home_variable.feature +62 -0
  109. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  110. data/features/steps/environment/set_environment_variable.feature +49 -0
  111. data/features/steps/filesystem/append_to_file.feature +45 -0
  112. data/features/steps/filesystem/cd_to_directory.feature +33 -0
  113. data/features/steps/filesystem/check_file_content.feature +61 -0
  114. data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
  115. data/features/steps/filesystem/compare_files.feature +42 -0
  116. data/features/steps/filesystem/copy.feature +45 -0
  117. data/features/steps/filesystem/create_directory.feature +57 -0
  118. data/features/steps/filesystem/create_file.feature +76 -0
  119. data/features/steps/filesystem/existence_of_directory.feature +57 -0
  120. data/features/steps/filesystem/existence_of_file.feature +43 -0
  121. data/features/steps/filesystem/file_content.feature +86 -0
  122. data/features/steps/filesystem/fixtures.feature +64 -0
  123. data/features/steps/filesystem/move.feature +45 -0
  124. data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
  125. data/features/steps/filesystem/non_existence_of_file.feature +80 -0
  126. data/features/steps/filesystem/overwrite_file.feature +72 -0
  127. data/features/steps/filesystem/remove_directory.feature +38 -0
  128. data/features/steps/filesystem/remove_file.feature +38 -0
  129. data/features/steps/filesystem/use_fixture.feature +77 -0
  130. data/features/steps/overview.feature +60 -0
  131. data/features/support/aruba.rb +7 -0
  132. data/features/support/env.rb +33 -0
  133. data/features/support/jruby.rb +5 -0
  134. data/features/support/simplecov_setup.rb +8 -0
  135. data/fixtures/cli-app/.gitignore +9 -0
  136. data/fixtures/cli-app/.rspec +2 -0
  137. data/fixtures/cli-app/README.md +39 -0
  138. data/fixtures/cli-app/Rakefile +1 -0
  139. data/fixtures/cli-app/bin/cli +6 -0
  140. data/fixtures/cli-app/cli-app.gemspec +26 -0
  141. data/fixtures/cli-app/features/support/env.rb +1 -0
  142. data/fixtures/cli-app/lib/cli/app.rb +13 -0
  143. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  144. data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
  145. data/fixtures/cli-app/script/console +14 -0
  146. data/fixtures/cli-app/spec/spec_helper.rb +9 -0
  147. data/fixtures/cli-app/spec/support/aruba.rb +1 -0
  148. data/fixtures/copy/file.txt +1 -0
  149. data/fixtures/empty-app/.gitignore +9 -0
  150. data/fixtures/empty-app/.rspec +2 -0
  151. data/fixtures/empty-app/README.md +24 -0
  152. data/fixtures/empty-app/Rakefile +1 -0
  153. data/fixtures/empty-app/cli-app.gemspec +26 -0
  154. data/fixtures/empty-app/lib/cli/app.rb +13 -0
  155. data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
  156. data/fixtures/getting-started-app/.gitignore +4 -0
  157. data/fixtures/getting-started-app/Gemfile +4 -0
  158. data/fixtures/getting-started-app/README.md +3 -0
  159. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  160. data/fixtures/spawn_process/stderr.sh +3 -0
  161. data/lib/aruba.rb +1 -0
  162. data/lib/aruba/api.rb +34 -0
  163. data/lib/aruba/api/command.rb +307 -0
  164. data/lib/aruba/api/core.rb +191 -0
  165. data/lib/aruba/api/deprecated.rb +897 -0
  166. data/lib/aruba/api/environment.rb +89 -0
  167. data/lib/aruba/api/filesystem.rb +392 -0
  168. data/lib/aruba/api/rvm.rb +44 -0
  169. data/lib/aruba/api/text.rb +56 -0
  170. data/lib/aruba/aruba_path.rb +133 -0
  171. data/lib/aruba/basic_configuration.rb +240 -0
  172. data/lib/aruba/basic_configuration/option.rb +32 -0
  173. data/lib/aruba/cli.rb +26 -0
  174. data/lib/aruba/colorizer.rb +108 -0
  175. data/lib/aruba/command.rb +74 -0
  176. data/lib/aruba/config.rb +108 -0
  177. data/lib/aruba/config/jruby.rb +17 -0
  178. data/lib/aruba/config_wrapper.rb +58 -0
  179. data/lib/aruba/console.rb +70 -0
  180. data/lib/aruba/console/help.rb +35 -0
  181. data/lib/aruba/contracts/absolute_path.rb +20 -0
  182. data/lib/aruba/contracts/enum.rb +26 -0
  183. data/lib/aruba/contracts/is_power_of_two.rb +22 -0
  184. data/lib/aruba/contracts/relative_path.rb +20 -0
  185. data/lib/aruba/cucumber.rb +13 -0
  186. data/lib/aruba/cucumber/command.rb +422 -0
  187. data/lib/aruba/cucumber/core.rb +5 -0
  188. data/lib/aruba/cucumber/environment.rb +42 -0
  189. data/lib/aruba/cucumber/file.rb +201 -0
  190. data/lib/aruba/cucumber/hooks.rb +160 -0
  191. data/lib/aruba/cucumber/rvm.rb +3 -0
  192. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  193. data/lib/aruba/errors.rb +37 -0
  194. data/lib/aruba/event_bus.rb +59 -0
  195. data/lib/aruba/event_bus/name_resolver.rb +168 -0
  196. data/lib/aruba/events.rb +39 -0
  197. data/lib/aruba/extensions/string/strip.rb +25 -0
  198. data/lib/aruba/file_size.rb +63 -0
  199. data/lib/aruba/generators/script_file.rb +46 -0
  200. data/lib/aruba/hooks.rb +56 -0
  201. data/lib/aruba/in_config_wrapper.rb +24 -0
  202. data/lib/aruba/in_process.rb +14 -0
  203. data/lib/aruba/initializer.rb +222 -0
  204. data/lib/aruba/jruby.rb +4 -0
  205. data/lib/aruba/matchers/base/base_matcher.rb +96 -0
  206. data/lib/aruba/matchers/base/object_formatter.rb +114 -0
  207. data/lib/aruba/matchers/collection.rb +1 -0
  208. data/lib/aruba/matchers/collection/all.rb +11 -0
  209. data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
  210. data/lib/aruba/matchers/command.rb +1 -0
  211. data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
  212. data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
  213. data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
  214. data/lib/aruba/matchers/command/have_output.rb +36 -0
  215. data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
  216. data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
  217. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  218. data/lib/aruba/matchers/directory.rb +1 -0
  219. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
  220. data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
  221. data/lib/aruba/matchers/environment.rb +1 -0
  222. data/lib/aruba/matchers/file.rb +1 -0
  223. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
  224. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  225. data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
  226. data/lib/aruba/matchers/file/have_file_content.rb +62 -0
  227. data/lib/aruba/matchers/file/have_file_size.rb +47 -0
  228. data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
  229. data/lib/aruba/matchers/path.rb +1 -0
  230. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
  231. data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
  232. data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
  233. data/lib/aruba/matchers/path/have_permissions.rb +64 -0
  234. data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
  235. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
  236. data/lib/aruba/matchers/string.rb +1 -0
  237. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  238. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  239. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  240. data/lib/aruba/platform.rb +25 -0
  241. data/lib/aruba/platforms/announcer.rb +232 -0
  242. data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
  243. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
  244. data/lib/aruba/platforms/aruba_logger.rb +81 -0
  245. data/lib/aruba/platforms/command_monitor.rb +229 -0
  246. data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
  247. data/lib/aruba/platforms/determine_file_size.rb +22 -0
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
  249. data/lib/aruba/platforms/filesystem_status.rb +68 -0
  250. data/lib/aruba/platforms/local_environment.rb +29 -0
  251. data/lib/aruba/platforms/simple_table.rb +54 -0
  252. data/lib/aruba/platforms/unix_command_string.rb +27 -0
  253. data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
  254. data/lib/aruba/platforms/unix_platform.rb +276 -0
  255. data/lib/aruba/platforms/unix_which.rb +85 -0
  256. data/lib/aruba/platforms/windows_command_string.rb +31 -0
  257. data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
  258. data/lib/aruba/platforms/windows_platform.rb +42 -0
  259. data/lib/aruba/platforms/windows_which.rb +106 -0
  260. data/lib/aruba/processes/basic_process.rb +143 -0
  261. data/lib/aruba/processes/debug_process.rb +69 -0
  262. data/lib/aruba/processes/in_process.rb +125 -0
  263. data/lib/aruba/processes/spawn_process.rb +278 -0
  264. data/lib/aruba/reporting.rb +126 -0
  265. data/lib/aruba/rspec.rb +107 -0
  266. data/lib/aruba/runtime.rb +96 -0
  267. data/lib/aruba/setup.rb +90 -0
  268. data/lib/aruba/spawn_process.rb +11 -0
  269. data/lib/aruba/version.rb +3 -0
  270. data/script/bootstrap +28 -0
  271. data/script/console +16 -0
  272. data/script/test +3 -0
  273. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  274. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  275. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  276. data/spec/aruba/api/runtime_spec.rb +28 -0
  277. data/spec/aruba/api_spec.rb +1209 -0
  278. data/spec/aruba/aruba_path_spec.rb +103 -0
  279. data/spec/aruba/basic_configuration_spec.rb +5 -0
  280. data/spec/aruba/configuration_spec.rb +5 -0
  281. data/spec/aruba/hooks_spec.rb +17 -0
  282. data/spec/aruba/in_config_wrapper_spec.rb +25 -0
  283. data/spec/aruba/jruby_spec.rb +55 -0
  284. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  285. data/spec/aruba/matchers/command_spec.rb +174 -0
  286. data/spec/aruba/matchers/directory_spec.rb +57 -0
  287. data/spec/aruba/matchers/file_spec.rb +127 -0
  288. data/spec/aruba/matchers/path_spec.rb +88 -0
  289. data/spec/aruba/platform/simple_table_spec.rb +23 -0
  290. data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
  291. data/spec/aruba/rspec_spec.rb +15 -0
  292. data/spec/aruba/runtime_spec.rb +29 -0
  293. data/spec/aruba/spawn_process_spec.rb +60 -0
  294. data/spec/event_bus/name_resolver_spec.rb +68 -0
  295. data/spec/event_bus_spec.rb +160 -0
  296. data/spec/spec_helper.rb +23 -0
  297. data/spec/support/configs/.keep +0 -0
  298. data/spec/support/configs/aruba.rb +5 -0
  299. data/spec/support/configs/pry.rb +3 -0
  300. data/spec/support/configs/rspec.rb +15 -0
  301. data/spec/support/helpers/.keep +0 -0
  302. data/spec/support/helpers/reporting.rb +44 -0
  303. data/spec/support/matchers/.keep +0 -0
  304. data/spec/support/matchers/option.rb +35 -0
  305. data/spec/support/shared_contexts/.keep +0 -0
  306. data/spec/support/shared_contexts/aruba.rb +48 -0
  307. data/spec/support/shared_examples/.keep +0 -0
  308. data/spec/support/shared_examples/configuration.rb +116 -0
  309. data/spec/support/shared_examples/directory.rb +7 -0
  310. data/spec/support/shared_examples/file.rb +7 -0
  311. data/templates/css/console.css +24 -0
  312. data/templates/css/filesystem.css +42 -0
  313. data/templates/css/pygments-autumn.css +59 -0
  314. data/templates/files.erb +14 -0
  315. data/templates/images/LICENSE +22 -0
  316. data/templates/images/folder.png +0 -0
  317. data/templates/images/page_white.png +0 -0
  318. data/templates/images/page_white_gherkin.png +0 -0
  319. data/templates/images/page_white_ruby.png +0 -0
  320. data/templates/index.erb +20 -0
  321. data/templates/js/filesystem.js +5 -0
  322. data/templates/js/jquery-1.11.3.min.js +5 -0
  323. data/templates/main.erb +34 -0
  324. metadata +629 -0
@@ -0,0 +1,5 @@
1
+ if Aruba::VERSION >= '1.0.0'
2
+ Aruba.configure do |config|
3
+ config.working_directory = 'tmp/cucumber'
4
+ end
5
+ end
@@ -0,0 +1,42 @@
1
+ Given(/^a mocked home directory$/)do
2
+ set_environment_variable 'HOME', expand_path('.')
3
+ end
4
+
5
+ Given(/^I set the environment variable "(.*)" to "(.*)"/) do |variable, value|
6
+ set_environment_variable(variable.to_s, value.to_s)
7
+ end
8
+
9
+ Given(/^I append "(.*)" to the environment variable "(.*)"/) do |value, variable|
10
+ append_environment_variable(variable.to_s, value.to_s)
11
+ end
12
+
13
+ Given(/^I prepend "(.*)" to the environment variable "(.*)"/) do |value, variable|
14
+ prepend_environment_variable(variable.to_s, value.to_s)
15
+ end
16
+
17
+ Given(/^I set the environment variables? to:/) do |table|
18
+ table.hashes.each do |row|
19
+ variable = row['variable'].to_s
20
+ value = row['value'].to_s
21
+
22
+ set_environment_variable(variable, value)
23
+ end
24
+ end
25
+
26
+ Given(/^I append the values? to the environment variables?:/) do |table|
27
+ table.hashes.each do |row|
28
+ variable = row['variable'].to_s
29
+ value = row['value'].to_s
30
+
31
+ append_environment_variable(variable, value)
32
+ end
33
+ end
34
+
35
+ Given(/^I prepend the values? to the environment variables?:/) do |table|
36
+ table.hashes.each do |row|
37
+ variable = row['variable'].to_s
38
+ value = row['value'].to_s
39
+
40
+ prepend_environment_variable(variable, value)
41
+ end
42
+ end
@@ -0,0 +1,201 @@
1
+ Given(/^I use (?:a|the) fixture(?: named)? "([^"]*)"$/) do |name|
2
+ copy File.join(aruba.config.fixtures_path_prefix, name), name
3
+ cd name
4
+ end
5
+
6
+ Given(/^I copy (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |file_or_directory, source, destination|
7
+ copy source, destination
8
+ end
9
+
10
+ Given(/^I move (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |file_or_directory, source, destination|
11
+ move source, destination
12
+ end
13
+
14
+ Given(/^(?:a|the|(?:an empty)) directory(?: named)? "([^"]*)"$/) do |dir_name|
15
+ create_directory(dir_name)
16
+ end
17
+
18
+ Given(/^(?:a|the) directory(?: named)? "([^"]*)" with mode "([^"]*)"$/) do |dir_name, dir_mode|
19
+ create_directory(dir_name)
20
+ chmod(dir_mode, dir_name)
21
+ end
22
+
23
+ Given(/^(?:a|the) file(?: named)? "([^"]*)" with:$/) do |file_name, file_content|
24
+ write_file(file_name, file_content)
25
+ end
26
+
27
+ Given(/^(?:an|the) executable(?: named)? "([^"]*)" with:$/) do |file_name, file_content|
28
+ step %(a file named "#{file_name}" with mode "0755" and with:), file_content
29
+ end
30
+
31
+ Given(/^(?:a|the) file(?: named)? "([^"]*)" with "([^"]*)"$/) do |file_name, file_content|
32
+ write_file(file_name, unescape_text(file_content))
33
+ end
34
+
35
+ Given(/^(?:a|the) file(?: named)? "([^"]*)" with mode "([^"]*)" and with:$/) do |file_name, file_mode, file_content|
36
+ write_file(file_name, unescape_text(file_content))
37
+ chmod(file_mode, file_name)
38
+ end
39
+
40
+ Given(/^(?:a|the) (\d+) byte file(?: named)? "([^"]*)"$/) do |file_size, file_name|
41
+ write_fixed_size_file(file_name, file_size.to_i)
42
+ end
43
+
44
+ Given(/^(?:an|the) empty file(?: named)? "([^"]*)"$/) do |file_name|
45
+ write_file(file_name, "")
46
+ end
47
+
48
+ Given(/^(?:an|the) empty file(?: named)? "([^"]*)" with mode "([^"]*)"$/) do |file_name, file_mode|
49
+ write_file(file_name, "")
50
+ chmod(file_mode, file_name)
51
+ end
52
+
53
+ When(/^I write to "([^"]*)" with:$/) do |file_name, file_content|
54
+ write_file(file_name, file_content)
55
+ end
56
+
57
+ When(/^I overwrite(?: (?:a|the) file(?: named)?)? "([^"]*)" with:$/) do |file_name, file_content|
58
+ overwrite_file(file_name, file_content)
59
+ end
60
+
61
+ When(/^I append to "([^"]*)" with:$/) do |file_name, file_content|
62
+ append_to_file(file_name, file_content)
63
+ end
64
+
65
+ When(/^I append to "([^"]*)" with "([^"]*)"$/) do |file_name, file_content|
66
+ append_to_file(file_name, file_content)
67
+ end
68
+
69
+ When(/^I remove (?:a|the) (?:file|directory)(?: named)? "([^"]*)"( with full force)?$/) do |name, force_remove|
70
+ remove(name, :force => force_remove.nil? ? false : true)
71
+ end
72
+
73
+ Given(/^(?:a|the) (?:file|directory)(?: named)? "([^"]*)" does not exist$/) do |name|
74
+ remove(name, :force => true)
75
+ end
76
+
77
+ When(/^I cd to "([^"]*)"$/) do |dir|
78
+ cd(dir)
79
+ end
80
+
81
+ Then(/^the following files should (not )?exist:$/) do |negated, files|
82
+ files = files.rows.flatten
83
+
84
+ if negated
85
+ expect(files).not_to include an_existing_file
86
+ else
87
+ expect(files).to Aruba::Matchers.all be_an_existing_file
88
+ end
89
+ end
90
+
91
+ Then(/^(?:a|the) (file|directory)(?: named)? "([^"]*)" should (not )?exist(?: anymore)?$/) do |directory_or_file, path, expect_match|
92
+ if directory_or_file == 'file'
93
+ if expect_match
94
+ expect(path).not_to be_an_existing_file
95
+ else
96
+ expect(path).to be_an_existing_file
97
+ end
98
+ elsif directory_or_file == 'directory'
99
+ if expect_match
100
+ expect(path).not_to be_an_existing_directory
101
+ else
102
+ expect(path).to be_an_existing_directory
103
+ end
104
+ else
105
+ fail ArgumentError, %("#{directory_or_file}" can only be "directory" or "file".)
106
+ end
107
+ end
108
+
109
+ Then(/^(?:a|the) file matching %r<(.*?)> should (not )?exist$/) do |pattern, expect_match|
110
+ if expect_match
111
+ expect(all_paths).not_to include a_file_name_matching(pattern)
112
+ else
113
+ expect(all_paths).to include match a_file_name_matching(pattern)
114
+ end
115
+ end
116
+
117
+ Then(/^(?:a|the) (\d+) byte file(?: named)? "([^"]*)" should (not )?exist$/) do |size, file, negated|
118
+ if negated
119
+ expect(file).not_to have_file_size(size)
120
+ else
121
+ expect(file).to have_file_size(size)
122
+ end
123
+ end
124
+
125
+ Then(/^the following directories should (not )?exist:$/) do |negated, directories|
126
+ directories = directories.rows.flatten
127
+
128
+ if negated
129
+ expect(directories).not_to include an_existing_directory
130
+ else
131
+ expect(directories).to Aruba::Matchers.all be_an_existing_directory
132
+ end
133
+ end
134
+
135
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?contain "([^"]*)"$/) do |file, negated, content|
136
+ if negated
137
+ expect(file).not_to have_file_content file_content_including(content.chomp)
138
+ else
139
+ expect(file).to have_file_content file_content_including(content.chomp)
140
+ end
141
+ end
142
+
143
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?contain:$/) do |file, negated, content|
144
+ if negated
145
+ expect(file).not_to have_file_content file_content_including(content.chomp)
146
+ else
147
+ expect(file).to have_file_content file_content_including(content.chomp)
148
+ end
149
+ end
150
+
151
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?contain exactly:$/) do |file, negated, content|
152
+ if negated
153
+ expect(file).not_to have_file_content content
154
+ else
155
+ expect(file).to have_file_content content
156
+ end
157
+ end
158
+
159
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match %r<([^\/]*)>$/) do |file, negated, content|
160
+ if negated
161
+ expect(file).not_to have_file_content file_content_matching(content)
162
+ else
163
+ expect(file).to have_file_content file_content_matching(content)
164
+ end
165
+ end
166
+
167
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match \/([^\/]*)\/$/) do |file, negated, content|
168
+ if negated
169
+ expect(file).not_to have_file_content file_content_matching(content)
170
+ else
171
+ expect(file).to have_file_content file_content_matching(content)
172
+ end
173
+ end
174
+
175
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?be equal to file "([^"]*)"/) do |file, negated, reference_file|
176
+ if negated
177
+ expect(file).not_to have_same_file_content_like(reference_file)
178
+ else
179
+ expect(file).to have_same_file_content_like(reference_file)
180
+ end
181
+ end
182
+
183
+ Then(/^the mode of filesystem object "([^"]*)" should (not )?match "([^"]*)"$/) do |file, negated, permissions|
184
+ # rubocop:disable Metrics/LineLength
185
+ Aruba.platform.deprecated('The use of step "the mode of filesystem object "([^"]*)" should (not )?match "([^"]*)" is deprecated. Use "^the (?:file|directory)(?: named)? "([^"]*)" should have permissions "([^"]*)"$" instead')
186
+ # rubocop:enable Metrics/LineLength
187
+
188
+ if negated
189
+ expect(file).not_to have_permissions(permissions)
190
+ else
191
+ expect(file).to have_permissions(permissions)
192
+ end
193
+ end
194
+
195
+ Then(/^the (?:file|directory)(?: named)? "([^"]*)" should( not)? have permissions "([^"]*)"$/) do |path, negated, permissions|
196
+ if negated
197
+ expect(path).not_to have_permissions(permissions)
198
+ else
199
+ expect(path).to have_permissions(permissions)
200
+ end
201
+ end
@@ -0,0 +1,160 @@
1
+ require 'aruba/aruba_path'
2
+ require 'aruba/api'
3
+ require 'aruba/platform'
4
+ World(Aruba::Api)
5
+
6
+ if Aruba::VERSION >= '1.0.0'
7
+ Around do |_, block|
8
+ Aruba.platform.with_environment(&block)
9
+ end
10
+ end
11
+
12
+ Before do
13
+ # ... so every change needs to be done later
14
+ prepend_environment_variable 'PATH', aruba.config.command_search_paths.join(File::PATH_SEPARATOR) + File::PATH_SEPARATOR
15
+ set_environment_variable 'HOME', aruba.config.home_directory
16
+ end
17
+
18
+ After do
19
+ restore_env
20
+ terminate_all_commands
21
+ aruba.command_monitor.clear
22
+ end
23
+
24
+ Before('~@no-clobber') do
25
+ setup_aruba
26
+ end
27
+
28
+ Before('@puts') do
29
+ aruba.announcer.mode = :puts
30
+ end
31
+
32
+ Before('@announce-command') do
33
+ aruba.announcer.activate :command
34
+ end
35
+
36
+ Before('@announce-command-content') do
37
+ aruba.announcer.activate :command_content
38
+ end
39
+
40
+ Before('@announce-command-filesystem-status') do
41
+ aruba.announcer.activate :command_filesystem_status
42
+ end
43
+
44
+ Before('@announce-cmd') do
45
+ Aruba.platform.deprecated 'The use of "@announce-cmd"-hook is deprecated. Please use "@announce-command"'
46
+
47
+ aruba.announcer.activate :command
48
+ end
49
+
50
+ Before('@announce-output') do
51
+ aruba.announcer.activate :stdout
52
+ aruba.announcer.activate :stderr
53
+ end
54
+
55
+ Before('@announce-stdout') do
56
+ aruba.announcer.activate :stdout
57
+ end
58
+
59
+ Before('@announce-stderr') do
60
+ aruba.announcer.activate :stderr
61
+ end
62
+
63
+ Before('@announce-dir') do
64
+ Aruba.platform.deprecated 'The use of "@announce-dir"-hook is deprecated. Please use "@announce-directory"'
65
+
66
+ aruba.announcer.activate :directory
67
+ end
68
+
69
+ Before('@announce-directory') do
70
+ aruba.announcer.activate :directory
71
+ end
72
+
73
+ Before('@announce-stop-signal') do
74
+ aruba.announcer.activate :stop_signal
75
+ end
76
+
77
+ Before('@announce-env') do
78
+ Aruba.platform.deprecated 'The use of "@announce-env"-hook is deprecated. Please use "@announce-changed-environment"'
79
+
80
+ aruba.announcer.activate :environment
81
+ end
82
+
83
+ Before('@announce-environment') do
84
+ Aruba.platform.deprecated '@announce-environment is deprecated. Use @announce-changed-environment instead'
85
+
86
+ aruba.announcer.activate :changed_environment
87
+ end
88
+
89
+ Before('@announce-full-environment') do
90
+ aruba.announcer.activate :full_environment
91
+ end
92
+
93
+ Before('@announce-modified-environment') do
94
+ Aruba.platform.deprecated '@announce-modified-environment is deprecated. Use @announce-changed-environment instead'
95
+
96
+ aruba.announcer.activate :changed_environment
97
+ end
98
+
99
+ Before('@announce-changed-environment') do
100
+ aruba.announcer.activate :changed_environment
101
+ end
102
+
103
+ Before('@announce-timeout') do
104
+ aruba.announcer.activate :timeout
105
+ end
106
+
107
+ Before('@announce-wait-time') do
108
+ aruba.announcer.activate :wait_time
109
+ end
110
+
111
+ Before('@announce') do
112
+ aruba.announcer.activate :changed_environment
113
+ aruba.announcer.activate :command
114
+ aruba.announcer.activate :directory
115
+ aruba.announcer.activate :environment
116
+ aruba.announcer.activate :full_environment
117
+ aruba.announcer.activate :modified_environment
118
+ aruba.announcer.activate :stderr
119
+ aruba.announcer.activate :stdout
120
+ aruba.announcer.activate :stop_signal
121
+ aruba.announcer.activate :timeout
122
+ aruba.announcer.activate :wait_time
123
+ aruba.announcer.activate :command_content
124
+ aruba.announcer.activate :command_filesystem_status
125
+ end
126
+
127
+ Before('@debug') do
128
+ aruba.config.command_launcher = :debug
129
+ end
130
+
131
+ # After('@debug') do
132
+ # aruba.config.command_launcher = :spawn
133
+ # end
134
+
135
+ Before('@ansi') do
136
+ # rubocop:disable Metrics/LineLength
137
+ Aruba::Platform.deprecated('The use of "@ansi" is deprecated. Use "@keep-ansi-escape-sequences" instead. But be aware, that this hook uses the aruba configuration and not an instance variable')
138
+ # rubocop:enable Metrics/LineLength
139
+
140
+ aruba.config.remove_ansi_escape_sequences = false
141
+ end
142
+
143
+ Before('@keep-ansi-escape-sequences') do
144
+ aruba.config.remove_ansi_escape_sequences = false
145
+ aruba.config.keep_ansi = true
146
+ end
147
+
148
+ Before '@mocked_home_directory' do
149
+ Aruba.platform.deprecated('The use of "@mocked_home_directory" is deprecated. Use "@mocked-home-directory" instead')
150
+
151
+ set_environment_variable 'HOME', expand_path('.')
152
+ end
153
+
154
+ Before '@mocked-home-directory' do
155
+ set_environment_variable 'HOME', expand_path('.')
156
+ end
157
+
158
+ Before('@disable-bundler') do
159
+ unset_bundler_env_vars
160
+ end
@@ -0,0 +1,3 @@
1
+ Given(/^I'm using a clean gemset "([^"]*)"$/) do |gemset|
2
+ use_clean_gemset(gemset)
3
+ end
@@ -0,0 +1,95 @@
1
+ # Cucumber
2
+ Then /^the feature(?:s)? should( not)?(?: all)? pass$/ do |negated|
3
+ if negated
4
+ step 'the output should contain " failed)"'
5
+ step 'the exit status should be 1'
6
+ else
7
+ step 'the output should not contain " failed)"'
8
+ step 'the output should not contain " undefined)"'
9
+ step 'the exit status should be 0'
10
+ end
11
+ end
12
+
13
+ # Cucumber
14
+ Then /^the feature(?:s)? should( not)?(?: all)? pass with( regex)?:$/ do |negated, regex, string|
15
+ if negated
16
+ step 'the output should contain " failed)"'
17
+ step 'the exit status should be 1'
18
+ else
19
+ step 'the output should not contain " failed)"'
20
+ step 'the output should not contain " undefined)"'
21
+ step 'the exit status should be 0'
22
+ end
23
+
24
+ if regex
25
+ step "the output should match %r<#{string}>"
26
+ else
27
+ step 'the output should contain:', string
28
+ end
29
+ end
30
+
31
+ # RSpec
32
+ Then /^the spec(?:s)? should( not)?(?: all)? pass(?: with (\d+) failures?)?$/ do |negated, count_failures|
33
+ if negated
34
+ if count_failures.nil?
35
+ step 'the output should not contain "0 failures"'
36
+ else
37
+ step %(the output should contain "#{count_failures} failures")
38
+ end
39
+
40
+ step 'the exit status should be 1'
41
+ else
42
+ step 'the output should contain "0 failures"'
43
+ step 'the exit status should be 0'
44
+ end
45
+ end
46
+
47
+ # RSpec
48
+ Then /^the spec(?:s)? should( not)?(?: all)? pass with( regex)?:$/ do |negated, regex, string|
49
+ if negated
50
+ step 'the output should not contain "0 failures"'
51
+ step 'the exit status should be 1'
52
+ else
53
+ step 'the output should contain "0 failures"'
54
+ step 'the exit status should be 0'
55
+ end
56
+
57
+ if regex
58
+ step "the output should match %r<#{string}>"
59
+ else
60
+ step 'the output should contain:', string
61
+ end
62
+ end
63
+
64
+ # Minitest
65
+ Then /^the tests(?:s)? should( not)?(?: all)? pass(?: with (\d+) failures?)?$/ do |negated, count_failures|
66
+ if negated
67
+ if count_failures.nil?
68
+ step 'the output should not contain "0 errors"'
69
+ else
70
+ step %(the output should contain "#{count_failures} errors")
71
+ end
72
+
73
+ step 'the exit status should be 1'
74
+ else
75
+ step 'the output should contain "0 errors"'
76
+ step 'the exit status should be 0'
77
+ end
78
+ end
79
+
80
+ # Minitest
81
+ Then /^the test(?:s)? should( not)?(?: all)? pass with( regex)?:$/ do |negated, regex, string|
82
+ if negated
83
+ step 'the output should contain "0 errors"'
84
+ step 'the exit status should be 1'
85
+ else
86
+ step 'the output should not contain "0 errors"'
87
+ step 'the exit status should be 0'
88
+ end
89
+
90
+ if regex
91
+ step "the output should match %r<#{string}>"
92
+ else
93
+ step 'the output should contain:', string
94
+ end
95
+ end