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,53 @@
1
+ Feature: Stop all commands
2
+
3
+ To stop all running commands use the `#stop_all_commands`-method.
4
+
5
+ Background:
6
+ Given I use a fixture named "cli-app"
7
+
8
+ Scenario: Multiple commands are running
9
+ Given an executable named "bin/cli" with:
10
+ """bash
11
+ #!/bin/bash
12
+ sleep 3
13
+ """
14
+ And a file named "spec/run_spec.rb" with:
15
+ """ruby
16
+ require 'spec_helper'
17
+
18
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 5 do
19
+ before(:each) { run('cli') }
20
+ before(:each) { run('cli') }
21
+
22
+ before(:each) { stop_all_commands }
23
+
24
+ it { expect(all_commands).to all be_stopped }
25
+ end
26
+ """
27
+ When I run `rspec`
28
+ Then the specs should all pass
29
+
30
+ Scenario: Stop all commands for which the block returns true
31
+ Given an executable named "bin/cli" with:
32
+ """bash
33
+ #!/bin/bash
34
+ sleep 1
35
+ """
36
+ And a file named "spec/run_spec.rb" with:
37
+ """ruby
38
+ require 'spec_helper'
39
+
40
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 2 do
41
+ before(:each) { @cmd1 = run('cli') }
42
+ before(:each) { @cmd2 = run('cli') }
43
+ before(:each) { @cmd3 = run('sleep 1') }
44
+
45
+ before(:each) { stop_all_commands { |c| c.commandline == 'cli' } }
46
+
47
+ it { expect(@cmd1).to be_stopped }
48
+ it { expect(@cmd2).to be_stopped }
49
+ it { expect(@cmd3).not_to be_stopped }
50
+ end
51
+ """
52
+ When I run `rspec`
53
+ Then the specs should all pass
@@ -0,0 +1,53 @@
1
+ Feature: Terminate all commands
2
+
3
+ To terminate all running commands use the `#terminate_all_commands`-method.
4
+
5
+ Background:
6
+ Given I use a fixture named "cli-app"
7
+
8
+ Scenario: Multiple commands are running
9
+ Given an executable named "bin/cli" with:
10
+ """bash
11
+ #!/bin/bash
12
+ sleep 3
13
+ """
14
+ And a file named "spec/run_spec.rb" with:
15
+ """ruby
16
+ require 'spec_helper'
17
+
18
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 5 do
19
+ before(:each) { run('cli') }
20
+ before(:each) { run('cli') }
21
+
22
+ before(:each) { terminate_all_commands }
23
+
24
+ it { expect(all_commands).to all be_stopped }
25
+ end
26
+ """
27
+ When I run `rspec`
28
+ Then the specs should all pass
29
+
30
+ Scenario: Terminate all commands for which the block returns true
31
+ Given an executable named "bin/cli" with:
32
+ """bash
33
+ #!/bin/bash
34
+ sleep 1
35
+ """
36
+ And a file named "spec/run_spec.rb" with:
37
+ """ruby
38
+ require 'spec_helper'
39
+
40
+ RSpec.describe 'Run command', :type => :aruba, :exit_timeout => 2 do
41
+ before(:each) { @cmd1 = run('cli') }
42
+ before(:each) { @cmd2 = run('cli') }
43
+ before(:each) { @cmd3 = run('sleep 1') }
44
+
45
+ before(:each) { terminate_all_commands { |c| c.commandline == 'cli' } }
46
+
47
+ it { expect(@cmd1).to be_stopped }
48
+ it { expect(@cmd2).to be_stopped }
49
+ it { expect(@cmd3).not_to be_stopped }
50
+ end
51
+ """
52
+ When I run `rspec`
53
+ Then the specs should all pass
@@ -0,0 +1,37 @@
1
+ Feature: Get path to command
2
+
3
+ Sometimes you only know a commands name, but not where to find it. Here comes
4
+ `which` to the rescue.
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Existing executable
10
+ Given an executable named "bin/cli" with:
11
+ """bash
12
+ #!/bin/bash
13
+ exit 0
14
+ """
15
+ And a file named "spec/which_spec.rb" with:
16
+ """ruby
17
+ require 'spec_helper'
18
+
19
+ RSpec.describe 'Find path for command', :type => :aruba do
20
+ it { expect(which('cli')).to match %r{tmp/aruba/cli-app/bin/cli} }
21
+ end
22
+ """
23
+ When I run `rspec`
24
+ Then the specs should all pass
25
+
26
+ Scenario: Non-existing executable
27
+ Given a file named "bin/cli" does not exist
28
+ And a file named "spec/which_spec.rb" with:
29
+ """ruby
30
+ require 'spec_helper'
31
+
32
+ RSpec.describe 'Find path for command', :type => :aruba do
33
+ it { expect(which('cli')).to be_nil }
34
+ end
35
+ """
36
+ When I run `rspec`
37
+ Then the specs should all pass
@@ -0,0 +1,88 @@
1
+ Feature: Expand paths with aruba
2
+
3
+ There are quite a few uses cases why you want to expand a path. `aruba` helps
4
+ you with this by providing you the `expand_path`-method. This method expands
5
+ paths relative to the `aruba.current_directory`-directory.
6
+
7
+ Background:
8
+ Given I use the fixture "cli-app"
9
+
10
+ Scenario: Use relative path
11
+ Given a file named "spec/expand_path_spec.rb" with:
12
+ """ruby
13
+ require 'spec_helper'
14
+
15
+ RSpec.describe 'Expand path', :type => :aruba do
16
+ let(:path) { 'path/to/dir' }
17
+ it { expect(expand_path(path)).to eq File.join(aruba.root_directory, aruba.current_directory, path) }
18
+ end
19
+ """
20
+ When I run `rspec`
21
+ Then the specs should all pass
22
+
23
+ Scenario: Change directory using cd
24
+ Given a file named "spec/expand_path_spec.rb" with:
25
+ """ruby
26
+ require 'spec_helper'
27
+
28
+ RSpec.describe 'Expand path', :type => :aruba do
29
+ let(:path) { 'path/to/dir' }
30
+ let(:directory) { 'dir1' }
31
+
32
+ before(:each) { create_directory(directory) }
33
+ before(:each) { cd(directory) }
34
+
35
+ it { expect(expand_path(path)).to eq File.join(aruba.root_directory, aruba.current_directory, path) }
36
+ end
37
+ """
38
+ When I run `rspec`
39
+ Then the specs should all pass
40
+
41
+ Scenario: Warn if aruba's working directory does not exist
42
+ Given a file named "spec/expand_path_spec.rb" with:
43
+ """ruby
44
+ require 'spec_helper'
45
+
46
+ RSpec.describe 'Expand path', :type => :aruba do
47
+ before(:each) { remove('.') }
48
+
49
+ let(:path) { 'path/to/dir' }
50
+
51
+ it { expect { expand_path(path) }.to output(/working directory does not exist/).to_stderr }
52
+ end
53
+ """
54
+ When I run `rspec`
55
+ Then the specs should all pass
56
+
57
+ Scenario: Use ~ in path
58
+
59
+ Now this useses the HOME-variable from your normal shell HOME-variable.
60
+ From 1.0.0 on HOME will be `File.join(aruba.config.root_directory,
61
+ aruba.config.working_directory)`. If you want HOME have some other value,
62
+ you need to configure it explicitly via `Aruba.configure {}`.
63
+
64
+ Given a file named "spec/expand_path_spec.rb" with:
65
+ """ruby
66
+ require 'spec_helper'
67
+
68
+ # Old before 1.0.0
69
+ RSpec.describe 'Expand path', :type => :aruba do
70
+ let(:path) { '~/path/to/dir' }
71
+
72
+ it { expect(expand_path(path)).to match %r</home/[^/]+/path/to/dir> }
73
+ end
74
+
75
+ # New from 1.0.0
76
+ RSpec.describe 'Expand path', :type => :aruba do
77
+ let(:path) { '~/path/to/dir' }
78
+
79
+ before(:each) do
80
+ set_environment_variable('HOME', File.join(aruba.config.root_directory, aruba.config.working_directory))
81
+ end
82
+
83
+ it { expect(expand_path(path)).to eq File.join(aruba.config.root_directory, aruba.config.working_directory, 'path/to/dir') }
84
+ end
85
+ """
86
+ When I run `rspec`
87
+ Then the specs should all pass
88
+
@@ -0,0 +1,128 @@
1
+ Feature: Append environment variable
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several methods. One of these is
5
+ `#append_environment_variable`. Using this variable appends a given value to
6
+ an existing one. If the variable does not exist, it is created with the given
7
+ value.
8
+
9
+ Each variable name and each value is converted to a string. Otherwise `ruby`
10
+ would complain about an invalid argument. To make use of a variable you can
11
+ either use `#run` and the like or `#with_environment`.
12
+
13
+ Background:
14
+ Given I use the fixture "cli-app"
15
+
16
+ Scenario: Non-existing variable
17
+ Given a file named "spec/environment_spec.rb" with:
18
+ """ruby
19
+ require 'spec_helper'
20
+
21
+ RSpec.describe 'Long running command', :type => :aruba do
22
+ before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'a' }
23
+
24
+ before(:each) { run('env') }
25
+ before(:each) { stop_all_commands }
26
+
27
+ it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=a' }
28
+ end
29
+ """
30
+ When I run `rspec`
31
+ Then the specs should all pass
32
+
33
+ Scenario: Existing inner variable
34
+ Given a file named "spec/environment_spec.rb" with:
35
+ """ruby
36
+ require 'spec_helper'
37
+
38
+ RSpec.describe 'Long running command', :type => :aruba do
39
+ before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'a' }
40
+ before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'b' }
41
+
42
+ before(:each) { run('env') }
43
+ before(:each) { stop_all_commands }
44
+
45
+ it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=ab' }
46
+ end
47
+ """
48
+ When I run `rspec`
49
+ Then the specs should all pass
50
+
51
+
52
+ Scenario: Existing outer variable
53
+ Given a file named "spec/environment_spec.rb" with:
54
+ """ruby
55
+ require 'spec_helper'
56
+
57
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
58
+
59
+ RSpec.describe 'Long running command', :type => :aruba do
60
+ before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
61
+
62
+ before(:each) { run('env') }
63
+ before(:each) { stop_all_commands }
64
+
65
+ it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=ab' }
66
+
67
+ # Has no effect here, is not in block and not a command `run`
68
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
69
+ end
70
+ """
71
+ When I run `rspec`
72
+ Then the specs should all pass
73
+
74
+ Scenario: Run some ruby code with previously set environment
75
+ Given a file named "spec/environment_spec.rb" with:
76
+ """ruby
77
+ require 'spec_helper'
78
+
79
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
80
+
81
+ RSpec.describe 'Long running command', :type => :aruba do
82
+ before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
83
+
84
+ before(:each) { run('env') }
85
+ before(:each) { stop_all_commands }
86
+
87
+ it do
88
+ with_environment do
89
+ expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'ab'
90
+ end
91
+ end
92
+
93
+ # Has no effect here, is not in block and not a command `run`
94
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
95
+ end
96
+ """
97
+ When I run `rspec`
98
+ Then the specs should all pass
99
+
100
+ Scenario: Run some ruby code with local environment
101
+
102
+ If you pass the same variable to the block it will not be appended, but
103
+ overwrites the variable
104
+
105
+ Given a file named "spec/environment_spec.rb" with:
106
+ """ruby
107
+ require 'spec_helper'
108
+
109
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
110
+
111
+ RSpec.describe 'Long running command', :type => :aruba do
112
+ before(:each) { append_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
113
+
114
+ before(:each) { run('env') }
115
+ before(:each) { stop_all_commands }
116
+
117
+ it do
118
+ with_environment 'REALLY_LONG_LONG_VARIABLE' => 'a' do
119
+ expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a'
120
+ end
121
+ end
122
+
123
+ # Has no effect here, is not in block and not a command `run`
124
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
125
+ end
126
+ """
127
+ When I run `rspec`
128
+ Then the specs should all pass
@@ -0,0 +1,63 @@
1
+ Feature: Delete existing environment variable via API-method
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several methods. One of these is
5
+ `#delete_environment_variable`. Using this remove an existing variable.
6
+
7
+ Background:
8
+ Given I use the fixture "cli-app"
9
+
10
+ Scenario: Non-existing variable
11
+ Given a file named "spec/environment_spec.rb" with:
12
+ """ruby
13
+ require 'spec_helper'
14
+
15
+ RSpec.describe 'Long running command', :type => :aruba do
16
+ before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
17
+
18
+ before(:each) { run('env') }
19
+ before(:each) { stop_all_commands }
20
+
21
+ it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE=1' }
22
+ end
23
+ """
24
+ When I run `rspec`
25
+ Then the specs should all pass
26
+
27
+ Scenario: Existing variable set from within the test
28
+ Given a file named "spec/environment_spec.rb" with:
29
+ """ruby
30
+ require 'spec_helper'
31
+
32
+ RSpec.describe 'Long running command', :type => :aruba do
33
+ before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
34
+ before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
35
+
36
+ before(:each) { run('env') }
37
+ before(:each) { stop_all_commands }
38
+
39
+ it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE' }
40
+ end
41
+ """
42
+ When I run `rspec`
43
+ Then the specs should all pass
44
+
45
+ Scenario: Existing variable set by some outer parent process
46
+
47
+ Given a file named "spec/environment_spec.rb" with:
48
+ """ruby
49
+ require 'spec_helper'
50
+
51
+ ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
52
+
53
+ RSpec.describe 'Environment command', :type => :aruba do
54
+ before(:each) { delete_environment_variable 'REALLY_LONG_LONG_VARIABLE' }
55
+
56
+ before(:each) { run('env') }
57
+ before(:each) { stop_all_commands }
58
+
59
+ it { expect(last_command_started.output).not_to include 'REALLY_LONG_LONG_VARIABLE' }
60
+ end
61
+ """
62
+ When I run `rspec`
63
+ Then the specs should all pass
@@ -0,0 +1,128 @@
1
+ Feature: Prepend environment variable
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several methods. One of these is
5
+ `#prepend_environment_variable`. Using this variable prepends a given value to
6
+ an existing one. If the variable does not exist, it is created with the given
7
+ value.
8
+
9
+ Each variable name and each value is converted to a string. Otherwise `ruby`
10
+ would complain about an invalid argument. To make use of a variable you can
11
+ either use `#run` and the like or `#with_environment`.
12
+
13
+ Background:
14
+ Given I use the fixture "cli-app"
15
+
16
+ Scenario: Non-existing variable
17
+ Given a file named "spec/environment_spec.rb" with:
18
+ """ruby
19
+ require 'spec_helper'
20
+
21
+ RSpec.describe 'Long running command', :type => :aruba do
22
+ before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'a' }
23
+
24
+ before(:each) { run('env') }
25
+ before(:each) { stop_all_commands }
26
+
27
+ it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=a' }
28
+ end
29
+ """
30
+ When I run `rspec`
31
+ Then the specs should all pass
32
+
33
+ Scenario: Existing inner variable
34
+ Given a file named "spec/environment_spec.rb" with:
35
+ """ruby
36
+ require 'spec_helper'
37
+
38
+ RSpec.describe 'Long running command', :type => :aruba do
39
+ before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'a' }
40
+ before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'b' }
41
+
42
+ before(:each) { run('env') }
43
+ before(:each) { stop_all_commands }
44
+
45
+ it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=ba' }
46
+ end
47
+ """
48
+ When I run `rspec`
49
+ Then the specs should all pass
50
+
51
+
52
+ Scenario: Existing outer variable
53
+ Given a file named "spec/environment_spec.rb" with:
54
+ """ruby
55
+ require 'spec_helper'
56
+
57
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
58
+
59
+ RSpec.describe 'Long running command', :type => :aruba do
60
+ before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
61
+
62
+ before(:each) { run('env') }
63
+ before(:each) { stop_all_commands }
64
+
65
+ it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=ba' }
66
+
67
+ # Has no effect here, is not in block and not a command `run`
68
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
69
+ end
70
+ """
71
+ When I run `rspec`
72
+ Then the specs should all pass
73
+
74
+ Scenario: Run some ruby code with previously set environment
75
+ Given a file named "spec/environment_spec.rb" with:
76
+ """ruby
77
+ require 'spec_helper'
78
+
79
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
80
+
81
+ RSpec.describe 'Long running command', :type => :aruba do
82
+ before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
83
+
84
+ before(:each) { run('env') }
85
+ before(:each) { stop_all_commands }
86
+
87
+ it do
88
+ with_environment do
89
+ expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'ba'
90
+ end
91
+ end
92
+
93
+ # Has no effect here, is not in block and not a command `run`
94
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
95
+ end
96
+ """
97
+ When I run `rspec`
98
+ Then the specs should all pass
99
+
100
+ Scenario: Run some ruby code with local environment
101
+
102
+ If you pass the same variable to the block it will not be prepended, but
103
+ overwrites the variable
104
+
105
+ Given a file named "spec/environment_spec.rb" with:
106
+ """ruby
107
+ require 'spec_helper'
108
+
109
+ ENV['REALLY_LONG_LONG_VARIABLE'] = 'a'
110
+
111
+ RSpec.describe 'Long running command', :type => :aruba do
112
+ before(:each) { prepend_environment_variable 'REALLY_LONG_LONG_VARIABLE', 'b' }
113
+
114
+ before(:each) { run('env') }
115
+ before(:each) { stop_all_commands }
116
+
117
+ it do
118
+ with_environment 'REALLY_LONG_LONG_VARIABLE' => 'a' do
119
+ expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a'
120
+ end
121
+ end
122
+
123
+ # Has no effect here, is not in block and not a command `run`
124
+ it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq 'a' }
125
+ end
126
+ """
127
+ When I run `rspec`
128
+ Then the specs should all pass