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 @@
1
+ Aruba.platform.require_matching_files('../matchers/environment/*.rb', __FILE__)
@@ -0,0 +1 @@
1
+ Aruba.platform.require_matching_files('../file/**/*.rb', __FILE__)
@@ -0,0 +1,36 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method be_a_command_found_in_path
4
+ # This matchers checks if <command> can be found in path
5
+ #
6
+ # @return [TrueClass, FalseClass] The result
7
+ #
8
+ # false:
9
+ # * if command was not found in PATH
10
+ # true:
11
+ # * if command can be found in PATH
12
+ #
13
+ # @example Use matcher
14
+ #
15
+ # RSpec.describe do
16
+ # it { expect(cmd).to be_a_command_found_in_path }
17
+ # end
18
+ RSpec::Matchers.define :be_a_command_found_in_path do
19
+ match do |actual|
20
+ @actual = Shellwords.split(actual.commandline).first if actual.respond_to? :commandline
21
+
22
+ !which(@actual).nil?
23
+ end
24
+
25
+ failure_message do |actual|
26
+ format(%(expected that command "%s" can be found in PATH "#{ENV['PATH']}".), actual)
27
+ end
28
+
29
+ failure_message_when_negated do |actual|
30
+ format(%(expected that command "%s" cannot be found in PATH "#{ENV['PATH']}".), actual)
31
+ end
32
+ end
33
+
34
+ if RSpec::Expectations::Version::STRING >= '3.0'
35
+ RSpec::Matchers.alias_matcher :a_command_found_in_path, :be_a_command_found_in_path
36
+ end
@@ -0,0 +1,37 @@
1
+ require 'rspec/expectations/version'
2
+ require 'shellwords'
3
+
4
+ # @!method be_an_existing_executable
5
+ # This matchers checks if <file> exists in filesystem
6
+ #
7
+ # @return [TrueClass, FalseClass] The result
8
+ #
9
+ # false:
10
+ # * if file does not exist
11
+ # true:
12
+ # * if file exists
13
+ #
14
+ # @example Use matcher
15
+ #
16
+ # RSpec.describe do
17
+ # it { expect(file1).to be_an_existing_executable }
18
+ # end
19
+ RSpec::Matchers.define :be_an_existing_executable do |_|
20
+ match do |actual|
21
+ @actual = Shellwords.split(actual.commandline).first if actual.respond_to? :commandline
22
+
23
+ executable?(@actual)
24
+ end
25
+
26
+ failure_message do |actual|
27
+ format("expected that executable \"%s\" exists", actual)
28
+ end
29
+
30
+ failure_message_when_negated do |actual|
31
+ format("expected that executable \"%s\" does not exist", actual)
32
+ end
33
+ end
34
+
35
+ if RSpec::Expectations::Version::STRING >= '3.0'
36
+ RSpec::Matchers.alias_matcher :an_existing_executable, :be_an_existing_executable
37
+ end
@@ -0,0 +1,38 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method be_an_existing_file
4
+ # This matchers checks if <file> exists in filesystem
5
+ #
6
+ # @return [TrueClass, FalseClass] The result
7
+ #
8
+ # false:
9
+ # * if file does not exist
10
+ # true:
11
+ # * if file exists
12
+ #
13
+ # @example Use matcher
14
+ #
15
+ # RSpec.describe do
16
+ # it { expect(file1).to be_an_existing_file }
17
+ # end
18
+ RSpec::Matchers.define :be_an_existing_file do |_|
19
+ match do |actual|
20
+ stop_all_commands
21
+
22
+ next false unless actual.is_a? String
23
+
24
+ file?(actual)
25
+ end
26
+
27
+ failure_message do |actual|
28
+ format("expected that file \"%s\" exists", actual)
29
+ end
30
+
31
+ failure_message_when_negated do |actual|
32
+ format("expected that file \"%s\" does not exist", actual)
33
+ end
34
+ end
35
+
36
+ if RSpec::Expectations::Version::STRING >= '3.0'
37
+ RSpec::Matchers.alias_matcher :an_existing_file, :be_an_existing_file
38
+ end
@@ -0,0 +1,62 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method have_file_content(content)
4
+ # This matchers checks if <file> has content. `content` can be a string,
5
+ # regexp or an RSpec matcher.
6
+ #
7
+ # @param [String, Regexp, Matcher] content
8
+ # Specifies the content of the file
9
+ #
10
+ # @return [TrueClass, FalseClass] The result
11
+ #
12
+ # false:
13
+ # * if file does not exist
14
+ # * if file content is not equal string
15
+ # * if file content does not include regexp
16
+ # * if file content does not match the content specification
17
+ #
18
+ # true:
19
+ # * if file content includes regexp
20
+ # * if file content is equal string
21
+ # * if file content matches the content specification
22
+ #
23
+ # @example Use matcher with string
24
+ #
25
+ # RSpec.describe do
26
+ # it { expect(file1).to have_file_content('a') }
27
+ # end
28
+ #
29
+ # @example Use matcher with regexp
30
+ #
31
+ # RSpec.describe do
32
+ # it { expect(file1).to have_file_content(/a/) }
33
+ # end
34
+ #
35
+ # @example Use matcher with an RSpec matcher
36
+ #
37
+ # RSpec.describe do
38
+ # it { expect(file1).to have_file_content(a_string_starting_with 'a') }
39
+ # it { expect(files1).to include a_file_having_content(a_string_starting_with 'a') }
40
+ # end
41
+ RSpec::Matchers.define :have_file_content do |expected|
42
+ match do |actual|
43
+ stop_all_commands
44
+
45
+ next false unless file? actual
46
+
47
+ @actual = read(actual).join("\n").chomp
48
+ @expected = if expected.is_a? String
49
+ expected.chomp
50
+ else
51
+ expected
52
+ end
53
+
54
+ values_match?(@expected, @actual)
55
+ end
56
+
57
+ description { "have file content: #{description_of expected}" }
58
+ end
59
+
60
+ if RSpec::Expectations::Version::STRING >= '3.0'
61
+ RSpec::Matchers.alias_matcher :a_file_having_content, :have_file_content
62
+ end
@@ -0,0 +1,47 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method have_file_size(size)
4
+ # This matchers checks if path has file size
5
+ #
6
+ # @param [Fixnum] size
7
+ # The size to check
8
+ #
9
+ # @return [TrueClass, FalseClass] The result
10
+ #
11
+ # false:
12
+ # * if path does not have size
13
+ # true:
14
+ # * if path has size
15
+ #
16
+ # @example Use matcher
17
+ #
18
+ # RSpec.describe do
19
+ # it { expect('file.txt').to have_file_size(0) }
20
+ # it { expect(%w(file.txt file2.txt)).to all have_file_size(0) }
21
+ # it { expect(%w(file.txt file2.txt)).to include a_file_of_size(0) }
22
+ # end
23
+ RSpec::Matchers.define :have_file_size do |expected|
24
+ match do |actual|
25
+ stop_all_commands
26
+
27
+ next false unless file?(actual)
28
+
29
+ @old_actual = actual
30
+ @actual = file_size(actual)
31
+ @expected = expected.to_i
32
+
33
+ values_match?(@expected, @actual)
34
+ end
35
+
36
+ failure_message do |actual|
37
+ format("expected that file \"%s\" has size \"%s\", but has \"%s\"", @old_actual, @actual, @expected)
38
+ end
39
+
40
+ failure_message_when_negated do |actual|
41
+ format("expected that file \"%s\" does not have size \"%s\", but has \"%s\"", @old_actual, @actual, @expected)
42
+ end
43
+ end
44
+
45
+ if RSpec::Expectations::Version::STRING >= '3.0'
46
+ RSpec::Matchers.alias_matcher :a_file_of_size, :have_file_size
47
+ end
@@ -0,0 +1,48 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ require 'fileutils'
4
+
5
+ # @!method have_same_file_content_like(file_name)
6
+ # This matchers checks if <file1> has the same content like <file2>
7
+ #
8
+ # @param [String] file_name
9
+ # The name of the file which should be compared with the file in the
10
+ # `expect()`-call.
11
+ #
12
+ # @return [TrueClass, FalseClass] The result
13
+ #
14
+ # false:
15
+ # * if file1 is not equal file2
16
+ # true:
17
+ # * if file1 is equal file2
18
+ #
19
+ # @example Use matcher
20
+ #
21
+ # RSpec.describe do
22
+ # it { expect(file1).to have_same_file_content_like(file2) }
23
+ # it { expect(files).to include a_file_with_same_content_like(file2) }
24
+ # end
25
+ RSpec::Matchers.define :have_same_file_content_like do |expected|
26
+ match do |actual|
27
+ stop_all_commands
28
+
29
+ next false unless file?(actual) && file?(expected)
30
+
31
+ @actual = expand_path(actual)
32
+ @expected = expand_path(expected)
33
+
34
+ FileUtils.compare_file(@actual,@expected)
35
+ end
36
+
37
+ failure_message do |actual|
38
+ format("expected that file \"%s\" is the same as file \"%s\".", actual, expected)
39
+ end
40
+
41
+ failure_message_when_negated do |actual|
42
+ format("expected that file \"%s\" differs from file \"%s\".", actual, expected)
43
+ end
44
+ end
45
+
46
+ if RSpec::Expectations::Version::STRING >= '3.0'
47
+ RSpec::Matchers.alias_matcher :a_file_with_same_content_like, :have_same_file_content_like
48
+ end
@@ -0,0 +1 @@
1
+ Aruba.platform.require_matching_files('../path/**/*.rb', __FILE__)
@@ -0,0 +1,25 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method a_path_matching_pattern(/pattern/)
4
+ # This matchers checks if <path> matches pattern. `pattern` can be a string,
5
+ # regexp or an RSpec matcher.
6
+ #
7
+ # @param [String, Regexp, Matcher] pattern
8
+ # Specifies the pattern
9
+ #
10
+ # @return [TrueClass, FalseClass] The result
11
+ #
12
+ # false:
13
+ # * if pattern does not match
14
+ #
15
+ # true:
16
+ # * if pattern matches
17
+ #
18
+ # @example Use matcher with regexp
19
+ #
20
+ # RSpec.describe do
21
+ # it { expect(files).to include a_path_matching_pattern /asdf/ }
22
+ # end
23
+ if RSpec::Expectations::Version::STRING >= '3.0'
24
+ RSpec::Matchers.alias_matcher :a_path_matching_pattern, :match
25
+ end
@@ -0,0 +1,36 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method be_an_absolute_path
4
+ # This matchers checks if <path> exists in filesystem
5
+ #
6
+ # @return [TrueClass, FalseClass] The result
7
+ #
8
+ # false:
9
+ # * if path is not absolute
10
+ # true:
11
+ # * if path is absolute
12
+ #
13
+ # @example Use matcher
14
+ #
15
+ # RSpec.describe do
16
+ # it { expect(file).to be_an_absolute_path }
17
+ # it { expect(directory).to be_an_absolute_path }
18
+ # it { expect(directories).to include an_absolute_path }
19
+ # end
20
+ RSpec::Matchers.define :be_an_absolute_path do |_|
21
+ match do |actual|
22
+ absolute?(actual)
23
+ end
24
+
25
+ failure_message do |actual|
26
+ format("expected that path \"%s\" is absolute, but it's not", actual)
27
+ end
28
+
29
+ failure_message_when_negated do |actual|
30
+ format("expected that path \"%s\" is not absolute, but it is", actual)
31
+ end
32
+ end
33
+
34
+ if RSpec::Expectations::Version::STRING >= '3.0'
35
+ RSpec::Matchers.alias_matcher :an_absolute_path, :be_an_absolute_path
36
+ end
@@ -0,0 +1,37 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method be_an_existing_path
4
+ # This matchers checks if <path> exists in filesystem
5
+ #
6
+ # @return [TrueClass, FalseClass] The result
7
+ #
8
+ # false:
9
+ # * if path does not exist
10
+ # true:
11
+ # * if path exists
12
+ #
13
+ # @example Use matcher
14
+ #
15
+ # RSpec.describe do
16
+ # it { expect(file).to be_an_existing_path }
17
+ # it { expect(directory).to be_an_existing_path }
18
+ # it { expect(all_directories).to all be_an_existing_path }
19
+ # it { expect(all_directories).to include an_existing_path }
20
+ # end
21
+ RSpec::Matchers.define :be_an_existing_path do |_|
22
+ match do |actual|
23
+ exist?(actual)
24
+ end
25
+
26
+ failure_message do |actual|
27
+ format("expected that path \"%s\" exists", actual)
28
+ end
29
+
30
+ failure_message_when_negated do |actual|
31
+ format("expected that path \"%s\" does not exist", actual)
32
+ end
33
+ end
34
+
35
+ if RSpec::Expectations::Version::STRING >= '3.0'
36
+ RSpec::Matchers.alias_matcher :an_existing_path, :be_an_existing_path
37
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec/expectations/version'
2
+
3
+ # @!method have_permissions(permissions)
4
+ # This matchers checks if <file> or <directory> has <perm> permissions
5
+ #
6
+ # @param [Fixnum, String] permissions
7
+ # The permissions as octal number, e.g. `0700`, or String, e.g. `'0700'`
8
+ #
9
+ # @return [TrueClass, FalseClass] The result
10
+ #
11
+ # false:
12
+ # * if file has permissions
13
+ # true:
14
+ # * if file does not have permissions
15
+ #
16
+ # @example Use matcher with octal number
17
+ #
18
+ # RSpec.describe do
19
+ # it { expect(file).to have_permissions(0700) }
20
+ # it { expect(directory).to have_permissions(0700) }
21
+ # end
22
+ #
23
+ # @example Use matcher with string
24
+ #
25
+ # RSpec.describe do
26
+ # it { expect(file).to have_permissions('0700') }
27
+ # it { expect(files).to include a_path_with_permissions('0700') }
28
+ # it { expect(directory).to have_permissions('0700') }
29
+ # it { expect(directories).to include a_path_with_permissions('0700') }
30
+ # end
31
+ RSpec::Matchers.define :have_permissions do |expected|
32
+ def permissions(file)
33
+ @actual = Aruba.platform.filesystem_status.new(file).mode
34
+ end
35
+
36
+ match do |actual|
37
+ stop_all_commands
38
+
39
+ @old_actual = actual
40
+ @actual = permissions(expand_path(@old_actual))
41
+
42
+ @expected = if expected.is_a? Integer
43
+ expected.to_s(8)
44
+ elsif expected.is_a? String
45
+ expected.gsub(/^0*/, '')
46
+ else
47
+ expected
48
+ end
49
+
50
+ values_match? @expected, @actual
51
+ end
52
+
53
+ failure_message do |actual|
54
+ format("expected that path \"%s\" has permissions \"%s\", but has \"%s\".", @old_actual, @expected, @actual)
55
+ end
56
+
57
+ failure_message_when_negated do |actual|
58
+ format("expected that path \"%s\" does not have permissions \"%s\", but has \"%s\".", @old_actual, @expected, @actual)
59
+ end
60
+ end
61
+
62
+ if RSpec::Expectations::Version::STRING >= '3.0'
63
+ RSpec::Matchers.alias_matcher :a_path_having_permissions, :have_permissions
64
+ end