aruba 0.14.9 → 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 (309) 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 -179
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +54 -46
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +613 -246
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -96
  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 +42 -2
  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 +6 -0
  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 -6
  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/empty-app/lib/cli/app.rb +0 -6
  40. data/fixtures/getting-started-app/Gemfile +1 -1
  41. data/lib/aruba/api/commands.rb +109 -143
  42. data/lib/aruba/api/core.rb +57 -43
  43. data/lib/aruba/api/environment.rb +16 -7
  44. data/lib/aruba/api/filesystem.rb +42 -29
  45. data/lib/aruba/api/text.rb +3 -9
  46. data/lib/aruba/api.rb +6 -11
  47. data/lib/aruba/aruba_path.rb +27 -89
  48. data/lib/aruba/basic_configuration.rb +4 -24
  49. data/lib/aruba/cli.rb +1 -1
  50. data/lib/aruba/colorizer.rb +10 -99
  51. data/lib/aruba/command.rb +2 -0
  52. data/lib/aruba/config/jruby.rb +15 -5
  53. data/lib/aruba/config_wrapper.rb +1 -1
  54. data/lib/aruba/configuration.rb +92 -0
  55. data/lib/aruba/console/help.rb +1 -7
  56. data/lib/aruba/console.rb +5 -5
  57. data/lib/aruba/contracts/absolute_path.rb +2 -2
  58. data/lib/aruba/contracts/relative_path.rb +2 -2
  59. data/lib/aruba/cucumber/command.rb +171 -160
  60. data/lib/aruba/cucumber/environment.rb +1 -1
  61. data/lib/aruba/cucumber/file.rb +21 -35
  62. data/lib/aruba/cucumber/hooks.rb +17 -56
  63. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  64. data/lib/aruba/cucumber.rb +0 -5
  65. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  66. data/lib/aruba/hooks.rb +1 -1
  67. data/lib/aruba/in_config_wrapper.rb +5 -1
  68. data/lib/aruba/initializer.rb +36 -42
  69. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  70. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  71. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  72. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  73. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  74. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  75. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  76. data/lib/aruba/matchers/command/have_output.rb +10 -5
  77. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  78. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  79. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  80. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  81. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  82. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  83. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  84. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  85. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  86. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  87. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  88. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  89. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  90. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  91. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  92. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  93. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  94. data/lib/aruba/matchers/string/output_string_eq.rb +7 -9
  95. data/lib/aruba/platform.rb +0 -8
  96. data/lib/aruba/platforms/announcer.rb +42 -79
  97. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  98. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  99. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  100. data/lib/aruba/platforms/command_monitor.rb +12 -107
  101. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  102. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  103. data/lib/aruba/platforms/local_environment.rb +2 -2
  104. data/lib/aruba/platforms/simple_table.rb +3 -11
  105. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  106. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  107. data/lib/aruba/platforms/unix_platform.rb +20 -51
  108. data/lib/aruba/platforms/unix_which.rb +2 -1
  109. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  110. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  111. data/lib/aruba/platforms/windows_platform.rb +4 -0
  112. data/lib/aruba/platforms/windows_which.rb +4 -3
  113. data/lib/aruba/processes/basic_process.rb +28 -30
  114. data/lib/aruba/processes/debug_process.rb +12 -3
  115. data/lib/aruba/processes/in_process.rb +17 -8
  116. data/lib/aruba/processes/spawn_process.rb +57 -46
  117. data/lib/aruba/rspec.rb +14 -36
  118. data/lib/aruba/runtime.rb +3 -6
  119. data/lib/aruba/setup.rb +6 -6
  120. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  121. data/lib/aruba/version.rb +1 -1
  122. metadata +191 -244
  123. data/features/.nav +0 -72
  124. data/features/api/command/find_command.feature +0 -83
  125. data/features/api/command/last_command_started.feature +0 -50
  126. data/features/api/command/last_command_stopped.feature +0 -89
  127. data/features/api/command/run.feature +0 -414
  128. data/features/api/command/run_simple.feature +0 -242
  129. data/features/api/command/send_signal.feature +0 -53
  130. data/features/api/command/stderr.feature +0 -46
  131. data/features/api/command/stdout.feature +0 -46
  132. data/features/api/command/stop.feature +0 -131
  133. data/features/api/command/stop_all_commands.feature +0 -53
  134. data/features/api/command/terminate_all_commands.feature +0 -53
  135. data/features/api/command/which.feature +0 -37
  136. data/features/api/core/expand_path.feature +0 -88
  137. data/features/api/environment/append_environment_variable.feature +0 -128
  138. data/features/api/environment/delete_environment_variable.feature +0 -63
  139. data/features/api/environment/prepend_environment_variable.feature +0 -128
  140. data/features/api/environment/set_environment_variable.feature +0 -376
  141. data/features/api/filesystem/cd.feature +0 -184
  142. data/features/api/filesystem/create_directory.feature +0 -57
  143. data/features/api/filesystem/disk_usage.feature +0 -152
  144. data/features/api/filesystem/does_exist.feature +0 -62
  145. data/features/api/filesystem/fixtures.feature +0 -104
  146. data/features/api/filesystem/is_absolute.feature +0 -48
  147. data/features/api/filesystem/is_directory.feature +0 -53
  148. data/features/api/filesystem/is_file.feature +0 -54
  149. data/features/api/filesystem/is_relative.feature +0 -48
  150. data/features/api/filesystem/move.feature +0 -119
  151. data/features/api/text/extract_text.feature +0 -87
  152. data/features/api/text/replace_variables.feature +0 -45
  153. data/features/api/text/sanitize_text.feature +0 -228
  154. data/features/api/text/unescape_text.feature +0 -127
  155. data/features/cli/console.feature +0 -52
  156. data/features/cli/init.feature +0 -79
  157. data/features/configuration/activate_announcer_on_command_failure.feature +0 -38
  158. data/features/configuration/command_runtime_environment.feature +0 -129
  159. data/features/configuration/console_history_file.feature +0 -38
  160. data/features/configuration/exit_timeout.feature +0 -52
  161. data/features/configuration/fixtures_directories.feature +0 -38
  162. data/features/configuration/fixtures_path_prefix.feature +0 -23
  163. data/features/configuration/home_directory.feature +0 -80
  164. data/features/configuration/io_timeout.feature +0 -30
  165. data/features/configuration/keep_ansi.feature +0 -30
  166. data/features/configuration/log_level.feature +0 -38
  167. data/features/configuration/physical_block_size.feature +0 -53
  168. data/features/configuration/remove_ansi_escape_sequences.feature +0 -38
  169. data/features/configuration/root_directory.feature +0 -30
  170. data/features/configuration/startup_wait_time.feature +0 -48
  171. data/features/configuration/usage.feature +0 -159
  172. data/features/configuration/working_directory.feature +0 -33
  173. data/features/development/build.feature +0 -15
  174. data/features/getting_started/cleanup.feature +0 -58
  175. data/features/getting_started/run_commands.feature +0 -187
  176. data/features/getting_started/supported_testing_frameworks.feature +0 -104
  177. data/features/getting_started/writing_good_feature_tests.feature +0 -38
  178. data/features/hooks/after/command.feature +0 -46
  179. data/features/hooks/before/command.feature +0 -75
  180. data/features/matchers/collection/include_an_object.feature +0 -72
  181. data/features/matchers/directory/have_sub_directory.feature +0 -110
  182. data/features/matchers/file/be_a_command_found_in_path.feature +0 -115
  183. data/features/matchers/file/be_existing_executable.feature +0 -88
  184. data/features/matchers/file/be_existing_file.feature +0 -82
  185. data/features/matchers/file/have_file_content.feature +0 -123
  186. data/features/matchers/file/have_file_size.feature +0 -107
  187. data/features/matchers/path/be_an_absolute_path.feature +0 -74
  188. data/features/matchers/path/be_an_existing_path.feature +0 -97
  189. data/features/matchers/path/have_permissions.feature +0 -118
  190. data/features/matchers/timeouts.feature +0 -48
  191. data/features/platforms/jruby.feature +0 -14
  192. data/features/rspec/integration.feature +0 -179
  193. data/features/step_definitions/aruba_dev_steps.rb +0 -56
  194. data/features/step_definitions/hooks.rb +0 -156
  195. data/features/steps/command/debug.feature +0 -92
  196. data/features/steps/command/exit_statuses.feature +0 -136
  197. data/features/steps/command/in_process.feature +0 -485
  198. data/features/steps/command/interactive.feature +0 -90
  199. data/features/steps/command/output.feature +0 -567
  200. data/features/steps/command/run.feature +0 -66
  201. data/features/steps/command/send_signal.feature +0 -104
  202. data/features/steps/command/shell.feature +0 -155
  203. data/features/steps/command/stderr.feature +0 -68
  204. data/features/steps/command/stdout.feature +0 -109
  205. data/features/steps/command/stop.feature +0 -313
  206. data/features/steps/core/announce.feature +0 -283
  207. data/features/steps/environment/append_environment_variable.feature +0 -52
  208. data/features/steps/environment/disable_bunder.feature +0 -18
  209. data/features/steps/environment/home_variable.feature +0 -62
  210. data/features/steps/environment/prepend_environment_variable.feature +0 -52
  211. data/features/steps/environment/set_environment_variable.feature +0 -49
  212. data/features/steps/filesystem/append_to_file.feature +0 -45
  213. data/features/steps/filesystem/cd_to_directory.feature +0 -33
  214. data/features/steps/filesystem/check_file_content.feature +0 -61
  215. data/features/steps/filesystem/check_permissions_of_file.feature +0 -39
  216. data/features/steps/filesystem/compare_files.feature +0 -42
  217. data/features/steps/filesystem/copy.feature +0 -45
  218. data/features/steps/filesystem/create_directory.feature +0 -57
  219. data/features/steps/filesystem/create_file.feature +0 -76
  220. data/features/steps/filesystem/existence_of_directory.feature +0 -57
  221. data/features/steps/filesystem/existence_of_file.feature +0 -43
  222. data/features/steps/filesystem/file_content.feature +0 -86
  223. data/features/steps/filesystem/fixtures.feature +0 -64
  224. data/features/steps/filesystem/move.feature +0 -45
  225. data/features/steps/filesystem/non_existence_of_directory.feature +0 -69
  226. data/features/steps/filesystem/non_existence_of_file.feature +0 -80
  227. data/features/steps/filesystem/overwrite_file.feature +0 -72
  228. data/features/steps/filesystem/remove_directory.feature +0 -38
  229. data/features/steps/filesystem/remove_file.feature +0 -38
  230. data/features/steps/filesystem/use_fixture.feature +0 -77
  231. data/features/steps/overview.feature +0 -25
  232. data/features/support/aruba.rb +0 -7
  233. data/features/support/env.rb +0 -33
  234. data/features/support/jruby.rb +0 -5
  235. data/features/support/simplecov_setup.rb +0 -8
  236. data/fixtures/cli-app/bin/cli +0 -6
  237. data/fixtures/spawn_process/stderr.sh +0 -3
  238. data/lib/aruba/api/deprecated.rb +0 -1234
  239. data/lib/aruba/config.rb +0 -107
  240. data/lib/aruba/cucumber/core.rb +0 -5
  241. data/lib/aruba/cucumber/rvm.rb +0 -3
  242. data/lib/aruba/in_process.rb +0 -14
  243. data/lib/aruba/jruby.rb +0 -4
  244. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  245. data/lib/aruba/matchers/deprecated.rb +0 -1
  246. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  247. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  249. data/lib/aruba/reporting.rb +0 -126
  250. data/lib/aruba/spawn_process.rb +0 -11
  251. data/script/bootstrap +0 -28
  252. data/script/console +0 -16
  253. data/script/test +0 -3
  254. data/spec/aruba/api/bundler_spec.rb +0 -15
  255. data/spec/aruba/api/deprecated_spec.rb +0 -308
  256. data/spec/aruba/api/environment/restore_env_spec.rb +0 -86
  257. data/spec/aruba/api/environment/set_env_spec.rb +0 -46
  258. data/spec/aruba/api/filesystem/file_size_spec.rb +0 -28
  259. data/spec/aruba/api/runtime_spec.rb +0 -28
  260. data/spec/aruba/api_spec.rb +0 -981
  261. data/spec/aruba/aruba_path_spec.rb +0 -103
  262. data/spec/aruba/basic_configuration_spec.rb +0 -5
  263. data/spec/aruba/configuration_spec.rb +0 -5
  264. data/spec/aruba/hooks_spec.rb +0 -17
  265. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  266. data/spec/aruba/jruby_spec.rb +0 -55
  267. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  268. data/spec/aruba/matchers/command_spec.rb +0 -174
  269. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  270. data/spec/aruba/matchers/directory_spec.rb +0 -57
  271. data/spec/aruba/matchers/file_spec.rb +0 -208
  272. data/spec/aruba/matchers/path_spec.rb +0 -58
  273. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  274. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  275. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  276. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  277. data/spec/aruba/rspec_spec.rb +0 -15
  278. data/spec/aruba/runtime_spec.rb +0 -29
  279. data/spec/aruba/spawn_process_spec.rb +0 -96
  280. data/spec/event_bus/name_resolver_spec.rb +0 -68
  281. data/spec/event_bus_spec.rb +0 -158
  282. data/spec/spec_helper.rb +0 -20
  283. data/spec/support/configs/.keep +0 -0
  284. data/spec/support/configs/aruba.rb +0 -5
  285. data/spec/support/configs/pry.rb +0 -3
  286. data/spec/support/configs/rspec.rb +0 -15
  287. data/spec/support/helpers/.keep +0 -0
  288. data/spec/support/helpers/reporting.rb +0 -44
  289. data/spec/support/matchers/.keep +0 -0
  290. data/spec/support/matchers/option.rb +0 -35
  291. data/spec/support/shared_contexts/.keep +0 -0
  292. data/spec/support/shared_contexts/aruba.rb +0 -49
  293. data/spec/support/shared_examples/.keep +0 -0
  294. data/spec/support/shared_examples/configuration.rb +0 -116
  295. data/spec/support/shared_examples/directory.rb +0 -7
  296. data/spec/support/shared_examples/file.rb +0 -7
  297. data/templates/css/console.css +0 -24
  298. data/templates/css/filesystem.css +0 -42
  299. data/templates/css/pygments-autumn.css +0 -59
  300. data/templates/files.erb +0 -14
  301. data/templates/images/LICENSE +0 -22
  302. data/templates/images/folder.png +0 -0
  303. data/templates/images/page_white.png +0 -0
  304. data/templates/images/page_white_gherkin.png +0 -0
  305. data/templates/images/page_white_ruby.png +0 -0
  306. data/templates/index.erb +0 -20
  307. data/templates/js/filesystem.js +0 -5
  308. data/templates/js/jquery-1.11.3.min.js +0 -5
  309. 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,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
