aruba 0.14.14 → 1.0.0

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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +3 -0
  3. data/.github/ISSUE_TEMPLATE.md +48 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +20 -181
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +53 -28
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +301 -2
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -114
  16. data/LICENSE +1 -1
  17. data/README.md +57 -180
  18. data/Rakefile +63 -32
  19. data/appveyor.yml +8 -11
  20. data/aruba.gemspec +47 -41
  21. data/bin/console +7 -0
  22. data/bin/test +9 -0
  23. data/cucumber.yml +4 -24
  24. data/doc/dependency_decisions.yml +35 -13
  25. data/docker-compose.yml +26 -0
  26. data/{bin → exe}/aruba +1 -1
  27. data/fixtures/cli-app/Rakefile +1 -1
  28. data/fixtures/cli-app/bin/aruba-test-cli +1 -1
  29. data/fixtures/cli-app/cli-app.gemspec +1 -2
  30. data/fixtures/cli-app/features/support/aruba.rb +1 -0
  31. data/fixtures/cli-app/features/support/env.rb +1 -1
  32. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
  33. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  34. data/fixtures/cli-app/lib/cli/app.rb +1 -5
  35. data/fixtures/cli-app/spec/spec_helper.rb +4 -7
  36. data/fixtures/empty-app/Rakefile +1 -1
  37. data/fixtures/empty-app/cli-app.gemspec +1 -2
  38. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  39. data/fixtures/getting-started-app/Gemfile +1 -1
  40. data/lib/aruba/api/commands.rb +85 -143
  41. data/lib/aruba/api/core.rb +48 -41
  42. data/lib/aruba/api/environment.rb +16 -7
  43. data/lib/aruba/api/filesystem.rb +43 -30
  44. data/lib/aruba/api/text.rb +3 -9
  45. data/lib/aruba/api.rb +6 -11
  46. data/lib/aruba/aruba_path.rb +27 -89
  47. data/lib/aruba/basic_configuration.rb +4 -24
  48. data/lib/aruba/cli.rb +1 -1
  49. data/lib/aruba/command.rb +2 -0
  50. data/lib/aruba/config/jruby.rb +1 -1
  51. data/lib/aruba/config_wrapper.rb +1 -1
  52. data/lib/aruba/configuration.rb +92 -0
  53. data/lib/aruba/console/help.rb +1 -7
  54. data/lib/aruba/console.rb +5 -5
  55. data/lib/aruba/contracts/absolute_path.rb +2 -2
  56. data/lib/aruba/contracts/relative_path.rb +2 -2
  57. data/lib/aruba/cucumber/command.rb +133 -92
  58. data/lib/aruba/cucumber/environment.rb +1 -1
  59. data/lib/aruba/cucumber/file.rb +21 -23
  60. data/lib/aruba/cucumber/hooks.rb +18 -13
  61. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  62. data/lib/aruba/cucumber.rb +0 -6
  63. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  64. data/lib/aruba/hooks.rb +1 -1
  65. data/lib/aruba/in_config_wrapper.rb +5 -1
  66. data/lib/aruba/initializer.rb +36 -42
  67. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  68. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  69. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  70. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  71. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  72. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  73. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  74. data/lib/aruba/matchers/command/have_output.rb +10 -5
  75. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  76. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  77. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  78. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  79. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  80. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  81. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  82. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  83. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  84. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  85. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  86. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  87. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  88. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  89. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  90. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  91. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  92. data/lib/aruba/matchers/string/output_string_eq.rb +8 -10
  93. data/lib/aruba/platform.rb +0 -8
  94. data/lib/aruba/platforms/announcer.rb +30 -72
  95. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  96. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  97. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  98. data/lib/aruba/platforms/command_monitor.rb +11 -103
  99. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  100. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  101. data/lib/aruba/platforms/local_environment.rb +2 -2
  102. data/lib/aruba/platforms/simple_table.rb +3 -11
  103. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  104. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  105. data/lib/aruba/platforms/unix_platform.rb +16 -50
  106. data/lib/aruba/platforms/unix_which.rb +2 -1
  107. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  108. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  109. data/lib/aruba/platforms/windows_platform.rb +4 -0
  110. data/lib/aruba/platforms/windows_which.rb +4 -3
  111. data/lib/aruba/processes/basic_process.rb +18 -20
  112. data/lib/aruba/processes/debug_process.rb +12 -3
  113. data/lib/aruba/processes/in_process.rb +17 -8
  114. data/lib/aruba/processes/spawn_process.rb +36 -39
  115. data/lib/aruba/rspec.rb +14 -36
  116. data/lib/aruba/runtime.rb +3 -6
  117. data/lib/aruba/setup.rb +1 -1
  118. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  119. data/lib/aruba/version.rb +1 -1
  120. metadata +190 -242
  121. data/features/.nav +0 -72
  122. data/features/01_getting_started_with_aruba/cleanup_working_directory.feature +0 -57
  123. data/features/01_getting_started_with_aruba/run_commands.feature +0 -217
  124. data/features/01_getting_started_with_aruba/supported_testing_frameworks.feature +0 -88
  125. data/features/02_configure_aruba/activate_announcer_on_command_failure.feature +0 -38
  126. data/features/02_configure_aruba/basics.feature +0 -151
  127. data/features/02_configure_aruba/command_runtime_environment.feature +0 -129
  128. data/features/02_configure_aruba/console_history_file.feature +0 -38
  129. data/features/02_configure_aruba/exit_timeout.feature +0 -60
  130. data/features/02_configure_aruba/fixtures_directories.feature +0 -38
  131. data/features/02_configure_aruba/fixtures_path_prefix.feature +0 -23
  132. data/features/02_configure_aruba/home_directory.feature +0 -80
  133. data/features/02_configure_aruba/io_timeout.feature +0 -30
  134. data/features/02_configure_aruba/keep_ansi.feature +0 -30
  135. data/features/02_configure_aruba/log_level.feature +0 -38
  136. data/features/02_configure_aruba/physical_block_size.feature +0 -53
  137. data/features/02_configure_aruba/remove_ansi_escape_sequences.feature +0 -38
  138. data/features/02_configure_aruba/root_directory.feature +0 -30
  139. data/features/02_configure_aruba/startup_wait_time.feature +0 -48
  140. data/features/02_configure_aruba/working_directory.feature +0 -38
  141. data/features/03_testing_frameworks/cucumber/announce_information_for_troubleshooting.feature +0 -306
  142. data/features/03_testing_frameworks/cucumber/disable_bunder.feature +0 -18
  143. data/features/03_testing_frameworks/cucumber/steps/command/check_for_exit_statuses.feature +0 -136
  144. data/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature +0 -514
  145. data/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature +0 -68
  146. data/features/03_testing_frameworks/cucumber/steps/command/check_stdout_of_command.feature +0 -109
  147. data/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +0 -118
  148. data/features/03_testing_frameworks/cucumber/steps/command/run_a_command.feature +0 -66
  149. data/features/03_testing_frameworks/cucumber/steps/command/run_command_in_process.feature +0 -485
  150. data/features/03_testing_frameworks/cucumber/steps/command/run_command_interactively.feature +0 -90
  151. data/features/03_testing_frameworks/cucumber/steps/command/run_commands_which_require_a_shell.feature +0 -79
  152. data/features/03_testing_frameworks/cucumber/steps/command/send_signal_to_command.feature +0 -83
  153. data/features/03_testing_frameworks/cucumber/steps/command/stop_command.feature +0 -285
  154. data/features/03_testing_frameworks/cucumber/steps/environment/append_environment_variable.feature +0 -52
  155. data/features/03_testing_frameworks/cucumber/steps/environment/modify_home_variable_for_testing.feature +0 -62
  156. data/features/03_testing_frameworks/cucumber/steps/environment/prepend_environment_variable.feature +0 -52
  157. data/features/03_testing_frameworks/cucumber/steps/environment/set_environment_variable.feature +0 -49
  158. data/features/03_testing_frameworks/cucumber/steps/filesystem/append_to_file.feature +0 -45
  159. data/features/03_testing_frameworks/cucumber/steps/filesystem/cd_to_directory.feature +0 -33
  160. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_directory.feature +0 -57
  161. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_file.feature +0 -43
  162. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_file_content.feature +0 -143
  163. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_directory.feature +0 -69
  164. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_file.feature +0 -80
  165. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_permissions_of_file.feature +0 -39
  166. data/features/03_testing_frameworks/cucumber/steps/filesystem/compare_files.feature +0 -42
  167. data/features/03_testing_frameworks/cucumber/steps/filesystem/copy_file_or_directory.feature +0 -45
  168. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_directory.feature +0 -57
  169. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_file.feature +0 -76
  170. data/features/03_testing_frameworks/cucumber/steps/filesystem/move_file_or_directory.feature +0 -44
  171. data/features/03_testing_frameworks/cucumber/steps/filesystem/overwrite_file.feature +0 -72
  172. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_directory.feature +0 -38
  173. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_file.feature +0 -38
  174. data/features/03_testing_frameworks/cucumber/steps/filesystem/use_fixtures_for_setup_test.feature +0 -77
  175. data/features/03_testing_frameworks/rspec/hooks/define_after_hook_for_commands.feature +0 -43
  176. data/features/03_testing_frameworks/rspec/hooks/define_before_hook_for_commands.feature +0 -71
  177. data/features/03_testing_frameworks/rspec/setup_aruba_for_rspec.feature +0 -179
  178. data/features/04_aruba_api/command/find_a_started_command.feature +0 -83
  179. data/features/04_aruba_api/command/find_command_in_PATH.feature +0 -37
  180. data/features/04_aruba_api/command/read_stderr_of_command.feature +0 -46
  181. data/features/04_aruba_api/command/read_stdout_of_command.feature +0 -46
  182. data/features/04_aruba_api/command/run_command.feature +0 -423
  183. data/features/04_aruba_api/command/run_simple.feature +0 -254
  184. data/features/04_aruba_api/command/send_signal_to_command.feature +0 -53
  185. data/features/04_aruba_api/command/stop_all_commands.feature +0 -57
  186. data/features/04_aruba_api/command/stop_single_command.feature +0 -132
  187. data/features/04_aruba_api/command/terminate_all_commands.feature +0 -57
  188. data/features/04_aruba_api/command/use_last_command_started.feature +0 -50
  189. data/features/04_aruba_api/command/use_last_command_stopped.feature +0 -89
  190. data/features/04_aruba_api/core/expand_path.feature +0 -88
  191. data/features/04_aruba_api/environment/append_environment_variable.feature +0 -128
  192. data/features/04_aruba_api/environment/delete_environment_variable.feature +0 -63
  193. data/features/04_aruba_api/environment/prepend_environment_variable.feature +0 -128
  194. data/features/04_aruba_api/environment/set_environment_variable.feature +0 -376
  195. data/features/04_aruba_api/filesystem/cd_to_directory.feature +0 -184
  196. data/features/04_aruba_api/filesystem/check_existence_file_or_directory.feature +0 -62
  197. data/features/04_aruba_api/filesystem/check_if_path_is_absolute.feature +0 -48
  198. data/features/04_aruba_api/filesystem/check_if_path_is_directory.feature +0 -53
  199. data/features/04_aruba_api/filesystem/check_if_path_is_file.feature +0 -54
  200. data/features/04_aruba_api/filesystem/check_if_path_is_relative.feature +0 -48
  201. data/features/04_aruba_api/filesystem/create_directory.feature +0 -57
  202. data/features/04_aruba_api/filesystem/move_file_or_directory.feature +0 -119
  203. data/features/04_aruba_api/filesystem/report_disk_usage.feature +0 -152
  204. data/features/04_aruba_api/filesystem/use_fixtures.feature +0 -104
  205. data/features/04_aruba_api/text/extract_text.feature +0 -87
  206. data/features/04_aruba_api/text/replace_variables.feature +0 -45
  207. data/features/04_aruba_api/text/sanitize_text.feature +0 -228
  208. data/features/04_aruba_api/text/unescape_text.feature +0 -127
  209. data/features/05_use_rspec_matchers/command/check_timeouts.feature +0 -48
  210. data/features/05_use_rspec_matchers/directory/have_sub_directory.feature +0 -110
  211. data/features/05_use_rspec_matchers/file/be_a_command_found_in_path.feature +0 -115
  212. data/features/05_use_rspec_matchers/file/be_existing_executable.feature +0 -88
  213. data/features/05_use_rspec_matchers/file/be_existing_file.feature +0 -82
  214. data/features/05_use_rspec_matchers/file/have_file_content.feature +0 -123
  215. data/features/05_use_rspec_matchers/file/have_file_size.feature +0 -107
  216. data/features/05_use_rspec_matchers/path/be_an_absolute_path.feature +0 -74
  217. data/features/05_use_rspec_matchers/path/be_an_existing_path.feature +0 -97
  218. data/features/05_use_rspec_matchers/path/have_permissions.feature +0 -118
  219. data/features/06_use_aruba_cli/initialize_project_with_aruba.feature +0 -79
  220. data/features/06_use_aruba_cli/open_console.feature +0 -55
  221. data/features/08_other/improve_performance_if_using_jruby.feature +0 -37
  222. data/features/step_definitions/hooks.rb +0 -146
  223. data/features/support/aruba.rb +0 -7
  224. data/features/support/env.rb +0 -33
  225. data/features/support/simplecov_setup.rb +0 -11
  226. data/fixtures/spawn_process/stderr.sh +0 -3
  227. data/lib/aruba/api/deprecated.rb +0 -1155
  228. data/lib/aruba/config.rb +0 -107
  229. data/lib/aruba/cucumber/core.rb +0 -5
  230. data/lib/aruba/cucumber/deprecated.rb +0 -93
  231. data/lib/aruba/cucumber/rvm.rb +0 -3
  232. data/lib/aruba/in_process.rb +0 -16
  233. data/lib/aruba/jruby.rb +0 -4
  234. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  235. data/lib/aruba/matchers/deprecated.rb +0 -1
  236. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  237. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  238. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  239. data/lib/aruba/reporting.rb +0 -126
  240. data/lib/aruba/spawn_process.rb +0 -14
  241. data/script/bootstrap +0 -24
  242. data/script/console +0 -16
  243. data/script/test +0 -3
  244. data/spec/aruba/api/bundler_spec.rb +0 -15
  245. data/spec/aruba/api/commands_spec.rb +0 -30
  246. data/spec/aruba/api/core_spec.rb +0 -184
  247. data/spec/aruba/api/deprecated_spec.rb +0 -421
  248. data/spec/aruba/api/filesystem_spec.rb +0 -746
  249. data/spec/aruba/api/runtime_spec.rb +0 -28
  250. data/spec/aruba/api_spec.rb +0 -73
  251. data/spec/aruba/aruba_path_spec.rb +0 -103
  252. data/spec/aruba/basic_configuration_spec.rb +0 -5
  253. data/spec/aruba/configuration_spec.rb +0 -5
  254. data/spec/aruba/hooks_spec.rb +0 -17
  255. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  256. data/spec/aruba/jruby_spec.rb +0 -73
  257. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  258. data/spec/aruba/matchers/command_spec.rb +0 -174
  259. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  260. data/spec/aruba/matchers/directory_spec.rb +0 -57
  261. data/spec/aruba/matchers/file_spec.rb +0 -208
  262. data/spec/aruba/matchers/path_spec.rb +0 -58
  263. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  264. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  265. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  266. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  267. data/spec/aruba/processes/spawn_process_spec.rb +0 -112
  268. data/spec/aruba/rspec_spec.rb +0 -15
  269. data/spec/aruba/runtime_spec.rb +0 -29
  270. data/spec/event_bus/name_resolver_spec.rb +0 -68
  271. data/spec/event_bus_spec.rb +0 -158
  272. data/spec/spec_helper.rb +0 -22
  273. data/spec/support/configs/.keep +0 -0
  274. data/spec/support/configs/aruba.rb +0 -5
  275. data/spec/support/configs/pry.rb +0 -3
  276. data/spec/support/configs/rspec.rb +0 -15
  277. data/spec/support/helpers/.keep +0 -0
  278. data/spec/support/helpers/reporting.rb +0 -44
  279. data/spec/support/matchers/.keep +0 -0
  280. data/spec/support/matchers/option.rb +0 -35
  281. data/spec/support/shared_contexts/.keep +0 -0
  282. data/spec/support/shared_contexts/aruba.rb +0 -49
  283. data/spec/support/shared_examples/.keep +0 -0
  284. data/spec/support/shared_examples/configuration.rb +0 -116
  285. data/spec/support/shared_examples/directory.rb +0 -7
  286. data/spec/support/shared_examples/file.rb +0 -7
  287. data/templates/css/console.css +0 -24
  288. data/templates/css/filesystem.css +0 -42
  289. data/templates/css/pygments-autumn.css +0 -59
  290. data/templates/files.erb +0 -14
  291. data/templates/images/LICENSE +0 -22
  292. data/templates/images/folder.png +0 -0
  293. data/templates/images/page_white.png +0 -0
  294. data/templates/images/page_white_gherkin.png +0 -0
  295. data/templates/images/page_white_ruby.png +0 -0
  296. data/templates/index.erb +0 -20
  297. data/templates/js/filesystem.js +0 -5
  298. data/templates/js/jquery-1.11.3.min.js +0 -5
  299. data/templates/main.erb +0 -34
