aruba-win-fix 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +188 -0
  6. data/.simplecov +34 -0
  7. data/.travis.yml +47 -0
  8. data/.yardopts +8 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +83 -0
  11. data/History.md +579 -0
  12. data/LICENSE +20 -0
  13. data/README.md +226 -0
  14. data/Rakefile +49 -0
  15. data/TODO.md +13 -0
  16. data/appveyor.yml +32 -0
  17. data/aruba.gemspec +48 -0
  18. data/bin/aruba +7 -0
  19. data/config/.gitignore +1 -0
  20. data/cucumber.yml +26 -0
  21. data/features/.nav +72 -0
  22. data/features/api/command/find_command.feature +83 -0
  23. data/features/api/command/last_command_started.feature +50 -0
  24. data/features/api/command/last_command_stopped.feature +89 -0
  25. data/features/api/command/run.feature +414 -0
  26. data/features/api/command/run_simple.feature +242 -0
  27. data/features/api/command/send_signal.feature +53 -0
  28. data/features/api/command/stderr.feature +46 -0
  29. data/features/api/command/stdout.feature +46 -0
  30. data/features/api/command/stop.feature +131 -0
  31. data/features/api/command/stop_all_commands.feature +53 -0
  32. data/features/api/command/terminate_all_commands.feature +53 -0
  33. data/features/api/command/which.feature +37 -0
  34. data/features/api/core/expand_path.feature +88 -0
  35. data/features/api/environment/append_environment_variable.feature +128 -0
  36. data/features/api/environment/delete_environment_variable.feature +63 -0
  37. data/features/api/environment/prepend_environment_variable.feature +128 -0
  38. data/features/api/environment/set_environment_variable.feature +376 -0
  39. data/features/api/filesystem/cd.feature +184 -0
  40. data/features/api/filesystem/create_directory.feature +57 -0
  41. data/features/api/filesystem/disk_usage.feature +152 -0
  42. data/features/api/filesystem/does_exist.feature +62 -0
  43. data/features/api/filesystem/fixtures.feature +104 -0
  44. data/features/api/filesystem/is_absolute.feature +48 -0
  45. data/features/api/filesystem/is_directory.feature +53 -0
  46. data/features/api/filesystem/is_file.feature +54 -0
  47. data/features/api/filesystem/is_relative.feature +48 -0
  48. data/features/api/filesystem/move.feature +119 -0
  49. data/features/api/text/extract_text.feature +87 -0
  50. data/features/api/text/replace_variables.feature +45 -0
  51. data/features/api/text/sanitize_text.feature +228 -0
  52. data/features/api/text/unescape_text.feature +127 -0
  53. data/features/cli/console.feature +52 -0
  54. data/features/cli/init.feature +79 -0
  55. data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
  56. data/features/configuration/command_runtime_environment.feature +129 -0
  57. data/features/configuration/console_history_file.feature +38 -0
  58. data/features/configuration/exit_timeout.feature +52 -0
  59. data/features/configuration/fixtures_directories.feature +38 -0
  60. data/features/configuration/fixtures_path_prefix.feature +23 -0
  61. data/features/configuration/home_directory.feature +80 -0
  62. data/features/configuration/io_timeout.feature +30 -0
  63. data/features/configuration/keep_ansi.feature +30 -0
  64. data/features/configuration/log_level.feature +38 -0
  65. data/features/configuration/physical_block_size.feature +53 -0
  66. data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
  67. data/features/configuration/root_directory.feature +30 -0
  68. data/features/configuration/startup_wait_time.feature +48 -0
  69. data/features/configuration/usage.feature +159 -0
  70. data/features/configuration/working_directory.feature +33 -0
  71. data/features/development/build.feature +15 -0
  72. data/features/development/test.feature +24 -0
  73. data/features/getting_started/cleanup.feature +67 -0
  74. data/features/getting_started/install.feature +8 -0
  75. data/features/getting_started/run_commands.feature +177 -0
  76. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  77. data/features/getting_started/writing_good_feature_tests.feature +38 -0
  78. data/features/hooks/after/command.feature +44 -0
  79. data/features/hooks/before/command.feature +71 -0
  80. data/features/matchers/collection/include_an_object.feature +72 -0
  81. data/features/matchers/directory/have_sub_directory.feature +110 -0
  82. data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
  83. data/features/matchers/file/be_existing_executable.feature +88 -0
  84. data/features/matchers/file/be_existing_file.feature +82 -0
  85. data/features/matchers/file/have_file_content.feature +123 -0
  86. data/features/matchers/file/have_file_size.feature +107 -0
  87. data/features/matchers/path/be_an_absolute_path.feature +74 -0
  88. data/features/matchers/path/be_an_existing_path.feature +97 -0
  89. data/features/matchers/path/have_permissions.feature +118 -0
  90. data/features/matchers/timeouts.feature +48 -0
  91. data/features/platforms/jruby.feature +14 -0
  92. data/features/rspec/integration.feature +179 -0
  93. data/features/step_definitions/aruba_dev_steps.rb +56 -0
  94. data/features/step_definitions/hooks.rb +96 -0
  95. data/features/steps/command/debug.feature +92 -0
  96. data/features/steps/command/exit_statuses.feature +136 -0
  97. data/features/steps/command/in_process.feature +485 -0
  98. data/features/steps/command/interactive.feature +90 -0
  99. data/features/steps/command/output.feature +588 -0
  100. data/features/steps/command/run.feature +66 -0
  101. data/features/steps/command/send_signal.feature +104 -0
  102. data/features/steps/command/shell.feature +155 -0
  103. data/features/steps/command/stderr.feature +68 -0
  104. data/features/steps/command/stdout.feature +109 -0
  105. data/features/steps/command/stop.feature +313 -0
  106. data/features/steps/core/announce.feature +283 -0
  107. data/features/steps/environment/append_environment_variable.feature +52 -0
  108. data/features/steps/environment/home_variable.feature +62 -0
  109. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  110. data/features/steps/environment/set_environment_variable.feature +49 -0
  111. data/features/steps/filesystem/append_to_file.feature +45 -0
  112. data/features/steps/filesystem/cd_to_directory.feature +33 -0
  113. data/features/steps/filesystem/check_file_content.feature +61 -0
  114. data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
  115. data/features/steps/filesystem/compare_files.feature +42 -0
  116. data/features/steps/filesystem/copy.feature +45 -0
  117. data/features/steps/filesystem/create_directory.feature +57 -0
  118. data/features/steps/filesystem/create_file.feature +76 -0
  119. data/features/steps/filesystem/existence_of_directory.feature +57 -0
  120. data/features/steps/filesystem/existence_of_file.feature +43 -0
  121. data/features/steps/filesystem/file_content.feature +86 -0
  122. data/features/steps/filesystem/fixtures.feature +64 -0
  123. data/features/steps/filesystem/move.feature +45 -0
  124. data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
  125. data/features/steps/filesystem/non_existence_of_file.feature +80 -0
  126. data/features/steps/filesystem/overwrite_file.feature +72 -0
  127. data/features/steps/filesystem/remove_directory.feature +38 -0
  128. data/features/steps/filesystem/remove_file.feature +38 -0
  129. data/features/steps/filesystem/use_fixture.feature +77 -0
  130. data/features/steps/overview.feature +60 -0
  131. data/features/support/aruba.rb +7 -0
  132. data/features/support/env.rb +33 -0
  133. data/features/support/jruby.rb +5 -0
  134. data/features/support/simplecov_setup.rb +8 -0
  135. data/fixtures/cli-app/.gitignore +9 -0
  136. data/fixtures/cli-app/.rspec +2 -0
  137. data/fixtures/cli-app/README.md +39 -0
  138. data/fixtures/cli-app/Rakefile +1 -0
  139. data/fixtures/cli-app/bin/cli +6 -0
  140. data/fixtures/cli-app/cli-app.gemspec +26 -0
  141. data/fixtures/cli-app/features/support/env.rb +1 -0
  142. data/fixtures/cli-app/lib/cli/app.rb +13 -0
  143. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  144. data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
  145. data/fixtures/cli-app/script/console +14 -0
  146. data/fixtures/cli-app/spec/spec_helper.rb +9 -0
  147. data/fixtures/cli-app/spec/support/aruba.rb +1 -0
  148. data/fixtures/copy/file.txt +1 -0
  149. data/fixtures/empty-app/.gitignore +9 -0
  150. data/fixtures/empty-app/.rspec +2 -0
  151. data/fixtures/empty-app/README.md +24 -0
  152. data/fixtures/empty-app/Rakefile +1 -0
  153. data/fixtures/empty-app/cli-app.gemspec +26 -0
  154. data/fixtures/empty-app/lib/cli/app.rb +13 -0
  155. data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
  156. data/fixtures/getting-started-app/.gitignore +4 -0
  157. data/fixtures/getting-started-app/Gemfile +4 -0
  158. data/fixtures/getting-started-app/README.md +3 -0
  159. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  160. data/fixtures/spawn_process/stderr.sh +3 -0
  161. data/lib/aruba.rb +1 -0
  162. data/lib/aruba/api.rb +34 -0
  163. data/lib/aruba/api/command.rb +307 -0
  164. data/lib/aruba/api/core.rb +191 -0
  165. data/lib/aruba/api/deprecated.rb +897 -0
  166. data/lib/aruba/api/environment.rb +89 -0
  167. data/lib/aruba/api/filesystem.rb +392 -0
  168. data/lib/aruba/api/rvm.rb +44 -0
  169. data/lib/aruba/api/text.rb +56 -0
  170. data/lib/aruba/aruba_path.rb +133 -0
  171. data/lib/aruba/basic_configuration.rb +240 -0
  172. data/lib/aruba/basic_configuration/option.rb +32 -0
  173. data/lib/aruba/cli.rb +26 -0
  174. data/lib/aruba/colorizer.rb +108 -0
  175. data/lib/aruba/command.rb +74 -0
  176. data/lib/aruba/config.rb +108 -0
  177. data/lib/aruba/config/jruby.rb +17 -0
  178. data/lib/aruba/config_wrapper.rb +58 -0
  179. data/lib/aruba/console.rb +70 -0
  180. data/lib/aruba/console/help.rb +35 -0
  181. data/lib/aruba/contracts/absolute_path.rb +20 -0
  182. data/lib/aruba/contracts/enum.rb +26 -0
  183. data/lib/aruba/contracts/is_power_of_two.rb +22 -0
  184. data/lib/aruba/contracts/relative_path.rb +20 -0
  185. data/lib/aruba/cucumber.rb +13 -0
  186. data/lib/aruba/cucumber/command.rb +422 -0
  187. data/lib/aruba/cucumber/core.rb +5 -0
  188. data/lib/aruba/cucumber/environment.rb +42 -0
  189. data/lib/aruba/cucumber/file.rb +201 -0
  190. data/lib/aruba/cucumber/hooks.rb +160 -0
  191. data/lib/aruba/cucumber/rvm.rb +3 -0
  192. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  193. data/lib/aruba/errors.rb +37 -0
  194. data/lib/aruba/event_bus.rb +59 -0
  195. data/lib/aruba/event_bus/name_resolver.rb +168 -0
  196. data/lib/aruba/events.rb +39 -0
  197. data/lib/aruba/extensions/string/strip.rb +25 -0
  198. data/lib/aruba/file_size.rb +63 -0
  199. data/lib/aruba/generators/script_file.rb +46 -0
  200. data/lib/aruba/hooks.rb +56 -0
  201. data/lib/aruba/in_config_wrapper.rb +24 -0
  202. data/lib/aruba/in_process.rb +14 -0
  203. data/lib/aruba/initializer.rb +222 -0
  204. data/lib/aruba/jruby.rb +4 -0
  205. data/lib/aruba/matchers/base/base_matcher.rb +96 -0
  206. data/lib/aruba/matchers/base/object_formatter.rb +114 -0
  207. data/lib/aruba/matchers/collection.rb +1 -0
  208. data/lib/aruba/matchers/collection/all.rb +11 -0
  209. data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
  210. data/lib/aruba/matchers/command.rb +1 -0
  211. data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
  212. data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
  213. data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
  214. data/lib/aruba/matchers/command/have_output.rb +36 -0
  215. data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
  216. data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
  217. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  218. data/lib/aruba/matchers/directory.rb +1 -0
  219. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
  220. data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
  221. data/lib/aruba/matchers/environment.rb +1 -0
  222. data/lib/aruba/matchers/file.rb +1 -0
  223. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
  224. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  225. data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
  226. data/lib/aruba/matchers/file/have_file_content.rb +62 -0
  227. data/lib/aruba/matchers/file/have_file_size.rb +47 -0
  228. data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
  229. data/lib/aruba/matchers/path.rb +1 -0
  230. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
  231. data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
  232. data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
  233. data/lib/aruba/matchers/path/have_permissions.rb +64 -0
  234. data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
  235. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
  236. data/lib/aruba/matchers/string.rb +1 -0
  237. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  238. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  239. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  240. data/lib/aruba/platform.rb +25 -0
  241. data/lib/aruba/platforms/announcer.rb +232 -0
  242. data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
  243. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
  244. data/lib/aruba/platforms/aruba_logger.rb +81 -0
  245. data/lib/aruba/platforms/command_monitor.rb +229 -0
  246. data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
  247. data/lib/aruba/platforms/determine_file_size.rb +22 -0
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
  249. data/lib/aruba/platforms/filesystem_status.rb +68 -0
  250. data/lib/aruba/platforms/local_environment.rb +29 -0
  251. data/lib/aruba/platforms/simple_table.rb +54 -0
  252. data/lib/aruba/platforms/unix_command_string.rb +27 -0
  253. data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
  254. data/lib/aruba/platforms/unix_platform.rb +276 -0
  255. data/lib/aruba/platforms/unix_which.rb +85 -0
  256. data/lib/aruba/platforms/windows_command_string.rb +31 -0
  257. data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
  258. data/lib/aruba/platforms/windows_platform.rb +42 -0
  259. data/lib/aruba/platforms/windows_which.rb +106 -0
  260. data/lib/aruba/processes/basic_process.rb +143 -0
  261. data/lib/aruba/processes/debug_process.rb +69 -0
  262. data/lib/aruba/processes/in_process.rb +125 -0
  263. data/lib/aruba/processes/spawn_process.rb +278 -0
  264. data/lib/aruba/reporting.rb +126 -0
  265. data/lib/aruba/rspec.rb +107 -0
  266. data/lib/aruba/runtime.rb +96 -0
  267. data/lib/aruba/setup.rb +90 -0
  268. data/lib/aruba/spawn_process.rb +11 -0
  269. data/lib/aruba/version.rb +3 -0
  270. data/script/bootstrap +28 -0
  271. data/script/console +16 -0
  272. data/script/test +3 -0
  273. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  274. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  275. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  276. data/spec/aruba/api/runtime_spec.rb +28 -0
  277. data/spec/aruba/api_spec.rb +1209 -0
  278. data/spec/aruba/aruba_path_spec.rb +103 -0
  279. data/spec/aruba/basic_configuration_spec.rb +5 -0
  280. data/spec/aruba/configuration_spec.rb +5 -0
  281. data/spec/aruba/hooks_spec.rb +17 -0
  282. data/spec/aruba/in_config_wrapper_spec.rb +25 -0
  283. data/spec/aruba/jruby_spec.rb +55 -0
  284. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  285. data/spec/aruba/matchers/command_spec.rb +174 -0
  286. data/spec/aruba/matchers/directory_spec.rb +57 -0
  287. data/spec/aruba/matchers/file_spec.rb +127 -0
  288. data/spec/aruba/matchers/path_spec.rb +88 -0
  289. data/spec/aruba/platform/simple_table_spec.rb +23 -0
  290. data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
  291. data/spec/aruba/rspec_spec.rb +15 -0
  292. data/spec/aruba/runtime_spec.rb +29 -0
  293. data/spec/aruba/spawn_process_spec.rb +60 -0
  294. data/spec/event_bus/name_resolver_spec.rb +68 -0
  295. data/spec/event_bus_spec.rb +160 -0
  296. data/spec/spec_helper.rb +23 -0
  297. data/spec/support/configs/.keep +0 -0
  298. data/spec/support/configs/aruba.rb +5 -0
  299. data/spec/support/configs/pry.rb +3 -0
  300. data/spec/support/configs/rspec.rb +15 -0
  301. data/spec/support/helpers/.keep +0 -0
  302. data/spec/support/helpers/reporting.rb +44 -0
  303. data/spec/support/matchers/.keep +0 -0
  304. data/spec/support/matchers/option.rb +35 -0
  305. data/spec/support/shared_contexts/.keep +0 -0
  306. data/spec/support/shared_contexts/aruba.rb +48 -0
  307. data/spec/support/shared_examples/.keep +0 -0
  308. data/spec/support/shared_examples/configuration.rb +116 -0
  309. data/spec/support/shared_examples/directory.rb +7 -0
  310. data/spec/support/shared_examples/file.rb +7 -0
  311. data/templates/css/console.css +24 -0
  312. data/templates/css/filesystem.css +42 -0
  313. data/templates/css/pygments-autumn.css +59 -0
  314. data/templates/files.erb +14 -0
  315. data/templates/images/LICENSE +22 -0
  316. data/templates/images/folder.png +0 -0
  317. data/templates/images/page_white.png +0 -0
  318. data/templates/images/page_white_gherkin.png +0 -0
  319. data/templates/images/page_white_ruby.png +0 -0
  320. data/templates/index.erb +20 -0
  321. data/templates/js/filesystem.js +5 -0
  322. data/templates/js/jquery-1.11.3.min.js +5 -0
  323. data/templates/main.erb +34 -0
  324. metadata +629 -0
