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,88 @@
1
+ Feature: Check if path exists and is an executable file
2
+
3
+ If you need to check if a given path exists and is a file, you can use the
4
+ `be_an_existing_executable`-matcher.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.describe 'Check if file exists and is an executable file', :type => :aruba do
10
+ let(:file) { 'file.txt' }
11
+ before(:each) { touch(file) }
12
+ before(:each) { chmod(0755, file) }
13
+
14
+ it { expect(file).to be_an_existing_executable }
15
+ end
16
+ ```
17
+
18
+ Background:
19
+ Given I use a fixture named "cli-app"
20
+
21
+ Scenario: Expect single existing executable file
22
+ Given a file named "spec/existing_executable_spec.rb" with:
23
+ """
24
+ require 'spec_helper'
25
+
26
+ RSpec.describe 'Check if file exists and is an executable file', :type => :aruba do
27
+ let(:file) { 'file.txt' }
28
+ before(:each) { touch(file) }
29
+ before(:each) { chmod(0755, file) }
30
+
31
+ it { expect(file).to be_an_existing_executable }
32
+ end
33
+ """
34
+ When I run `rspec`
35
+ Then the specs should all pass
36
+
37
+ Scenario: Expect single non-existing executable file
38
+ Given a file named "spec/existing_executable_spec.rb" with:
39
+ """
40
+ require 'spec_helper'
41
+
42
+ RSpec.describe 'Check if file exists and is an executable file', :type => :aruba do
43
+ let(:file) { 'file.txt' }
44
+ it { expect(file).not_to be_an_existing_executable }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
49
+
50
+ Scenario: Expect multiple existing executable files
51
+ Given a file named "spec/existing_executable_spec.rb" with:
52
+ """
53
+ require 'spec_helper'
54
+
55
+ RSpec.describe 'Check if file exists and is an executable file', :type => :aruba do
56
+ let(:files) { %w(file1.txt file2.txt) }
57
+
58
+ before :each do
59
+ files.each do |f|
60
+ touch(f)
61
+ chmod(0755, f)
62
+ end
63
+ end
64
+
65
+ it { expect(files).to all be_an_existing_executable }
66
+ end
67
+ """
68
+ When I run `rspec`
69
+ Then the specs should all pass
70
+
71
+ Scenario: Expect a least one existing executable file
72
+ Given a file named "spec/existing_executable_spec.rb" with:
73
+ """
74
+ require 'spec_helper'
75
+
76
+ RSpec.describe 'Check if file exists and is an executable file', :type => :aruba do
77
+ let(:files) { %w(file1.txt file2.txt) }
78
+
79
+ before :each do
80
+ touch(files.first)
81
+ chmod(0755, files.first)
82
+ end
83
+
84
+ it { expect(files).to include an_existing_executable }
85
+ end
86
+ """
87
+ When I run `rspec`
88
+ Then the specs should all pass
@@ -0,0 +1,82 @@
1
+ Feature: Check if path exists and is file
2
+
3
+ If you need to check if a given path exists and is a file, you can use the
4
+ `be_an_existing_file`-matcher.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.describe 'Check if file exists and is file', :type => :aruba do
10
+ let(:file) { 'file.txt' }
11
+ before(:each) { touch(file) }
12
+
13
+ it { expect(file).to be_an_existing_file }
14
+ end
15
+ ```
16
+
17
+ Background:
18
+ Given I use a fixture named "cli-app"
19
+
20
+ Scenario: Expect single existing file
21
+ Given a file named "spec/existing_file_spec.rb" with:
22
+ """
23
+ require 'spec_helper'
24
+
25
+ RSpec.describe 'Check if file exists and is file', :type => :aruba do
26
+ let(:file) { 'file.txt' }
27
+ before(:each) { touch(file) }
28
+ it { expect(file).to be_an_existing_file }
29
+ end
30
+ """
31
+ When I run `rspec`
32
+ Then the specs should all pass
33
+
34
+ Scenario: Expect single non-existing file
35
+ Given a file named "spec/existing_file_spec.rb" with:
36
+ """
37
+ require 'spec_helper'
38
+
39
+ RSpec.describe 'Check if file exists and is file', :type => :aruba do
40
+ let(:file) { 'file.txt' }
41
+ it { expect(file).not_to be_an_existing_file }
42
+ end
43
+ """
44
+ When I run `rspec`
45
+ Then the specs should all pass
46
+
47
+ Scenario: Expect multiple existing files
48
+ Given a file named "spec/existing_file_spec.rb" with:
49
+ """
50
+ require 'spec_helper'
51
+
52
+ RSpec.describe 'Check if file exists and is file', :type => :aruba do
53
+ let(:files) { %w(file1.txt file2.txt) }
54
+
55
+ before :each do
56
+ files.each { |f| touch(f) }
57
+ end
58
+
59
+ it { expect(files).to all be_an_existing_file }
60
+ end
61
+ """
62
+ When I run `rspec`
63
+ Then the specs should all pass
64
+
65
+ Scenario: Expect a least one existing file
66
+ Given a file named "spec/existing_file_spec.rb" with:
67
+ """
68
+ require 'spec_helper'
69
+
70
+ RSpec.describe 'Check if file exists and is file', :type => :aruba do
71
+ let(:files) { %w(file1.txt file2.txt) }
72
+
73
+ before :each do
74
+ touch(files.first)
75
+ end
76
+
77
+ it { expect(files).to include an_existing_file }
78
+ end
79
+ """
80
+ When I run `rspec`
81
+ Then the specs should all pass
82
+
@@ -0,0 +1,123 @@
1
+ Feature: Check if file has content
2
+
3
+ If you need to check if a given file has content, you can use the
4
+ `have_file_content`-matcher. It accepts `Object`, `Regexp` or any other
5
+ `RSpec::Matcher`-matchers. It fails if file does not exist.
6
+
7
+ ```ruby
8
+ require 'spec_helper'
9
+
10
+ RSpec.describe 'Check if file has content', :type => :aruba do
11
+ let(:file) { 'file.txt' }
12
+ let(:content) { 'Hello World' }
13
+
14
+ before(:each) { write_file(file, content) }
15
+
16
+ it { expect(file).to have_file_content content }
17
+ end
18
+ ```
19
+
20
+ Background:
21
+ Given I use a fixture named "cli-app"
22
+
23
+ Scenario: Expect existing file with content
24
+ Given a file named "spec/file_with_content_spec.rb" with:
25
+ """
26
+ require 'spec_helper'
27
+
28
+ RSpec.describe 'Check file content', :type => :aruba do
29
+ let(:file) { 'file.txt' }
30
+ let(:content) { 'Hello World' }
31
+
32
+ before(:each) { write_file(file, content) }
33
+
34
+ it { expect(file).to have_file_content content }
35
+ end
36
+ """
37
+ When I run `rspec`
38
+ Then the specs should all pass
39
+
40
+ Scenario: Expect existing file with partial content
41
+ Given a file named "spec/file_with_content_spec.rb" with:
42
+ """
43
+ require 'spec_helper'
44
+
45
+ RSpec.describe 'Check file content', :type => :aruba do
46
+ let(:file) { 'file.txt' }
47
+ let(:content) { 'Hello World' }
48
+
49
+ before(:each) { write_file(file, content) }
50
+
51
+ it { expect(file).to have_file_content /Hello/ }
52
+ end
53
+ """
54
+ When I run `rspec`
55
+ Then the specs should all pass
56
+
57
+ Scenario: Expect existing file with partial content described by another matcher
58
+ Given a file named "spec/file_with_content_spec.rb" with:
59
+ """
60
+ require 'spec_helper'
61
+
62
+ RSpec.describe 'Check file content', :type => :aruba do
63
+ let(:file) { 'file.txt' }
64
+ let(:content) { 'Hello World' }
65
+
66
+ before(:each) { write_file(file, content) }
67
+
68
+ it { expect(file).to have_file_content a_string_starting_with('Hello') }
69
+ end
70
+ """
71
+ When I run `rspec`
72
+ Then the specs should all pass
73
+
74
+ Scenario: Expect multiple existing files with content
75
+ Given a file named "spec/file_with_content_spec.rb" with:
76
+ """
77
+ require 'spec_helper'
78
+
79
+ RSpec.describe 'Check file content', :type => :aruba do
80
+ let(:files) { %w(file1.txt file2.txt) }
81
+ let(:content) { 'Hello World' }
82
+
83
+ before :each do
84
+ files.each { |f| write_file(f, content) }
85
+ end
86
+
87
+ it { expect(files).to all have_file_content content }
88
+ end
89
+ """
90
+ When I run `rspec`
91
+ Then the specs should all pass
92
+
93
+ Scenario: Expect at least one file with content
94
+ Given a file named "spec/file_with_content_spec.rb" with:
95
+ """
96
+ require 'spec_helper'
97
+
98
+ RSpec.describe 'Check file content', :type => :aruba do
99
+ let(:files) { %w(file1.txt file2.txt) }
100
+ let(:content) { 'Hello World' }
101
+
102
+ before(:each) { write_file(files.first, content) }
103
+
104
+ it { expect(files).to include a_file_having_content content }
105
+ end
106
+ """
107
+ When I run `rspec`
108
+ Then the specs should all pass
109
+
110
+ Scenario: Fails if file does not exist
111
+ Given a file named "spec/file_with_content_spec.rb" with:
112
+ """
113
+ require 'spec_helper'
114
+
115
+ RSpec.describe 'Check file content', :type => :aruba do
116
+ let(:file) { 'file.txt' }
117
+ let(:content) { 'Hello World' }
118
+
119
+ it { expect(file).to have_file_content content }
120
+ end
121
+ """
122
+ When I run `rspec`
123
+ Then the specs should not all pass
@@ -0,0 +1,107 @@
1
+ Feature: Check if path has size
2
+
3
+ If you need to check if a given path has file size, you can use the
4
+ `have_file_size`-matcher. It fails if the file does not exist.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.describe 'Check if file has size', :type => :aruba do
10
+ let(:file) { 'file.txt' }
11
+ let(:size) { 1 }
12
+
13
+ before(:each) { write_fixed_size_file(file, size) }
14
+
15
+ it { expect(file).to have_file_size size }
16
+ end
17
+ ```
18
+
19
+ Background:
20
+ Given I use a fixture named "cli-app"
21
+
22
+ Scenario: Expect file of given size
23
+ Given a file named "spec/file_of_size_spec.rb" with:
24
+ """
25
+ require 'spec_helper'
26
+
27
+ RSpec.describe 'Check if file has size', :type => :aruba do
28
+ let(:file) { 'file.txt' }
29
+ let(:size) { 1 }
30
+
31
+ before(:each) { write_fixed_size_file(file, size) }
32
+
33
+ it { expect(file).to have_file_size size }
34
+ end
35
+ """
36
+ When I run `rspec`
37
+ Then the specs should all pass
38
+
39
+ Scenario: Expect multiple files of given size
40
+ Given a file named "spec/file_of_size_spec.rb" with:
41
+ """
42
+ require 'spec_helper'
43
+
44
+ RSpec.describe 'Check if file has size', :type => :aruba do
45
+ let(:files) { %w(file1.txt file2.txt) }
46
+ let(:size) { 1 }
47
+
48
+ before :each do
49
+ files.each { |f| write_fixed_size_file(f, size) }
50
+ end
51
+
52
+ it { expect(files).to all have_file_size size }
53
+ end
54
+ """
55
+ When I run `rspec`
56
+ Then the specs should all pass
57
+
58
+ Scenario: Expect a least one file of size
59
+ Given a file named "spec/file_of_size_spec.rb" with:
60
+ """
61
+ require 'spec_helper'
62
+
63
+ RSpec.describe 'Check if file has size', :type => :aruba do
64
+ let(:files) { %w(file1.txt file2.txt) }
65
+ let(:size) { 1 }
66
+
67
+ before :each do
68
+ write_fixed_size_file(files.first, size)
69
+ end
70
+
71
+ it { expect(files).to include a_file_of_size size }
72
+ end
73
+ """
74
+ When I run `rspec`
75
+ Then the specs should all pass
76
+
77
+ Scenario: Fails because file has different size than expected
78
+ Given a file named "spec/file_of_size_spec.rb" with:
79
+ """
80
+ require 'spec_helper'
81
+
82
+ RSpec.describe 'Check if file has size', :type => :aruba do
83
+ let(:file) { 'file.txt' }
84
+ let(:size) { 1 }
85
+
86
+ before(:each) { write_fixed_size_file(file, size) }
87
+
88
+ it { expect(file).to have_file_size 2 }
89
+ end
90
+ """
91
+ When I run `rspec`
92
+ Then the specs should not all pass
93
+
94
+ Scenario: Fails if file does not exist
95
+ Given a file named "spec/file_of_size_spec.rb" with:
96
+ """
97
+ require 'spec_helper'
98
+
99
+ RSpec.describe 'Check if file has size', :type => :aruba do
100
+ let(:file) { 'file.txt' }
101
+ let(:size) { 1 }
102
+
103
+ it { expect(file).to have_file_size size }
104
+ end
105
+ """
106
+ When I run `rspec`
107
+ Then the specs should not all pass
@@ -0,0 +1,74 @@
1
+ Feature: Check if path is absolute
2
+
3
+ If you need to check if a given path is absolute , you can use the
4
+ `be_an_absolute_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 is absolute', :type => :aruba do
11
+ let(:path) { 'file.txt' }
12
+ before(:each) { touch(path) }
13
+
14
+ it { expect(path).to be_an_absolute_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/absolute_path_spec.rb" with:
23
+ """
24
+ require 'spec_helper'
25
+
26
+ RSpec.describe 'Check if path is absolute', :type => :aruba do
27
+ let(:path) { '/path/to/file.txt' }
28
+ it { expect(path).to be_an_absolute_path }
29
+ end
30
+ """
31
+ When I run `rspec`
32
+ Then the specs should all pass
33
+
34
+ Scenario: Expect multiple absolute paths
35
+ Given a file named "spec/absolute_path_spec.rb" with:
36
+ """
37
+ require 'spec_helper'
38
+
39
+ RSpec.describe 'Check if path is absolute', :type => :aruba do
40
+ let(:paths) { %w(/path/to/path1.txt /path/to/path2.txt) }
41
+
42
+ it { expect(paths).to all be_an_absolute_path }
43
+ end
44
+ """
45
+ When I run `rspec`
46
+ Then the specs should all pass
47
+
48
+ Scenario: Expect a least one existing path
49
+ Given a file named "spec/absolute_path_spec.rb" with:
50
+ """
51
+ require 'spec_helper'
52
+
53
+ RSpec.describe 'Check if path is absolute', :type => :aruba do
54
+ let(:paths) { %w(/path/to/path1.txt path2.txt) }
55
+
56
+ it { expect(paths).to include an_absolute_path }
57
+ end
58
+ """
59
+ When I run `rspec`
60
+ Then the specs should all pass
61
+
62
+ Scenario: Expect failure on relative path
63
+ Given a file named "spec/absolute_path_spec.rb" with:
64
+ """
65
+ require 'spec_helper'
66
+
67
+ RSpec.describe 'Check if path is absolute', :type => :aruba do
68
+ let(:paths) { %w(path2.txt) }
69
+
70
+ it { expect(paths).to be_an_absolute_path }
71
+ end
72
+ """
73
+ When I run `rspec`
74
+ Then the specs should not all pass