@@ -1,500 +0,0 @@
1
- require 'spec_helper'
2
- require 'aruba/platforms/windows_environment_variables'
3
-
4
- RSpec.describe Aruba::Platforms::WindowsEnvironmentVariables do
5
- subject(:environment) { described_class.new(old_environment) }
6
-
7
- describe '#[]' do
8
- context 'when environment contains uppercase variable' do
9
- let(:old_environment) { { 'MY_VARIABLE' => '1' } }
10
-
11
- context 'when uppercase key is given' do
12
- let(:variable) { 'MY_VARIABLE' }
13
-
14
- it { expect(environment[variable]).to eq '1' }
15
- end
16
-
17
- context 'when lowercase key is given' do
18
- let(:variable) { 'my_variable' }
19
-
20
- it { expect(environment[variable]).to eq '1' }
21
- end
22
-
23
- context 'when mixed case key is given' do
24
- let(:variable) { 'MY_variable' }
25
-
26
- it { expect(environment[variable]).to eq '1' }
27
- end
28
-
29
- context 'when unknown variable is given' do
30
- let(:variable) { 'unknown' }
31
-
32
- it { expect(environment[variable]).to eq nil }
33
- end
34
- end
35
-
36
- context 'when environment contains lowercase variable' do
37
- let(:old_environment) { { 'my_variable' => '1' } }
38
-
39
- context 'when uppercase key is given' do
40
- let(:variable) { 'MY_VARIABLE' }
41
-
42
- it { expect(environment[variable]).to eq '1' }
43
- end
44
-
45
- context 'when lowercase key is given' do
46
- let(:variable) { 'my_variable' }
47
-
48
- it { expect(environment[variable]).to eq '1' }
49
- end
50
-
51
- context 'when mixed case key is given' do
52
- let(:variable) { 'MY_variable' }
53
-
54
- it { expect(environment[variable]).to eq '1' }
55
- end
56
-
57
- context 'when unknown variable is given' do
58
- let(:variable) { 'unknown' }
59
-
60
- it { expect(environment[variable]).to eq nil }
61
- end
62
- end
63
-
64
- context 'when environment contains mixed case variable' do
65
- let(:old_environment) { { 'MY_variable' => '1' } }
66
-
67
- context 'when uppercase key is given' do
68
- let(:variable) { 'MY_VARIABLE' }
69
-
70
- it { expect(environment[variable]).to eq '1' }
71
- end
72
-
73
- context 'when lowercase key is given' do
74
- let(:variable) { 'my_variable' }
75
-
76
- it { expect(environment[variable]).to eq '1' }
77
- end
78
-
79
- context 'when mixed case key is given' do
80
- let(:variable) { 'MY_variable' }
81
-
82
- it { expect(environment[variable]).to eq '1' }
83
- end
84
-
85
- context 'when unknown variable is given' do
86
- let(:variable) { 'unknown' }
87
-
88
- it { expect(environment[variable]).to eq nil }
89
- end
90
- end
91
- end
92
-
93
- describe '#fetch' do
94
- context 'when environment contains uppercase variable' do
95
- let(:old_environment) { { 'MY_VARIABLE' => '1' } }
96
-
97
- context 'when uppercase key is given' do
98
- let(:variable) { 'MY_VARIABLE' }
99
-
100
- it { expect(environment.fetch(variable)).to eq '1' }
101
- end
102
-
103
- context 'when lowercase key is given' do
104
- let(:variable) { 'my_variable' }
105
-
106
- it { expect(environment.fetch(variable)).to eq '1' }
107
- end
108
-
109
- context 'when mixed case key is given' do
110
- let(:variable) { 'MY_variable' }
111
-
112
- it { expect(environment.fetch(variable)).to eq '1' }
113
- end
114
-
115
- context 'when unknown variable is given' do
116
- let(:variable) { 'unknown' }
117
-
118
- context 'and no default is given' do
119
- if RUBY_VERSION < '1.9'
120
- it { expect { environment.fetch(variable) }.to raise_error IndexError }
121
- else
122
- unless defined? KeyError
123
- class KeyError < StandardError; end
124
- end
125
-
126
- it { expect { environment.fetch(variable) }.to raise_error KeyError }
127
- end
128
- end
129
-
130
- context 'and default is given' do
131
- let(:default_value) { 'default_value' }
132
-
133
- it { expect(environment.fetch(variable, default_value)).to eq default_value }
134
- end
135
- end
136
- end
137
-
138
- context 'when environment contains lowercase variable' do
139
- let(:old_environment) { { 'my_variable' => '1' } }
140
-
141
- context 'when uppercase key is given' do
142
- let(:variable) { 'MY_VARIABLE' }
143
-
144
- it { expect(environment.fetch(variable)).to eq '1' }
145
- end
146
-
147
- context 'when lowercase key is given' do
148
- let(:variable) { 'my_variable' }
149
-
150
- it { expect(environment.fetch(variable)).to eq '1' }
151
- end
152
-
153
- context 'when mixed case key is given' do
154
- let(:variable) { 'MY_variable' }
155
-
156
- it { expect(environment.fetch(variable)).to eq '1' }
157
- end
158
-
159
- context 'when unknown variable is given' do
160
- let(:variable) { 'unknown' }
161
-
162
- context 'and no default is given' do
163
- if RUBY_VERSION < '1.9'
164
- it { expect { environment.fetch(variable) }.to raise_error IndexError }
165
- else
166
- unless defined? KeyError
167
- class KeyError < StandardError; end
168
- end
169
-
170
- it { expect { environment.fetch(variable) }.to raise_error KeyError }
171
- end
172
- end
173
-
174
- context 'and default is given' do
175
- let(:default_value) { 'default_value' }
176
-
177
- it { expect(environment.fetch(variable, default_value)).to eq default_value }
178
- end
179
- end
180
- end
181
-
182
- context 'when environment contains mixed case variable' do
183
- let(:old_environment) { { 'MY_variable' => '1' } }
184
-
185
- context 'when uppercase key is given' do
186
- let(:variable) { 'MY_VARIABLE' }
187
-
188
- it { expect(environment.fetch(variable)).to eq '1' }
189
- end
190
-
191
- context 'when lowercase key is given' do
192
- let(:variable) { 'my_variable' }
193
-
194
- it { expect(environment.fetch(variable)).to eq '1' }
195
- end
196
-
197
- context 'when mixed case key is given' do
198
- let(:variable) { 'MY_variable' }
199
-
200
- it { expect(environment.fetch(variable)).to eq '1' }
201
- end
202
-
203
- context 'when unknown variable is given' do
204
- let(:variable) { 'unknown' }
205
-
206
- context 'and no default is given' do
207
- if RUBY_VERSION < '1.9'
208
- it { expect { environment.fetch(variable) }.to raise_error IndexError }
209
- else
210
- unless defined? KeyError
211
- class KeyError < StandardError; end
212
- end
213
-
214
- it { expect { environment.fetch(variable) }.to raise_error KeyError }
215
- end
216
- end
217
-
218
- context 'and default is given' do
219
- let(:default_value) { 'default_value' }
220
-
221
- it { expect(environment.fetch(variable, default_value)).to eq default_value }
222
- end
223
- end
224
- end
225
- end
226
-
227
- describe '#key?' do
228
- context 'when environment contains uppercase variable' do
229
- let(:old_environment) { { 'MY_VARIABLE' => '1' } }
230
-
231
- context 'when uppercase key is given' do
232
- let(:variable) { 'MY_VARIABLE' }
233
-
234
- it { expect(environment).to be_key variable }
235
- end
236
-
237
- context 'when lowercase key is given' do
238
- let(:variable) { 'my_variable' }
239
-
240
- it { expect(environment).to be_key variable }
241
- end
242
-
243
- context 'when mixed case key is given' do
244
- let(:variable) { 'MY_variable' }
245
-
246
- it { expect(environment).to be_key variable }
247
- end
248
-
249
- context 'when unknown variable is given' do
250
- let(:variable) { 'unknown' }
251
-
252
- it { expect(environment).not_to be_key variable }
253
- end
254
- end
255
-
256
- context 'when environment contains lowercase variable' do
257
- let(:old_environment) { { 'my_variable' => '1' } }
258
-
259
- context 'when uppercase key is given' do
260
- let(:variable) { 'MY_VARIABLE' }
261
-
262
- it { expect(environment).to be_key variable }
263
- end
264
-
265
- context 'when lowercase key is given' do
266
- let(:variable) { 'my_variable' }
267
-
268
- it { expect(environment).to be_key variable }
269
- end
270
-
271
- context 'when mixed case key is given' do
272
- let(:variable) { 'MY_variable' }
273
-
274
- it { expect(environment).to be_key variable }
275
- end
276
-
277
- context 'when unknown variable is given' do
278
- let(:variable) { 'unknown' }
279
-
280
- it { expect(environment).not_to be_key variable }
281
- end
282
- end
283
-
284
- context 'when environment contains mixed case variable' do
285
- let(:old_environment) { { 'MY_variable' => '1' } }
286
-
287
- context 'when uppercase key is given' do
288
- let(:variable) { 'MY_VARIABLE' }
289
-
290
- it { expect(environment).to be_key variable }
291
- end
292
-
293
- context 'when lowercase key is given' do
294
- let(:variable) { 'my_variable' }
295
-
296
- it { expect(environment).to be_key variable }
297
- end
298
-
299
- context 'when mixed case key is given' do
300
- let(:variable) { 'MY_variable' }
301
-
302
- it { expect(environment).to be_key variable }
303
- end
304
-
305
- context 'when unknown variable is given' do
306
- let(:variable) { 'unknown' }
307
-
308
- it { expect(environment).not_to be_key variable }
309
- end
310
- end
311
- end
312
-
313
- describe '#append' do
314
- let(:value) { 'NEW_VALUE' }
315
-
316
- context 'when environment contains uppercase variable' do
317
- let(:old_environment) { { 'MY_VARIABLE' => '1' } }
318
-
319
- before(:each) { environment.append(variable, value) }
320
-
321
- context 'when uppercase key is given' do
322
- let(:variable) { 'MY_VARIABLE' }
323
-
324
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
325
- end
326
-
327
- context 'when lowercase key is given' do
328
- let(:variable) { 'my_variable' }
329
-
330
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
331
- end
332
-
333
- context 'when mixed case key is given' do
334
- let(:variable) { 'MY_variable' }
335
-
336
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
337
- end
338
-
339
- context 'when unknown variable is given' do
340
- let(:variable) { 'unknown' }
341
-
342
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
343
- end
344
- end
345
-
346
- context 'when environment contains lowercase variable' do
347
- let(:old_environment) { { 'my_variable' => '1' } }
348
-
349
- before(:each) { environment.append(variable, value) }
350
-
351
- context 'when uppercase key is given' do
352
- let(:variable) { 'MY_VARIABLE' }
353
-
354
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
355
- end
356
-
357
- context 'when lowercase key is given' do
358
- let(:variable) { 'my_variable' }
359
-
360
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
361
- end
362
-
363
- context 'when mixed case key is given' do
364
- let(:variable) { 'MY_variable' }
365
-
366
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
367
- end
368
-
369
- context 'when unknown variable is given' do
370
- let(:variable) { 'unknown' }
371
-
372
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
373
- end
374
- end
375
-
376
- context 'when environment contains mixed case variable' do
377
- let(:old_environment) { { 'MY_variable' => '1' } }
378
-
379
- before(:each) { environment.append(variable, value) }
380
-
381
- context 'when uppercase key is given' do
382
- let(:variable) { 'MY_VARIABLE' }
383
-
384
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
385
- end
386
-
387
- context 'when lowercase key is given' do
388
- let(:variable) { 'my_variable' }
389
-
390
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
391
- end
392
-
393
- context 'when mixed case key is given' do
394
- let(:variable) { 'MY_variable' }
395
-
396
- it { expect(environment[variable]).to eq '1NEW_VALUE' }
397
- end
398
-
399
- context 'when unknown variable is given' do
400
- let(:variable) { 'unknown' }
401
-
402
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
403
- end
404
- end
405
- end
406
-
407
- describe '#prepend' do
408
- let(:value) { 'NEW_VALUE' }
409
-
410
- context 'when environment contains uppercase variable' do
411
- let(:old_environment) { { 'MY_VARIABLE' => '1' } }
412
-
413
- before(:each) { environment.prepend(variable, value) }
414
-
415
- context 'when uppercase key is given' do
416
- let(:variable) { 'MY_VARIABLE' }
417
-
418
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
419
- end
420
-
421
- context 'when lowercase key is given' do
422
- let(:variable) { 'my_variable' }
423
-
424
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
425
- end
426
-
427
- context 'when mixed case key is given' do
428
- let(:variable) { 'MY_variable' }
429
-
430
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
431
- end
432
-
433
- context 'when unknown variable is given' do
434
- let(:variable) { 'unknown' }
435
-
436
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
437
- end
438
- end
439
-
440
- context 'when environment contains lowercase variable' do
441
- let(:old_environment) { { 'my_variable' => '1' } }
442
-
443
- before(:each) { environment.prepend(variable, value) }
444
-
445
- context 'when uppercase key is given' do
446
- let(:variable) { 'MY_VARIABLE' }
447
-
448
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
449
- end
450
-
451
- context 'when lowercase key is given' do
452
- let(:variable) { 'my_variable' }
453
-
454
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
455
- end
456
-
457
- context 'when mixed case key is given' do
458
- let(:variable) { 'MY_variable' }
459
-
460
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
461
- end
462
-
463
- context 'when unknown variable is given' do
464
- let(:variable) { 'unknown' }
465
-
466
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
467
- end
468
- end
469
-
470
- context 'when environment contains mixed case variable' do
471
- let(:old_environment) { { 'MY_variable' => '1' } }
472
-
473
- before(:each) { environment.prepend(variable, value) }
474
-
475
- context 'when uppercase key is given' do
476
- let(:variable) { 'MY_VARIABLE' }
477
-
478
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
479
- end
480
-
481
- context 'when lowercase key is given' do
482
- let(:variable) { 'my_variable' }
483
-
484
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
485
- end
486
-
487
- context 'when mixed case key is given' do
488
- let(:variable) { 'MY_variable' }
489
-
490
- it { expect(environment[variable]).to eq 'NEW_VALUE1' }
491
- end
492
-
493
- context 'when unknown variable is given' do
494
- let(:variable) { 'unknown' }
495
-
496
- it { expect(environment[variable]).to eq 'NEW_VALUE' }
497
- end
498
- end
499
- end
500
- end
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Aruba::Platforms::UnixCommandString do
4
- let(:command_string) { described_class.new(base_command) }
5
-
6
- describe '#to_a' do
7
- context 'with a command with a path' do
8
- let(:base_command) { '/foo/bar' }
9
- it { expect(command_string.to_a).to eq [base_command] }
10
- end
11
-
12
- context 'with a command with a path containing spaces' do
13
- let(:base_command) { '/foo bar/baz' }
14
- it { expect(command_string.to_a).to eq [base_command] }
15
- end
16
- end
17
- end
@@ -1,22 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Aruba::Platforms::WindowsCommandString do
4
- let(:command_string) { described_class.new(base_command) }
5
- let(:cmd_path) { 'C:\Some Path\cmd.exe' }
6
-
7
- before do
8
- allow(Aruba.platform).to receive(:which).with('cmd.exe').and_return(cmd_path)
9
- end
10
-
11
- describe '#to_a' do
12
- context 'with a command with a path' do
13
- let(:base_command) { 'C:\Foo\Bar' }
14
- it { expect(command_string.to_a).to eq [cmd_path, '/c', base_command] }
15
- end
16
-
17
- context 'with a command with a path containing spaces' do
18
- let(:base_command) { 'C:\Foo Bar\Baz' }
19
- it { expect(command_string.to_a).to eq [cmd_path, '/c', base_command] }
20
- end
21
- end
22
- end
@@ -1,112 +0,0 @@
1
- require 'aruba/processes/spawn_process'
2
-
3
- RSpec.describe Aruba::Processes::SpawnProcess do
4
- subject(:process) { described_class.new(command, exit_timeout, io_wait, working_directory, environment, main_class) }
5
-
6
- let(:command) { 'echo "yo"' }
7
- let(:exit_timeout) { 1 }
8
- let(:io_wait) { 1 }
9
- let(:working_directory) { Dir.getwd }
10
- let(:environment) { ENV.to_hash.dup }
11
- let(:main_class) { nil }
12
-
13
- describe "#stdout" do
14
- before(:each) { process.start }
15
- before(:each) { process.stop }
16
-
17
- context 'when invoked once' do
18
- it { expect(process.stdout).to eq "yo\n" }
19
- end
20
-
21
- context 'when invoked twice' do
22
- it { 2.times { expect(process.stdout).to eq "yo\n" } }
23
- end
24
- end
25
-
26
- describe "#stderr" do
27
- let(:command) { 'fixtures/spawn_process/stderr.sh yo' }
28
-
29
- before(:each) { process.start }
30
- before(:each) { process.stop }
31
-
32
- context 'when invoked once' do
33
- it { expect(process.stderr).to eq "yo\n" }
34
- end
35
-
36
- context 'when invoked twice' do
37
- it { 2.times { expect(process.stderr).to eq "yo\n" } }
38
- end
39
- end
40
-
41
- describe "#stop" do
42
- before(:each) { process.start }
43
-
44
- context 'when stopped successfully' do
45
- it { expect { process.stop }.not_to raise_error }
46
-
47
- it "leaves the process in the 'stopped' state" do
48
- process.stop
49
- aggregate_failures do
50
- expect(process).to be_stopped
51
- expect(process).not_to be_started
52
- end
53
- end
54
- end
55
- end
56
-
57
- describe "#start" do
58
- context "when process run succeeds" do
59
- it { expect { process.start }.not_to raise_error }
60
-
61
- it "leaves the process in the 'started' state" do
62
- process.start
63
- aggregate_failures do
64
- expect(process).to be_started
65
- expect(process).not_to be_stopped
66
- end
67
- end
68
- end
69
-
70
- context "when process run fails" do
71
- let(:command) { 'does_not_exists' }
72
-
73
- it { expect { process.start }.to raise_error Aruba::LaunchError }
74
- end
75
-
76
- context 'with a command with a space in the path on unix' do
77
- let(:child) { instance_double(ChildProcess::AbstractProcess).as_null_object }
78
- let(:io) { instance_double(ChildProcess::AbstractIO).as_null_object }
79
- let(:command) { 'foo' }
80
- let(:command_path) { '/path with space/foo' }
81
-
82
- before do
83
- allow(Aruba.platform).to receive(:command_string).and_return Aruba::Platforms::UnixCommandString
84
- allow(Aruba.platform).to receive(:which).with(command, anything).and_return(command_path)
85
- allow(ChildProcess).to receive(:build).with(command_path).and_return(child)
86
- allow(child).to receive(:io).and_return io
87
- allow(child).to receive(:environment).and_return({})
88
- end
89
-
90
- it { expect { process.start }.to_not raise_error }
91
- end
92
-
93
- context 'with a command with a space in the path on windows' do
94
- let(:child) { instance_double(ChildProcess::AbstractProcess).as_null_object }
95
- let(:io) { instance_double(ChildProcess::AbstractIO).as_null_object }
96
- let(:command) { 'foo' }
97
- let(:cmd_path) { 'C:\Some Path\cmd.exe' }
98
- let(:command_path) { 'D:\Bar Baz\foo' }
99
-
100
- before do
101
- allow(Aruba.platform).to receive(:command_string).and_return Aruba::Platforms::WindowsCommandString
102
- allow(Aruba.platform).to receive(:which).with('cmd.exe').and_return(cmd_path)
103
- allow(Aruba.platform).to receive(:which).with(command, anything).and_return(command_path)
104
- allow(ChildProcess).to receive(:build).with(cmd_path, '/c', command_path).and_return(child)
105
- allow(child).to receive(:io).and_return io
106
- allow(child).to receive(:environment).and_return({})
107
- end
108
-
109
- it { expect { process.start }.to_not raise_error }
110
- end
111
- end
112
- end
@@ -1,15 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe 'RSpec Integration', :type => :aruba do
4
- describe 'Configuration' do
5
- subject(:config) { aruba.config }
6
-
7
- context 'when io_wait_timeout is 0.5', :io_wait_timeout => 0.5 do
8
- it { expect(config.io_wait_timeout).to eq 0.5 }
9
- end
10
-
11
- context 'when io_wait_timeout is 0.1' do
12
- it { expect(config.io_wait_timeout).to eq 0.1 }
13
- end
14
- end
15
- end
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Aruba::Runtime do
4
- # describe '#fixtures_directory' do
5
- # context 'when no fixtures directories exist' do
6
- # it "should raise exception" do
7
- # expect { api.fixtures_directory }.to raise_error
8
- # end
9
- # end
10
- #
11
- # context 'when "/features/fixtures"-directory exist' do
12
- # before(:each) { api.create_directory('features/fixtures') }
13
- #
14
- # it { expect(api.fixtures_directory).to eq expand_path('features/fixtures') }
15
- # end
16
- #
17
- # context 'when "/spec/fixtures"-directory exist' do
18
- # before(:each) { api.create_directory('spec/fixtures') }
19
- #
20
- # it { expect(api.fixtures_directory).to eq expand_path('spec/fixtures') }
21
- # end
22
- #
23
- # context 'when "/test/fixtures"-directory exist' do
24
- # before(:each) { api.create_directory('test/fixtures') }
25
- #
26
- # it { expect(api.fixtures_directory.to_s).to eq expand_path('test/fixtures') }
27
- # end
28
- # end
29
- end