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,57 @@
1
+ Feature: Create Directory
2
+
3
+ As a user of aruba
4
+ I want to create directories
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Non-existing directory
10
+ Given a file named "features/create_directory.feature" with:
11
+ """
12
+ Feature: Create directory
13
+ Background:
14
+ Given a directory named "dir1"
15
+
16
+ Scenario: Create directory #1
17
+ Then a directory named "dir1" should exist
18
+
19
+ Scenario: Create directory #2
20
+ Then a directory named "dir1" should exist
21
+
22
+ Scenario: Create directory #3
23
+ Then a directory named "dir1" should exist
24
+
25
+ Scenario: Create directory #4
26
+ Then a directory named "dir1" should exist
27
+
28
+ Scenario: Create directory #5
29
+ Then a directory named "dir1" should exist
30
+ """
31
+ When I run `cucumber`
32
+ Then the features should all pass
33
+
34
+ Scenario: Existing directory
35
+
36
+ It doesn't matter if a directory already exist.
37
+
38
+ Given a file named "features/create_directory.feature" with:
39
+ """
40
+ Feature: Create directory
41
+ Scenario: Create directory
42
+ Given a directory named "dir1"
43
+ And a directory named "dir1"
44
+ """
45
+ When I run `cucumber`
46
+ Then the features should all pass
47
+
48
+ Scenario: Change mode a long with creation of directory
49
+ Given a file named "features/create_directory.feature" with:
50
+ """
51
+ Feature: Create directory
52
+ Scenario: Create directory
53
+ Given a directory named "dir1" with mode "0644"
54
+ Then the directory named "dir1" should have permissions "0644"
55
+ """
56
+ When I run `cucumber`
57
+ Then the features should all pass
@@ -0,0 +1,76 @@
1
+ Feature: Create new File
2
+
3
+ As a user of aruba
4
+ I want to create files
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Create empty file
10
+ Given a file named "features/create_file.feature" with:
11
+ """
12
+ Feature: Create file
13
+ Scenario: Create file
14
+ Given an empty file named "file1.txt"
15
+ Then a file named "file1.txt" should exist
16
+ """
17
+ When I run `cucumber`
18
+ Then the features should all pass
19
+
20
+ Scenario: Create file with content
21
+ Given a file named "features/create_file.feature" with:
22
+ """
23
+ Feature: Create file
24
+ Scenario: Create file
25
+ Given a file named "file1.txt" with:
26
+ \"\"\"
27
+ Hello World
28
+ \"\"\"
29
+ Then the file named "file1.txt" should contain:
30
+ \"\"\"
31
+ Hello World
32
+ \"\"\"
33
+ """
34
+ When I run `cucumber`
35
+ Then the features should all pass
36
+
37
+ Scenario: Change mode a long with creation of a file with content
38
+ Given a file named "features/create_file.feature" with:
39
+ """
40
+ Feature: Create file
41
+ Scenario: Create file
42
+ Given a file named "file1.txt" with mode "0644" and with:
43
+ \"\"\"
44
+ Hello World
45
+ \"\"\"
46
+ Then the file named "file1.txt" should have permissions "0644"
47
+ And the file named "file1.txt" should contain:
48
+ \"\"\"
49
+ Hello World
50
+ \"\"\"
51
+ """
52
+ When I run `cucumber`
53
+ Then the features should all pass
54
+
55
+ Scenario: Change mode a long with creation of empty file
56
+ Given a file named "features/create_file.feature" with:
57
+ """
58
+ Feature: Create file
59
+ Scenario: Create file
60
+ Given an empty file named "file1.txt" with mode "0644"
61
+ Then the file named "file1.txt" should have permissions "0644"
62
+ """
63
+ When I run `cucumber`
64
+ Then the features should all pass
65
+
66
+ Scenario: Create a fixed sized file
67
+ Given a file named "features/non-existence.feature" with:
68
+ """
69
+ Feature: Create file
70
+ Scenario: Create file
71
+ Given a 1048576 byte file named "test.txt"
72
+ Then a 1048576 byte file named "test.txt" should exist
73
+ """
74
+ When I run `cucumber`
75
+ Then the features should all pass
76
+
@@ -0,0 +1,57 @@
1
+ Feature: Make sure and check a directory exists
2
+
3
+ To setup a working environment, you may want to make sure, that a
4
+ directory exist.
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Check for presence of a single directory
10
+ Given a file named "features/existence.feature" with:
11
+ """
12
+ Feature: Existence
13
+ Background:
14
+ Given an empty directory "lorem/ipsum/dolor"
15
+
16
+ Scenario: Existence #1
17
+ Then the directory "lorem/ipsum/dolor" should exist
18
+
19
+ Scenario: Existence #2
20
+ Then the directory named "lorem/ipsum/dolor" should exist
21
+
22
+ Scenario: Existence #3
23
+ Then a directory named "lorem/ipsum/dolor" should exist
24
+ """
25
+ When I run `cucumber`
26
+ Then the features should all pass
27
+
28
+ Scenario: Check for presence of a multiple directories
29
+ Given a file named "features/existence.feature" with:
30
+ """
31
+ Feature: Existence
32
+ Scenario: Existence
33
+ Given an empty directory "lorem/ipsum/dolor"
34
+ And an empty directory "lorem/ipsum/amet"
35
+ Then the following directories should exist:
36
+ | lorem/ipsum/dolor |
37
+ | lorem/ipsum/amet |
38
+ """
39
+ When I run `cucumber`
40
+ Then the features should all pass
41
+
42
+
43
+ Scenario: Check for presence of a subset of directories
44
+ Given a file named "features/existence.feature" with:
45
+ """
46
+ Feature: Existence
47
+ Scenario: Existence
48
+ Given an empty directory "lorem/ipsum/dolor"
49
+ And an empty directory "lorem/ipsum/amet"
50
+ And an empty directory "lorem/ipsum/sit"
51
+ Then the following directories should exist:
52
+ | lorem/ipsum/dolor |
53
+ | lorem/ipsum/amet |
54
+ """
55
+ When I run `cucumber`
56
+ Then the features should all pass
57
+
@@ -0,0 +1,43 @@
1
+ Feature: Make sure and check a file exists
2
+
3
+ To setup a working environment, you may want to make sure, that a
4
+ file exist or if you ran your command of a file
5
+ was deleted.
6
+
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Check for presence of a single file
11
+ Given an empty file named "lorem/ipsum/dolor"
12
+ Then a file named "lorem/ipsum/dolor" should exist
13
+
14
+ Scenario: Check for presence of a subset of files
15
+ Given a file named "features/existence.feature" with:
16
+ """
17
+ Feature: Existence
18
+ Scenario: Existence
19
+ Given an empty file named "lorem/ipsum/dolor"
20
+ And an empty file named "lorem/ipsum/sit"
21
+ And an empty file named "lorem/ipsum/amet"
22
+ Then the following files should exist:
23
+ | lorem/ipsum/dolor |
24
+ | lorem/ipsum/amet |
25
+ """
26
+ When I run `cucumber`
27
+ Then the features should all pass
28
+
29
+ Scenario: Check for presence of a single file using a regex
30
+ Given a file named "features/non-existence.feature" with:
31
+ """
32
+ Feature: Existence
33
+ Background:
34
+ Given an empty file named "lorem/ipsum/dolor"
35
+
36
+ Scenario: Existence #1
37
+ Then a file matching %r<dolor$> should exist
38
+
39
+ Scenario: Existence #2
40
+ Then a file matching %r<ipsum/dolor> should exist
41
+ """
42
+ When I run `cucumber`
43
+ Then the features should all pass
@@ -0,0 +1,86 @@
1
+ Feature: Check file content
2
+
3
+ Background:
4
+ Given I use a fixture named "cli-app"
5
+
6
+ Scenario: Existing file having content
7
+ Given a file named "features/file_content.feature" with:
8
+ """
9
+ Feature: File content
10
+ Scenario: file content
11
+ Given a file named "test.txt" with:
12
+ \"\"\"
13
+ Hello World
14
+ \"\"\"
15
+ Then the file named "test.txt" should contain:
16
+ \"\"\"
17
+ Hello World
18
+ \"\"\"
19
+ """
20
+ When I run `cucumber`
21
+ Then the features should all pass
22
+
23
+ Scenario: Existing file having content with special characters
24
+ Given a file named "features/file_content.feature" with:
25
+ """
26
+ Feature: File content
27
+ Scenario: file content
28
+ Given a file named "test.txt" with:
29
+ \"\"\"
30
+ UUUUU
31
+
32
+ 1 scenario (1 undefined)
33
+ 5 steps (5 undefined)
34
+
35
+ \"\"\"
36
+ Then the file named "test.txt" should contain:
37
+ \"\"\"
38
+ UUUUU
39
+
40
+ 1 scenario (1 undefined)
41
+ 5 steps (5 undefined)
42
+
43
+ \"\"\"
44
+ """
45
+ When I run `cucumber --format progress`
46
+ Then the features should all pass
47
+
48
+ Scenario: Trailing white space is ignored
49
+ Given a file named "features/file_content.feature" with:
50
+ """
51
+ Feature: File content
52
+ Scenario: file content
53
+ Given a file named "test.txt" with:
54
+ \"\"\"
55
+ UUUUU
56
+
57
+ \"\"\"
58
+ Then the file named "test.txt" should contain:
59
+ \"\"\"
60
+ UUUUU
61
+ \"\"\"
62
+ """
63
+ When I run `cucumber`
64
+ Then the features should all pass
65
+
66
+ Scenario: Use non-ASCII UTF-8 characters
67
+ Given a file named "features/file_content.feature" with:
68
+ """
69
+ Feature: File content
70
+ Scenario: file content
71
+ Given a file named "test.txt" with:
72
+ \"\"\"
73
+ フィーチャ
74
+ \"\"\"
75
+ When I run `cat test.txt`
76
+ Then the output should contain:
77
+ \"\"\"
78
+ フィーチャ
79
+ \"\"\"
80
+ And the file named "test.txt" should contain:
81
+ \"\"\"
82
+ フィーチャ
83
+ \"\"\"
84
+ """
85
+ When I run `cucumber`
86
+ Then the features should all pass
@@ -0,0 +1,64 @@
1
+ Feature: Use fixtures in your tests
2
+
3
+ Sometimes your tests need existing files to work - e.g binary data files you
4
+ cannot create programmatically. Since `aruba` >= 0.6.3 includes some basic
5
+ support for fixtures. All you need to do is the following:
6
+
7
+ 1. Create a `fixtures`-directory
8
+ 2. Create fixture files in this directory
9
+
10
+
11
+ Background:
12
+ Given I use a fixture named "cli-app"
13
+
14
+ Scenario: Use a fixture for your tests
15
+ Given a file named "features/fixtures.feature" with:
16
+ """
17
+ Feature: Fixture
18
+ Scenario: Fixture
19
+ Given I use a fixture named "fixtures-app"
20
+ Then a file named "test.txt" should exist
21
+ """
22
+ And a directory named "fixtures"
23
+ And an empty file named "fixtures/fixtures-app/test.txt"
24
+ When I run `cucumber`
25
+ Then the features should all pass
26
+
27
+ Scenario: Use a fixture for your tests in test/
28
+ Given a file named "features/fixtures.feature" with:
29
+ """
30
+ Feature: Fixture
31
+ Scenario: Fixture
32
+ Given I use a fixture named "fixtures-app"
33
+ Then a file named "test.txt" should exist
34
+ """
35
+ And a directory named "test/fixtures"
36
+ And an empty file named "test/fixtures/fixtures-app/test.txt"
37
+ When I run `cucumber`
38
+ Then the features should all pass
39
+
40
+ Scenario: Use a fixture for your tests in specs/
41
+ Given a file named "features/fixtures.feature" with:
42
+ """
43
+ Feature: Fixture
44
+ Scenario: Fixture
45
+ Given I use a fixture named "fixtures-app"
46
+ Then a file named "test.txt" should exist
47
+ """
48
+ And a directory named "spec/fixtures"
49
+ And an empty file named "spec/fixtures/fixtures-app/test.txt"
50
+ When I run `cucumber`
51
+ Then the features should all pass
52
+
53
+ Scenario: Use a fixture for your tests in features/
54
+ Given a file named "features/fixtures.feature" with:
55
+ """
56
+ Feature: Fixture
57
+ Scenario: Fixture
58
+ Given I use a fixture named "fixtures-app"
59
+ Then a file named "test.txt" should exist
60
+ """
61
+ And a directory named "features/fixtures"
62
+ And an empty file named "features/fixtures/fixtures-app/test.txt"
63
+ When I run `cucumber`
64
+ Then the features should all pass
@@ -0,0 +1,45 @@
1
+ Feature: Move file or directory
2
+
3
+ As a user of aruba
4
+ I want ot move a file or a directory
5
+ To setup my tests
6
+
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Move file
11
+ Given a file named "features/move.feature" with:
12
+ """
13
+ Feature: Move
14
+ Scenario: Move
15
+ Given an empty file named "file1.txt"
16
+ And an empty file named "file2.txt"
17
+ And an empty file named "file3.txt"
18
+ When I move a file named "file1.txt" to "new_file1.txt"
19
+ When I move a file from "file2.txt" to "new_file2.txt"
20
+ When I move the file "file3.txt" to "new_file3.txt"
21
+ Then a file named "new_file1.txt" should exist
22
+ Then a file named "new_file2.txt" should exist
23
+ Then a file named "new_file3.txt" should exist
24
+ """
25
+ When I run `cucumber`
26
+ Then the features should all pass
27
+
28
+ Scenario: Move directory
29
+ Given a file named "features/move.feature" with:
30
+ """
31
+ Feature: Move
32
+ Scenario: Move
33
+ Given a directory named "dir1.d"
34
+ And a directory named "dir2.d"
35
+ And a directory named "dir3.d"
36
+ When I move a directory named "dir1.d" to "new_dir1.d"
37
+ When I move a directory from "dir2.d" to "new_dir2.d"
38
+ When I move the directory "dir3.d" to "new_dir3.d"
39
+ Then a directory named "new_dir1.d" should exist
40
+ Then a directory named "new_dir2.d" should exist
41
+ Then a directory named "new_dir3.d" should exist
42
+ """
43
+ When I run `cucumber`
44
+ Then the features should all pass
45
+
@@ -0,0 +1,69 @@
1
+ Feature: Make sure and check a directory does not exist
2
+
3
+ To setup a working environment, you may want to make sure, that a
4
+ directory does not exist or if you ran your command of a directory
5
+ was deleted.
6
+
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Delete existing directory
11
+ Given a file named "features/non-existence.feature" with:
12
+ """
13
+ Feature: Non-Existence
14
+ Background:
15
+ Given a directory named "example.d" does not exist
16
+
17
+ Scenario: Non-Existence #1
18
+ Then the directory "example.d" should not exist
19
+
20
+ Scenario: Non-Existence #2
21
+ Then the directory "example.d" should not exist
22
+
23
+ Scenario: Non-Existence #3
24
+ Then the directory "example.d" should not exist
25
+ """
26
+ When I run `cucumber`
27
+ Then the features should all pass
28
+
29
+ Scenario: Check if a directory does not exists
30
+ Given a file named "features/non-existence.feature" with:
31
+ """
32
+ Feature: Non-Existence
33
+ Background:
34
+ Given a directory named "example.d" does not exist
35
+
36
+ Scenario: Non-Existence #1
37
+ Then the directory "example.d" should not exist
38
+
39
+ Scenario: Non-Existence #2
40
+ Then the directory named "example.d" should not exist
41
+
42
+ Scenario: Non-Existence #3
43
+ Then a directory named "example.d" should not exist
44
+
45
+ Scenario: Non-Existence #4
46
+ Then a directory named "example.d" should not exist anymore
47
+
48
+ Scenario: Non-Existence #5
49
+ Then the directory named "example.d" should not exist anymore
50
+
51
+ Scenario: Non-Existence #6
52
+ Then the directory "example.d" should not exist anymore
53
+ """
54
+ When I run `cucumber`
55
+ Then the features should all pass
56
+
57
+ Scenario: Check for absence of a subset of directories
58
+ Given a file named "features/non-existence.feature" with:
59
+ """
60
+ Feature: Non-Existence
61
+ Scenario: Non-Existence
62
+ Given the directory "lorem/ipsum/dolor" does not exist
63
+ And the directory "lorem/ipsum/amet" does not exist
64
+ Then the following directories should not exist:
65
+ | lorem/ipsum/dolor |
66
+ | lorem/ipsum/amet |
67
+ """
68
+ When I run `cucumber`
69
+ Then the features should all pass