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,103 @@
1
+ require 'spec_helper'
2
+ require 'aruba/aruba_path'
3
+
4
+ RSpec.describe Aruba::ArubaPath do
5
+ subject(:path) { described_class.new(new_path) }
6
+
7
+ let(:new_path) { 'path/to/dir' }
8
+
9
+ it { expect(path).to be }
10
+
11
+ describe '#to_s' do
12
+ end
13
+
14
+ describe '#to_s' do
15
+ context 'when string is used' do
16
+ it { expect(path.to_s).to eq new_path }
17
+ end
18
+
19
+ # make it compatible with the old API
20
+ context 'when array is used' do
21
+ let(:net_path) { %w(path to dir) }
22
+
23
+ it { expect(path.to_s).to eq File.join(*new_path) }
24
+ end
25
+ end
26
+
27
+ describe '#push' do
28
+ before(:each) { path.push 'subdir' }
29
+
30
+ it { expect(path.to_s).to eq 'path/to/dir/subdir' }
31
+ end
32
+
33
+ describe '#<<' do
34
+ before(:each) { path << 'subdir' }
35
+
36
+ it { expect(path.to_s).to eq 'path/to/dir/subdir' }
37
+ end
38
+
39
+ describe '#pop' do
40
+ before(:each) { path << 'subdir' }
41
+ before(:each) { path.pop }
42
+
43
+ it { expect(path.to_s).to eq 'path/to/dir' }
44
+ end
45
+
46
+ describe '#relative?' do
47
+ context 'when is relative' do
48
+ it { expect(path).to be_relative }
49
+ end
50
+
51
+ context 'when is absolute' do
52
+ let(:new_path) { '/absolute/path' }
53
+ it { expect(path).not_to be_relative }
54
+ end
55
+ end
56
+
57
+ describe '#[]' do
58
+ context 'when single index' do
59
+ it { expect(path[0]).to eq 'p' }
60
+ end
61
+
62
+ context 'when range' do
63
+ it { expect(path[0..1]).to eq 'pa' }
64
+ end
65
+ end
66
+
67
+ describe '#depth' do
68
+ context 'when relative path' do
69
+ it { expect(path.depth).to eq 3 }
70
+ end
71
+
72
+ context 'when absolute path' do
73
+ let(:new_path) { '/path/to/dir' }
74
+ it { expect(path.depth).to eq 3 }
75
+ end
76
+ end
77
+
78
+ describe '#end_with?' do
79
+ it { expect(path).to be_end_with 'dir' }
80
+ end
81
+
82
+ describe '#start_with?' do
83
+ it { expect(path).to be_start_with 'path/to' }
84
+ end
85
+
86
+ describe '#relative?' do
87
+ it { expect(path).to be_relative }
88
+ end
89
+
90
+ describe '#absolute?' do
91
+ let(:new_path) { '/path/to/dir' }
92
+ it { expect(path).to be_absolute }
93
+ end
94
+
95
+ describe '#blocks' do
96
+ let(:new_path) { expand_path('path/to/file') }
97
+
98
+ before(:each) { FileUtils.mkdir_p File.dirname(new_path) }
99
+ before(:each) { File.open(new_path, 'w') { |f| f.print 'a' } }
100
+
101
+ it { expect(path.blocks).to be > 0 }
102
+ end
103
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Aruba::BasicConfiguration do
4
+ it_behaves_like 'a basic configuration'
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Aruba::Configuration do
4
+ it_behaves_like 'a basic configuration'
5
+ end
@@ -0,0 +1,17 @@
1
+ require 'aruba/config'
2
+
3
+ describe Aruba::Hooks do
4
+ it 'executes a stored hook' do
5
+ hook_was_run = false
6
+ subject.append :hook_label, lambda { hook_was_run = true }
7
+ subject.execute :hook_label, self
8
+ expect(hook_was_run).to be_truthy
9
+ end
10
+
11
+ it 'executes a stored hook that takes multiple arguments' do
12
+ hook_values = []
13
+ subject.append :hook_label, lambda { |a,b,c| hook_values = [a,b,c] }
14
+ subject.execute :hook_label, self, 1, 2, 3
15
+ expect(hook_values).to eq [1,2,3]
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Aruba::InConfigWrapper do
4
+ subject(:wrapper) { described_class.new(config) }
5
+
6
+ let(:config) { {} }
7
+
8
+ context 'when option is defined' do
9
+ before :each do
10
+ config[:opt] = true
11
+ end
12
+
13
+ context 'when valid' do
14
+ it { expect(wrapper.opt).to be true }
15
+ end
16
+
17
+ context 'when one tries to pass arguments to option' do
18
+ it { expect{ wrapper.opt('arg') }.to raise_error ArgumentError, 'Options take no argument' }
19
+ end
20
+ end
21
+
22
+ context 'when option is not defined' do
23
+ it { expect{ wrapper.opt }.to raise_error ArgumentError, 'Option "opt" is unknown. Please use only earlier defined options' }
24
+ end
25
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+ require 'aruba/api'
3
+
4
+ describe "Aruba JRuby Startup Helper" do
5
+ before(:all) do
6
+ @fake_env = ENV.clone
7
+ end
8
+
9
+ before :each do
10
+ Aruba.config.reset
11
+
12
+ # Define before_cmd-hook
13
+ load 'aruba/config/jruby.rb'
14
+ end
15
+
16
+ before(:each) do
17
+ @fake_env['JRUBY_OPTS'] = "--1.9"
18
+ @fake_env['JAVA_OPTS'] = "-Xdebug"
19
+
20
+ stub_const('ENV', @fake_env)
21
+ end
22
+
23
+ context 'when some mri ruby' do
24
+ before :each do
25
+ stub_const('RUBY_PLATFORM', 'x86_64-chocolate')
26
+ end
27
+
28
+ before :each do
29
+ Aruba.config.before :command, self
30
+ end
31
+
32
+ it { expect(ENV['JRUBY_OPTS']).to eq '--1.9' }
33
+ it { expect(ENV['JAVA_OPTS']).to eq '-Xdebug' }
34
+ end
35
+
36
+ context 'when jruby ruby' do
37
+ before :each do
38
+ stub_const('RUBY_PLATFORM', 'java')
39
+ end
40
+
41
+ before :each do
42
+ rb_config = double('rb_config')
43
+ allow(rb_config).to receive(:[]).and_return('solaris')
44
+
45
+ stub_const 'RbConfig::CONFIG', rb_config
46
+ end
47
+
48
+ before :each do
49
+ Aruba.config.before :command, self
50
+ end
51
+
52
+ it { expect(ENV['JRUBY_OPTS']).to eq '--dev -X-C --1.9' }
53
+ it { expect(ENV['JAVA_OPTS']).to eq '-d32 -Xdebug' }
54
+ end
55
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Output Matchers' do
4
+ include_context 'uses aruba API'
5
+
6
+ def expand_path(*args)
7
+ @aruba.expand_path(*args)
8
+ end
9
+
10
+ describe '#to_have_output_size' do
11
+ let(:obj) { 'string' }
12
+
13
+ context 'when has size' do
14
+ context 'when is string' do
15
+ it { expect(obj).to have_output_size 6 }
16
+ end
17
+ end
18
+
19
+ context 'when does not have size' do
20
+ let(:obj) { 'string' }
21
+
22
+ it { expect(obj).not_to have_output_size(-1) }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,174 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Command Matchers' do
4
+ include_context 'uses aruba API'
5
+
6
+ def expand_path(*args)
7
+ @aruba.expand_path(*args)
8
+ end
9
+
10
+ def announcer(*args)
11
+ @aruba.send(:announcer, *args)
12
+ end
13
+
14
+ describe '#to_have_exit_status' do
15
+ let(:cmd) { 'true' }
16
+
17
+ before(:each) { run(cmd) }
18
+
19
+ context 'when has exit 0' do
20
+ it { expect(last_command_started).to have_exit_status 0 }
21
+ end
22
+
23
+ context 'when has exit 0' do
24
+ let(:cmd) { 'false' }
25
+ it { expect(last_command_started).not_to have_exit_status 0 }
26
+ end
27
+ end
28
+
29
+ describe '#to_be_successfully_executed_' do
30
+ let(:cmd) { 'true' }
31
+
32
+ before(:each) { run(cmd) }
33
+
34
+ context 'when has exit 0' do
35
+ it { expect(last_command_started).to be_successfully_executed }
36
+ end
37
+
38
+ context 'when has exit 0' do
39
+ let(:cmd) { 'false' }
40
+ it { expect(last_command_started).not_to be_successfully_executed }
41
+ end
42
+ end
43
+
44
+ describe '#to_have_output' do
45
+ let(:cmd) { "echo #{output}" }
46
+ let(:output) { 'hello world' }
47
+
48
+ context 'when have output hello world on stdout' do
49
+ before(:each) { run(cmd) }
50
+ it { expect(last_command_started).to have_output output }
51
+ end
52
+
53
+ context 'when multiple commands output hello world on stdout' do
54
+ context 'and all comands must have the output' do
55
+ before(:each) do
56
+ run(cmd)
57
+ run(cmd)
58
+ end
59
+
60
+ it { expect(all_commands).to all have_output output }
61
+ end
62
+
63
+ context 'and any comand can have the output' do
64
+ before(:each) do
65
+ run(cmd)
66
+ run('echo hello universe')
67
+ end
68
+
69
+ it { expect(all_commands).to include have_output(output) }
70
+ end
71
+ end
72
+
73
+ context 'when have output hello world on stderr' do
74
+ before :each do
75
+ string = <<-EOS.strip_heredoc
76
+ #!/usr/bin/env bash
77
+
78
+ echo $* >&2
79
+ EOS
80
+
81
+ File.open(expand_path('cmd.sh'), 'w') { |f| f.puts string }
82
+
83
+ File.chmod 0755, expand_path('cmd.sh')
84
+ prepend_environment_variable 'PATH', "#{expand_path('.')}#{File::PATH_SEPARATOR}"
85
+ end
86
+
87
+ let(:cmd) { "cmd.sh #{output}" }
88
+
89
+ before(:each) { run(cmd) }
90
+
91
+ it { expect(last_command_started).to have_output output }
92
+ end
93
+
94
+ context 'when not has output' do
95
+ before(:each) { run(cmd) }
96
+
97
+ it { expect(last_command_started).not_to have_output 'hello universe' }
98
+ end
99
+ end
100
+
101
+ describe '#to_have_output_on_stdout' do
102
+ let(:cmd) { "echo #{output}" }
103
+ let(:output) { 'hello world' }
104
+
105
+ context 'when have output hello world on stdout' do
106
+ before(:each) { run(cmd) }
107
+ it { expect(last_command_started).to have_output_on_stdout output }
108
+ end
109
+
110
+ context 'when have output hello world on stderr' do
111
+ before :each do
112
+ string = <<-EOS.strip_heredoc
113
+ #!/usr/bin/env bash
114
+
115
+ echo $* >&2
116
+ EOS
117
+
118
+ File.open(expand_path('cmd.sh'), 'w') { |f| f.puts string }
119
+
120
+ File.chmod 0755, expand_path('cmd.sh')
121
+ prepend_environment_variable 'PATH', "#{expand_path('.')}#{File::PATH_SEPARATOR}"
122
+ end
123
+
124
+ let(:cmd) { "cmd.sh #{output}" }
125
+
126
+ before(:each) { run(cmd) }
127
+
128
+ it { expect(last_command_started).not_to have_output_on_stdout output }
129
+ end
130
+
131
+ context 'when not has output' do
132
+ before(:each) { run(cmd) }
133
+
134
+ it { expect(last_command_started).not_to have_output_on_stdout 'hello universe' }
135
+ end
136
+ end
137
+
138
+ describe '#to_have_output_on_stderr' do
139
+ let(:cmd) { "echo #{output}" }
140
+ let(:output) { 'hello world' }
141
+
142
+ context 'when have output hello world on stdout' do
143
+ before(:each) { run(cmd) }
144
+ it { expect(last_command_started).not_to have_output_on_stderr output }
145
+ end
146
+
147
+ context 'when have output hello world on stderr' do
148
+ before :each do
149
+ string = <<-EOS.strip_heredoc
150
+ #!/usr/bin/env bash
151
+
152
+ echo $* >&2
153
+ EOS
154
+
155
+ File.open(expand_path('cmd.sh'), 'w') { |f| f.puts string }
156
+
157
+ File.chmod 0755, expand_path('cmd.sh')
158
+ prepend_environment_variable 'PATH', "#{expand_path('.')}#{File::PATH_SEPARATOR}"
159
+ end
160
+
161
+ let(:cmd) { "cmd.sh #{output}" }
162
+
163
+ before(:each) { run(cmd) }
164
+
165
+ it { expect(last_command_started).to have_output_on_stderr output }
166
+ end
167
+
168
+ context 'when not has output' do
169
+ before(:each) { run(cmd) }
170
+
171
+ it { expect(last_command_started).not_to have_output_on_stderr 'hello universe' }
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+ require 'aruba/matchers/directory'
3
+ require 'fileutils'
4
+
5
+ RSpec.describe 'Directory Matchers' do
6
+ include_context 'uses aruba API'
7
+ include_context 'needs to expand paths'
8
+
9
+ describe 'to_be_an_existing_directory' do
10
+ let(:name) { 'test.d' }
11
+ let(:path) { File.join(@aruba.current_directory, name) }
12
+
13
+ context 'when directory exists' do
14
+ before :each do
15
+ FileUtils.mkdir_p path
16
+ end
17
+
18
+ it { expect(name).to be_an_existing_directory }
19
+ end
20
+
21
+ context 'when directory does not exist' do
22
+ it { expect(name).not_to be_an_existing_directory }
23
+ end
24
+ end
25
+
26
+ describe 'to_have_sub_directory' do
27
+ let(:name) { 'test.d' }
28
+ let(:path) { File.join(@aruba.current_directory, name) }
29
+ let(:content) { %w(subdir.1.d subdir.2.d) }
30
+
31
+ context 'when directory exists' do
32
+ before :each do
33
+ FileUtils.mkdir_p path
34
+ end
35
+
36
+ before :each do
37
+ Array(content).each { |p| Dir.mkdir File.join(path, p) }
38
+ end
39
+
40
+ context 'when single directory' do
41
+ it { expect(name).to have_sub_directory('subdir.1.d') }
42
+ end
43
+
44
+ context 'when multiple directories' do
45
+ it { expect(name).to have_sub_directory(['subdir.1.d', 'subdir.2.d']) }
46
+ end
47
+
48
+ context 'when non existing directory' do
49
+ it { expect(name).not_to have_sub_directory('subdir.3.d') }
50
+ end
51
+ end
52
+
53
+ context 'when directory does not exist' do
54
+ it { expect(name).not_to have_sub_directory('subdir') }
55
+ end
56
+ end
57
+ end