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,184 +0,0 @@
1
- require 'spec_helper'
2
- require 'aruba/api'
3
- require 'fileutils'
4
-
5
- RSpec.describe Aruba::Api::Core do
6
- include_context 'uses aruba API'
7
-
8
- describe '#cd' do
9
- before do
10
- @directory_name = 'test_dir'
11
- @directory_path = File.join(@aruba.aruba.current_directory, @directory_name)
12
- end
13
-
14
- context 'with a block given' do
15
- it 'runs the passed block in the given directory' do
16
- @aruba.create_directory @directory_name
17
- full_path = File.expand_path(@directory_path)
18
- @aruba.cd @directory_name do
19
- expect(Dir.pwd).to eq full_path
20
- end
21
- expect(Dir.pwd).not_to eq full_path
22
- end
23
-
24
- it 'sets directory environment in the passed block' do
25
- @aruba.create_directory @directory_name
26
- old_pwd = ENV['PWD']
27
- full_path = File.expand_path(@directory_path)
28
- @aruba.cd @directory_name do
29
- expect(ENV['PWD']).to eq full_path
30
- expect(ENV['OLDPWD']).to eq old_pwd
31
- end
32
- end
33
-
34
- it 'sets aruba environment in the passed block' do
35
- @aruba.create_directory @directory_name
36
- @aruba.set_environment_variable('FOO', 'bar')
37
- @aruba.cd @directory_name do
38
- expect(ENV['FOO']).to eq 'bar'
39
- end
40
- end
41
-
42
- it 'does not touch other environment variables in the passed block' do
43
- keys = ENV.keys - ['PWD', 'OLDPWD']
44
- old_values = ENV.values_at(*keys)
45
- @aruba.create_directory @directory_name
46
- @aruba.cd @directory_name do
47
- expect(ENV.values_at(*keys)).to eq old_values
48
- end
49
- end
50
- end
51
- end
52
-
53
- describe '#expand_path' do
54
- context 'when file_name is given' do
55
- it { expect(@aruba.expand_path(@file_name)).to eq File.expand_path(@file_path) }
56
- end
57
-
58
- context 'when file_path is given' do
59
- it { expect(@aruba.expand_path(@file_path)).to eq @file_path }
60
- end
61
-
62
- context 'when path contains "."' do
63
- it { expect(@aruba.expand_path('.')).to eq File.expand_path(aruba.current_directory) }
64
- end
65
-
66
- context 'when path contains ".."' do
67
- it { expect(@aruba.expand_path('path/..')).to eq File.expand_path(File.join(aruba.current_directory)) }
68
- end
69
-
70
- context 'when path is nil' do
71
- it { expect { @aruba.expand_path(nil) }.to raise_error ArgumentError }
72
- end
73
-
74
- context 'when path is empty' do
75
- it { expect { @aruba.expand_path('') }.to raise_error ArgumentError }
76
- end
77
-
78
- context 'when second argument is given' do
79
- it 'behaves similar to File.expand_path' do
80
- expect(@aruba.expand_path(@file_name, 'path')).
81
- to eq File.expand_path(File.join(aruba.current_directory, 'path', @file_name))
82
- end
83
- end
84
-
85
- context 'when file_name contains fixtures "%" string' do
86
- it 'finds files in the fixtures directory' do
87
- expect(@aruba.expand_path('%/cli-app')).
88
- to eq File.expand_path('cli-app', File.join(aruba.fixtures_directory))
89
- end
90
- end
91
- end
92
-
93
- describe '#in_current_directory' do
94
- let(:directory_path) { @aruba.aruba.current_directory }
95
- let!(:full_path) { File.expand_path(directory_path) }
96
-
97
- context 'with a block given' do
98
- it 'runs the passed block in the given directory' do
99
- @aruba.in_current_directory do
100
- expect(Dir.pwd).to eq full_path
101
- end
102
- expect(Dir.pwd).not_to eq full_path
103
- end
104
-
105
- it 'sets directory environment in the passed block' do
106
- old_pwd = ENV['PWD']
107
- @aruba.in_current_directory do
108
- expect(ENV['PWD']).to eq full_path
109
- expect(ENV['OLDPWD']).to eq old_pwd
110
- end
111
- end
112
-
113
- it 'sets aruba environment in the passed block' do
114
- @aruba.set_environment_variable('FOO', 'bar')
115
- @aruba.in_current_directory do
116
- expect(ENV['FOO']).to eq 'bar'
117
- end
118
- end
119
-
120
- it 'does not touch other environment variables in the passed block' do
121
- keys = ENV.keys - ['PWD', 'OLDPWD']
122
- old_values = ENV.values_at(*keys)
123
- @aruba.in_current_directory do
124
- expect(ENV.values_at(*keys)).to eq old_values
125
- end
126
- end
127
- end
128
- end
129
-
130
- describe '#with_environment' do
131
- it 'modifies env for block' do
132
- variable = 'THIS_IS_A_ENV_VAR_1'
133
- ENV[variable] = '1'
134
-
135
- @aruba.with_environment variable => '0' do
136
- expect(ENV[variable]).to eq '0'
137
- end
138
-
139
- expect(ENV[variable]).to eq '1'
140
- end
141
-
142
- it 'works together with #set_environment_variable' do
143
- variable = 'THIS_IS_A_ENV_VAR_2'
144
- @aruba.set_environment_variable variable, '1'
145
-
146
- @aruba.with_environment do
147
- expect(ENV[variable]).to eq '1'
148
- @aruba.set_environment_variable variable, '0'
149
- @aruba.with_environment do
150
- expect(ENV[variable]).to eq '0'
151
- end
152
- expect(ENV[variable]).to eq '1'
153
- end
154
- end
155
-
156
- it 'works with a mix of ENV and #set_environment_variable' do
157
- variable = 'THIS_IS_A_ENV_VAR_3'
158
- @aruba.set_environment_variable variable, '1'
159
- ENV[variable] = '2'
160
- expect(ENV[variable]).to eq '2'
161
-
162
- @aruba.with_environment do
163
- expect(ENV[variable]).to eq '1'
164
- @aruba.set_environment_variable variable, '0'
165
- @aruba.with_environment do
166
- expect(ENV[variable]).to eq '0'
167
- end
168
- expect(ENV[variable]).to eq '1'
169
- end
170
- expect(ENV[variable]).to eq '2'
171
- end
172
-
173
- it 'keeps values not set in argument' do
174
- variable = 'THIS_IS_A_ENV_VAR_4'
175
- ENV[variable] = '2'
176
- expect(ENV[variable]).to eq '2'
177
-
178
- @aruba.with_environment do
179
- expect(ENV[variable]).to eq '2'
180
- end
181
- expect(ENV[variable]).to eq '2'
182
- end
183
- end
184
- end
@@ -1,421 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe 'Deprecated API' do
4
- include_context 'uses aruba API'
5
-
6
- around do |example|
7
- Aruba.platform.with_environment do
8
- example.run
9
- end
10
- end
11
-
12
- before do
13
- allow(Aruba.platform).to receive(:deprecated)
14
- end
15
-
16
- describe '#absolute_path' do
17
- context 'when file_name is array of path names' do
18
- it { expect(@aruba.absolute_path(['path', @file_name])).to eq File.expand_path(File.join(aruba.current_directory, 'path', @file_name)) }
19
- end
20
- end
21
-
22
- describe "#assert_not_matching_output" do
23
- before(:each){ @aruba.run_simple("echo foo", false) }
24
- after(:each) { @aruba.all_commands.each(&:stop) }
25
-
26
- it "passes when the output doesn't match a regexp" do
27
- @aruba.assert_not_matching_output "bar", @aruba.all_output
28
- end
29
- it "fails when the output does match a regexp" do
30
- expect do
31
- @aruba.assert_not_matching_output "foo", @aruba.all_output
32
- end . to raise_error RSpec::Expectations::ExpectationNotMetError
33
- end
34
- end
35
-
36
- describe '#filesystem_permissions' do
37
- def actual_permissions
38
- format( "%o" , File::Stat.new(file_path).mode )[-4,4]
39
- end
40
-
41
- let(:file_name) { @file_name }
42
- let(:file_path) { @file_path }
43
- let(:permissions) { '0655' }
44
-
45
- before :each do
46
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
47
- end
48
-
49
- before(:each) do
50
- File.open(file_path, 'w') { |f| f << "" }
51
- end
52
-
53
- before(:each) do
54
- @aruba.filesystem_permissions(permissions, file_name)
55
- end
56
-
57
- context 'when file exists' do
58
- context 'and permissions are given as string' do
59
- it { expect(actual_permissions).to eq('0655') }
60
- end
61
-
62
- context 'and permissions are given as octal number' do
63
- let(:permissions) { 0o655 }
64
- it { expect(actual_permissions).to eq('0655') }
65
- end
66
-
67
- context 'and path has ~ in it' do
68
- let(:path) { random_string }
69
- let(:file_name) { File.join('~', path) }
70
- let(:file_path) { File.join(@aruba.aruba.current_directory, path) }
71
-
72
- it { expect(actual_permissions).to eq('0655') }
73
- end
74
- end
75
- end
76
-
77
- describe '#check_filesystem_permissions' do
78
- let(:file_name) { @file_name }
79
- let(:file_path) { @file_path }
80
-
81
- let(:permissions) { '0655' }
82
-
83
- before :each do
84
- @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
85
- end
86
-
87
- before(:each) do
88
- File.open(file_path, 'w') { |f| f << "" }
89
- end
90
-
91
- before(:each) do
92
- @aruba.filesystem_permissions(permissions, file_name)
93
- end
94
-
95
- context 'when file exists' do
96
- context 'and should have permissions' do
97
- context 'and permissions are given as string' do
98
- it { @aruba.check_filesystem_permissions(permissions, file_name, true) }
99
- end
100
-
101
- context 'and permissions are given as octal number' do
102
- let(:permissions) { 0o666 }
103
-
104
- it { @aruba.check_filesystem_permissions(permissions, file_name, true) }
105
- end
106
-
107
- context 'and path includes ~' do
108
- let(:string) { random_string }
109
- let(:file_name) { File.join('~', string) }
110
- let(:file_path) { File.join(@aruba.aruba.current_directory, string) }
111
-
112
- it { @aruba.check_filesystem_permissions(permissions, file_name, true) }
113
- end
114
-
115
- context 'but fails because the permissions are different' do
116
- let(:expected_permissions) { 0o666 }
117
-
118
- it { expect { @aruba.check_filesystem_permissions(expected_permissions, file_name, true) }.to raise_error RSpec::Expectations::ExpectationNotMetError }
119
- end
120
- end
121
-
122
- context 'and should not have permissions' do
123
- context 'and succeeds when the difference is expected and permissions are different' do
124
- let(:different_permissions) { 0o666 }
125
-
126
- it { @aruba.check_filesystem_permissions(different_permissions, file_name, false) }
127
- end
128
-
129
- context 'and fails because the permissions are the same although they should be different' do
130
- let(:different_permissions) { 0o655 }
131
-
132
- it { expect { @aruba.check_filesystem_permissions(different_permissions, file_name, false) }.to raise_error RSpec::Expectations::ExpectationNotMetError }
133
- end
134
- end
135
- end
136
- end
137
-
138
- context '#check_file_presence' do
139
- before(:each) { File.open(@file_path, 'w') { |f| f << "" } }
140
-
141
- it "should check existence using plain match" do
142
- file_name = 'nested/dir/hello_world.txt'
143
- file_path = File.join(@aruba.aruba.current_directory, file_name)
144
-
145
- Aruba.platform.mkdir(File.dirname(file_path))
146
- File.open(file_path, 'w') { |f| f << "" }
147
-
148
- @aruba.check_file_presence(file_name)
149
- @aruba.check_file_presence([file_name])
150
- @aruba.check_file_presence([file_name], true)
151
- @aruba.check_file_presence(['asdf'], false)
152
- end
153
-
154
- it "should check existence using regex" do
155
- file_name = 'nested/dir/hello_world.txt'
156
- file_path = File.join(@aruba.aruba.current_directory, file_name)
157
-
158
- Aruba.platform.mkdir(File.dirname(file_path))
159
- File.open(file_path, 'w') { |f| f << "" }
160
-
161
- @aruba.check_file_presence([ /test123/ ], false )
162
- @aruba.check_file_presence([ /hello_world.txt$/ ], true )
163
- @aruba.check_file_presence([ /dir/ ], true )
164
- @aruba.check_file_presence([ %r{nested/.+/} ], true )
165
- end
166
-
167
- it "is no problem to mix both" do
168
- file_name = 'nested/dir/hello_world.txt'
169
- file_path = File.join(@aruba.aruba.current_directory, file_name)
170
-
171
- Aruba.platform.mkdir(File.dirname(file_path))
172
- File.open(file_path, 'w') { |f| f << "" }
173
-
174
- @aruba.check_file_presence([ file_name, /nested/ ], true )
175
- @aruba.check_file_presence([ /test123/, 'asdf' ], false )
176
- end
177
-
178
- it "works with ~ in path name" do
179
- file_path = File.join('~', random_string)
180
-
181
- @aruba.with_environment 'HOME' => File.expand_path(@aruba.aruba.current_directory) do
182
- Aruba.platform.mkdir(File.dirname(File.expand_path(file_path)))
183
- File.open(File.expand_path(file_path), 'w') { |f| f << "" }
184
-
185
- @aruba.check_file_presence( [ file_path ], true )
186
- end
187
- end
188
- end
189
-
190
- context "check file content" do
191
- before :example do
192
- @aruba.write_file(@file_name, "foo bar baz")
193
- end
194
-
195
- describe "#check_binary_file_content" do
196
- let(:file_name) { @file_name }
197
- let(:file_path) { @file_path }
198
-
199
- let(:reference_file) { 'fixture' }
200
- let(:reference_file_content) { 'foo bar baz' }
201
-
202
- before :each do
203
- @aruba.write_file(reference_file, reference_file_content)
204
- end
205
-
206
- context 'when files are the same' do
207
- context 'and this is expected' do
208
- it { @aruba.check_binary_file_content(file_name, reference_file) }
209
- it { @aruba.check_binary_file_content(file_name, reference_file, true) }
210
- end
211
-
212
- context 'and this is not expected' do
213
- it { expect { @aruba.check_binary_file_content(file_name, reference_file, false) }.to raise_error RSpec::Expectations::ExpectationNotMetError }
214
- end
215
- end
216
-
217
- context 'when files are not the same' do
218
- let(:reference_file_content) { 'bar' }
219
-
220
- context 'and this is expected' do
221
- it { @aruba.check_binary_file_content(file_name, reference_file, false) }
222
- end
223
-
224
- context 'and this is not expected' do
225
- it { expect { @aruba.check_binary_file_content(file_name, reference_file, true) }.to raise_error RSpec::Expectations::ExpectationNotMetError }
226
- end
227
- end
228
- end
229
-
230
- context "#check_file_content" do
231
- context "with regexp" do
232
- let(:matching_content){/bar/}
233
- let(:non_matching_content){/nothing/}
234
- it "succeeds if file content matches" do
235
- @aruba.check_file_content(@file_name, matching_content)
236
- @aruba.check_file_content(@file_name, matching_content, true)
237
- end
238
-
239
- it "succeeds if file content does not match" do
240
- @aruba.check_file_content(@file_name, non_matching_content, false)
241
- end
242
-
243
- it "works with ~ in path name" do
244
- file_path = File.join('~', random_string)
245
-
246
- @aruba.with_environment 'HOME' => File.expand_path(aruba.current_directory) do
247
- @aruba.write_file(file_path, "foo bar baz")
248
- @aruba.check_file_content(file_path, non_matching_content, false)
249
- end
250
- end
251
- end
252
- context "with string" do
253
- let(:matching_content){"foo bar baz"}
254
- let(:non_matching_content){"bar"}
255
- it "succeeds if file content matches" do
256
- @aruba.check_file_content(@file_name, matching_content)
257
- @aruba.check_file_content(@file_name, matching_content, true)
258
- end
259
-
260
- it "succeeds if file content does not match" do
261
- @aruba.check_file_content(@file_name, non_matching_content, false)
262
- end
263
-
264
- it "works with ~ in path name" do
265
- file_path = File.join('~', random_string)
266
-
267
- @aruba.with_environment 'HOME' => File.expand_path(aruba.current_directory) do
268
- @aruba.write_file(file_path, "foo bar baz")
269
- @aruba.check_file_content(file_path, non_matching_content, false)
270
- end
271
- end
272
- end
273
- end
274
- end
275
-
276
- context '#check_file_size' do
277
- it "should check an existing file size" do
278
- @aruba.write_fixed_size_file(@file_name, @file_size)
279
- @aruba.check_file_size([[@file_name, @file_size]])
280
- end
281
-
282
- it "should check an existing file size and fail" do
283
- @aruba.write_fixed_size_file(@file_name, @file_size)
284
- expect { @aruba.check_file_size([[@file_name, @file_size + 1]]) }.to raise_error RSpec::Expectations::ExpectationNotMetError
285
- end
286
-
287
- it "works with ~ in path name" do
288
- file_path = File.join('~', random_string)
289
-
290
- @aruba.with_environment 'HOME' => File.expand_path(aruba.current_directory) do
291
- @aruba.write_fixed_size_file(file_path, @file_size)
292
- @aruba.check_file_size([[file_path, @file_size]])
293
- end
294
- end
295
-
296
- it "should check an existing file size and fail" do
297
- @aruba.write_fixed_size_file(@file_name, @file_size)
298
- expect { @aruba.check_file_size([[@file_name, @file_size + 1]]) }.to raise_error RSpec::Expectations::ExpectationNotMetError
299
- end
300
- end
301
-
302
- describe "#get_process" do
303
- before(:each){@aruba.run_simple "true"}
304
- after(:each) { @aruba.all_commands.each(&:stop) }
305
-
306
- it "returns a process" do
307
- expect(@aruba.get_process("true")).not_to be(nil)
308
- end
309
-
310
- it "raises a descriptive exception" do
311
- expect { @aruba.get_process("false") }.to raise_error Aruba::CommandNotFoundError, "No command named 'false' has been started"
312
- end
313
- end
314
-
315
- describe '#set_env' do
316
- context 'when non-existing variable' do
317
- before :each do
318
- ENV.delete('LONG_LONG_ENV_VARIABLE')
319
- end
320
-
321
- context 'when string' do
322
- before :each do
323
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
324
- end
325
-
326
- it { expect(ENV['LONG_LONG_ENV_VARIABLE']).to eq '1' }
327
- end
328
- end
329
-
330
- context 'when existing variable set by aruba' do
331
- before :each do
332
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
333
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '2'
334
- end
335
-
336
- it { expect(ENV['LONG_LONG_ENV_VARIABLE']).to eq '2' }
337
- end
338
-
339
- context 'when existing variable by outer context' do
340
- before :each do
341
- ENV['LONG_LONG_ENV_VARIABLE'] = '1'
342
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '2'
343
- end
344
-
345
- it { expect(ENV['LONG_LONG_ENV_VARIABLE']).to eq '2' }
346
- end
347
- end
348
-
349
- describe '#restore_env' do
350
- context 'when non-existing variable' do
351
- before :each do
352
- ENV.delete 'LONG_LONG_ENV_VARIABLE'
353
- end
354
-
355
- context 'when set once' do
356
- before :each do
357
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
358
- @aruba.restore_env
359
- end
360
-
361
- it { expect(ENV).not_to have_key 'LONG_LONG_ENV_VARIABLE' }
362
- end
363
-
364
- context 'when set multiple times' do
365
- before :each do
366
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
367
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '2'
368
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '3'
369
- @aruba.restore_env
370
- end
371
-
372
- it { expect(ENV).not_to have_key 'LONG_LONG_ENV_VARIABLE' }
373
- end
374
- end
375
-
376
- context 'when existing variable from outer context' do
377
- before :each do
378
- ENV['LONG_LONG_ENV_VARIABLE'] = '0'
379
- end
380
-
381
- context 'when set once' do
382
- before :each do
383
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
384
- @aruba.restore_env
385
- end
386
-
387
- it { expect(ENV['LONG_LONG_ENV_VARIABLE']).to eq '0' }
388
- end
389
-
390
- context 'when set multiple times' do
391
- before :each do
392
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '1'
393
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '2'
394
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', '3'
395
- @aruba.restore_env
396
- end
397
-
398
- it { expect(ENV['LONG_LONG_ENV_VARIABLE']).to eq '0' }
399
- end
400
- end
401
- end
402
-
403
- describe "#restore_env" do
404
- after(:each) { @aruba.all_commands.each(&:stop) }
405
-
406
- it "restores environment variable" do
407
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', 'true'
408
- @aruba.restore_env
409
- @aruba.run "env"
410
- expect(@aruba.all_output).not_to include("LONG_LONG_ENV_VARIABLE")
411
- end
412
-
413
- it "restores environment variable that has been set multiple times" do
414
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', 'true'
415
- @aruba.set_env 'LONG_LONG_ENV_VARIABLE', 'false'
416
- @aruba.restore_env
417
- @aruba.run "env"
418
- expect(@aruba.all_output).not_to include("LONG_LONG_ENV_VARIABLE")
419
- end
420
- end
421
- end