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
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010-2016 Aslak Hellesøy, David Chelimsky, Mike Sassak, Jarl Friis, Matt Wynne, Dennis Günnewig
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,226 @@
1
+ [![Gem Version](https://badge.fury.io/rb/aruba.svg)](http://badge.fury.io/rb/aruba)
2
+ [![Dependency Status](https://gemnasium.com/cucumber/aruba.svg)](https://gemnasium.com/cucumber/aruba)
3
+ [![Code Climate](https://codeclimate.com/github/cucumber/aruba.svg)](https://codeclimate.com/github/cucumber/aruba)
4
+ [![Join the chat at https://gitter.im/cucumber/aruba](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cucumber/aruba?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
+
6
+ Build status:
7
+
8
+ Linux / OS X | Windows
9
+ ------------- | -------------
10
+ [![Build Status](https://travis-ci.org/cucumber/aruba.svg?branch=master)](https://travis-ci.org/cucumber/aruba) | [![Build status](https://ci.appveyor.com/api/projects/status/jfo2tkqhnrqqcivl?svg=true)](https://ci.appveyor.com/project/cucumberbdd/aruba/branch/master)
11
+
12
+ `aruba` is an extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing of commandline applications meaningful, easy and fun.
13
+
14
+ Features at a glance:
15
+
16
+ * Test any command line application, implemented in any [programming
17
+ language](features/getting_started/supported_programming_languages.feature) -
18
+ e.g. Bash, Python, Ruby, Java, ...
19
+ * Manipulate the file system and the process environment
20
+ * Automatically reset state of file system and process environment between tests
21
+
22
+ ## Install
23
+
24
+ Add this line to your application's `Gemfile`:
25
+
26
+ gem 'aruba'
27
+
28
+ And then execute:
29
+
30
+ $ bundle
31
+
32
+ Or install it yourself as:
33
+
34
+ $ gem install aruba
35
+
36
+ ### Release Policy
37
+
38
+ We try to be compliant to [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html).
39
+
40
+ ### Supported ruby versions
41
+
42
+ For an up to date list of all supported ruby versions, please see our [`.travis.yml`](https://github.com/cucumber/aruba/blob/master/.travis.yml). We only test against the latest version of a version branch - most times.
43
+
44
+ ## Usage
45
+
46
+ Please also see this
47
+ [feature test](https://github.com/cucumber/aruba/blob/master/features/getting_started/supported_testing_frameworks.feature)
48
+ for the most up to date documentation.
49
+
50
+ ### Initialize your project with "aruba"
51
+
52
+ There's an initializer to make it easier for you to getting started. If you
53
+ prefer to setup `aruba` yourself, please move on to the next section.
54
+
55
+ 1. Go to your project's directory
56
+
57
+ 2. Make sure, it's under version control and all changes are committed to your
58
+ version control repository
59
+
60
+ 3. Run one of the following commands depending on the tools you use to test your project.
61
+
62
+ This assumes, that you use either `rspec`, `cucumber-ruby` or `minitest` to
63
+ write the tests for your project. Besides that, your tool can be implemented
64
+ in any programming language you like.
65
+
66
+ ~~~bash
67
+ aruba init --test-framework rspec
68
+ aruba init --test-framework cucumber
69
+ aruba init --test-framework minitest
70
+ ~~~
71
+
72
+ ### Cucumber
73
+
74
+ 1. Create a file named "features/support/env.rb" with:
75
+
76
+ ~~~ruby
77
+ require 'aruba/cucumber'
78
+ ~~~
79
+
80
+ 2. Create a file named "features/use_aruba_with_cucumber.feature" with:
81
+
82
+ ~~~ruby
83
+ Feature: Cucumber
84
+ Scenario: First Run
85
+ Given a file named "file.txt" with:
86
+ """
87
+ Hello World
88
+ """
89
+ Then the file "file.txt" should contain:
90
+ """
91
+ Hello World
92
+ """
93
+ ~~~
94
+
95
+ 3. Run `cucumber`
96
+
97
+ ### RSpec
98
+
99
+ 1. Create a file named "spec/support/aruba.rb" with:
100
+
101
+ ~~~ruby
102
+ require 'aruba/rspec'
103
+ ~~~
104
+
105
+ 2. Create a file named "spec/spec_helper.rb" with:
106
+
107
+ ~~~ruby
108
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
109
+
110
+ if RUBY_VERSION < '1.9.3'
111
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
112
+ else
113
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
114
+ end
115
+ ~~~
116
+
117
+ 3. Create a file named named "spec/use_aruba_with_rspec_spec.rb" with:
118
+
119
+ ~~~ruby
120
+ require 'spec_helper'
121
+
122
+ RSpec.describe 'First Run', :type => :aruba do
123
+ let(:file) { 'file.txt' }
124
+ let(:content) { 'Hello World' }
125
+
126
+ before(:each) { write_file file, content }
127
+
128
+ it { expect(read(file)).to eq [content] }
129
+ end
130
+ ~~~
131
+
132
+ 4. Run `rspec`
133
+
134
+ ### Minitest
135
+
136
+ 1. Add a file named "test/support/aruba.rb" with:
137
+
138
+ ~~~ ruby
139
+ require 'aruba/api'
140
+ ~~~
141
+
142
+ 2. Add a file named "test/test_helper.rb" with:
143
+
144
+ ~~~ruby
145
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
146
+
147
+ if RUBY_VERSION < '1.9.3'
148
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
149
+ else
150
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
151
+ end
152
+ ~~~
153
+
154
+ 3. Add a file named "test/use_aruba_with_minitest.rb" with:
155
+
156
+ ~~~ruby
157
+ $LOAD_PATH.unshift File.expand_path('../test', __FILE__)
158
+
159
+ require 'test_helper'
160
+ require 'minitest/autorun'
161
+
162
+ class FirstRun < Minitest::Test
163
+ include Aruba::Api
164
+
165
+ def setup
166
+ aruba_setup
167
+ end
168
+
169
+ def getting_started_with_aruba
170
+ file = 'file.txt'
171
+ content = 'Hello World'
172
+
173
+ write_file file, content
174
+ read(file).must_equal [content]
175
+ end
176
+ end
177
+ ~~~
178
+
179
+ 4. Run your tests
180
+
181
+ `ruby -Ilib:test test/use_aruba_with_minitest.rb`
182
+
183
+ ## Documentation
184
+
185
+ ### User Documentation
186
+
187
+ If you're interested in our steps and API, please browse our [feature
188
+ files](https://github.com/cucumber/aruba/tree/master/features). You can find a
189
+ lot of examples there. A good starting point are [Getting
190
+ Started](https://github.com/cucumber/aruba/tree/master/features/getting_started)
191
+ and [Step
192
+ Overview](https://github.com/cucumber/aruba/blob/master/features/steps/overview.feature).
193
+ A more or less full list of our steps can be found
194
+ [here](https://github.com/cucumber/aruba/tree/master/features/steps). Our API
195
+ is documentated
196
+ [here](https://github.com/cucumber/aruba/tree/master/features/api) and some
197
+ more information about how to configure `aruba`, can be found
198
+ [here](https://github.com/cucumber/aruba/tree/master/features/configuration).
199
+ The "RSpec" matchers provided by `aruba`, are documented
200
+ [here](https://github.com/cucumber/aruba/tree/master/features/matchers).
201
+
202
+ You can find our documentation on
203
+ [Relish](http://www.relishapp.com/cucumber/aruba/docs) as well. Unfortunately
204
+ "Relish" does not like the way we structered our feature tests. So this
205
+ documentation found there may be not complete.
206
+
207
+ ### Developer Documentation
208
+
209
+ `aruba` provides a wonderful API to be used in your tests:
210
+
211
+ * Creating files/directories
212
+ * Deleting files/directories
213
+ * Checking file size
214
+ * Checking file existence/absence
215
+ * ...
216
+
217
+ A full documentation of the API can be found
218
+ [here](http://www.rubydoc.info/github/cucumber/aruba/master/frames).
219
+
220
+ ## Contributing
221
+
222
+ Please see the [CONTRIBUTING](CONTRIBUTING.md) file.
223
+
224
+ ## Copyright
225
+
226
+ Copyright (c) 2010-2016 Aslak Hellesøy et al. See [MIT License](LICENSE) for details.
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require 'bundler'
4
+ Bundler.setup
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ require 'cucumber/rake/task'
8
+
9
+ Cucumber::Rake::Task.new do |t|
10
+ t.cucumber_opts = ""
11
+ # t.cucumber_opts = "--format Cucumber::Pro --out cucumber-pro.log" if ENV['CUCUMBER_PRO_TOKEN']
12
+ t.cucumber_opts << "--format pretty"
13
+ end
14
+
15
+ Cucumber::Rake::Task.new(:cucumber_wip) do |t|
16
+ t.cucumber_opts = "-p wip"
17
+ end
18
+
19
+ require 'rspec/core/rake_task'
20
+ desc "Run RSpec"
21
+ RSpec::Core::RakeTask.new do |spec|
22
+ spec.rspec_opts = ['--color', '--format documentation', '--warnings']
23
+ end
24
+
25
+ namespace :travis do
26
+ desc 'Lint travis.yml'
27
+ task :lint do
28
+ begin
29
+ require 'travis/yaml'
30
+
31
+ puts 'Linting .travis.yml ... No output is good!'
32
+ Travis::Yaml.parse! File.read('.travis.yml')
33
+ rescue LoadError
34
+ $stderr.puts 'You ruby is not supported for linting the .travis.yml'
35
+ end
36
+ end
37
+ end
38
+
39
+ task :rubocop do
40
+ begin
41
+ sh 'rubocop --fail-level E'
42
+ rescue
43
+ end
44
+ end
45
+
46
+ desc "Run tests, both RSpec and Cucumber"
47
+ task :test => [ 'travis:lint', :rubocop, :spec, :cucumber, :cucumber_wip]
48
+
49
+ task :default => :test
data/TODO.md ADDED
@@ -0,0 +1,13 @@
1
+ * Replace check filesystem permissons through a better rspec matcher
2
+ * Improve documentation for matchers in file
3
+ * Cleanup stdout/stderr in spawn process:
4
+ It should be enough to use 'open(@process.io.stdout).read' and 'open(@process.io.stderr).read'. There's no need to rewind them.
5
+ * Ensure that all processes are kill after cucumber is finished
6
+ * Add variation of check and stop of command if output contains
7
+ Add something like `(?: of last command)?`. If this is true, just check the last command.
8
+ * Use aruba.config.exit_timeout everywhere
9
+ * Fix problem with long running commands in background:
10
+
11
+ Since we need to stop all commands to access the status of the last command
12
+ stopped, we have problems with long running commands
13
+
@@ -0,0 +1,32 @@
1
+ version: "{build}"
2
+
3
+ # This will build all PRs targetting matching branches.
4
+ # Without this, each PR builds twice -- once for the PR branch HEAD,
5
+ # and once for the merge commit that github creates for each mergable PR.
6
+ branches:
7
+ only:
8
+ - master
9
+
10
+ # Disable normal Windows builds in favor of our test script.
11
+ build: off
12
+
13
+ install:
14
+ - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
15
+ - ruby --version
16
+ - gem --version
17
+ - gem install bundler
18
+ - bundler --version
19
+ - bundle install
20
+ - cinst ansicon
21
+
22
+ test_script:
23
+ - bundle exec rake test --trace
24
+
25
+ environment:
26
+ matrix:
27
+ - ruby_version: '18'
28
+ - ruby_version: '19'
29
+ - ruby_version: '20'
30
+ - ruby_version: '21'
31
+ - ruby_version: '22'
32
+
@@ -0,0 +1,48 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = ::File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'aruba/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'aruba-win-fix'
8
+ s.version = Aruba::VERSION
9
+ s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak", "Matt Wynne", "Jarl Friis", "Dennis Günnewig"]
10
+ s.description = 'Fork of cucumber/aruba with fixes for broken Windows support'
11
+ s.summary = "aruba-#{s.version}"
12
+ s.license = 'MIT'
13
+ s.email = 'cukes@googlegroups.com'
14
+ s.homepage = 'http://github.com/rbld/aruba'
15
+
16
+ s.add_runtime_dependency 'cucumber', '>= 1.3.19'
17
+ s.add_runtime_dependency 'childprocess', '~> 0.5.6'
18
+ s.add_runtime_dependency 'ffi', '~> 1.9.10'
19
+ s.add_runtime_dependency 'rspec-expectations', '>= 2.99'
20
+ s.add_runtime_dependency 'contracts', '~> 0.9'
21
+ s.add_runtime_dependency 'thor', '~> 0.19'
22
+
23
+ s.add_development_dependency 'bundler', '~> 1.11'
24
+
25
+ s.rubygems_version = ">= 1.6.1"
26
+
27
+ if Aruba::VERSION >= '1'
28
+ s.required_ruby_version = '>= 1.9.3'
29
+ else
30
+ s.required_ruby_version = '>= 1.8.7'
31
+
32
+ s.post_install_message = <<-EOS
33
+ Use on ruby 1.8.7
34
+ * Make sure you add something like that to your `Gemfile`. Otherwise you will
35
+ get cucumber > 2 and this will fail on ruby 1.8.7
36
+
37
+ gem 'cucumber', '~> 1.3.20'
38
+
39
+ With aruba >= 1.0 there will be breaking changes. Make sure to read https://github.com/cucumber/aruba/blob/master/History.md for 1.0.0
40
+ EOS
41
+ end
42
+
43
+ s.files = `git ls-files`.split("\n")
44
+ s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
45
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
46
+ s.rdoc_options = ["--charset=UTF-8"]
47
+ s.require_path = "lib"
48
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << File.expand_path('../../lib', __FILE__)
4
+
5
+ require 'aruba/cli'
6
+
7
+ Aruba::Cli.start
@@ -0,0 +1 @@
1
+ aruba-rvm.yml
@@ -0,0 +1,26 @@
1
+ <%
2
+ $LOAD_PATH << ::File.expand_path('../lib', __FILE__)
3
+ require 'aruba/version'
4
+ require 'ffi'
5
+
6
+ java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION)
7
+
8
+ std_opts = "--color --exclude features/fixtures --require features --tags ~@unsupported-on"
9
+ java_default_opts = "--tags ~@wip-jruby-java-1.6" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
10
+ java_wip_opts = "--tags @wip-jruby-java-1.6:3" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
11
+
12
+ ignore_opts = []
13
+ ignore_opts << '--tags ~@ignore'
14
+ ignore_opts << '--tags ~@unsupported-on-platform-java' if RUBY_PLATFORM.include? 'java'
15
+ ignore_opts << '--tags ~@unsupported-on-platform-mri' if !RUBY_PLATFORM.include? 'java'
16
+ ignore_opts << '--tags ~@unsupported-on-platform-windows' if FFI::Platform.windows?
17
+ ignore_opts << '--tags ~@unsupported-on-platform-unix' if FFI::Platform.unix?
18
+ ignore_opts << '--tags ~@unsupported-on-platform-mac' if FFI::Platform.mac?
19
+ ignore_opts << '--tags ~@unsupported-on-ruby-older-2' if RUBY_VERSION < '2'
20
+ ignore_opts << '--tags ~@unsupported-on-ruby-older-193' if RUBY_VERSION < '1.9.3'
21
+ ignore_opts << '--tags ~@unsupported-on-ruby-older-19' if RUBY_VERSION < '1.9'
22
+ ignore_opts << '--tags ~@requires-aruba-version-1' if Aruba::VERSION < '1'
23
+ ignore_opts = ignore_opts.join(' ')
24
+ %>
25
+ default: <%= std_opts %> --tags ~@wip <%= java_default_opts %> <%= ignore_opts %>
26
+ wip: <%= std_opts %> --wip --tags @wip:3 <%= java_wip_opts %> <%= ignore_opts %>
@@ -0,0 +1,72 @@
1
+ - README.md
2
+ - getting_started (Getting Started):
3
+ - install.feature (Install Aruba)
4
+ - supported_programming_languages.feature (Supportet Programming Languages)
5
+ - ruby_api (Ruby API):
6
+ - expand_path.feature (#expand_path)
7
+ - cleanup_aruba_directory.feature (#setup_aruba)
8
+ - run.feature (#run)
9
+ - which.feature (#which)
10
+ - append_environment_variable.feature (#append_environment_variable)
11
+ - prepend_environment_variable.feature (#prepend_environment_variable)
12
+ - set_environment_variable.feature (#set_environment_variable)
13
+ - cd.feature (#cd)
14
+ - create_directory.feature (#create_directory)
15
+ - disk_usage.feature (#disk_usage)
16
+ - does_exist.feature (#exist?)
17
+ - is_absolute.feature (#absolute?)
18
+ - filesystem/is_directory.feature (#directory?)
19
+ - is_file.feature (#file?)
20
+ - is_relative.feature(#relative?)
21
+ - move.feature (#move)
22
+ - file_system_commands.feature
23
+ - command.feature (Before Hook)
24
+ - command.feature (After Hook)
25
+ - cucumber (Cucumber):
26
+ - debug_command.feature (Debug Commmands)
27
+ - environment_variables.feature (Environment Variables)
28
+ - flushing.feature (Flush Output)
29
+ - interactive.feature (Interactive Commands)
30
+ - all_output.feature (Command Output)
31
+ - stdout.feature (STDOUT)
32
+ - configuration (Configuration):
33
+ - exit_timeout.feature (Exit Timeout)
34
+ - fixtures_directories.feature (Fixtures Directories)
35
+ - fixtures_path_prefix.feature (Fixture Path Prefix)
36
+ - home_directory.feature (Home Directory)
37
+ - io_timeout.feature (IO Wait Timeout)
38
+ - keep_ansi.feature (Keep ANSI output)
39
+ - log_level.feature (Log Level)
40
+ - physical_block_size.feature (Physical Block Size)
41
+ - root_directory.feature (Root Directory)
42
+ - working_directory.feature (Working Directory)
43
+ - rspec (RSpec):
44
+ - getting_started.feature (Integration)
45
+ - include_an_object.feature (Matcher: Include an Object)
46
+ - have_sub_directory.feature (Matcher: Have Sub Directory)
47
+ - be_existing_file.feature (Matcher: Be Existing File)
48
+ - have_file_content.feature (Matcher: Have File Content)
49
+ - have_file_size.feature (Matcher: Have File Size)
50
+ - be_an_absolute_path.feature (Matcher: Be Absolute Path)
51
+ - be_an_existing_path.feature (Matcher: Be Existing Path)
52
+ - have_permissions.feature (Matcher: Have Permissions)
53
+ - timeouts.feature (Matcher: Timeouts)
54
+ - cucumber (Cucumber):
55
+ - announce.feature (Announce Information to User)
56
+ - exit_statuses.feature (Exit Status of Commands)
57
+ - in_process.feature (Start Commands in Process)
58
+ - run.feature (Run Commands)
59
+ - home_variable.feature (Modify HOME-Variable)
60
+ - set_environment_variable.feature (Set Environment variables)
61
+ - copy.feature (Copy files/directories)
62
+ - create_directory.feature (Create Directories)
63
+ - create_file.feature (Create Files)
64
+ - file_content.feature (Use File Content)
65
+ - move.feature (Move files/directories)
66
+ - overwrite_file.feature (Overwrite Files)
67
+ - use_fixture.feature (Use Fixtures)
68
+ - output.feature (Output)
69
+ - utf-8.feature (Support for UTF-8-strings)
70
+ - development (Development):
71
+ - build.feature (Build Aruba)
72
+ - test.feature (Test Aruba)