@@ -0,0 +1,54 @@
1
+ Feature: Check existence of files
2
+
3
+ Use the `#file?` to check if a path is a file and exists within `aruba`'s
4
+ working directory.
5
+
6
+ ```ruby
7
+ require 'spec_helper'
8
+
9
+ RSpec.configure do |config|
10
+ config.include Aruba::Api
11
+ end
12
+
13
+ RSpec.describe 'Check if directory and file exist' do
14
+ let(:file) { 'file.txt' }
15
+
16
+ before(:each) { touch(file) }
17
+
18
+ it { expect(file?(file)).to be true }
19
+ end
20
+ ```
21
+
22
+ Background:
23
+ Given I use a fixture named "cli-app"
24
+
25
+ Scenario: Is file and exist
26
+ Given a file named "spec/create_directory_spec.rb" with:
27
+ """ruby
28
+ require 'spec_helper'
29
+
30
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
31
+ let(:file) { 'file.txt' }
32
+
33
+ before(:each) { touch(file) }
34
+
35
+ it { expect(file?(file)).to be true }
36
+ end
37
+ """
38
+ When I run `rspec`
39
+ Then the specs should all pass
40
+
41
+ Scenario: Is directory, but should be file and exist
42
+ Given a file named "spec/create_directory_spec.rb" with:
43
+ """ruby
44
+ require 'spec_helper'
45
+
46
+ RSpec.describe 'Check if directory and file exist', :type => :aruba do
47
+ let(:directory) { 'dir.d' }
48
+ before(:each) { create_directory(directory) }
49
+
50
+ it { expect(file?(directory)).to be false }
51
+ end
52
+ """
53
+ When I run `rspec`
54
+ Then the specs should all pass
@@ -0,0 +1,48 @@
1
+ Feature: Check if path is relative
2
+
3
+ Use the `#relative?`-method to check if a path is an relative path.
4
+
5
+ ```ruby
6
+ require 'spec_helper'
7
+
8
+ RSpec.configure do |config|
9
+ config.include Aruba::Api
10
+ end
11
+
12
+ RSpec.describe 'Check if directory or file is relative' do
13
+ let(:path) { '/path/to/file.txt' }
14
+
15
+ it { expect(relative?(path)).to be true }
16
+ end
17
+ ```
18
+
19
+ Background:
20
+ Given I use a fixture named "cli-app"
21
+
22
+ Scenario: Is path relative
23
+ Given a file named "spec/create_directory_spec.rb" with:
24
+ """ruby
25
+ require 'spec_helper'
26
+
27
+ RSpec.describe 'Check if directory or file is relative', :type => :aruba do
28
+ let(:path) { 'file.txt' }
29
+
30
+ it { expect(relative?(path)).to be true }
31
+ end
32
+ """
33
+ When I run `rspec`
34
+ Then the specs should all pass
35
+
36
+ Scenario: Path should be relative, but it's relative
37
+ Given a file named "spec/create_directory_spec.rb" with:
38
+ """ruby
39
+ require 'spec_helper'
40
+
41
+ RSpec.describe 'Check if directory or file is relative', :type => :aruba do
42
+ let(:path) { '/path/to/file.txt' }
43
+
44
+ it { expect(relative?(path)).to be false }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
@@ -0,0 +1,119 @@
1
+ Feature: Move file/directory
2
+
3
+ If you need to move some files/directories you can use the `#move`-method
4
+ command. If multiple arguments are given, the last one needs to be a directory.
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Non-existing destination
10
+ Given a file named "spec/cd_spec.rb" with:
11
+ """ruby
12
+ require 'spec_helper'
13
+
14
+ RSpec.describe 'Move', :type => :aruba do
15
+ let(:old_location) { 'old_dir.d' }
16
+ let(:new_location) { 'new_dir.d' }
17
+
18
+ before(:each) do
19
+ create_directory old_location
20
+ move old_location, new_location
21
+ end
22
+
23
+ it { expect(new_location).to be_an_existing_directory }
24
+ end
25
+ """
26
+ When I run `rspec`
27
+ Then the specs should all pass
28
+
29
+ Scenario: Existing destination
30
+ Given a file named "spec/cd_spec.rb" with:
31
+ """ruby
32
+ require 'spec_helper'
33
+
34
+ RSpec.describe 'Move', :type => :aruba do
35
+ let(:old_location) { 'old_dir.d' }
36
+ let(:new_location) { 'new_dir.d' }
37
+
38
+ before(:each) do
39
+ create_directory old_location
40
+ create_directory new_location
41
+
42
+ move old_location, new_location
43
+ end
44
+
45
+ it { expect(File.join(new_location, old_location)).to be_an_existing_directory }
46
+ end
47
+ """
48
+ When I run `rspec`
49
+ Then the specs should all pass
50
+
51
+ Scenario: Source is fixture path
52
+ Given a file named "spec/cd_spec.rb" with:
53
+ """ruby
54
+ require 'spec_helper'
55
+
56
+ RSpec.describe 'Move', :type => :aruba do
57
+ let(:old_location) { '%/old_dir.d' }
58
+ let(:new_location) { 'new_dir.d' }
59
+
60
+ it { expect { move old_location, new_location }.to raise_error ArgumentError, /fixture/ }
61
+ end
62
+ """
63
+ When I run `rspec`
64
+ Then the specs should all pass
65
+
66
+ Scenario: Destination is fixture path
67
+ Given a file named "spec/cd_spec.rb" with:
68
+ """ruby
69
+ require 'spec_helper'
70
+
71
+ RSpec.describe 'Move', :type => :aruba do
72
+ let(:old_location) { 'old_dir.d' }
73
+ let(:new_location) { '%/new_dir.d' }
74
+
75
+ it { expect { move old_location, new_location }.to raise_error ArgumentError, /fixture/ }
76
+ end
77
+ """
78
+ When I run `rspec`
79
+ Then the specs should all pass
80
+
81
+ Scenario: Multiple sources and destination is directory
82
+ Given a file named "spec/cd_spec.rb" with:
83
+ """ruby
84
+ require 'spec_helper'
85
+
86
+ RSpec.describe 'Move', :type => :aruba do
87
+ let(:old_location) { %w(old_dir1.d old_dir2.d) }
88
+ let(:new_location) { 'new_dir.d' }
89
+
90
+ before :each do
91
+ old_location.each { |l| create_directory l }
92
+ move old_location, new_location
93
+ end
94
+
95
+ it { expect(old_location.map { |l| File.join(new_location, l) }).to all be_an_existing_directory }
96
+ end
97
+ """
98
+ When I run `rspec`
99
+ Then the specs should all pass
100
+
101
+ Scenario: Multiple sources and destination is file
102
+ Given a file named "spec/cd_spec.rb" with:
103
+ """ruby
104
+ require 'spec_helper'
105
+
106
+ RSpec.describe 'Move', :type => :aruba do
107
+ let(:old_location) { %w(old_dir1.d old_dir2.d) }
108
+ let(:new_location) { 'new_file.txt' }
109
+
110
+ before :each do
111
+ old_location.each { |l| create_directory l }
112
+ touch new_location
113
+ end
114
+
115
+ it { expect { move old_location, new_location }.to raise_error ArgumentError, /Multiple sources/ }
116
+ end
117
+ """
118
+ When I run `rspec`
119
+ Then the specs should all pass
@@ -0,0 +1,87 @@
1
+ Feature: Extract text from output
2
+
3
+ If you need to strip down some command output to plain text, you can use the
4
+ `#extract_text`-method for this.
5
+
6
+ Background:
7
+ Given I use a fixture named "cli-app"
8
+
9
+ Scenario: Output contains ansi escape codes prefixed by \e
10
+ Given an executable named "bin/cli" with:
11
+ """
12
+ #!/bin/bash
13
+ echo -n "\e[31mText"
14
+ """
15
+ And a file named "spec/extract_text_spec.rb" with:
16
+ """
17
+ require 'spec_helper'
18
+
19
+ RSpec.describe 'Run command', :type => :aruba do
20
+ before(:each) { run('cli') }
21
+ before(:each) { stop_all_commands }
22
+
23
+ it { expect(extract_text(unescape_text(last_command.output))).to eq "Text" }
24
+ end
25
+ """
26
+ When I run `rspec`
27
+ Then the specs should all pass
28
+
29
+ Scenario: Output contains ansi escape codes prefixed by \033
30
+ Given an executable named "bin/cli" with:
31
+ """
32
+ #!/bin/bash
33
+ echo -n "\033[31mText"
34
+ """
35
+ And a file named "spec/extract_text_spec.rb" with:
36
+ """
37
+ require 'spec_helper'
38
+
39
+ RSpec.describe 'Run command', :type => :aruba do
40
+ before(:each) { run('cli') }
41
+ before(:each) { stop_all_commands }
42
+
43
+ it { expect(extract_text(unescape_text(last_command.output))).to eq "Text" }
44
+ end
45
+ """
46
+ When I run `rspec`
47
+ Then the specs should all pass
48
+
49
+ # Scenario: Output contains ansi escape code \016
50
+ # Given an executable named "bin/cli" with:
51
+ # """
52
+ # #!/bin/bash
53
+ # echo -n "\016Text"
54
+ # """
55
+ # And a file named "spec/extract_text_spec.rb" with:
56
+ # """
57
+ # require 'spec_helper'
58
+ #
59
+ # RSpec.describe 'Run command', :type => :aruba do
60
+ # before(:each) { run('cli') }
61
+ # before(:each) { stop_all_commands }
62
+ #
63
+ # it { expect(extract_text(unescape_text(last_command.output))).to eq "Text" }
64
+ # end
65
+ # """
66
+ # When I run `rspec`
67
+ # Then the specs should all pass
68
+
69
+ # Scenario: Output contains ansi escape code \017
70
+ # Given an executable named "bin/cli" with:
71
+ # """
72
+ # #!/bin/bash
73
+ # echo -n "\017Text"
74
+ # """
75
+ # And a file named "spec/extract_text_spec.rb" with:
76
+ # """
77
+ # require 'spec_helper'
78
+ #
79
+ # RSpec.describe 'Run command', :type => :aruba do
80
+ # before(:each) { run('cli') }
81
+ # before(:each) { stop_all_commands }
82
+ #
83
+ # it { expect(extract_text(unescape_text(last_command.output))).to eq "Text" }
84
+ # end
85
+ # """
86
+ # When I run `rspec`
87
+ # Then the specs should all pass
@@ -0,0 +1,45 @@
1
+ @experimental
2
+ Feature: Replace variables
3
+
4
+ There are use cases where you need access to some information from aruba in
5
+ your command line. The `#replace_variables`-method makes this information
6
+ available.
7
+
8
+ Please note, this feature is experimental for now. The implementation of this
9
+ feature and the name of variables may change without further notice.
10
+
11
+ Background:
12
+ Given I use a fixture named "cli-app"
13
+
14
+ Scenario: PID of last command started
15
+ Given an executable named "bin/cli" with:
16
+ """
17
+ #!/bin/bash
18
+ exit 0
19
+ """
20
+ And a file named "spec/replace_spec.rb" with:
21
+ """
22
+ require 'spec_helper'
23
+
24
+ RSpec.describe 'Run command', :type => :aruba do
25
+ before(:each) { run('cli') }
26
+ before(:each) { stop_all_commands }
27
+
28
+ it { expect(replace_variables('<pid-last-command-started>')).to eq last_command_started.pid.to_s }
29
+ end
30
+ """
31
+ When I run `rspec`
32
+ Then the specs should all pass
33
+
34
+ Scenario: No last command started
35
+ Given a file named "spec/replace_spec.rb" with:
36
+ """
37
+ require 'spec_helper'
38
+
39
+ RSpec.describe 'Run command', :type => :aruba do
40
+ it { expect { replace_variables('<pid-last-command-started>') }.to raise_error Aruba::NoCommandHasBeenStartedError }
41
+ end
42
+ """
43
+ When I run `rspec`
44
+ Then the specs should all pass
45
+
@@ -0,0 +1,228 @@
1
+ Feature: Sanitize text from output
2
+
3
+ If have got some text include \n, \t and the like and need them to become
4
+ special characters again and also want the text to be stripped down to bare
5
+ text, you can use the `#sanitize_text`-method for this.
6
+
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Output contains \n
11
+ Given an executable named "bin/cli" with:
12
+ """
13
+ #!/bin/bash
14
+ echo -n 'text\ntext'
15
+ """
16
+ And a file named "spec/sanitize_spec.rb" with:
17
+ """
18
+ require 'spec_helper'
19
+
20
+ RSpec.describe 'Run command', :type => :aruba do
21
+ before(:each) { run('cli') }
22
+ before(:each) { stop_all_commands }
23
+
24
+ it { expect(sanitize_text(last_command_started.output)).to eq "text\ntext" }
25
+ end
26
+ """
27
+ When I run `rspec`
28
+ Then the specs should all pass
29
+
30
+ Scenario: Output contains \e
31
+ Given an executable named "bin/cli" with:
32
+ """
33
+ #!/bin/bash
34
+ echo -n 'text\etext'
35
+ """
36
+ And a file named "spec/sanitize_spec.rb" with:
37
+ """
38
+ require 'spec_helper'
39
+
40
+ RSpec.describe 'Run command', :type => :aruba do
41
+ before(:each) { run('cli') }
42
+ before(:each) { stop_all_commands }
43
+
44
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
49
+
50
+ Scenario: Output contains \"
51
+ Given an executable named "bin/cli" with:
52
+ """
53
+ #!/bin/bash
54
+ echo -n 'text\"text'
55
+ """
56
+ And a file named "spec/sanitize_spec.rb" with:
57
+ """
58
+ require 'spec_helper'
59
+
60
+ RSpec.describe 'Run command', :type => :aruba do
61
+ before(:each) { run('cli') }
62
+ before(:each) { stop_all_commands }
63
+
64
+ it { expect(sanitize_text(last_command_started.output)).to eq "text\"text" }
65
+ end
66
+ """
67
+ When I run `rspec`
68
+ Then the specs should all pass
69
+
70
+ Scenario: Output contains \033
71
+ Given an executable named "bin/cli" with:
72
+ """
73
+ #!/bin/bash
74
+ echo -n 'text\033text'
75
+ """
76
+ And a file named "spec/sanitize_spec.rb" with:
77
+ """
78
+ require 'spec_helper'
79
+
80
+ RSpec.describe 'Run command', :type => :aruba do
81
+ before(:each) { run('cli') }
82
+ before(:each) { stop_all_commands }
83
+
84
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
85
+ end
86
+ """
87
+ When I run `rspec`
88
+ Then the specs should all pass
89
+
90
+ Scenario: Output contains \017
91
+ Given an executable named "bin/cli" with:
92
+ """
93
+ #!/bin/bash
94
+ echo -n 'text\017text'
95
+ """
96
+ And a file named "spec/sanitize_spec.rb" with:
97
+ """
98
+ require 'spec_helper'
99
+
100
+ RSpec.describe 'Run command', :type => :aruba do
101
+ before(:each) { run('cli') }
102
+ before(:each) { stop_all_commands }
103
+
104
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
105
+ end
106
+ """
107
+ When I run `rspec`
108
+ Then the specs should all pass
109
+
110
+ Scenario: Output contains \016
111
+ Given an executable named "bin/cli" with:
112
+ """
113
+ #!/bin/bash
114
+ echo -n 'text\016text'
115
+ """
116
+ And a file named "spec/sanitize_spec.rb" with:
117
+ """
118
+ require 'spec_helper'
119
+
120
+ RSpec.describe 'Run command', :type => :aruba do
121
+ before(:each) { run('cli') }
122
+ before(:each) { stop_all_commands }
123
+
124
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
125
+ end
126
+ """
127
+ When I run `rspec`
128
+ Then the specs should all pass
129
+
130
+ Scenario: Output contains ansi escape codes prefixed by \e
131
+ Given an executable named "bin/cli" with:
132
+ """
133
+ #!/bin/bash
134
+ echo -n "\e[31mText"
135
+ """
136
+ And a file named "spec/sanitize_spec.rb" with:
137
+ """
138
+ require 'spec_helper'
139
+
140
+ RSpec.describe 'Run command', :type => :aruba do
141
+ before(:each) { run('cli') }
142
+ before(:each) { stop_all_commands }
143
+
144
+ it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
145
+ end
146
+ """
147
+ When I run `rspec`
148
+ Then the specs should all pass
149
+
150
+ Scenario: Output contains ansi escape codes prefixed by \033
151
+ Given an executable named "bin/cli" with:
152
+ """
153
+ #!/bin/bash
154
+ echo -n "\033[31mText"
155
+ """
156
+ And a file named "spec/sanitize_spec.rb" with:
157
+ """
158
+ require 'spec_helper'
159
+
160
+ RSpec.describe 'Run command', :type => :aruba do
161
+ before(:each) { run('cli') }
162
+ before(:each) { stop_all_commands }
163
+
164
+ it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
165
+ end
166
+ """
167
+ When I run `rspec`
168
+ Then the specs should all pass
169
+
170
+ Scenario: Output contains ansi escape codes prefixed by \e, but removable is disabled by configuration
171
+ Given an executable named "bin/cli" with:
172
+ """
173
+ #!/bin/bash
174
+ echo -n "\e[31mText"
175
+ """
176
+ And a file named "spec/sanitize_spec.rb" with:
177
+ """
178
+ require 'spec_helper'
179
+
180
+ RSpec.describe 'Run command', :type => :aruba, :remove_ansi_escape_sequences => false, :keep_ansi => true do
181
+ before(:each) { run('cli') }
182
+ before(:each) { stop_all_commands }
183
+
184
+ it { expect(sanitize_text(last_command_started.output)).to eq "\e[31mText" }
185
+ end
186
+ """
187
+ When I run `rspec`
188
+ Then the specs should all pass
189
+
190
+ # Scenario: Output contains ansi escape code \016
191
+ # Given an executable named "bin/cli" with:
192
+ # """
193
+ # #!/bin/bash
194
+ # echo -n "\016Text"
195
+ # """
196
+ # And a file named "spec/sanitize_spec.rb" with:
197
+ # """
198
+ # require 'spec_helper'
199
+ #
200
+ # RSpec.describe 'Run command', :type => :aruba do
201
+ # before(:each) { run('cli') }
202
+ # before(:each) { stop_all_commands }
203
+ #
204
+ # it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
205
+ # end
206
+ # """
207
+ # When I run `rspec`
208
+ # Then the specs should all pass
209
+
210
+ # Scenario: Output contains ansi escape code \017
211
+ # Given an executable named "bin/cli" with:
212
+ # """
213
+ # #!/bin/bash
214
+ # echo -n "\017Text"
215
+ # """
216
+ # And a file named "spec/sanitize_spec.rb" with:
217
+ # """
218
+ # require 'spec_helper'
219
+ #
220
+ # RSpec.describe 'Run command', :type => :aruba do
221
+ # before(:each) { run('cli') }
222
+ # before(:each) { stop_all_commands }
223
+ #
224
+ # it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
225
+ # end
226
+ # """
227
+ # When I run `rspec`
228
+ # Then the specs should all pass