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
+ Use the `#create_directory`-method to create a directory within `aruba`'s
4
+ working directory.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.configure do |config|
10
+ config.include Aruba::Api
11
+ end
12
+
13
+ RSpec.describe 'Create directory' do
14
+ let(:directory) { 'dir.d' }
15
+ before(:each) { create_directory(directory) }
16
+
17
+ it { expect(directory).to be_an_existing_directory }
18
+ end
19
+ ```
20
+
21
+ Background:
22
+ Given I use a fixture named "cli-app"
23
+
24
+ Scenario: New directory
25
+ Given a file named "spec/create_directory_spec.rb" with:
26
+ """ruby
27
+ require 'spec_helper'
28
+
29
+ RSpec.describe 'Create directory', :type => :aruba do
30
+ let(:directory) { 'dir.d' }
31
+ before(:each) { create_directory(directory) }
32
+
33
+ it { expect(directory).to be_an_existing_directory }
34
+ end
35
+ """
36
+ When I run `rspec`
37
+ Then the specs should all pass
38
+
39
+ Scenario: Existing directory
40
+
41
+ It does not complain if a directory already exists.
42
+
43
+ Given a file named "spec/create_directory_spec.rb" with:
44
+ """ruby
45
+ require 'spec_helper'
46
+
47
+ RSpec.describe 'Create directory', :type => :aruba do
48
+ let(:directory) { 'dir.d' }
49
+
50
+ before(:each) { create_directory(directory) }
51
+ before(:each) { create_directory(directory) }
52
+
53
+ it { expect(directory).to be_an_existing_directory }
54
+ end
55
+ """
56
+ When I run `rspec`
57
+ Then the specs should all pass
@@ -0,0 +1,152 @@
1
+ @unsupported-on-ruby-older-19
2
+ Feature: Report disk usage
3
+
4
+ Sometimes you need to check, what amount of disk space a file consumes. We do
5
+ NOT support "directories" with `#disk_usage`. This does not work reliably
6
+ over different systems. Here can help `'#disk_usage`. But be careful, by
7
+ default it uses a block size of "512" (physical block size) to calculate the
8
+ usage. You may need to adjust this by using `Aruba.configure { |config|
9
+ config.physical_block_size = 4_096 }`. Don't get confused, if you check the
10
+ block size by using `File::Stat` (in ruby). It reports the block size of your
11
+ filesystem, which can be "4_096" for example.
12
+
13
+ We're gonna use the (correct) IEC-notation
14
+ (https://en.wikipedia.org/wiki/Binary_prefix) here:
15
+
16
+ \* kilo => kibi
17
+ \* mega => mebi
18
+ \* giga => gibi
19
+
20
+ Background:
21
+ Given I use a fixture named "cli-app"
22
+
23
+ Scenario: Show disk usage for file
24
+ Given a file named "spec/disk_usage_spec.rb" with:
25
+ """ruby
26
+ require 'spec_helper'
27
+
28
+ RSpec.describe 'disk usage', :type => :aruba do
29
+ let(:file) { 'file.txt' }
30
+
31
+ before(:each) do
32
+ write_file file, 'a'
33
+ end
34
+
35
+ let(:size_of_single_block) { File::Stat.new(expand_path(file)).blksize }
36
+
37
+ it { expect(disk_usage(file)).to eq size_of_single_block }
38
+ end
39
+ """
40
+ When I run `rspec`
41
+ Then the specs should all pass
42
+
43
+ Scenario: Show disk usage for multiple files
44
+
45
+ `#disk_usage` creates the sum of all given objects' sizes.
46
+
47
+ Given a file named "spec/disk_usage_spec.rb" with:
48
+ """ruby
49
+ require 'spec_helper'
50
+
51
+ RSpec.describe 'disk usage', :type => :aruba do
52
+ let(:file1) { 'file1.txt' }
53
+ let(:file2) { 'file2.txt' }
54
+
55
+ before(:each) do
56
+ write_file file1, 'a'
57
+ write_file file2, 'a'
58
+ end
59
+
60
+ let(:size_of_single_block) { File::Stat.new(expand_path(file1)).blksize }
61
+
62
+ it { expect(disk_usage(file1, file2)).to eq size_of_single_block * 2 }
63
+ it { expect(disk_usage([file1, file2])).to eq size_of_single_block * 2 }
64
+ end
65
+ """
66
+ When I run `rspec`
67
+ Then the specs should all pass
68
+
69
+ Scenario: Convert reported disk usage to KibiByte
70
+ Given a file named "spec/disk_usage_spec.rb" with:
71
+ """ruby
72
+ require 'spec_helper'
73
+
74
+ RSpec.describe 'disk usage', :type => :aruba do
75
+ let(:file) { 'file.txt' }
76
+
77
+ before(:each) do
78
+ write_file file, 'a'
79
+ end
80
+
81
+ let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 }
82
+
83
+ it { expect(disk_usage(file).to_kibi_byte).to eq converted_size }
84
+ end
85
+ """
86
+ When I run `rspec`
87
+ Then the specs should all pass
88
+
89
+ Scenario: Convert reported disk usage to MebiByte
90
+ Given a file named "spec/disk_usage_spec.rb" with:
91
+ """ruby
92
+ require 'spec_helper'
93
+
94
+ RSpec.describe 'disk usage', :type => :aruba do
95
+ let(:file) { 'file.txt' }
96
+
97
+ before(:each) do
98
+ write_file file, 'a'
99
+ end
100
+
101
+ let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 / 1024 }
102
+
103
+ it { expect(disk_usage(file).to_mebi_byte).to eq converted_size }
104
+ end
105
+ """
106
+ When I run `rspec`
107
+ Then the specs should all pass
108
+
109
+ Scenario: Convert reported disk usage to GibiByte
110
+ Given a file named "spec/disk_usage_spec.rb" with:
111
+ """ruby
112
+ require 'spec_helper'
113
+
114
+ RSpec.describe 'disk usage', :type => :aruba do
115
+ let(:file) { 'file.txt' }
116
+
117
+ before(:each) do
118
+ write_file file, 'a'
119
+ end
120
+
121
+ let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 / 1_024 / 1_024 }
122
+
123
+ it { expect(disk_usage(file).to_gibi_byte).to eq converted_size }
124
+ end
125
+ """
126
+ When I run `rspec`
127
+ Then the specs should all pass
128
+
129
+ Scenario: Compare two repored disk usages
130
+ Given a file named "spec/disk_usage_spec.rb" with:
131
+ """ruby
132
+ require 'spec_helper'
133
+
134
+ RSpec.describe 'disk usage', :type => :aruba do
135
+ let(:file1) { 'file1.txt' }
136
+ let(:file2) { 'file2.txt' }
137
+
138
+ before(:each) do
139
+ write_file file1, 'a' * 10_000
140
+ write_file file2, 'a'
141
+ end
142
+
143
+ before :each do
144
+ @size1 = disk_usage(file1)
145
+ @size2 = disk_usage(file2)
146
+ end
147
+
148
+ it { expect(@size1).to be > @size2 }
149
+ end
150
+ """
151
+ When I run `rspec`
152
+ Then the specs should all pass
@@ -0,0 +1,62 @@
1
+ Feature: Check existence of files and directories
2
+
3
+ Use the `#exist?` to check if a path exists within
4
+ `aruba`'s working directory. , May also want to look for `#file?` or
5
+ `#directory?` for some more specific tests.
6
+
7
+ ```ruby
8
+ require 'spec_helper'
9
+
10
+ RSpec.configure do |config|
11
+ config.include Aruba::Api
12
+ end
13
+
14
+ RSpec.describe 'Check if directory and file exist' do
15
+ let(:directory) { 'dir.d' }
16
+ let(:file) { 'file.txt' }
17
+
18
+ before(:each) { create_directory(directory) }
19
+ before(:each) { touch(file) }
20
+
21
+ it { expect(exist?(directory)).to be true }
22
+ it { expect(exist?(file)).to be true }
23
+ end
24
+ ```
25
+
26
+ Background:
27
+ Given I use a fixture named "cli-app"
28
+
29
+ Scenario: Is file or directory and exists
30
+ Given a file named "spec/create_directory_spec.rb" with:
31
+ """ruby
32
+ require 'spec_helper'
33
+
34
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
35
+ let(:directory) { 'dir.d' }
36
+ let(:file) { 'file.txt' }
37
+
38
+ before(:each) { create_directory(directory) }
39
+ before(:each) { touch(file) }
40
+
41
+ it { expect(exist?(directory)).to be true }
42
+ it { expect(exist?(file)).to be true }
43
+ end
44
+ """
45
+ When I run `rspec`
46
+ Then the specs should all pass
47
+
48
+ Scenario: Is file or directory and does not exist
49
+ Given a file named "spec/create_directory_spec.rb" with:
50
+ """ruby
51
+ require 'spec_helper'
52
+
53
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
54
+ let(:directory) { 'dir.d' }
55
+ let(:file) { 'file.txt' }
56
+
57
+ it { expect(exist?(directory)).to be false }
58
+ it { expect(exist?(file)).to be false }
59
+ end
60
+ """
61
+ When I run `rspec`
62
+ Then the specs should all pass
@@ -0,0 +1,104 @@
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 a file named "fixtures_spec.rb" with:
20
+ \"\"\"
21
+ RSpec.describe 'My Feature' do
22
+ describe '#read_music_file' do
23
+ context 'when the file exists' do
24
+ before :each { copy '%/song.mp3', 'file.mp3' }
25
+
26
+ it { expect('file.mp3').to be_an_existing_file }
27
+ end
28
+ end
29
+ end
30
+ \"\"\"
31
+ """
32
+ And a directory named "fixtures"
33
+ And an empty file named "fixtures/fixtures-app/test.txt"
34
+ When I run `rspec`
35
+ Then the specs should all pass
36
+
37
+ Scenario: Use a fixture for your tests in test/
38
+ Given a file named "features/fixtures.feature" with:
39
+ """
40
+ Feature: Fixture
41
+ Scenario: Fixture
42
+ Given a file named "fixtures_spec.rb" with:
43
+ \"\"\"
44
+ RSpec.describe 'My Feature' do
45
+ describe '#read_music_file' do
46
+ context 'when the file exists' do
47
+ before :each { copy '%/song.mp3', 'file.mp3' }
48
+
49
+ it { expect('file.mp3').to be_an_existing_file }
50
+ end
51
+ end
52
+ end
53
+ \"\"\"
54
+ """
55
+ And a directory named "test/fixtures"
56
+ And an empty file named "test/fixtures/fixtures-app/test.txt"
57
+ When I run `rspec`
58
+ Then the specs should all pass
59
+
60
+ Scenario: Use a fixture for your tests in spec/
61
+ Given a file named "features/fixtures.feature" with:
62
+ """
63
+ Feature: Fixture
64
+ Scenario: Fixture
65
+ Given a file named "fixtures_spec.rb" with:
66
+ \"\"\"
67
+ RSpec.describe 'My Feature' do
68
+ describe '#read_music_file' do
69
+ context 'when the file exists' do
70
+ before :each { copy '%/song.mp3', 'file.mp3' }
71
+
72
+ it { expect('file.mp3').to be_an_existing_file }
73
+ end
74
+ end
75
+ end
76
+ \"\"\"
77
+ """
78
+ And a directory named "spec/fixtures"
79
+ And an empty file named "spec/fixtures/fixtures-app/test.txt"
80
+ When I run `rspec`
81
+ Then the specs should all pass
82
+
83
+ Scenario: Use a fixture for your tests in features/
84
+ Given a file named "features/fixtures.feature" with:
85
+ """
86
+ Feature: Fixture
87
+ Scenario: Fixture
88
+ Given a file named "fixtures_spec.rb" with:
89
+ \"\"\"
90
+ RSpec.describe 'My Feature' do
91
+ describe '#read_music_file' do
92
+ context 'when the file exists' do
93
+ before :each { copy '%/song.mp3', 'file.mp3' }
94
+
95
+ it { expect('file.mp3').to be_an_existing_file }
96
+ end
97
+ end
98
+ end
99
+ \"\"\"
100
+ """
101
+ And a directory named "features/fixtures"
102
+ And an empty file named "features/fixtures/fixtures-app/test.txt"
103
+ When I run `rspec`
104
+ Then the specs should all pass
@@ -0,0 +1,48 @@
1
+ Feature: Check if path is absolute
2
+
3
+ Use the `#absolute?`-method to check if a path is an absolute path.
4
+
5
+ ```ruby
6
+ require 'spec_helper'
7
+
8
+ RSpec.configure do |config|
9
+ config.include Aruba::Api
10
+ end
11
+
12
+ RSpec.describe 'Check if directory or file is absolute' do
13
+ let(:path) { '/path/to/file.txt' }
14
+
15
+ it { expect(absolute?(path)).to be true }
16
+ end
17
+ ```
18
+
19
+ Background:
20
+ Given I use a fixture named "cli-app"
21
+
22
+ Scenario: Is path absolute
23
+ Given a file named "spec/create_directory_spec.rb" with:
24
+ """ruby
25
+ require 'spec_helper'
26
+
27
+ RSpec.describe 'Check if directory or file is absolute', :type => :aruba do
28
+ let(:path) { '/path/to/file.txt' }
29
+
30
+ it { expect(absolute?(path)).to be true }
31
+ end
32
+ """
33
+ When I run `rspec`
34
+ Then the specs should all pass
35
+
36
+ Scenario: Path should be absolute, but it's relative
37
+ Given a file named "spec/create_directory_spec.rb" with:
38
+ """ruby
39
+ require 'spec_helper'
40
+
41
+ RSpec.describe 'Check if directory or file is absolute', :type => :aruba do
42
+ let(:path) { 'file.txt' }
43
+
44
+ it { expect(absolute?(path)).to be false }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
@@ -0,0 +1,53 @@
1
+ Feature: Check existence of directories
2
+
3
+ Use the `#directory?` to check if a path is a directory and exists within
4
+ `aruba`'s working directory.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.configure do |config|
10
+ config.include Aruba::Api
11
+ end
12
+
13
+ RSpec.describe 'Check if directory and file exist' do
14
+ let(:directory) { 'dir.d' }
15
+
16
+ before(:each) { create_directory(directory) }
17
+
18
+ it { expect(directory?(directory)).to be true }
19
+ end
20
+ ```
21
+
22
+ Background:
23
+ Given I use a fixture named "cli-app"
24
+
25
+ Scenario: Is directory and exist
26
+ Given a file named "spec/create_directory_spec.rb" with:
27
+ """ruby
28
+ require 'spec_helper'
29
+
30
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
31
+ let(:directory) { 'dir.d' }
32
+ before(:each) { create_directory(directory) }
33
+
34
+ it { expect(directory?(directory)).to be true }
35
+ end
36
+ """
37
+ When I run `rspec`
38
+ Then the specs should all pass
39
+
40
+ Scenario: Is file, but should be directory and exist
41
+ Given a file named "spec/create_directory_spec.rb" with:
42
+ """ruby
43
+ require 'spec_helper'
44
+
45
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
46
+ let(:file) { 'file.txt' }
47
+ before(:each) { touch(file) }
48
+
49
+ it { expect(directory?(file)).to be false }
50
+ end
51
+ """
52
+ When I run `rspec`
53
+ Then the specs should all pass