@@ -1,96 +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 { process.stop }
46
- end
47
- end
48
-
49
- describe "#start" do
50
- context "when process run succeeds" do
51
- it { expect { process.start }.not_to raise_error }
52
- end
53
-
54
- context "when process run fails" do
55
- let(:command) { 'does_not_exists' }
56
-
57
- it { expect {process.start}.to raise_error Aruba::LaunchError }
58
- end
59
-
60
- context 'with a command with a space in the path on unix' do
61
- let(:child) { instance_double(ChildProcess::AbstractProcess).as_null_object }
62
- let(:io) { instance_double(ChildProcess::AbstractIO).as_null_object }
63
- let(:command) { 'foo' }
64
- let(:command_path) { '/path with space/foo' }
65
-
66
- before do
67
- allow(Aruba.platform).to receive(:command_string).and_return Aruba::Platforms::UnixCommandString
68
- allow(Aruba.platform).to receive(:which).with(command, anything).and_return(command_path)
69
- allow(ChildProcess).to receive(:build).with(command_path).and_return(child)
70
- allow(child).to receive(:io).and_return io
71
- allow(child).to receive(:environment).and_return({})
72
- end
73
-
74
- it { expect { process.start }.to_not raise_error }
75
- end
76
-
77
- context 'with a command with a space in the path on windows' do
78
- let(:child) { instance_double(ChildProcess::AbstractProcess).as_null_object }
79
- let(:io) { instance_double(ChildProcess::AbstractIO).as_null_object }
80
- let(:command) { 'foo' }
81
- let(:cmd_path) { 'C:\Some Path\cmd.exe' }
82
- let(:command_path) { 'D:\Bar Baz\foo' }
83
-
84
- before do
85
- allow(Aruba.platform).to receive(:command_string).and_return Aruba::Platforms::WindowsCommandString
86
- allow(Aruba.platform).to receive(:which).with('cmd.exe').and_return(cmd_path)
87
- allow(Aruba.platform).to receive(:which).with(command, anything).and_return(command_path)
88
- allow(ChildProcess).to receive(:build).with(cmd_path, '/c', command_path).and_return(child)
89
- allow(child).to receive(:io).and_return io
90
- allow(child).to receive(:environment).and_return({})
91
- end
92
-
93
- it { expect { process.start }.to_not raise_error }
94
- end
95
- end
96
- end