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,127 @@
1
+ require 'spec_helper'
2
+ require 'aruba/matchers/file'
3
+
4
+ RSpec.describe 'File Matchers' do
5
+ include_context 'uses aruba API'
6
+ include_context 'needs to expand paths'
7
+
8
+ describe 'to_be_an_existing_file' do
9
+ let(:name) { @file_name }
10
+
11
+ context 'when file exists' do
12
+ before(:each) { create_test_files(name) }
13
+
14
+ it { expect(name).to be_an_existing_file }
15
+ end
16
+
17
+ context 'when file does not exist' do
18
+ it { expect(name).not_to be_an_existing_file }
19
+ end
20
+
21
+ context 'when contains ~' do
22
+ let(:name) { File.join('~', random_string) }
23
+
24
+ before(:each) do
25
+ @aruba.with_environment 'HOME' => expand_path('.') do
26
+ create_test_files(name)
27
+ end
28
+ end
29
+
30
+ it do
31
+ @aruba.with_environment 'HOME' => expand_path('.') do
32
+ expect(name).to be_an_existing_file
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ describe 'to_have_file_content' do
39
+ context 'when file exists' do
40
+ before :each do
41
+ Aruba.platform.write_file(@file_path, 'aba')
42
+ end
43
+
44
+ context 'and file content is exactly equal string ' do
45
+ it { expect(@file_name).to have_file_content('aba') }
46
+ end
47
+
48
+ context 'and file content contains string' do
49
+ it { expect(@file_name).to have_file_content(/b/) }
50
+ end
51
+
52
+ context 'and file content is not exactly equal string' do
53
+ it { expect(@file_name).not_to have_file_content('c') }
54
+ end
55
+
56
+ context 'and file content not contains string' do
57
+ it { expect(@file_name).not_to have_file_content(/c/) }
58
+ end
59
+
60
+ context 'when other matchers is given which matches a string start with "a"' do
61
+ it { expect(@file_name).to have_file_content(a_string_starting_with('a')) }
62
+ end
63
+ end
64
+
65
+ context 'when file does not exist' do
66
+ it { expect(@file_name).not_to have_file_content('a') }
67
+ end
68
+
69
+ describe "description" do
70
+ context "when string" do
71
+ it { expect(have_file_content("a").description).to eq('have file content: "a"') }
72
+ end
73
+
74
+ context "when regexp" do
75
+ it { expect(have_file_content(/a/).description).to eq('have file content: /a/') }
76
+ end
77
+
78
+ context "when matcher" do
79
+ it { expect(have_file_content(a_string_starting_with("a")).description).to eq('have file content: a string starting with "a"') }
80
+ end
81
+ end
82
+
83
+ describe 'failure messages' do
84
+ def fail_with(message)
85
+ raise_error(RSpec::Expectations::ExpectationNotMetError, message)
86
+ end
87
+
88
+ example 'for a string' do
89
+ expect do
90
+ expect(@file_name).to have_file_content("z")
91
+ end.to fail_with('expected "test.txt" to have file content: "z"')
92
+ end
93
+
94
+ example 'for a string' do
95
+ expect do
96
+ expect(@file_name).to have_file_content(/z/)
97
+ end.to fail_with('expected "test.txt" to have file content: /z/')
98
+ end
99
+
100
+ example 'for a matcher' do
101
+ expect do
102
+ expect(@file_name).to have_file_content(a_string_starting_with("z"))
103
+ end.to fail_with('expected "test.txt" to have file content: a string starting with "z"')
104
+ end
105
+ end
106
+ end
107
+
108
+ describe 'to_have_file_size' do
109
+ context 'when file exists' do
110
+ before :each do
111
+ Aruba.platform.write_file(@file_path, '')
112
+ end
113
+
114
+ context 'and file size is equal' do
115
+ it { expect(@file_name).to have_file_size(0) }
116
+ end
117
+
118
+ context 'and file size is not equal' do
119
+ it { expect(@file_name).not_to have_file_size(1) }
120
+ end
121
+ end
122
+
123
+ context 'when file does not exist' do
124
+ it { expect(@file_name).not_to have_file_size(0) }
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ require 'fileutils'
4
+ require 'aruba/matchers/path'
5
+
6
+ RSpec.describe 'Path Matchers' do
7
+ include_context 'uses aruba API'
8
+
9
+ def expand_path(*args)
10
+ @aruba.expand_path(*args)
11
+ end
12
+
13
+ describe 'to_match_path_pattern' do
14
+ context 'when pattern is string' do
15
+ context 'when there is file which matches path pattern' do
16
+ before :each do
17
+ Aruba.platform.write_file(@file_path, '')
18
+ end
19
+
20
+ it { expect(all_paths).to match_path_pattern(expand_path(@file_name)) }
21
+ end
22
+
23
+ context 'when there is not file which matches path pattern' do
24
+ it { expect(all_paths).not_to match_path_pattern('test') }
25
+ end
26
+ end
27
+
28
+ context 'when pattern is regex' do
29
+ context 'when there is file which matches path pattern' do
30
+ before :each do
31
+ Aruba.platform.write_file(@file_path, '')
32
+ end
33
+
34
+ it { expect(all_paths).to match_path_pattern(/test/) }
35
+ end
36
+
37
+ context 'when there is not file which matches path pattern' do
38
+ it { expect(all_paths).not_to match_path_pattern(/test/) }
39
+ end
40
+ end
41
+ end
42
+
43
+ describe 'to_be_an_absolute_path' do
44
+ let(:name) { @file_name }
45
+ let(:path) { File.expand_path(File.join(@aruba.current_directory, name)) }
46
+
47
+ context 'when is absolute path' do
48
+ it { expect(path).to be_an_absolute_path }
49
+ end
50
+
51
+ context 'when is relative path' do
52
+ it { expect(name).not_to be_an_absolute_path }
53
+ end
54
+ end
55
+
56
+ describe 'to_be_an_existing_path' do
57
+ context 'when file' do
58
+ context 'exists' do
59
+ before :each do
60
+ Aruba.platform.write_file(@file_path, '')
61
+ end
62
+
63
+ it { expect(@file_name).to be_an_existing_path }
64
+ end
65
+
66
+ context 'does not exist' do
67
+ it { expect(@file_name).not_to be_an_existing_path }
68
+ end
69
+ end
70
+
71
+ context 'when directory' do
72
+ let(:name) { 'test.d' }
73
+ let(:path) { File.join(@aruba.current_directory, name) }
74
+
75
+ context 'exists' do
76
+ before :each do
77
+ FileUtils.mkdir_p path
78
+ end
79
+
80
+ it { expect(name).to be_an_existing_path }
81
+ end
82
+
83
+ context 'does not exist' do
84
+ it { expect(name).not_to be_an_existing_path }
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ require 'aruba/platform'
3
+
4
+ RSpec.describe '.simple_table' do
5
+ context 'when valid hash' do
6
+ let(:hash) do
7
+ {
8
+ :key1 => 'value',
9
+ :key2 => 'value'
10
+ }
11
+ end
12
+ let(:rows) { ['# key1 => value', '# key2 => value'] }
13
+
14
+ it { expect(Aruba.platform.simple_table(hash).to_s).to eq rows.join("\n") }
15
+ end
16
+
17
+ context 'when empty hash' do
18
+ let(:hash) { {} }
19
+ let(:rows) { [] }
20
+
21
+ it { expect(Aruba.platform.simple_table(hash).to_s).to eq rows.join("\n") }
22
+ end
23
+ end
@@ -0,0 +1,500 @@
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