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.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +37 -0
- data/.rspec +3 -0
- data/.rubocop.yml +188 -0
- data/.simplecov +34 -0
- data/.travis.yml +47 -0
- data/.yardopts +8 -0
- data/CONTRIBUTING.md +71 -0
- data/Gemfile +83 -0
- data/History.md +579 -0
- data/LICENSE +20 -0
- data/README.md +226 -0
- data/Rakefile +49 -0
- data/TODO.md +13 -0
- data/appveyor.yml +32 -0
- data/aruba.gemspec +48 -0
- data/bin/aruba +7 -0
- data/config/.gitignore +1 -0
- data/cucumber.yml +26 -0
- data/features/.nav +72 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +414 -0
- data/features/api/command/run_simple.feature +242 -0
- data/features/api/command/send_signal.feature +53 -0
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/api/command/stop.feature +131 -0
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/which.feature +37 -0
- data/features/api/core/expand_path.feature +88 -0
- data/features/api/environment/append_environment_variable.feature +128 -0
- data/features/api/environment/delete_environment_variable.feature +63 -0
- data/features/api/environment/prepend_environment_variable.feature +128 -0
- data/features/api/environment/set_environment_variable.feature +376 -0
- data/features/api/filesystem/cd.feature +184 -0
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +152 -0
- data/features/api/filesystem/does_exist.feature +62 -0
- data/features/api/filesystem/fixtures.feature +104 -0
- data/features/api/filesystem/is_absolute.feature +48 -0
- data/features/api/filesystem/is_directory.feature +53 -0
- data/features/api/filesystem/is_file.feature +54 -0
- data/features/api/filesystem/is_relative.feature +48 -0
- data/features/api/filesystem/move.feature +119 -0
- data/features/api/text/extract_text.feature +87 -0
- data/features/api/text/replace_variables.feature +45 -0
- data/features/api/text/sanitize_text.feature +228 -0
- data/features/api/text/unescape_text.feature +127 -0
- data/features/cli/console.feature +52 -0
- data/features/cli/init.feature +79 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/configuration/command_runtime_environment.feature +129 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +52 -0
- data/features/configuration/fixtures_directories.feature +38 -0
- data/features/configuration/fixtures_path_prefix.feature +23 -0
- data/features/configuration/home_directory.feature +80 -0
- data/features/configuration/io_timeout.feature +30 -0
- data/features/configuration/keep_ansi.feature +30 -0
- data/features/configuration/log_level.feature +38 -0
- data/features/configuration/physical_block_size.feature +53 -0
- data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
- data/features/configuration/root_directory.feature +30 -0
- data/features/configuration/startup_wait_time.feature +48 -0
- data/features/configuration/usage.feature +159 -0
- data/features/configuration/working_directory.feature +33 -0
- data/features/development/build.feature +15 -0
- data/features/development/test.feature +24 -0
- data/features/getting_started/cleanup.feature +67 -0
- data/features/getting_started/install.feature +8 -0
- data/features/getting_started/run_commands.feature +177 -0
- data/features/getting_started/supported_testing_frameworks.feature +104 -0
- data/features/getting_started/writing_good_feature_tests.feature +38 -0
- data/features/hooks/after/command.feature +44 -0
- data/features/hooks/before/command.feature +71 -0
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/directory/have_sub_directory.feature +110 -0
- data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
- data/features/matchers/file/be_existing_executable.feature +88 -0
- data/features/matchers/file/be_existing_file.feature +82 -0
- data/features/matchers/file/have_file_content.feature +123 -0
- data/features/matchers/file/have_file_size.feature +107 -0
- data/features/matchers/path/be_an_absolute_path.feature +74 -0
- data/features/matchers/path/be_an_existing_path.feature +97 -0
- data/features/matchers/path/have_permissions.feature +118 -0
- data/features/matchers/timeouts.feature +48 -0
- data/features/platforms/jruby.feature +14 -0
- data/features/rspec/integration.feature +179 -0
- data/features/step_definitions/aruba_dev_steps.rb +56 -0
- data/features/step_definitions/hooks.rb +96 -0
- data/features/steps/command/debug.feature +92 -0
- data/features/steps/command/exit_statuses.feature +136 -0
- data/features/steps/command/in_process.feature +485 -0
- data/features/steps/command/interactive.feature +90 -0
- data/features/steps/command/output.feature +588 -0
- data/features/steps/command/run.feature +66 -0
- data/features/steps/command/send_signal.feature +104 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/command/stderr.feature +68 -0
- data/features/steps/command/stdout.feature +109 -0
- data/features/steps/command/stop.feature +313 -0
- data/features/steps/core/announce.feature +283 -0
- data/features/steps/environment/append_environment_variable.feature +52 -0
- data/features/steps/environment/home_variable.feature +62 -0
- data/features/steps/environment/prepend_environment_variable.feature +52 -0
- data/features/steps/environment/set_environment_variable.feature +49 -0
- data/features/steps/filesystem/append_to_file.feature +45 -0
- data/features/steps/filesystem/cd_to_directory.feature +33 -0
- data/features/steps/filesystem/check_file_content.feature +61 -0
- data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
- data/features/steps/filesystem/compare_files.feature +42 -0
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +57 -0
- data/features/steps/filesystem/create_file.feature +76 -0
- data/features/steps/filesystem/existence_of_directory.feature +57 -0
- data/features/steps/filesystem/existence_of_file.feature +43 -0
- data/features/steps/filesystem/file_content.feature +86 -0
- data/features/steps/filesystem/fixtures.feature +64 -0
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
- data/features/steps/filesystem/non_existence_of_file.feature +80 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/remove_directory.feature +38 -0
- data/features/steps/filesystem/remove_file.feature +38 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/steps/overview.feature +60 -0
- data/features/support/aruba.rb +7 -0
- data/features/support/env.rb +33 -0
- data/features/support/jruby.rb +5 -0
- data/features/support/simplecov_setup.rb +8 -0
- data/fixtures/cli-app/.gitignore +9 -0
- data/fixtures/cli-app/.rspec +2 -0
- data/fixtures/cli-app/README.md +39 -0
- data/fixtures/cli-app/Rakefile +1 -0
- data/fixtures/cli-app/bin/cli +6 -0
- data/fixtures/cli-app/cli-app.gemspec +26 -0
- data/fixtures/cli-app/features/support/env.rb +1 -0
- data/fixtures/cli-app/lib/cli/app.rb +13 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/fixtures/cli-app/script/console +14 -0
- data/fixtures/cli-app/spec/spec_helper.rb +9 -0
- data/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/fixtures/copy/file.txt +1 -0
- data/fixtures/empty-app/.gitignore +9 -0
- data/fixtures/empty-app/.rspec +2 -0
- data/fixtures/empty-app/README.md +24 -0
- data/fixtures/empty-app/Rakefile +1 -0
- data/fixtures/empty-app/cli-app.gemspec +26 -0
- data/fixtures/empty-app/lib/cli/app.rb +13 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
- data/fixtures/getting-started-app/.gitignore +4 -0
- data/fixtures/getting-started-app/Gemfile +4 -0
- data/fixtures/getting-started-app/README.md +3 -0
- data/fixtures/getting-started-app/features/support/env.rb +1 -0
- data/fixtures/spawn_process/stderr.sh +3 -0
- data/lib/aruba.rb +1 -0
- data/lib/aruba/api.rb +34 -0
- data/lib/aruba/api/command.rb +307 -0
- data/lib/aruba/api/core.rb +191 -0
- data/lib/aruba/api/deprecated.rb +897 -0
- data/lib/aruba/api/environment.rb +89 -0
- data/lib/aruba/api/filesystem.rb +392 -0
- data/lib/aruba/api/rvm.rb +44 -0
- data/lib/aruba/api/text.rb +56 -0
- data/lib/aruba/aruba_path.rb +133 -0
- data/lib/aruba/basic_configuration.rb +240 -0
- data/lib/aruba/basic_configuration/option.rb +32 -0
- data/lib/aruba/cli.rb +26 -0
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/command.rb +74 -0
- data/lib/aruba/config.rb +108 -0
- data/lib/aruba/config/jruby.rb +17 -0
- data/lib/aruba/config_wrapper.rb +58 -0
- data/lib/aruba/console.rb +70 -0
- data/lib/aruba/console/help.rb +35 -0
- data/lib/aruba/contracts/absolute_path.rb +20 -0
- data/lib/aruba/contracts/enum.rb +26 -0
- data/lib/aruba/contracts/is_power_of_two.rb +22 -0
- data/lib/aruba/contracts/relative_path.rb +20 -0
- data/lib/aruba/cucumber.rb +13 -0
- data/lib/aruba/cucumber/command.rb +422 -0
- data/lib/aruba/cucumber/core.rb +5 -0
- data/lib/aruba/cucumber/environment.rb +42 -0
- data/lib/aruba/cucumber/file.rb +201 -0
- data/lib/aruba/cucumber/hooks.rb +160 -0
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
- data/lib/aruba/errors.rb +37 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +25 -0
- data/lib/aruba/file_size.rb +63 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/hooks.rb +56 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +14 -0
- data/lib/aruba/initializer.rb +222 -0
- data/lib/aruba/jruby.rb +4 -0
- data/lib/aruba/matchers/base/base_matcher.rb +96 -0
- data/lib/aruba/matchers/base/object_formatter.rb +114 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all.rb +11 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
- data/lib/aruba/matchers/command.rb +1 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
- data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
- data/lib/aruba/matchers/command/have_output.rb +36 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory.rb +1 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
- data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
- data/lib/aruba/matchers/environment.rb +1 -0
- data/lib/aruba/matchers/file.rb +1 -0
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
- data/lib/aruba/matchers/file/have_file_content.rb +62 -0
- data/lib/aruba/matchers/file/have_file_size.rb +47 -0
- data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
- data/lib/aruba/matchers/path.rb +1 -0
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
- data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
- data/lib/aruba/matchers/path/have_permissions.rb +64 -0
- data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
- data/lib/aruba/matchers/string.rb +1 -0
- data/lib/aruba/matchers/string/include_output_string.rb +36 -0
- data/lib/aruba/matchers/string/match_output_string.rb +37 -0
- data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
- data/lib/aruba/platform.rb +25 -0
- data/lib/aruba/platforms/announcer.rb +232 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_logger.rb +81 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
- data/lib/aruba/platforms/determine_file_size.rb +22 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/local_environment.rb +29 -0
- data/lib/aruba/platforms/simple_table.rb +54 -0
- data/lib/aruba/platforms/unix_command_string.rb +27 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
- data/lib/aruba/platforms/unix_platform.rb +276 -0
- data/lib/aruba/platforms/unix_which.rb +85 -0
- data/lib/aruba/platforms/windows_command_string.rb +31 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
- data/lib/aruba/platforms/windows_platform.rb +42 -0
- data/lib/aruba/platforms/windows_which.rb +106 -0
- data/lib/aruba/processes/basic_process.rb +143 -0
- data/lib/aruba/processes/debug_process.rb +69 -0
- data/lib/aruba/processes/in_process.rb +125 -0
- data/lib/aruba/processes/spawn_process.rb +278 -0
- data/lib/aruba/reporting.rb +126 -0
- data/lib/aruba/rspec.rb +107 -0
- data/lib/aruba/runtime.rb +96 -0
- data/lib/aruba/setup.rb +90 -0
- data/lib/aruba/spawn_process.rb +11 -0
- data/lib/aruba/version.rb +3 -0
- data/script/bootstrap +28 -0
- data/script/console +16 -0
- data/script/test +3 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
- data/spec/aruba/api/environment/set_env_spec.rb +42 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
- data/spec/aruba/api/runtime_spec.rb +28 -0
- data/spec/aruba/api_spec.rb +1209 -0
- data/spec/aruba/aruba_path_spec.rb +103 -0
- data/spec/aruba/basic_configuration_spec.rb +5 -0
- data/spec/aruba/configuration_spec.rb +5 -0
- data/spec/aruba/hooks_spec.rb +17 -0
- data/spec/aruba/in_config_wrapper_spec.rb +25 -0
- data/spec/aruba/jruby_spec.rb +55 -0
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +174 -0
- data/spec/aruba/matchers/directory_spec.rb +57 -0
- data/spec/aruba/matchers/file_spec.rb +127 -0
- data/spec/aruba/matchers/path_spec.rb +88 -0
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/rspec_spec.rb +15 -0
- data/spec/aruba/runtime_spec.rb +29 -0
- data/spec/aruba/spawn_process_spec.rb +60 -0
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +5 -0
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/configs/rspec.rb +15 -0
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +44 -0
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +35 -0
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +48 -0
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +116 -0
- data/spec/support/shared_examples/directory.rb +7 -0
- data/spec/support/shared_examples/file.rb +7 -0
- data/templates/css/console.css +24 -0
- data/templates/css/filesystem.css +42 -0
- data/templates/css/pygments-autumn.css +59 -0
- data/templates/files.erb +14 -0
- data/templates/images/LICENSE +22 -0
- data/templates/images/folder.png +0 -0
- data/templates/images/page_white.png +0 -0
- data/templates/images/page_white_gherkin.png +0 -0
- data/templates/images/page_white_ruby.png +0 -0
- data/templates/index.erb +20 -0
- data/templates/js/filesystem.js +5 -0
- data/templates/js/jquery-1.11.3.min.js +5 -0
- data/templates/main.erb +34 -0
- metadata +629 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
Feature: Check if path exists
|
|
2
|
+
|
|
3
|
+
If you need to check if a given path exists, you can use the
|
|
4
|
+
`be_an_existing_path`-matcher. It doesn't care if the path is a directory or
|
|
5
|
+
a path.
|
|
6
|
+
|
|
7
|
+
```ruby
|
|
8
|
+
require 'spec_helper'
|
|
9
|
+
|
|
10
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
11
|
+
let(:path) { 'file.txt' }
|
|
12
|
+
before(:each) { touch(path) }
|
|
13
|
+
|
|
14
|
+
it { expect(path).to be_an_existing_path }
|
|
15
|
+
end
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Background:
|
|
19
|
+
Given I use a fixture named "cli-app"
|
|
20
|
+
|
|
21
|
+
Scenario: Expect single existing path
|
|
22
|
+
Given a file named "spec/existing_path_spec.rb" with:
|
|
23
|
+
"""
|
|
24
|
+
require 'spec_helper'
|
|
25
|
+
|
|
26
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
27
|
+
let(:path) { 'file.txt' }
|
|
28
|
+
before(:each) { touch(path) }
|
|
29
|
+
it { expect(path).to be_an_existing_path }
|
|
30
|
+
end
|
|
31
|
+
"""
|
|
32
|
+
When I run `rspec`
|
|
33
|
+
Then the specs should all pass
|
|
34
|
+
|
|
35
|
+
Scenario: Expect single existing directory
|
|
36
|
+
Given a file named "spec/existing_path_spec.rb" with:
|
|
37
|
+
"""
|
|
38
|
+
require 'spec_helper'
|
|
39
|
+
|
|
40
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
41
|
+
let(:path) { 'dir.d' }
|
|
42
|
+
before(:each) { create_directory(path) }
|
|
43
|
+
it { expect(path).to be_an_existing_path }
|
|
44
|
+
end
|
|
45
|
+
"""
|
|
46
|
+
When I run `rspec`
|
|
47
|
+
Then the specs should all pass
|
|
48
|
+
|
|
49
|
+
Scenario: Expect single non-existing path
|
|
50
|
+
Given a file named "spec/existing_path_spec.rb" with:
|
|
51
|
+
"""
|
|
52
|
+
require 'spec_helper'
|
|
53
|
+
|
|
54
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
55
|
+
let(:path) { 'file.txt' }
|
|
56
|
+
it { expect(path).not_to be_an_existing_path }
|
|
57
|
+
end
|
|
58
|
+
"""
|
|
59
|
+
When I run `rspec`
|
|
60
|
+
Then the specs should all pass
|
|
61
|
+
|
|
62
|
+
Scenario: Expect multiple existing paths
|
|
63
|
+
Given a file named "spec/existing_path_spec.rb" with:
|
|
64
|
+
"""
|
|
65
|
+
require 'spec_helper'
|
|
66
|
+
|
|
67
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
68
|
+
let(:paths) { %w(path1.txt path2.txt) }
|
|
69
|
+
|
|
70
|
+
before :each do
|
|
71
|
+
paths.each { |f| touch(f) }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it { expect(paths).to all be_an_existing_path }
|
|
75
|
+
end
|
|
76
|
+
"""
|
|
77
|
+
When I run `rspec`
|
|
78
|
+
Then the specs should all pass
|
|
79
|
+
|
|
80
|
+
Scenario: Expect a least one existing path
|
|
81
|
+
Given a file named "spec/existing_path_spec.rb" with:
|
|
82
|
+
"""
|
|
83
|
+
require 'spec_helper'
|
|
84
|
+
|
|
85
|
+
RSpec.describe 'Check if path exists', :type => :aruba do
|
|
86
|
+
let(:paths) { %w(path1.txt path2.txt) }
|
|
87
|
+
|
|
88
|
+
before :each do
|
|
89
|
+
touch(paths.first)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it { expect(paths).to include an_existing_path }
|
|
93
|
+
end
|
|
94
|
+
"""
|
|
95
|
+
When I run `rspec`
|
|
96
|
+
Then the specs should all pass
|
|
97
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Feature: Check if path has permissions in filesystem
|
|
2
|
+
|
|
3
|
+
If you need to check if a given path has some permissions in filesystem, you
|
|
4
|
+
can use the `have_permissions`-matcher. It fails if the file or directory
|
|
5
|
+
does not exist. You need to pass it the permissions either as `Octal`
|
|
6
|
+
(`0700`) or `String` (`'0700'`).
|
|
7
|
+
|
|
8
|
+
```ruby
|
|
9
|
+
require 'spec_helper'
|
|
10
|
+
|
|
11
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
12
|
+
context 'when is file' do
|
|
13
|
+
let(:file) { 'file.txt' }
|
|
14
|
+
let(:permissions) { 0700 }
|
|
15
|
+
|
|
16
|
+
before(:each) { touch(file) }
|
|
17
|
+
before(:each) { chmod(permissions, file }
|
|
18
|
+
|
|
19
|
+
it { expect(file).to have_permissions permissions }
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Background:
|
|
25
|
+
Given I use a fixture named "cli-app"
|
|
26
|
+
|
|
27
|
+
Scenario: Expect file with permissions
|
|
28
|
+
Given a file named "spec/path_with_permissions_spec.rb" with:
|
|
29
|
+
"""
|
|
30
|
+
require 'spec_helper'
|
|
31
|
+
|
|
32
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
33
|
+
let(:file) { 'file.txt' }
|
|
34
|
+
let(:permissions) { 0700 }
|
|
35
|
+
|
|
36
|
+
before(:each) { touch(file) }
|
|
37
|
+
before(:each) { chmod(permissions, file) }
|
|
38
|
+
|
|
39
|
+
it { expect(file).to have_permissions permissions }
|
|
40
|
+
end
|
|
41
|
+
"""
|
|
42
|
+
When I run `rspec`
|
|
43
|
+
Then the specs should all pass
|
|
44
|
+
|
|
45
|
+
Scenario: Expect directory with permissions
|
|
46
|
+
Given a file named "spec/path_with_permissions_spec.rb" with:
|
|
47
|
+
"""
|
|
48
|
+
require 'spec_helper'
|
|
49
|
+
|
|
50
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
51
|
+
let(:directory) { 'directory.d' }
|
|
52
|
+
let(:permissions) { 0700 }
|
|
53
|
+
|
|
54
|
+
before(:each) { create_directory(directory) }
|
|
55
|
+
before(:each) { chmod(permissions, directory) }
|
|
56
|
+
|
|
57
|
+
it { expect(directory).to have_permissions permissions }
|
|
58
|
+
end
|
|
59
|
+
"""
|
|
60
|
+
When I run `rspec`
|
|
61
|
+
Then the specs should all pass
|
|
62
|
+
|
|
63
|
+
Scenario: Expect multiple files with given permissions
|
|
64
|
+
Given a file named "spec/path_with_permissions_spec.rb" with:
|
|
65
|
+
"""
|
|
66
|
+
require 'spec_helper'
|
|
67
|
+
|
|
68
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
69
|
+
let(:files) { %w(file1.txt file2.txt) }
|
|
70
|
+
let(:permissions) { 0700 }
|
|
71
|
+
|
|
72
|
+
before :each do
|
|
73
|
+
files.each do |f|
|
|
74
|
+
touch(f)
|
|
75
|
+
chmod(permissions, f)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it { expect(files).to all have_permissions permissions }
|
|
80
|
+
end
|
|
81
|
+
"""
|
|
82
|
+
When I run `rspec`
|
|
83
|
+
Then the specs should all pass
|
|
84
|
+
|
|
85
|
+
Scenario: Expect a least one file with permissions
|
|
86
|
+
Given a file named "spec/path_with_permissions_spec.rb" with:
|
|
87
|
+
"""
|
|
88
|
+
require 'spec_helper'
|
|
89
|
+
|
|
90
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
91
|
+
let(:files) { %w(file1.txt file2.txt) }
|
|
92
|
+
let(:permissions) { 0700 }
|
|
93
|
+
|
|
94
|
+
before :each do
|
|
95
|
+
touch(files.first)
|
|
96
|
+
chmod(permissions, files.first)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it { expect(files).to include a_path_having_permissions permissions }
|
|
100
|
+
end
|
|
101
|
+
"""
|
|
102
|
+
When I run `rspec`
|
|
103
|
+
Then the specs should all pass
|
|
104
|
+
|
|
105
|
+
Scenario: Fails if path does not exist
|
|
106
|
+
Given a file named "spec/path_with_permissions_spec.rb" with:
|
|
107
|
+
"""
|
|
108
|
+
require 'spec_helper'
|
|
109
|
+
|
|
110
|
+
RSpec.describe 'Check if path has permissions', :type => :aruba do
|
|
111
|
+
let(:path) { 'file.txt' }
|
|
112
|
+
let(:permissions) { 0777 }
|
|
113
|
+
|
|
114
|
+
it { expect(path).to have_permissions permissions }
|
|
115
|
+
end
|
|
116
|
+
"""
|
|
117
|
+
When I run `rspec`
|
|
118
|
+
Then the specs should not all pass
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Feature: Check if a timeout occured during command execution
|
|
2
|
+
|
|
3
|
+
If you want to check if a command takes to long to finish it's work
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I use a fixture named "cli-app"
|
|
7
|
+
|
|
8
|
+
Scenario: Check if command runs to long
|
|
9
|
+
Given an executable named "bin/cli" with:
|
|
10
|
+
"""
|
|
11
|
+
#!/bin/bash
|
|
12
|
+
sleep 1
|
|
13
|
+
"""
|
|
14
|
+
And a file named "spec/timeout_spec.rb" with:
|
|
15
|
+
"""
|
|
16
|
+
require 'spec_helper'
|
|
17
|
+
|
|
18
|
+
RSpec.describe 'Long running command', :type => :aruba do
|
|
19
|
+
before(:each) { aruba.config.exit_timeout = 0 }
|
|
20
|
+
|
|
21
|
+
before(:each) { run('cli') }
|
|
22
|
+
|
|
23
|
+
it { expect(last_command_started).to run_too_long }
|
|
24
|
+
end
|
|
25
|
+
"""
|
|
26
|
+
When I run `rspec`
|
|
27
|
+
Then the specs should all pass
|
|
28
|
+
|
|
29
|
+
Scenario: Check if command finishes in time
|
|
30
|
+
Given an executable named "bin/cli" with:
|
|
31
|
+
"""
|
|
32
|
+
#!/bin/bash
|
|
33
|
+
exit 0
|
|
34
|
+
"""
|
|
35
|
+
And a file named "spec/timeout_spec.rb" with:
|
|
36
|
+
"""
|
|
37
|
+
require 'spec_helper'
|
|
38
|
+
|
|
39
|
+
RSpec.describe 'Short running command', :type => :aruba do
|
|
40
|
+
before(:each) { aruba.config.exit_timeout = 5 }
|
|
41
|
+
|
|
42
|
+
before(:each) { run('cli') }
|
|
43
|
+
|
|
44
|
+
it { expect(last_command_started).to have_finished_in_time }
|
|
45
|
+
end
|
|
46
|
+
"""
|
|
47
|
+
When I run `rspec`
|
|
48
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Feature: Support for JRuby
|
|
2
|
+
|
|
3
|
+
Improve startup time by disabling JIT and forcing client JVM mode. This can
|
|
4
|
+
be accomplished by adding
|
|
5
|
+
|
|
6
|
+
```ruby
|
|
7
|
+
require 'aruba/jruby'
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
*Note* - no conflict resolution on the JAVA/JRuby environment options is
|
|
11
|
+
done; only merging. For more complex settings please manually set the
|
|
12
|
+
environment variables in the hook or externally.
|
|
13
|
+
|
|
14
|
+
Refer to http://blog.headius.com/2010/03/jruby-startup-time-tips.html for other tips on startup time.
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
Feature: Getting started with RSpec and aruba
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I use the fixture "empty-app"
|
|
5
|
+
|
|
6
|
+
Scenario: Simple Integration
|
|
7
|
+
|
|
8
|
+
To use the simple integration just require `aruba/rspec` in your
|
|
9
|
+
`spec_helper.rb`. After that you only need to flag your tests with `type:
|
|
10
|
+
:aruba` and some things are set up for.
|
|
11
|
+
|
|
12
|
+
The simple integration adds some `before(:each)`-hooks for you:
|
|
13
|
+
|
|
14
|
+
\* Setup Aruba Test directory
|
|
15
|
+
\* Clear environment (ENV)
|
|
16
|
+
\* Make HOME-variable configarable via `arub.config.home_directory`
|
|
17
|
+
\* Configure `aruba` via `RSpec`-metadata
|
|
18
|
+
\* Activate announcers based on `RSpec`-metadata
|
|
19
|
+
|
|
20
|
+
Be careful, if you are going to use a `before(:all)`-hook to set up
|
|
21
|
+
files/directories. Those will be deleted by the `setup_aruba`-call within
|
|
22
|
+
the `before(:each)`-hook. Look for some custom integration further down the
|
|
23
|
+
documentation for a solution.
|
|
24
|
+
|
|
25
|
+
Given a file named "spec/spec_helper.rb" with:
|
|
26
|
+
"""
|
|
27
|
+
require 'aruba/rspec'
|
|
28
|
+
"""
|
|
29
|
+
And a file named "spec/getting_started_spec.rb" with:
|
|
30
|
+
"""
|
|
31
|
+
require 'spec_helper'
|
|
32
|
+
|
|
33
|
+
RSpec.describe 'Integrate Aruba into RSpec', :type => :aruba do
|
|
34
|
+
context 'when to be or not be...' do
|
|
35
|
+
it { expect(aruba).to be }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
context 'when write file' do
|
|
39
|
+
let(:file) { 'file.txt' }
|
|
40
|
+
|
|
41
|
+
before(:each) { write_file file, 'Hello World' }
|
|
42
|
+
|
|
43
|
+
it { expect(file).to be_an_existing_file }
|
|
44
|
+
it { expect([file]).to include an_existing_file }
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
When I run `rspec`
|
|
49
|
+
Then the specs should all pass
|
|
50
|
+
|
|
51
|
+
Scenario: Simple Custom Integration
|
|
52
|
+
|
|
53
|
+
There might be some use cases where you want to build an aruba integration
|
|
54
|
+
of your own. You need to include the API and make sure, that you run
|
|
55
|
+
|
|
56
|
+
\* `restore_env` (only for aruba < 1.0.0)
|
|
57
|
+
\* `setup_aruba`
|
|
58
|
+
|
|
59
|
+
before any method of aruba is used.
|
|
60
|
+
|
|
61
|
+
Given a file named "spec/spec_helper.rb" with:
|
|
62
|
+
"""
|
|
63
|
+
require 'aruba/api'
|
|
64
|
+
|
|
65
|
+
RSpec.configure do |config|
|
|
66
|
+
config.include Aruba::Api
|
|
67
|
+
end
|
|
68
|
+
"""
|
|
69
|
+
And a file named "spec/getting_started_spec.rb" with:
|
|
70
|
+
"""
|
|
71
|
+
require 'spec_helper'
|
|
72
|
+
|
|
73
|
+
RSpec.describe 'Custom Integration of aruba' do
|
|
74
|
+
let(:file) { 'file.txt' }
|
|
75
|
+
|
|
76
|
+
before(:each) { setup_aruba }
|
|
77
|
+
before(:each) { write_file file, 'Hello World' }
|
|
78
|
+
|
|
79
|
+
it { expect(file).to be_an_existing_file }
|
|
80
|
+
end
|
|
81
|
+
"""
|
|
82
|
+
When I run `rspec`
|
|
83
|
+
Then the specs should all pass
|
|
84
|
+
|
|
85
|
+
Scenario: Custom Integration using before(:all)-hook
|
|
86
|
+
|
|
87
|
+
You can even use `aruba` within a `before(:all)`-hook. But again, make sure
|
|
88
|
+
that `setup_aruba` is run before you use any method of `aruba`. Using
|
|
89
|
+
`setup_aruba` both in `before(:all)`- and `before(:each)`-hook is not
|
|
90
|
+
possible and therefor not supported:
|
|
91
|
+
|
|
92
|
+
Running `setup_aruba` removes `tmp/aruba`, creates a new one `tmp/aruba`
|
|
93
|
+
and make it the working directory. Running it within a `before(:all)`-hook,
|
|
94
|
+
run some `aruba`-method and then run `setup_arub` again within a
|
|
95
|
+
`before(:each)`-hook, will remove the files/directories created within the
|
|
96
|
+
`before(:all)`-hook.
|
|
97
|
+
|
|
98
|
+
Given a file named "spec/spec_helper.rb" with:
|
|
99
|
+
"""
|
|
100
|
+
require 'aruba/api'
|
|
101
|
+
|
|
102
|
+
RSpec.configure do |config|
|
|
103
|
+
config.include Aruba::Api
|
|
104
|
+
end
|
|
105
|
+
"""
|
|
106
|
+
And a file named "spec/getting_started_spec.rb" with:
|
|
107
|
+
"""
|
|
108
|
+
require 'spec_helper'
|
|
109
|
+
|
|
110
|
+
RSpec.describe 'Custom Integration of aruba' do
|
|
111
|
+
before(:all) { setup_aruba }
|
|
112
|
+
before(:all) { write_file 'file.txt', 'Hello World' }
|
|
113
|
+
|
|
114
|
+
it { expect('file.txt').to be_an_existing_file }
|
|
115
|
+
end
|
|
116
|
+
"""
|
|
117
|
+
When I run `rspec`
|
|
118
|
+
Then the specs should all pass
|
|
119
|
+
|
|
120
|
+
Scenario: Setup aruba before use any of it's methods
|
|
121
|
+
|
|
122
|
+
From 1.0.0 it will be required, that you setup aruba before you use it.
|
|
123
|
+
|
|
124
|
+
Given a file named "spec/spec_helper.rb" with:
|
|
125
|
+
"""
|
|
126
|
+
require 'aruba/api'
|
|
127
|
+
|
|
128
|
+
RSpec.configure do |config|
|
|
129
|
+
config.include Aruba::Api
|
|
130
|
+
end
|
|
131
|
+
"""
|
|
132
|
+
And a file named "spec/getting_started_spec.rb" with:
|
|
133
|
+
"""
|
|
134
|
+
require 'spec_helper'
|
|
135
|
+
|
|
136
|
+
RSpec.describe 'Custom Integration of aruba' do
|
|
137
|
+
let(:file) { 'file.txt' }
|
|
138
|
+
|
|
139
|
+
before(:each) { setup_aruba }
|
|
140
|
+
|
|
141
|
+
it { expect(true).to be true }
|
|
142
|
+
end
|
|
143
|
+
"""
|
|
144
|
+
And an empty file named "tmp/aruba/garbage.txt"
|
|
145
|
+
When I run `rspec`
|
|
146
|
+
Then the specs should all pass
|
|
147
|
+
And the file "tmp/aruba/garbage.txt" should not exist anymore
|
|
148
|
+
|
|
149
|
+
Scenario: Fail-safe use if "setup_aruba" is not used
|
|
150
|
+
|
|
151
|
+
If you forgot to run `setup_aruba` before the first method of aruba is
|
|
152
|
+
used, you might see an error. Although we did our best to prevent this.
|
|
153
|
+
|
|
154
|
+
Make sure that you run `setup_aruba` before any method of aruba is used. At
|
|
155
|
+
best before each and every test.
|
|
156
|
+
|
|
157
|
+
This will be not supported anymore from 1.0.0 on.
|
|
158
|
+
|
|
159
|
+
Given a file named "spec/spec_helper.rb" with:
|
|
160
|
+
"""
|
|
161
|
+
require 'aruba/api'
|
|
162
|
+
|
|
163
|
+
RSpec.configure do |config|
|
|
164
|
+
config.include Aruba::Api
|
|
165
|
+
end
|
|
166
|
+
"""
|
|
167
|
+
And a file named "spec/getting_started_spec.rb" with:
|
|
168
|
+
"""
|
|
169
|
+
require 'spec_helper'
|
|
170
|
+
|
|
171
|
+
RSpec.describe 'Custom Integration of aruba' do
|
|
172
|
+
let(:file) { 'file.txt' }
|
|
173
|
+
|
|
174
|
+
it { expect { write_file file, 'Hello World' }.not_to raise_error }
|
|
175
|
+
it { expect(aruba.current_directory.directory?).to be true }
|
|
176
|
+
end
|
|
177
|
+
"""
|
|
178
|
+
When I run `rspec`
|
|
179
|
+
Then the specs should all pass
|