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,97 @@
1
+ Feature: Check if path exists
2
+
3
+ If you need to check if a given path exists, you can use the
4
+ `be_an_existing_path`-matcher. It doesn't care if the path is a directory or
5
+ a path.
6
+
7
+ ```ruby
8
+ require 'spec_helper'
9
+
10
+ RSpec.describe 'Check if path exists', :type => :aruba do
11
+ let(:path) { 'file.txt' }
12
+ before(:each) { touch(path) }
13
+
14
+ it { expect(path).to be_an_existing_path }
15
+ end
16
+ ```
17
+
18
+ Background:
19
+ Given I use a fixture named "cli-app"
20
+
21
+ Scenario: Expect single existing path
22
+ Given a file named "spec/existing_path_spec.rb" with:
23
+ """
24
+ require 'spec_helper'
25
+
26
+ RSpec.describe 'Check if path exists', :type => :aruba do
27
+ let(:path) { 'file.txt' }
28
+ before(:each) { touch(path) }
29
+ it { expect(path).to be_an_existing_path }
30
+ end
31
+ """
32
+ When I run `rspec`
33
+ Then the specs should all pass
34
+
35
+ Scenario: Expect single existing directory
36
+ Given a file named "spec/existing_path_spec.rb" with:
37
+ """
38
+ require 'spec_helper'
39
+
40
+ RSpec.describe 'Check if path exists', :type => :aruba do
41
+ let(:path) { 'dir.d' }
42
+ before(:each) { create_directory(path) }
43
+ it { expect(path).to be_an_existing_path }
44
+ end
45
+ """
46
+ When I run `rspec`
47
+ Then the specs should all pass
48
+
49
+ Scenario: Expect single non-existing path
50
+ Given a file named "spec/existing_path_spec.rb" with:
51
+ """
52
+ require 'spec_helper'
53
+
54
+ RSpec.describe 'Check if path exists', :type => :aruba do
55
+ let(:path) { 'file.txt' }
56
+ it { expect(path).not_to be_an_existing_path }
57
+ end
58
+ """
59
+ When I run `rspec`
60
+ Then the specs should all pass
61
+
62
+ Scenario: Expect multiple existing paths
63
+ Given a file named "spec/existing_path_spec.rb" with:
64
+ """
65
+ require 'spec_helper'
66
+
67
+ RSpec.describe 'Check if path exists', :type => :aruba do
68
+ let(:paths) { %w(path1.txt path2.txt) }
69
+
70
+ before :each do
71
+ paths.each { |f| touch(f) }
72
+ end
73
+
74
+ it { expect(paths).to all be_an_existing_path }
75
+ end
76
+ """
77
+ When I run `rspec`
78
+ Then the specs should all pass
79
+
80
+ Scenario: Expect a least one existing path
81
+ Given a file named "spec/existing_path_spec.rb" with:
82
+ """
83
+ require 'spec_helper'
84
+
85
+ RSpec.describe 'Check if path exists', :type => :aruba do
86
+ let(:paths) { %w(path1.txt path2.txt) }
87
+
88
+ before :each do
89
+ touch(paths.first)
90
+ end
91
+
92
+ it { expect(paths).to include an_existing_path }
93
+ end
94
+ """
95
+ When I run `rspec`
96
+ Then the specs should all pass
97
+
@@ -0,0 +1,118 @@
1
+ Feature: Check if path has permissions in filesystem
2
+
3
+ If you need to check if a given path has some permissions in filesystem, you
4
+ can use the `have_permissions`-matcher. It fails if the file or directory
5
+ does not exist. You need to pass it the permissions either as `Octal`
6
+ (`0700`) or `String` (`'0700'`).
7
+
8
+ ```ruby
9
+ require 'spec_helper'
10
+
11
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
12
+ context 'when is file' do
13
+ let(:file) { 'file.txt' }
14
+ let(:permissions) { 0700 }
15
+
16
+ before(:each) { touch(file) }
17
+ before(:each) { chmod(permissions, file }
18
+
19
+ it { expect(file).to have_permissions permissions }
20
+ end
21
+ end
22
+ ```
23
+
24
+ Background:
25
+ Given I use a fixture named "cli-app"
26
+
27
+ Scenario: Expect file with permissions
28
+ Given a file named "spec/path_with_permissions_spec.rb" with:
29
+ """
30
+ require 'spec_helper'
31
+
32
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
33
+ let(:file) { 'file.txt' }
34
+ let(:permissions) { 0700 }
35
+
36
+ before(:each) { touch(file) }
37
+ before(:each) { chmod(permissions, file) }
38
+
39
+ it { expect(file).to have_permissions permissions }
40
+ end
41
+ """
42
+ When I run `rspec`
43
+ Then the specs should all pass
44
+
45
+ Scenario: Expect directory with permissions
46
+ Given a file named "spec/path_with_permissions_spec.rb" with:
47
+ """
48
+ require 'spec_helper'
49
+
50
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
51
+ let(:directory) { 'directory.d' }
52
+ let(:permissions) { 0700 }
53
+
54
+ before(:each) { create_directory(directory) }
55
+ before(:each) { chmod(permissions, directory) }
56
+
57
+ it { expect(directory).to have_permissions permissions }
58
+ end
59
+ """
60
+ When I run `rspec`
61
+ Then the specs should all pass
62
+
63
+ Scenario: Expect multiple files with given permissions
64
+ Given a file named "spec/path_with_permissions_spec.rb" with:
65
+ """
66
+ require 'spec_helper'
67
+
68
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
69
+ let(:files) { %w(file1.txt file2.txt) }
70
+ let(:permissions) { 0700 }
71
+
72
+ before :each do
73
+ files.each do |f|
74
+ touch(f)
75
+ chmod(permissions, f)
76
+ end
77
+ end
78
+
79
+ it { expect(files).to all have_permissions permissions }
80
+ end
81
+ """
82
+ When I run `rspec`
83
+ Then the specs should all pass
84
+
85
+ Scenario: Expect a least one file with permissions
86
+ Given a file named "spec/path_with_permissions_spec.rb" with:
87
+ """
88
+ require 'spec_helper'
89
+
90
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
91
+ let(:files) { %w(file1.txt file2.txt) }
92
+ let(:permissions) { 0700 }
93
+
94
+ before :each do
95
+ touch(files.first)
96
+ chmod(permissions, files.first)
97
+ end
98
+
99
+ it { expect(files).to include a_path_having_permissions permissions }
100
+ end
101
+ """
102
+ When I run `rspec`
103
+ Then the specs should all pass
104
+
105
+ Scenario: Fails if path does not exist
106
+ Given a file named "spec/path_with_permissions_spec.rb" with:
107
+ """
108
+ require 'spec_helper'
109
+
110
+ RSpec.describe 'Check if path has permissions', :type => :aruba do
111
+ let(:path) { 'file.txt' }
112
+ let(:permissions) { 0777 }
113
+
114
+ it { expect(path).to have_permissions permissions }
115
+ end
116
+ """
117
+ When I run `rspec`
118
+ Then the specs should not all pass
@@ -0,0 +1,48 @@
1
+ Feature: Check if a timeout occured during command execution
2
+
3
+ If you want to check if a command takes to long to finish it's work
4
+
5
+ Background:
6
+ Given I use a fixture named "cli-app"
7
+
8
+ Scenario: Check if command runs to long
9
+ Given an executable named "bin/cli" with:
10
+ """
11
+ #!/bin/bash
12
+ sleep 1
13
+ """
14
+ And a file named "spec/timeout_spec.rb" with:
15
+ """
16
+ require 'spec_helper'
17
+
18
+ RSpec.describe 'Long running command', :type => :aruba do
19
+ before(:each) { aruba.config.exit_timeout = 0 }
20
+
21
+ before(:each) { run('cli') }
22
+
23
+ it { expect(last_command_started).to run_too_long }
24
+ end
25
+ """
26
+ When I run `rspec`
27
+ Then the specs should all pass
28
+
29
+ Scenario: Check if command finishes in time
30
+ Given an executable named "bin/cli" with:
31
+ """
32
+ #!/bin/bash
33
+ exit 0
34
+ """
35
+ And a file named "spec/timeout_spec.rb" with:
36
+ """
37
+ require 'spec_helper'
38
+
39
+ RSpec.describe 'Short running command', :type => :aruba do
40
+ before(:each) { aruba.config.exit_timeout = 5 }
41
+
42
+ before(:each) { run('cli') }
43
+
44
+ it { expect(last_command_started).to have_finished_in_time }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
@@ -0,0 +1,14 @@
1
+ Feature: Support for JRuby
2
+
3
+ Improve startup time by disabling JIT and forcing client JVM mode. This can
4
+ be accomplished by adding
5
+
6
+ ```ruby
7
+ require 'aruba/jruby'
8
+ ```
9
+
10
+ *Note* - no conflict resolution on the JAVA/JRuby environment options is
11
+ done; only merging. For more complex settings please manually set the
12
+ environment variables in the hook or externally.
13
+
14
+ Refer to http://blog.headius.com/2010/03/jruby-startup-time-tips.html for other tips on startup time.
@@ -0,0 +1,179 @@
1
+ Feature: Getting started with RSpec and aruba
2
+
3
+ Background:
4
+ Given I use the fixture "empty-app"
5
+
6
+ Scenario: Simple Integration
7
+
8
+ To use the simple integration just require `aruba/rspec` in your
9
+ `spec_helper.rb`. After that you only need to flag your tests with `type:
10
+ :aruba` and some things are set up for.
11
+
12
+ The simple integration adds some `before(:each)`-hooks for you:
13
+
14
+ \* Setup Aruba Test directory
15
+ \* Clear environment (ENV)
16
+ \* Make HOME-variable configarable via `arub.config.home_directory`
17
+ \* Configure `aruba` via `RSpec`-metadata
18
+ \* Activate announcers based on `RSpec`-metadata
19
+
20
+ Be careful, if you are going to use a `before(:all)`-hook to set up
21
+ files/directories. Those will be deleted by the `setup_aruba`-call within
22
+ the `before(:each)`-hook. Look for some custom integration further down the
23
+ documentation for a solution.
24
+
25
+ Given a file named "spec/spec_helper.rb" with:
26
+ """
27
+ require 'aruba/rspec'
28
+ """
29
+ And a file named "spec/getting_started_spec.rb" with:
30
+ """
31
+ require 'spec_helper'
32
+
33
+ RSpec.describe 'Integrate Aruba into RSpec', :type => :aruba do
34
+ context 'when to be or not be...' do
35
+ it { expect(aruba).to be }
36
+ end
37
+
38
+ context 'when write file' do
39
+ let(:file) { 'file.txt' }
40
+
41
+ before(:each) { write_file file, 'Hello World' }
42
+
43
+ it { expect(file).to be_an_existing_file }
44
+ it { expect([file]).to include an_existing_file }
45
+ end
46
+ end
47
+ """
48
+ When I run `rspec`
49
+ Then the specs should all pass
50
+
51
+ Scenario: Simple Custom Integration
52
+
53
+ There might be some use cases where you want to build an aruba integration
54
+ of your own. You need to include the API and make sure, that you run
55
+
56
+ \* `restore_env` (only for aruba < 1.0.0)
57
+ \* `setup_aruba`
58
+
59
+ before any method of aruba is used.
60
+
61
+ Given a file named "spec/spec_helper.rb" with:
62
+ """
63
+ require 'aruba/api'
64
+
65
+ RSpec.configure do |config|
66
+ config.include Aruba::Api
67
+ end
68
+ """
69
+ And a file named "spec/getting_started_spec.rb" with:
70
+ """
71
+ require 'spec_helper'
72
+
73
+ RSpec.describe 'Custom Integration of aruba' do
74
+ let(:file) { 'file.txt' }
75
+
76
+ before(:each) { setup_aruba }
77
+ before(:each) { write_file file, 'Hello World' }
78
+
79
+ it { expect(file).to be_an_existing_file }
80
+ end
81
+ """
82
+ When I run `rspec`
83
+ Then the specs should all pass
84
+
85
+ Scenario: Custom Integration using before(:all)-hook
86
+
87
+ You can even use `aruba` within a `before(:all)`-hook. But again, make sure
88
+ that `setup_aruba` is run before you use any method of `aruba`. Using
89
+ `setup_aruba` both in `before(:all)`- and `before(:each)`-hook is not
90
+ possible and therefor not supported:
91
+
92
+ Running `setup_aruba` removes `tmp/aruba`, creates a new one `tmp/aruba`
93
+ and make it the working directory. Running it within a `before(:all)`-hook,
94
+ run some `aruba`-method and then run `setup_arub` again within a
95
+ `before(:each)`-hook, will remove the files/directories created within the
96
+ `before(:all)`-hook.
97
+
98
+ Given a file named "spec/spec_helper.rb" with:
99
+ """
100
+ require 'aruba/api'
101
+
102
+ RSpec.configure do |config|
103
+ config.include Aruba::Api
104
+ end
105
+ """
106
+ And a file named "spec/getting_started_spec.rb" with:
107
+ """
108
+ require 'spec_helper'
109
+
110
+ RSpec.describe 'Custom Integration of aruba' do
111
+ before(:all) { setup_aruba }
112
+ before(:all) { write_file 'file.txt', 'Hello World' }
113
+
114
+ it { expect('file.txt').to be_an_existing_file }
115
+ end
116
+ """
117
+ When I run `rspec`
118
+ Then the specs should all pass
119
+
120
+ Scenario: Setup aruba before use any of it's methods
121
+
122
+ From 1.0.0 it will be required, that you setup aruba before you use it.
123
+
124
+ Given a file named "spec/spec_helper.rb" with:
125
+ """
126
+ require 'aruba/api'
127
+
128
+ RSpec.configure do |config|
129
+ config.include Aruba::Api
130
+ end
131
+ """
132
+ And a file named "spec/getting_started_spec.rb" with:
133
+ """
134
+ require 'spec_helper'
135
+
136
+ RSpec.describe 'Custom Integration of aruba' do
137
+ let(:file) { 'file.txt' }
138
+
139
+ before(:each) { setup_aruba }
140
+
141
+ it { expect(true).to be true }
142
+ end
143
+ """
144
+ And an empty file named "tmp/aruba/garbage.txt"
145
+ When I run `rspec`
146
+ Then the specs should all pass
147
+ And the file "tmp/aruba/garbage.txt" should not exist anymore
148
+
149
+ Scenario: Fail-safe use if "setup_aruba" is not used
150
+
151
+ If you forgot to run `setup_aruba` before the first method of aruba is
152
+ used, you might see an error. Although we did our best to prevent this.
153
+
154
+ Make sure that you run `setup_aruba` before any method of aruba is used. At
155
+ best before each and every test.
156
+
157
+ This will be not supported anymore from 1.0.0 on.
158
+
159
+ Given a file named "spec/spec_helper.rb" with:
160
+ """
161
+ require 'aruba/api'
162
+
163
+ RSpec.configure do |config|
164
+ config.include Aruba::Api
165
+ end
166
+ """
167
+ And a file named "spec/getting_started_spec.rb" with:
168
+ """
169
+ require 'spec_helper'
170
+
171
+ RSpec.describe 'Custom Integration of aruba' do
172
+ let(:file) { 'file.txt' }
173
+
174
+ it { expect { write_file file, 'Hello World' }.not_to raise_error }
175
+ it { expect(aruba.current_directory.directory?).to be true }
176
+ end
177
+ """
178
+ When I run `rspec`
179
+ Then the specs should all pass