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,159 @@
1
+ Feature: Usage of configuration
2
+
3
+ You can configure `aruba` in two ways:
4
+
5
+ 1. Using `Aruba.configure`-block
6
+ 2. Using `aruba.config.<option> = <value>`
7
+
8
+ The first (1.) should be used to set defaults for ALL your tests. It changes
9
+ values on loadtime. The latter (2.) should be used to change options only for
10
+ specific tests during runtime. `aruba.config` contains the runtime
11
+ configuration of aruba which is reset to the loadtime configuration before
12
+ each test is run.
13
+
14
+ Background:
15
+ Given I use a fixture named "cli-app"
16
+ And an executable named "bin/cli" with:
17
+ """bash
18
+ #!/bin/bash
19
+ trap "exit 128" SIGTERM SIGINT
20
+ sleep $*
21
+ """
22
+
23
+ Scenario: Setting default values for option for RSpec
24
+ Given a file named "spec/support/aruba.rb" with:
25
+ """ruby
26
+ require 'aruba/rspec'
27
+
28
+ Aruba.configure do |config|
29
+ config.exit_timeout = 1
30
+ end
31
+ """
32
+ And a file named "spec/usage_configuration_spec.rb" with:
33
+ """ruby
34
+ require 'spec_helper'
35
+
36
+ RSpec.describe 'Run command', :type => :aruba do
37
+ context 'when fast command' do
38
+ before(:each) { run('cli 0') }
39
+ it { expect(last_command_started).to be_successfully_executed }
40
+ end
41
+
42
+ context 'when slow command' do
43
+ before(:each) { run('cli 2') }
44
+ it { expect(last_command_started).not_to be_successfully_executed }
45
+ end
46
+ end
47
+ """
48
+ When I run `rspec`
49
+ Then the specs should all pass
50
+
51
+ Scenario: Setting option during runtime for RSpec
52
+
53
+ Maybe there are some long running tests, which need longer. You may not
54
+ want to set the default timeout for all commands to the maximum value only
55
+ to prevent those commands from failing.
56
+
57
+ Given a file named "spec/support/aruba.rb" with:
58
+ """ruby
59
+ require 'aruba/rspec'
60
+
61
+ Aruba.configure do |config|
62
+ config.exit_timeout = 1
63
+ end
64
+ """
65
+ And a file named "spec/support/hooks.rb" with:
66
+ """ruby
67
+ RSpec.configure do |config|
68
+ config.before :each do |example|
69
+ next unless example.metadata.key? :slow_command
70
+
71
+ aruba.config.exit_timeout = 5
72
+ end
73
+ end
74
+ """
75
+ And a file named "spec/usage_configuration_spec.rb" with:
76
+ """ruby
77
+ require 'spec_helper'
78
+
79
+ RSpec.describe 'Run command', :type => :aruba do
80
+ context 'when fast command' do
81
+ before(:each) { run('cli 0') }
82
+ it { expect(last_command_started).to be_successfully_executed }
83
+ end
84
+
85
+ context 'when slow command and this is known by the developer', :slow_command => true do
86
+ before(:each) { run('cli 2') }
87
+ it { expect(last_command_started).to be_successfully_executed }
88
+ end
89
+
90
+ context 'when slow command, but this might be a failure' do
91
+ before(:each) { run('cli 2') }
92
+ it { expect(last_command_started).not_to be_successfully_executed }
93
+ end
94
+ end
95
+ """
96
+ When I run `rspec`
97
+ Then the specs should all pass
98
+
99
+ Scenario: Setting default values for option for Cucumber
100
+ Given a file named "features/support/aruba.rb" with:
101
+ """ruby
102
+ require 'aruba/cucumber'
103
+
104
+ Aruba.configure do |config|
105
+ config.exit_timeout = 1
106
+ end
107
+ """
108
+ And a file named "features/run.feature" with:
109
+ """
110
+ Feature: Run it
111
+ Scenario: Fast command
112
+ When I run `cli 0`
113
+ Then the exit status should be 0
114
+
115
+ Scenario: Slow command
116
+ When I run `cli 2`
117
+ Then the exit status should be 128
118
+ """
119
+ When I run `cucumber`
120
+ Then the features should all pass
121
+
122
+ Scenario: Setting option during runtime for Cucumber
123
+
124
+ Maybe there are some long running tests, which need longer. You may not
125
+ want to set the default timeout for all commands to the maximum value only
126
+ to prevent those commands from failing.
127
+
128
+ Given a file named "features/support/aruba.rb" with:
129
+ """ruby
130
+ require 'aruba/cucumber'
131
+
132
+ Aruba.configure do |config|
133
+ config.exit_timeout = 1
134
+ end
135
+ """
136
+ And a file named "features/support/hooks.rb" with:
137
+ """ruby
138
+ Before '@slow-command' do
139
+ aruba.config.exit_timeout = 5
140
+ end
141
+ """
142
+ And a file named "features/usage_configuration.feature" with:
143
+ """
144
+ Feature: Run it
145
+ Scenario: Fast command
146
+ When I run `cli 0`
147
+ Then the exit status should be 0
148
+
149
+ @slow-command
150
+ Scenario: Slow command known by the developer
151
+ When I run `cli 2`
152
+ Then the exit status should be 0
153
+
154
+ Scenario: Slow command which might be a failure
155
+ When I run `cli 3`
156
+ Then the exit status should be 128
157
+ """
158
+ When I run `cucumber`
159
+ Then the features should all pass
@@ -0,0 +1,33 @@
1
+ Feature: Configure working directory of aruba
2
+
3
+ As a developer
4
+ I want to configure the working directory of aruba
5
+ In order to have a test directory for each used spec runner - e.g. cucumber or rspec
6
+
7
+ Background:
8
+ Given I use the fixture "cli-app"
9
+
10
+ Scenario: Default value
11
+ Given a file named "features/support/aruba.rb" with:
12
+ """
13
+ Aruba.configure do |config|
14
+ puts %(The default value is "#{config.working_directory}")
15
+ end
16
+ """
17
+ When I successfully run `cucumber`
18
+ Then the output should contain:
19
+ """
20
+ The default value is "tmp/aruba"
21
+ """
22
+
23
+ Scenario: Modify value
24
+ Given a file named "features/support/aruba.rb" with:
25
+ """
26
+ Aruba.configure do |config|
27
+ config.working_directory = 'tmp/cucumber'
28
+ end
29
+ """
30
+ And the default feature-test
31
+ And the default executable
32
+ When I successfully run `cucumber`
33
+ Then a directory named "tmp/cucumber" should exist
@@ -0,0 +1,15 @@
1
+ Feature: Build Aruba Gem
2
+
3
+ As a aruba developer
4
+ I want to build the `aruba` gem
5
+ In order to install it
6
+
7
+ Scenario: Building aruba using rake task
8
+
9
+ To build the `aruba`-gem you can use the `build`-rake task.
10
+
11
+ Given I successfully run `rake -T build`
12
+ Then the output should contain:
13
+ """
14
+ build
15
+ """
@@ -0,0 +1,24 @@
1
+ Feature: Run test suite of aruba
2
+
3
+ As a aruba developer
4
+ I want to run the test suite of aruba
5
+ In order to make changes to it
6
+
7
+ Background:
8
+ Given the default aruba exit timeout is 120 seconds
9
+ And I successfully run `git clone https://github.com/cucumber/aruba.git`
10
+ And I cd to "aruba"
11
+
12
+ @ignore
13
+ Scenario: Testing user interface
14
+ Given I successfully run `cucumber`
15
+ Then the features should all pass
16
+
17
+ @unsupported-on-ruby-older-193
18
+ Scenario: Testing compliance to ruby community guide
19
+ Given I successfully run `rubocop`
20
+ Then the features should all pass
21
+
22
+ Scenario: Testing api
23
+ Given I successfully run `rspec`
24
+ Then the features should all pass
@@ -0,0 +1,67 @@
1
+ Feature: Cleanup Aruba Working Directory
2
+
3
+ By default Aruba removes its scratch directory before
4
+ every scenario. This isn't always the right thing
5
+ to do, especially when the path to the default directory
6
+ has been changed. Use @no-clobber to stop Aruba from
7
+ cleaning up after itself.
8
+
9
+ Background:
10
+ Given I use a fixture named "cli-app"
11
+
12
+ Scenario: Changes in the filesystem
13
+ Given a file named "tmp/aruba/file.txt" with "content"
14
+ And a directory named "tmp/aruba/dir.d"
15
+ And a file named "features/flushing.feature" with:
16
+ """
17
+ Feature: Check
18
+ Scenario: Check
19
+ Then a file named "file.txt" does not exist
20
+ And a directory named "dir.d" does not exist
21
+ """
22
+ When I run `cucumber`
23
+ Then the features should all pass
24
+
25
+ Scenario: Do not clobber before run
26
+ Given a file named "tmp/aruba/file.txt" with "content"
27
+ And a directory named "tmp/aruba/dir.d"
28
+ And a file named "features/flushing.feature" with:
29
+ """
30
+ Feature: Check
31
+ @no-clobber
32
+ Scenario: Check
33
+ Then a file named "file.txt" should exist
34
+ And a directory named "dir.d" should exist
35
+ """
36
+ When I run `cucumber`
37
+ Then the features should all pass
38
+
39
+ Scenario: Cleanup and verify the previous scenario
40
+ Given a file named "features/flushing.feature" with:
41
+ """
42
+ Feature: Check
43
+ Scenario: Check #1
44
+ Given a file named "tmp/aruba/file.txt" with "content"
45
+ And a directory named "tmp/aruba/dir.d"
46
+
47
+ Scenario: Check #2
48
+ Then a file named "file.txt" should not exist
49
+ And a directory named "dir.d" should not exist
50
+ """
51
+ When I run `cucumber`
52
+ Then the features should all pass
53
+
54
+ Scenario: Current directory from previous scenario is reseted
55
+ Given a file named "features/non-existence.feature" with:
56
+ """
57
+ Feature: Reset
58
+ Scenario: Reset #1
59
+ Given a directory named "dir1"
60
+ When I cd to "dir1"
61
+
62
+ Scenario: Reset #2
63
+ When I run `pwd`
64
+ Then the output should match %r</tmp/aruba$>
65
+ """
66
+ When I run `cucumber`
67
+ Then the features should all pass
@@ -0,0 +1,8 @@
1
+ Feature: Install aruba
2
+
3
+ Background:
4
+ Given the default aruba exit timeout is 60 seconds
5
+
6
+ Scenario: Using rubygems
7
+ Given I successfully run `gem install aruba`
8
+ Then aruba should be installed on the local system
@@ -0,0 +1,177 @@
1
+ Feature: Run commands with Aruba
2
+
3
+ As long as you've got the neccessary programs, libraries, runtime
4
+ environments, interpreters installed, it doesn't matter in which programming
5
+ language your commandline application is implemented. You can even use POSIX
6
+ standard tools like "printf".
7
+
8
+ Below you find some examples of the "Hello, Aruba!"-application implemented
9
+ with different programming languages and a single example for a POSIX
10
+ standard tool. This is NOT an exclusive list. Every commandline application
11
+ should run with `aruba`.
12
+
13
+ Background:
14
+ Given I use a fixture named "getting-started-app"
15
+ And a file named "features/hello_aruba.feature" with:
16
+ """
17
+ Feature: Getting Started With Aruba
18
+ Scenario: First Run of Command
19
+ Given I successfully run `cli`
20
+ Then the output should contain:
21
+ \"\"\"
22
+ Hello, Aruba!
23
+ \"\"\"
24
+ """
25
+
26
+ Scenario: Bash Program
27
+ Given an executable named "bin/cli" with:
28
+ """bash
29
+ #!/usr/bin/env bash
30
+
31
+ echo "Hello, Aruba!"
32
+ """
33
+ When I successfully run `cucumber`
34
+ Then the features should all pass
35
+
36
+ Scenario: Bash Program run via bash
37
+ Given a file named "features/hello_aruba.feature" with:
38
+ """
39
+ Feature: Getting Started With Aruba
40
+ Scenario: First Run of Command
41
+ Given a file named "cli.sh" with:
42
+ \"\"\"
43
+ echo "Hello, Aruba!"
44
+ \"\"\"
45
+ When I successfully run `bash ./cli.sh`
46
+ Then the output should contain:
47
+ \"\"\"
48
+ Hello, Aruba!
49
+ \"\"\"
50
+ """
51
+ When I successfully run `cucumber`
52
+ Then the features should all pass
53
+
54
+ Scenario: Ruby Program
55
+ Given an executable named "bin/cli" with:
56
+ """ruby
57
+ #!/usr/bin/env ruby
58
+
59
+ puts "Hello, Aruba!"
60
+ """
61
+ When I successfully run `cucumber`
62
+ Then the features should all pass
63
+
64
+ Scenario: Ruby Program via "ruby"
65
+ Given a file named "features/hello_aruba.feature" with:
66
+ """
67
+ Feature: Getting Started With Aruba
68
+ Scenario: First Run of Command
69
+ Given a file named "cli.rb" with:
70
+ \"\"\"
71
+ puts "Hello, Aruba!"
72
+ \"\"\"
73
+ When I successfully run `ruby ./cli.rb`
74
+ Then the output should contain:
75
+ \"\"\"
76
+ Hello, Aruba!
77
+ \"\"\"
78
+ """
79
+ When I successfully run `cucumber`
80
+ Then the features should all pass
81
+
82
+ Scenario: Python Program
83
+ Given an executable named "bin/cli" with:
84
+ """python
85
+ #!/usr/bin/env python
86
+
87
+ print("Hello, Aruba!")
88
+ """
89
+ When I successfully run `cucumber`
90
+ Then the features should all pass
91
+
92
+ Scenario: Python Program via "python"
93
+ Given a file named "features/hello_aruba.feature" with:
94
+ """
95
+ Feature: Getting Started With Aruba
96
+ Scenario: First Run of Command
97
+ Given a file named "cli.py" with:
98
+ \"\"\"
99
+ print("Hello, Aruba!")
100
+ \"\"\"
101
+ When I successfully run `python ./cli.py`
102
+ Then the output should contain:
103
+ \"\"\"
104
+ Hello, Aruba!
105
+ \"\"\"
106
+ """
107
+ When I successfully run `cucumber`
108
+ Then the features should all pass
109
+
110
+ Scenario: Perl Program
111
+ Given an executable named "bin/cli" with:
112
+ """perl
113
+ #!/usr/bin/env perl
114
+
115
+ print "Hello, Aruba!\n";
116
+ """
117
+ When I successfully run `cucumber`
118
+ Then the features should all pass
119
+
120
+ Scenario: Perl Program via "perl"
121
+ Given a file named "features/hello_aruba.feature" with:
122
+ """
123
+ Feature: Getting Started With Aruba
124
+ Scenario: First Run of Command
125
+ Given a file named "cli.pl" with:
126
+ \"\"\"perl
127
+ print "Hello, Aruba!\n";
128
+ \"\"\"
129
+ When I successfully run `perl ./cli.pl`
130
+ Then the output should contain:
131
+ \"\"\"
132
+ Hello, Aruba!
133
+ \"\"\"
134
+ """
135
+ When I successfully run `cucumber`
136
+ Then the features should all pass
137
+
138
+ Scenario: Java Program
139
+
140
+ It's even possible to compile and run Java programs with Aruba.
141
+
142
+ Given a file named "features/hello_aruba.feature" with:
143
+ """cucumber
144
+ Feature: Getting Started With Aruba
145
+ Scenario: First Run of Command
146
+ Given a file named "tmp/HelloArubaApp.java" with:
147
+ \"\"\"
148
+ class HelloArubaApp {
149
+ public static void main(String[] args) {
150
+ System.out.println("Hello, Aruba!");
151
+ }
152
+ }
153
+ \"\"\"
154
+ And I successfully run `javac tmp/HelloArubaApp.java`
155
+ And I cd to "tmp/"
156
+ And I successfully run `java HelloArubaApp`
157
+ Then the output should contain:
158
+ \"\"\"
159
+ Hello, Aruba!
160
+ \"\"\"
161
+ """
162
+ When I successfully run `cucumber`
163
+ Then the features should all pass
164
+
165
+ Scenario: POSIX standard tools
166
+ Given a file named "features/hello_aruba.feature" with:
167
+ """
168
+ Feature: Getting Started With Aruba
169
+ Scenario: First Run of Command
170
+ Given I successfully run `printf "%s" "Hello, Aruba!"`
171
+ Then the output should contain:
172
+ \"\"\"
173
+ Hello, Aruba!
174
+ \"\"\"
175
+ """
176
+ When I successfully run `cucumber`
177
+ Then the features should all pass