pax_global_header00006660000000000000000000000064136017606640014523gustar00rootroot0000000000000052 comment=11eea36531a532c49097ab04106e2286eb6a79e3 ruby-aruba-0.14.14/000077500000000000000000000000001360176066400137435ustar00rootroot00000000000000ruby-aruba-0.14.14/.document000066400000000000000000000000741360176066400155630ustar00rootroot00000000000000README.rdoc lib/**/*.rb bin/* features/**/*.feature LICENSE ruby-aruba-0.14.14/.gitignore000066400000000000000000000004361360176066400157360ustar00rootroot00000000000000## MAC OS .DS_Store ## TEXTMATE *.tmproj tmtags ## EMACS *~ \#* .\#* ## RUBYMINE .idea ## VIM *.swp tags ## PROJECT::GENERAL coverage rdoc pkg *.log ## PROJECT::SPECIFIC tmp .bundle doc Gemfile.lock cucumber-pro.log ## Ruby versioniser .ruby-version # Temp files of yar .yardoc ruby-aruba-0.14.14/.rspec000066400000000000000000000000471360176066400150610ustar00rootroot00000000000000--color --format Fuubar --order random ruby-aruba-0.14.14/.rubocop.yml000066400000000000000000000074221360176066400162220ustar00rootroot00000000000000AllCops: Exclude: - tmp/**/* - vendor/bundle/**/* DisplayCopNames: true # Cop supports --auto-correct. # Configuration parameters: SupportedStyles. Style/HashSyntax: Enabled: false Metrics/ModuleLength: Exclude: - lib/aruba/api.rb - lib/aruba/api/*.rb - lib/aruba/platform.rb Metrics/AbcSize: Enabled: false Lint/AmbiguousRegexpLiteral: Enabled: false # Cop supports --auto-correct. Lint/RescueException: Enabled: false # Cop supports --auto-correct. Lint/UnusedBlockArgument: Enabled: false # Cop supports --auto-correct. Lint/UnusedMethodArgument: Enabled: false Lint/UselessAssignment: Enabled: false # Configuration parameters: AllowURI. Metrics/LineLength: Max: 169 Exclude: - lib/aruba/api.rb - aruba.gemspec # Configuration parameters: CountComments. Metrics/MethodLength: Max: 18 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/AlignParameters: Enabled: false Style/CaseEquality: Enabled: false # Cop supports --auto-correct. Style/CharacterLiteral: Enabled: false # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/ClassCheck: Enabled: false Style/ClassVars: Enabled: false Metrics/ClassLength: Enabled: false # Cop supports --auto-correct. # Configuration parameters: PreferredMethods. Style/CollectionMethods: Enabled: false Style/Documentation: Enabled: false Style/DotPosition: EnforcedStyle: trailing # Configuration parameters: MinBodyLength. Style/GuardClause: Enabled: false # Configuration parameters: MaxLineLength. Style/IfUnlessModifier: Enabled: false Style/Lambda: Enabled: false # Cop supports --auto-correct. Style/LeadingCommentSpace: Enabled: false # Cop supports --auto-correct. # Configuration parameters: PreferredDelimiters. Style/PercentLiteralDelimiters: Enabled: false Metrics/PerceivedComplexity: Enabled: false # Configuration parameters: SupportedStyles. Style/RaiseArgs: # EnforcedStyle: compact Enabled: false # Cop supports --auto-correct. Style/RedundantSelf: Enabled: false # Configuration parameters: MaxSlashes. Style/RegexpLiteral: Enabled: false # Cop supports --auto-correct. # Configuration parameters: AllowAsExpressionSeparator. Style/Semicolon: Enabled: false # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/SignalException: Enabled: false # Configuration parameters: Methods. Style/SingleLineBlockParams: Enabled: false # Cop supports --auto-correct. Style/SpaceBeforeFirstArg: Enabled: false # Cop supports --auto-correct. Style/SpaceAfterComma: Enabled: false # Cop supports --auto-correct. Style/SpaceAroundKeyword: Enabled: false # Cop supports --auto-correct. Style/SpaceAfterNot: Enabled: false # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/SpaceBeforeBlockBraces: Enabled: false # Cop supports --auto-correct. Style/SpaceBeforeComma: Enabled: false # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. Style/SpaceInsideBlockBraces: Enabled: false # Cop supports --auto-correct. Style/SpaceInsideBrackets: Enabled: false # Cop supports --auto-correct. Style/SpaceInsideParens: Enabled: false # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/StringLiterals: Enabled: false # Cop supports --auto-correct. # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, Whitelist. Style/TrivialAccessors: Enabled: false Style/RaiseArgs: Enabled: false Metrics/ParameterLists: Enabled: false Style/IfInsideElse: Enabled: false Style/IdenticalConditionalBranches: Enabled: false ruby-aruba-0.14.14/.simplecov000066400000000000000000000017641360176066400157550ustar00rootroot00000000000000# Run simplecov by default SimpleCov.start unless ENV.key? 'ARUBA_NO_COVERAGE' SimpleCov.configure do # ignore this file add_filter '.simplecov' add_filter 'spec' add_filter 'features' # Rake tasks aren't tested with rspec add_filter 'Rakefile' add_filter 'lib/tasks' # # Changed Files in Git Group # @see http://fredwu.me/post/35625566267/simplecov-test-coverage-for-changed-files-only untracked = `git ls-files --exclude-standard --others` unstaged = `git diff --name-only` staged = `git diff --name-only --cached` all = untracked + unstaged + staged changed_filenames = all.split("\n") add_group 'Changed' do |source_file| changed_filenames.select do |changed_filename| source_file.filename.end_with?(changed_filename) end end add_group 'Libraries', 'lib' # Specs are reported on to ensure that all examples are being run and all # lets, befores, afters, etc are being used. add_group 'Specs', 'spec' end ruby-aruba-0.14.14/.travis.yml000066400000000000000000000010411360176066400160500ustar00rootroot00000000000000# In order to install old Rubies, we need to use old Ubuntu distribution. dist: trusty sudo: false language: ruby script: script/test bundler_args: --without development debug cache: bundler rvm: - 1.8.7 - 1.9.2 - 1.9.3 - 2.0.0 - 2.1.8 - 2.2 - 2.3 - 2.4 - 2.5 - 2.6 - 2.7 - jruby-1.7 - jruby-9.0 - jruby-9.1 - jruby-9.2.6.0 - rbx-3 matrix: include: - rvm: jruby-1.7 env: JRUBY_OPTS='--dev --1.8' allow_failures: - rvm: rbx-3 branches: only: - master - still env: - JRUBY_OPTS='--dev' ruby-aruba-0.14.14/.yardopts000066400000000000000000000001611360176066400156070ustar00rootroot00000000000000--output doc/yard --exclude features/ --verbose --markup-provider kramdown --markup markdown - LICENSE README.md ruby-aruba-0.14.14/CHANGELOG.md000066400000000000000000001226171360176066400155650ustar00rootroot00000000000000# CHANGELOG All notable changes to this project will be documented in this file. This project will adhere to [Semantic Versioning][1] once version 1.0.0 is released. This document is formatted according to the principles of [Keep A CHANGELOG][2]. ## [0.14.14] * Support Ruby 2.7 ([#677]) ## [0.14.13] * Loosen dependency on thor ([#676]) * Mark setting of `root_directory` as deprecated in documentation ([#571]) ## [0.14.12] * Loosen dependency on childprocess ([#673]) * Fix Travis build ([#668]) * Handle announcing with DebugProcess ([#664]) ## [0.14.11] * Loosen childprocess dependency ([#658]) * Do not set binmode on output temp files, so automatic line ending conversion works ([#650]) * Improve deprecation suggestions ([#647]) * Backport fixes to code organization, layout and spelling ([#645]) ## [0.14.10] * Backport replacement of problematic AnsiColor module with simple implementation ([#642]) * Undo preprecation of `#all_output`, `#all_stdout`, `#all_stderr` and `#in_current_directory` API methods, as well as of checking the combined output from all commands in cucumber steps ([#638]) * Warn when deprecated files `aruba/in_process` and `aruba/spawn_process` are required ([#639]) * Backport allowing decimal timeout values ([#621]) * Move deprecated cucumber steps into a separate file ([#622]) * Backport renaming of bin/cli in features ([#620]) * Improve build set for CI ([#611]) * Make JRuby before :command helper hook work on the environment the command will actually be run in ([#610], [#612]) * Reorganize spec files to match master branch ([#603]) * Reorganize feature files to match master branch ([#602]) ## [0.14.9] * Formally deprecate `#use_clean_gemset` ([#597]) * Improve deprecation messages ([#601]) * Do not replace entire environment inside `#cd` block ([#604]) ## [0.14.8] * Deprecate `#run` and `#run_simple` in favor of `#run_command` and `#run_command_and_stop` ([#585]) * Update dependencies, most notably loosening the dependency on `childprocess` ([#591]) * Properly warn about deprecated use of the run methods with one positional option ([#588]) ## [0.14.7] * Fix Cucumber steps to use `have_same_file_content_as` matcher ([#572]) * Update dependencies, most notably loosening the dependency on `ffi` ([#581]) ## [0.14.6] * Document and fix `@disable-bundler` hook ([#561]) * Deprecate `have_same_file_content_like` and `a_file_with_same_content_like` in favor of `have_same_file_content_as` and `a_file_with_same_content_as` ([#557]) ## [0.14.5] * Loosen dependency on child_process ([#551]) ## [0.14.4] * Fix command spawning when run in directories with spaces ([#490]) * Ensure setup is still done when using `@no-clobber` ([#529]) * Make `#expand_path` handle absolute paths correctly ([#486]) ## [0.14.3] * Fix path bug ([#422]) * Ensure non-deprecated methods do not use deprecated methods ([#489]) * Update dependency on childprocess ([#516]) * Fix encoding output on JRuby ([#516]) ## [0.14.2] * Handle empty `JRUBY_OPTS` on JRuby ## [0.14.1] * Fixed bug in framework step ## [0.14.0] * Add `/exe` to search path for commands: This is the new default if you setup a project with bundler. * Add some more steps to modify environment ## [0.13.0] * Add two new hooks for rspec and cucumber to make troubleshooting feature files easier ([#338]): * `command_content`: Outputs command content - helpful for scripts * `command_filesystem_status`: Outputs information like group, owner, mode, atime, mtime * Add generator to create ad hoc script file ([#323], [AdrieanKhisbe]) * Colored announcer output similar to the color of `cucumber` tags: cyan * Fixed bug in announcer. It announces infomation several times due to duplicate announce-calls. * Refactorings to internal `#simple_table`-method (internal) * Refactored Announcer, now it supports blocks for announce as well (internal) * Fix circular require warnings ([#339]) * Fix use of old instances variable `@io_wait` ([#341]). Now the default value for `io_wait_timeout` can be set correctly. * Make it possible to announce information on command error, using a new option called `activate_announcer_on_command_failure` ([#335], [njam]) * Re-integrate `event-bus`-library into `aruba`-core ([#342]) ## [0.12.0] * Add matcher to check if a command can be found in PATH ([#336]) * Fixed issue with environment variables set by external libraries ([#321], [#320]) ## [0.11.2] * Fixed problem with positional arguments in `#run_simple()` ([#322]) ## [0.11.1] * Use fixed version of event-bus * Refactored and improved documentation (feature tests) in [#309] ## [0.11.0] * Accidently pushed to rubygems.org - yanked it afterwards ## [0.11.0.pre4] * Fixed syntax for Hash on ruby 1.8.7 * Reorder rubies in .travis.yml ## [0.11.0.pre3] * Fixed syntax for proc on ruby 1.8.7 ## [0.11.0.pre2] * Integrate `EventBus` to decouple announcers from starting, stopping commands etc. This uses nearly the same implementation like `cucumber`. ([#309]) * Starting/Stopping a command directly (`command.start`, `command.stop`) is now reported to the command monitor and `last_command_stopped` is updated correctly * Added `#restart` to `Command` to make it possible to restart a command * Added check to prevent a command which has already been started, to be started again. Otherwise you've got hidden commands which are not stopped after a cucumber/rspec/minitest run. * Adding alot of documentation to `aruba` * Refactored `#run`: Now it wants you to pass a `Hash` containing the options. The old syntax is still supported, but is deprecated. * Added `#find_command` as experimental feature. It searches the started commands from last to first. * Added `be_an_executable` matcher ## [0.11.0.pre] * Set stop signal which should be used to stop a process after a timeout or used to terminate a process. This can be used to stop processes running docker + "systemd". If you send a systemd-enable container SIGINT it will be stopped. * Added a configurable amount of time after a command was started - `startup_wait_time`. Otherwise you get problems when a process takes to long to startup when you run in background and want to sent it a signal. * Replace `` in commandline, e.g. `` [experimental] * Added announce formatter for time spans, e.g. `startup_wait_time` * All process classes, e.g. `BasicProcess`, `SpawnProcess`, etc., are marked as private. Users should use `#run('cmd')` and not use the classes directly. * `rvm`-methods are deprecated. They are too ruby specific. ## [0.10.2] * Fixed problem in regex after merge of step definitions ## [0.10.1] * Merged remove steps for file and directory from 4 into 2 step definitions ## [0.10.0] * Fix `"#exit_timeout" is deprecated` error ([#314]) ## [0.10.0.pre2] * Take over code from `RSpec::Support::ObjectFormatter` since `rspec-support` is not intended for public use. ## [0.10.0.pre] * Add some new steps to make writing documentation easier using "cucumber", "rspec", "minitest" together with "aruba" - see [Feature](features/getting_started/supported_testing_frameworks.feature) for some examples * Write output of commands directly to disk if SpawnProcess is used (see [85d74fcc](https://github.com/cucumber/aruba/commit/85d74fcca4fff4e753776925d8b003cddaa8041d)) * Refactored API of cucumber steps to reduce the need for more methods and make it easier for users to write their own steps ([#306]) * Added `aruba init` to the cli command to setup environment for aruba (issue [#308]) * Added new method `delete_environment_variable` to remove environment variable * Added work around because of method name conflict between Capybara and RSpec ([1939c404](https://github.com/cucumber/aruba/commit/1939c4049d5195ffdd967485f50119bdd86e98a0)) ## [0.9.0] * Fix feature test * Fix ordering in console * Fix bug in console handling SIGINT * Deprecated Aruba/Reporting before we remove it ## [0.9.0.pre2] * Redefine `#to_s` and `#inspect` for BasicProcess to reduce the sheer amount of information, if a command produces a lot of output * Added new matcher `#all_objects` to check if an object is included + an error message for failures which is similar to the `#all`-matcher of `RSpec` * Add `have_output`-, `have_output_on_stderr`, `have_output_on_stdout`-matchers * Replace all `assert_*` and `check_*`-methods through expectations * Add hook `@announce-output` to output both, stderr and stdout * Add a lot of documentation ([#260]) * Replace `#last_command` through `#last_command_started` and `#last_command_stopped` to make it more explicit * Improve syntax highlighting in cucumber feature tests by adding programming language to `"""`-blocks * Rename tags `@ignore-*` to `@unsupported-on-*` * Introduce our own `BaseMatcher`-class to remove the dependency to `RSpec`'s private matcher APIs * Now we make the process started via `SpawnProcess` the leader of the group to kill all sub-processes more reliably ## [0.9.0.pre] * Improve documentation for filesystem api and move it to feature tests * Add logger to aruba. Its output can be captured by rspec. * Fix incorrect deprecation message for `check_file_presence` ([#292]) * Fix for Gemfile excludes windows for many gems ([#282]) * Make feature tests compatible with ruby 1.9.2 * Gather disk usage for file(s) ([#294]) * Replace `keep_ansi` config option by `remove_ansi_escape_sequences` option * Split up `#unescape` into `#extract_text` and `#unescape_text` * Use `UnixPlatform` and `WindowsPlatform` to make code for different platforms maintainable * Work around `ENV`-bug in JRuby by using `#dup` on `ENV.to_h` ([jruby/jruby#316]) * Speed up test on JRuby by using `--dev`-flag * Work around problems when copying files with `cp` on MRI-ruby 1.9.2 * Add `cmd.exe /c` for SpawnProcess on Windows ([#302]) * Split up `#which` for Windows and Unix/Linux ([#304]) * Add `aruba console` command to play around with aruba ([#305]) ## [0.8.1] * Fix problem if working directory of aruba does not exist ([#286]) * Re-add removed method `only_processes` * Fixed problem with last exit status * Added appveyor to run tests of aruba on Windows ([#287]) * Make the home directory configurable and use Around/around-hook to apply it * Add announcer to output the full environment before a command is run * Use `prepend_environment_variable` to modify PATH for rspec integration * Add `VERSION` constant to aruba and use it for code which should be activated on >= 1.0.0 ## [0.8.0] * Build with cucumber 1.3.x on ruby 1.8.7, with cucumber 2.x on all other platforms * Fixed bugs in aruba's cucumber steps * Disable use of `win32/file` * Fixed bug in `in_current_dir*` not returning the result of the block * Fixed checks for file content * Fixed selectors for DebugProcess and InProcess to support sub-classes as well ## [0.8.0.pre3] * Depend on cucumber 1.3.x for compatibility on ruby 1.8.7 * Change PWD and OLDPW when `cd('path') {}` is used within that block * Make nesting of `cd` possible * Make `run` inside `cd` possible * Fixed some bugs * Move `Aruba.proces = InProcess|SpawnProcess|DebugProcess` to `aruba.config` * Deprecate direct use of `InProcess|SpawnProcess|DebugProcess`. Now `Command` needs to be used * Add new configuration options `command_launcher` and `main_klass` for deprecation of old-style `Aruba.process = `, `:spawn` is the default value for the `command_launcher`-option * Added checks for version of `rspec-expectations` to support older `rspec` versions like `2.11` * Now each `path/to/dir` pushed to `aruba.current_directory` is `pop`ed as whole * Make testing of `aruba.current_directory` easier by supporting `end_with?` and `start_with?` ## [0.8.0.pre2] * Relax requirement on rspec-expectations (3.3 -> 2.11) ## [0.8.0.pre] * Make aruba compatible with "ruby 1.8.7" and "ruby 1.9.3" again ([#279]) * Move more and more documentation to cucumber steps ([#268]) * Refactoring of test suits, now rspec tests run randomly * Move Aruba constants to configuration class ([#271]) * Added runtime configuration via `aruba.config` which is reset for each test run * Refactored hooks: now there are `after()` and `before()`-hooks, old `before_cmd`-hook is still working, but is deprecated, added new `after(:command)`-hook. * Refactored jruby-startup helper * Cleanup API by moving deprecated methods to separate class * Cleanup Core API - reduced to `cd`, `expand_path`, `setup_aruba` and use `expand_path` wherever possible ([#253]) * Better isolation for environment variable manipulation - really helpful from 1.0.0 on * Move configuration files like `jruby.rb` to `aruba/config/`-directory * Change default exit timeout to 15 seconds to work around long running processes on travis * Use of instance variables like `@aruba_timeout_seconds` or `@aruba_io_wait_seconds` are deprecated. Use `Aruba.configure do |config| config.exit_timeout = 10` etc. for this. ## [0.7.4] * Really Fixed post install message ## [0.7.3] * Fixed post install message ## [0.7.2] * Do not trigger Announcer API deprecation warning ([#277]) ## [0.7.1] * Do not break if `@interactive` is used ## [0.7.0] * Introducing `root_directory` ([#232]) * Introducing fixtures directory ([#224]) * Make sure a file/directory does not exist + Cleanup named file/directory steps ([#234]) * Make matcher `have_permisions` public and add documentation ([#239]) * Added matcher for file content ([#238]) * Add rspec integrator ([#244]) * Deprecate `_file` and `_directory` in method names ([#243]) * Improve development environment ([#240]) * Cleanup process management ([#257]) * Make path content available through matchers and api metchods ([#250]) * Refactor announcer to support user defined announce channels (fixes [#267]) * `InProcess` requires that the working directory is determined on runtime not no loadtime ## [0.6.2] * Fixed minor [#223]) * Added support for ruby 2.1.3 -- 2.1.5 * Added support for comparison to a fixture file ## [0.6.1] * Added support for ruby 2.1.2 * Added support for `~` expansion * Added support for `with_env` ## [0.6.0] * Dropped support for ruby 1.8 * Added support for ruby 2.1.0 and 2.1.1 * Added rspec 3.0.0 support ## [0.5.4] * Added support for piping in files ([#154], [maxmeyer], dg-vrnetze) * Added cucumber steps for environment variables ([#156], dg-vrnetze) * Added support for file mode ([#157], [maxmeyer], dg-vrnetze) ## [0.5.3] * Fix for UTF-8 support ([#151], [mattwynne], [jarl-dk]) * Fix for open file leakage ([#150], [JonRowe]) ## [0.5.2] * Plugin API for greater speed. Test Ruby CLI programs in a single Ruby process ([#148], [aslakhellesoy]) * Fix memory leak when several commands are executed in a single run ([#144], [y-higuchi]) ## [0.5.1] * Individual timeout settings when running commands ([#124], [jarl-dk]) * Varous fixes for JRuby tests, should now work on more versions of JRuby ## [0.5.0] * Add `#with_file_content` to the DSL ([#110], [argent-smith]) * Make JRuby performance tweaks optional ([#102], [taylor], [#125], [alindeman]) * Add `assert_partial_output_interactive` so you can peek at the output from a running process ([#104], [taylor]) * Add `assert_not_matching_output` ([#111], [argent-smith]) * Add `remove_dir` ([#121], [LTe]) ## [0.4.11] * Fix duplicated output ([#91], [robertwahler], [mattwynne]) * Fix Gemspec format ([#101], [mattwynne]) ## [0.4.10] * Fix broken JRuby file following rename of hook ([tdreyno]) * Add terminate method to API ([taylor]) ## [0.4.9] * Rename `before_run` hook to `before_cmd` ([mattwynne]) * Fix 1.8.7 compatibility ([#95], [davetron5000]) ## [0.4.8] * Add `before_run` hook ([mattwynne]) * Add JRuby performance tweaks ([#93], [myronmarston], [mattwynne]) * Invalid/Corrupt spec file for 0.4.7 - undefined method call for nil:Nilclass ([#47], [aslakhellesoy]) ## [0.4.7] * Remove rdiscount dependency. ([#85], [aslakhellesoy]) * Pin to ffi 1.0.9 since 1.0.10 is broken. ([aslakhellesoy]) * Added file size specific steps to the Aruba API. ([#89], [hectcastro]) ## [0.4.6] * Upgraded deps to latest gems. ([aslakhellesoy]) * Added Regexp support to `Aruba::Api#assert_no_partial_output`. ([aslakhellesoy]) ## [0.4.5] * Better assertion failure message when an exit code is not as expected. ([mattwynne]) ## [0.4.4] * Fix various bugs with interative processes. ([mattwynne]) ## [0.4.3] * Aruba reporting now creates an index file for reports, linking them all together. ([aslakhellesoy]) ## [0.4.2] * Appending to a file creates the parent directory if it doesn't exist. ([aslakhellesoy]) ## [0.4.1] * Move more logic into Aruba::Api ([aslakhellesoy]) ## [0.4.0] * New, awesome HTML reporting feature that captures everything that happens during a scenario. ([aslakhellesoy]) * ANSI escapes from output are stripped by default. Override this with the @ansi tag. ([aslakhellesoy]) ## [0.3.7] * Make `Aruba::Api#get_process` return the last executed process with passed cmd ([greyblake]) * Replace announce with puts to comply with cucumber 0.10.6 ([aslakhellesoy]) * Fix childprocess STDIN to be synchronous ([#40], [#71], [lithium3141]) ## [0.3.6] * Changed default value of `@aruba_timeout_seconds` from 1 to 3. ([aslakhellesoy]) * Separate hooks and steps to make it easier to build your own steps on top of Aruba's API ([msassak]) * `@no-clobber` to prevent cleanup before each scenario ([msassak]) ## [0.3.5] * Store processes in an array to ensure order of operations on Ruby 1.8.x ([#48] [msassak]) ## [0.3.4] * Use backticks (\`) instead of quotes (") to specify command line. Quote still works, but is deprecated. ([aeden], [aslakhellesoy]) ## [0.3.3] * Updated RSpec development requirement to 2.5 ([rspeicher], [msassak], [aslakhellesoy]) * Updated RubyGems dependency to 1.6.1 ([rspeicher]) ## [0.3.2] * Wrong number of args in the When I overwrite step ([aslakhellesoy]) ## [0.3.1] * Broken 0.3.0 release ([#43], [#44], [msassak]) * Quotes (") and newline (\n) in step arguments are no longer unescaped. ([aslakhellesoy]) ## [0.3.0] * Remove latency introduced in the 0.2.8 release ([#42], [msassak]) * New stepdef `Then /^the stdout should contain:$/ do |partial_output|` ([aslakhellesoy]) * Quotes (") and newline (\n) in step arguments no longer need to be backslash-escaped. ([aslakhellesoy]) ## [0.2.8] * Replaced `background_process` with `childprocess`, a cross-platform process control library. This will allow Aruba to run on Windows and JRuby in addition to \*nix MRI. ([#16], [#27], [#31], [msassak], [jarib], [mattwynne], [aknuds1]) ## [0.2.7] * Upgrade to Cucumber 0.10.0. ([aslakhellesoy]) * `require 'aruba'` does nothing - you have to `require 'aruba/cucumber'` now. This is to prevent bundler from loading it when we don't want to. ([aslakhellesoy]) * Outputting a lot of data causes process to time out ([#30], [msassak]) ## [0.2.6] * You can set `@aruba_timeout_seconds` in a Before hook to tell Aruba to wait for a process to complete. Default: 1 second. ([aslakhellesoy]) * Fixed small bug in `/^the stdout should contain exactly:$/` ([aslakhellesoy]) ## [0.2.5] * Added 'a file named "whatever" should (not) exist' ([rspeicher]) * Added 'a directory named "whatever" should (not) exist' ([rspeicher]) * Added /^the stderr should contain exactly:"$/ ([aslakhellesoy]) * Added /^the stdout should contain exactly:"$/ ([aslakhellesoy]) * Added /it should pass with exactly:/ ([aslakhellesoy]) * @announce, @announce-dir and @announce-cmd for interactive processes ([msassak]) * Add step defs for detecting output, stdout and stderr by process name ([msassak]) * Stop all processes before verifying filesystem changes to ensure async operations are complete ([#17], [msassak]) * Outputting large amounts of data causes run steps to hang ([#18], [msassak]) ## [0.2.4] * Added step definitions for removing files and checking presence of a single file. ([aslakhellesoy]) ## [0.2.3] * Directory should not exist gives false-positive ([#13], [#15], [nruth]) * Added step definitions for comparing file contents with regexps ([#9], [aslakhellesoy]) * Always put ./bin at the beginning of $PATH to make it easier to run own executables ([#7], [aslakhellesoy]) * Communication with interactive processes ([#4], [msassak]) * Remove hyphens separating stdout and stderr ([aknuds1]) ## [0.2.2] * Added a @bin tag that sets up './bin' first on the path ([aslakhellesoy]) * Richer API making aruba easier to use from Ruby code. (Mark Nijhof, [aslakhellesoy]) * No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead. (Mark Nijhof, [aslakhellesoy]) ## [0.2.1] * Always compare with RSpec should =~ instead of should match. This gives a diff when there is no match. ([aslakhellesoy]) ## [0.2.0] * Added aruba.gemspec. ([dchelimsky]) * Several step definitions regarding output have changed. ([#1], [aslakhellesoy]) - /^I should see "([^\"]*)"$/ + /^the output should contain "([^"]*)"$/ - /^I should not see "([^\"]*)"$/ + /^the output should not contain "([^"]*)"$/ - /^I should see:$/ + /^the output should contain:$/ - /^I should not see:$/ + /^the output should not contain:$/ - /^I should see exactly "([^\"]*)"$/ + /^the output should contain exactly "([^"]*)"$/ - /^I should see exactly:$/ + /^the output should contain exactly:$/ - /^I should see matching \/([^\/]*)\/$/ + /^the output should match \/([^\/]*)\/$/ - /^I should see matching:$/ + /^the output should match:$/ ## [0.1.9] * If the GOTGEMS environment variable is set, bundler won't run (faster). ([aslakhellesoy]) ## [0.1.8] * Use // instead of "" for "I should see matching" step. ([aslakhellesoy]) * Replace rvm gemset character '%' with '@' for rvm 0.1.24 ([#5], Ashley Moran) * Support gem bundler, making it easier to specify gems. ([aslakhellesoy]) ## [0.1.7] * New @announce-stderr tag ([robertwahler]) * New "I should see matching" steps using Regexp ([robertwahler]) ## [0.1.6] * `When /^I successfully run "(.*)"$/` now prints the combined output if exit status is not 0. ([aslakhellesoy]) * Add bundle to list of common ruby scripts. ([aslakhellesoy]) ## [0.1.5] * Added ability to map rvm versions to a specific version with config/aruba-rvm.yml. ([aslakhellesoy]) * Check for presence of files. ([aslakhellesoy]) * Allow specification of rvm gemsets. ([aslakhellesoy]) * Detect ruby commands and use current ruby when rvm is not explicitly used. ([aslakhellesoy]) * Added support for rvm, making it possible to choose Ruby interpreter. ([aslakhellesoy]) * Added @announce-cmd, @announce-stdout and @announce tags, useful for seeing what's executed and outputted. ([aslakhellesoy]) ## [0.1.4] * New step definition for appending to a file ([aslakhellesoy]) ## [0.1.3] * New step definition for cd (change directory) ([aslakhellesoy]) ## [0.1.2] * Separated API from Cucumber step definitions, makes this usable without Cucumber. ([aslakhellesoy]) ## [0.1.1] * Better Regexp escaping ([dchelimsky]) ## [0.1.0] * First release ([dchelimsky] and [aslakhellesoy]) [AdrieanKhisbe]: https://github.com/AdrieanKhisbe [LTe]: https://github.com/LTe [aeden]: https://github.com/aeden [aknuds1]: https://github.com/aknuds1 [alindeman]: https://github.com/alindeman [aslakhellesoy]: https://github.com/aslakhellesoy [davetron5000]: https://github.com/davetron5000 [dchelimsky]: https://github.com/dchelimsky [doudou]: https://github.com/doudou [e2]: https://github.com/e2 [greyblake]: https://github.com/greyblake [hectcastro]: https://github.com/hectcastro [jarib]: https://github.com/jarib [jaysonesmith]: https://github.com/jaysonesmith [JonRowe]: https://github.com/JonRowe [lithium3141]: https://github.com/lithium3141 [mattwynne]: https://github.com/mattwynne [maxmeyer]: https://github.com/maxmeyer [msassak]: https://github.com/msassak [mvz]: https://github.com/mvz [myronmarston]: https://github.com/myronmarston [njam]: https://github.com/njam [nruth]: https://github.com/nruth [olleolleolle]: https://github.com/olleolleolle [richardxia]: https://github.com/richardxia [robertwahler]: https://github.com/robertwahler [roschaefer]: https://github.com/roschaefer [rspeicher]: https://github.com/rspeicher [rubbish]: https://github.com/rubbish [scottj97]: https://github.com/scottj97 [stamhankar999]: https://github.com/stamhankar999 [taylor]: https://github.com/taylor [tdreyno]: https://github.com/tdreyno [xtrasimplicity]: https://github.com/xtrasimplicity [#677]: https://github.com/cucumber/aruba/pull/677 [#676]: https://github.com/cucumber/aruba/pull/676 [#673]: https://github.com/cucumber/aruba/pull/673 [#668]: https://github.com/cucumber/aruba/pull/668 [#664]: https://github.com/cucumber/aruba/pull/664 [#658]: https://github.com/cucumber/aruba/pull/658 [#650]: https://github.com/cucumber/aruba/pull/650 [#647]: https://github.com/cucumber/aruba/pull/647 [#645]: https://github.com/cucumber/aruba/pull/645 [#642]: https://github.com/cucumber/aruba/pull/642 [#639]: https://github.com/cucumber/aruba/pull/639 [#638]: https://github.com/cucumber/aruba/pull/638 [#622]: https://github.com/cucumber/aruba/pull/622 [#621]: https://github.com/cucumber/aruba/pull/621 [#620]: https://github.com/cucumber/aruba/pull/620 [#612]: https://github.com/cucumber/aruba/pull/612 [#611]: https://github.com/cucumber/aruba/pull/611 [#610]: https://github.com/cucumber/aruba/pull/610 [#604]: https://github.com/cucumber/aruba/pull/604 [#603]: https://github.com/cucumber/aruba/pull/603 [#602]: https://github.com/cucumber/aruba/pull/602 [#601]: https://github.com/cucumber/aruba/pull/601 [#597]: https://github.com/cucumber/aruba/pull/597 [#591]: https://github.com/cucumber/aruba/pull/591 [#588]: https://github.com/cucumber/aruba/pull/588 [#585]: https://github.com/cucumber/aruba/pull/585 [#582]: https://github.com/cucumber/aruba/pull/582 [#572]: https://github.com/cucumber/aruba/pull/572 [#571]: https://github.com/cucumber/aruba/pull/571 [#561]: https://github.com/cucumber/aruba/pull/561 [#557]: https://github.com/cucumber/aruba/pull/557 [#551]: https://github.com/cucumber/aruba/pull/551 [#548]: https://github.com/cucumber/aruba/pull/548 [#546]: https://github.com/cucumber/aruba/pull/546 [#544]: https://github.com/cucumber/aruba/pull/544 [#543]: https://github.com/cucumber/aruba/pull/543 [#542]: https://github.com/cucumber/aruba/pull/542 [#541]: https://github.com/cucumber/aruba/pull/541 [#540]: https://github.com/cucumber/aruba/pull/540 [#537]: https://github.com/cucumber/aruba/pull/537 [#536]: https://github.com/cucumber/aruba/pull/536 [#535]: https://github.com/cucumber/aruba/pull/535 [#532]: https://github.com/cucumber/aruba/pull/532 [#530]: https://github.com/cucumber/aruba/pull/530 [#529]: https://github.com/cucumber/aruba/pull/529 [#528]: https://github.com/cucumber/aruba/pull/528 [#523]: https://github.com/cucumber/aruba/pull/523 [#522]: https://github.com/cucumber/aruba/pull/522 [#520]: https://github.com/cucumber/aruba/pull/520 [#517]: https://github.com/cucumber/aruba/pull/517 [#516]: https://github.com/cucumber/aruba/pull/516 [#515]: https://github.com/cucumber/aruba/pull/515 [#514]: https://github.com/cucumber/aruba/pull/514 [#512]: https://github.com/cucumber/aruba/pull/512 [#511]: https://github.com/cucumber/aruba/pull/511 [#510]: https://github.com/cucumber/aruba/pull/510 [#509]: https://github.com/cucumber/aruba/pull/509 [#508]: https://github.com/cucumber/aruba/pull/508 [#507]: https://github.com/cucumber/aruba/pull/507 [#504]: https://github.com/cucumber/aruba/pull/504 [#498]: https://github.com/cucumber/aruba/pull/498 [#497]: https://github.com/cucumber/aruba/pull/497 [#495]: https://github.com/cucumber/aruba/pull/495 [#494]: https://github.com/cucumber/aruba/pull/494 [#493]: https://github.com/cucumber/aruba/pull/493 [#491]: https://github.com/cucumber/aruba/pull/491 [#490]: https://github.com/cucumber/aruba/pull/490 [#489]: https://github.com/cucumber/aruba/pull/489 [#488]: https://github.com/cucumber/aruba/pull/488 [#487]: https://github.com/cucumber/aruba/pull/487 [#486]: https://github.com/cucumber/aruba/pull/486 [#483]: https://github.com/cucumber/aruba/pull/483 [#482]: https://github.com/cucumber/aruba/pull/482 [#481]: https://github.com/cucumber/aruba/pull/481 [#476]: https://github.com/cucumber/aruba/pull/476 [#475]: https://github.com/cucumber/aruba/pull/475 [#471]: https://github.com/cucumber/aruba/pull/471 [#466]: https://github.com/cucumber/aruba/pull/466 [#464]: https://github.com/cucumber/aruba/pull/464 [#462]: https://github.com/cucumber/aruba/pull/462 [#461]: https://github.com/cucumber/aruba/pull/461 [#460]: https://github.com/cucumber/aruba/pull/460 [#459]: https://github.com/cucumber/aruba/pull/459 [#457]: https://github.com/cucumber/aruba/pull/457 [#456]: https://github.com/cucumber/aruba/pull/456 [#454]: https://github.com/cucumber/aruba/pull/454 [#452]: https://github.com/cucumber/aruba/pull/452 [#451]: https://github.com/cucumber/aruba/issues/451 [#449]: https://github.com/cucumber/aruba/issues/449 [#447]: https://github.com/cucumber/aruba/issues/447 [#445]: https://github.com/cucumber/aruba/issues/445 [#444]: https://github.com/cucumber/aruba/issues/444 [#442]: https://github.com/cucumber/aruba/issues/442 [#439]: https://github.com/cucumber/aruba/issues/439 [#438]: https://github.com/cucumber/aruba/issues/438 [#436]: https://github.com/cucumber/aruba/issues/436 [#433]: https://github.com/cucumber/aruba/issues/433 [#427]: https://github.com/cucumber/aruba/issues/427 [#422]: https://github.com/cucumber/aruba/issues/422 [#398]: https://github.com/cucumber/aruba/issues/398 [#390]: https://github.com/cucumber/aruba/issues/390 [#389]: https://github.com/cucumber/aruba/issues/389 [#388]: https://github.com/cucumber/aruba/issues/388 [#387]: https://github.com/cucumber/aruba/issues/387 [#385]: https://github.com/cucumber/aruba/issues/385 [#382]: https://github.com/cucumber/aruba/issues/382 [#376]: https://github.com/cucumber/aruba/issues/376 [#375]: https://github.com/cucumber/aruba/issues/375 [#372]: https://github.com/cucumber/aruba/issues/372 [#366]: https://github.com/cucumber/aruba/issues/366 [#359]: https://github.com/cucumber/aruba/issues/359 [#358]: https://github.com/cucumber/aruba/issues/358 [#357]: https://github.com/cucumber/aruba/issues/357 [#353]: https://github.com/cucumber/aruba/issues/353 [#352]: https://github.com/cucumber/aruba/issues/352 [#349]: https://github.com/cucumber/aruba/issues/349 [#347]: https://github.com/cucumber/aruba/issues/347 [#342]: https://github.com/cucumber/aruba/issues/342 [#341]: https://github.com/cucumber/aruba/issues/341 [#339]: https://github.com/cucumber/aruba/issues/339 [#338]: https://github.com/cucumber/aruba/issues/338 [#336]: https://github.com/cucumber/aruba/issues/336 [#335]: https://github.com/cucumber/aruba/issues/335 [#323]: https://github.com/cucumber/aruba/issues/323 [#322]: https://github.com/cucumber/aruba/issues/322 [#321]: https://github.com/cucumber/aruba/issues/321 [#320]: https://github.com/cucumber/aruba/issues/320 [#314]: https://github.com/cucumber/aruba/issues/314 [#309]: https://github.com/cucumber/aruba/issues/309 [#308]: https://github.com/cucumber/aruba/issues/308 [#306]: https://github.com/cucumber/aruba/issues/306 [#305]: https://github.com/cucumber/aruba/issues/305 [#304]: https://github.com/cucumber/aruba/issues/304 [#302]: https://github.com/cucumber/aruba/issues/302 [#294]: https://github.com/cucumber/aruba/issues/294 [#292]: https://github.com/cucumber/aruba/issues/292 [#287]: https://github.com/cucumber/aruba/issues/287 [#286]: https://github.com/cucumber/aruba/issues/286 [#282]: https://github.com/cucumber/aruba/issues/282 [#279]: https://github.com/cucumber/aruba/issues/279 [#277]: https://github.com/cucumber/aruba/issues/277 [#271]: https://github.com/cucumber/aruba/issues/271 [#268]: https://github.com/cucumber/aruba/issues/268 [#267]: https://github.com/cucumber/aruba/issues/267 [#260]: https://github.com/cucumber/aruba/issues/260 [#257]: https://github.com/cucumber/aruba/issues/257 [#253]: https://github.com/cucumber/aruba/issues/253 [#250]: https://github.com/cucumber/aruba/issues/250 [#244]: https://github.com/cucumber/aruba/issues/244 [#243]: https://github.com/cucumber/aruba/issues/243 [#240]: https://github.com/cucumber/aruba/issues/240 [#239]: https://github.com/cucumber/aruba/issues/239 [#238]: https://github.com/cucumber/aruba/issues/238 [#234]: https://github.com/cucumber/aruba/issues/234 [#232]: https://github.com/cucumber/aruba/issues/232 [#224]: https://github.com/cucumber/aruba/issues/224 [#223]: https://github.com/cucumber/aruba/issues/223 [#157]: https://github.com/cucumber/aruba/issues/157 [#156]: https://github.com/cucumber/aruba/issues/156 [#154]: https://github.com/cucumber/aruba/issues/154 [#151]: https://github.com/cucumber/aruba/issues/151 [#150]: https://github.com/cucumber/aruba/issues/150 [#148]: https://github.com/cucumber/aruba/issues/148 [#144]: https://github.com/cucumber/aruba/issues/144 [#125]: https://github.com/cucumber/aruba/issues/125 [#124]: https://github.com/cucumber/aruba/issues/124 [#121]: https://github.com/cucumber/aruba/issues/121 [#111]: https://github.com/cucumber/aruba/issues/111 [#110]: https://github.com/cucumber/aruba/issues/110 [#104]: https://github.com/cucumber/aruba/issues/104 [#102]: https://github.com/cucumber/aruba/issues/102 [#101]: https://github.com/cucumber/aruba/issues/101 [#95]: https://github.com/cucumber/aruba/issues/95 [#93]: https://github.com/cucumber/aruba/issues/93 [#91]: https://github.com/cucumber/aruba/issues/91 [#89]: https://github.com/cucumber/aruba/issues/89 [#85]: https://github.com/cucumber/aruba/issues/85 [#71]: https://github.com/cucumber/aruba/issues/71 [#48]: https://github.com/cucumber/aruba/issues/48 [#47]: https://github.com/cucumber/aruba/issues/47 [#44]: https://github.com/cucumber/aruba/issues/44 [#43]: https://github.com/cucumber/aruba/issues/43 [#42]: https://github.com/cucumber/aruba/issues/42 [#40]: https://github.com/cucumber/aruba/issues/40 [#31]: https://github.com/cucumber/aruba/issues/31 [#30]: https://github.com/cucumber/aruba/issues/30 [#27]: https://github.com/cucumber/aruba/issues/27 [#18]: https://github.com/cucumber/aruba/issues/18 [#17]: https://github.com/cucumber/aruba/issues/17 [#16]: https://github.com/cucumber/aruba/issues/16 [#15]: https://github.com/cucumber/aruba/issues/15 [#13]: https://github.com/cucumber/aruba/issues/13 [#9]: https://github.com/cucumber/aruba/issues/9 [#7]: https://github.com/cucumber/aruba/issues/7 [#5]: https://github.com/cucumber/aruba/issues/5 [#4]: https://github.com/cucumber/aruba/issues/4 [#1]: https://github.com/cucumber/aruba/issues/1 [cucumber/cucumber#521]: https://github.com/cucumber/cucumber/issues/521 [jruby/jruby#316]: https://github.com/jruby/jruby/issues/316 [0.14.14]: https://github.com/cucumber/aruba/compare/v0.14.13...v0.14.14 [0.14.13]: https://github.com/cucumber/aruba/compare/v0.14.12...v0.14.13 [0.14.12]: https://github.com/cucumber/aruba/compare/v0.14.11...v0.14.12 [0.14.11]: https://github.com/cucumber/aruba/compare/v0.14.10...v0.14.11 [0.14.10]: https://github.com/cucumber/aruba/compare/v0.14.9...v0.14.10 [0.14.9]: https://github.com/cucumber/aruba/compare/v0.14.8...v0.14.9 [0.14.8]: https://github.com/cucumber/aruba/compare/v0.14.7...v0.14.8 [0.14.7]: https://github.com/cucumber/aruba/compare/v0.14.6...v0.14.7 [0.14.6]: https://github.com/cucumber/aruba/compare/v0.14.5...v0.14.6 [0.14.5]: https://github.com/cucumber/aruba/compare/v0.14.4...v0.14.5 [0.14.4]: https://github.com/cucumber/aruba/compare/v0.14.3...v0.14.4 [0.14.3]: https://github.com/cucumber/aruba/compare/v0.14.2...v0.14.3 [0.14.2]: https://github.com/cucumber/aruba/compare/v0.14.1...v0.14.2 [0.14.1]: https://github.com/cucumber/aruba/compare/v0.14.0...v0.14.1 [0.14.0]: https://github.com/cucumber/aruba/compare/v0.13.0...v0.14.0 [0.13.0]: https://github.com/cucumber/aruba/compare/v0.12.0...v0.13.0 [0.12.0]: https://github.com/cucumber/aruba/compare/v0.11.2...v0.12.0 [0.11.2]: https://github.com/cucumber/aruba/compare/v0.11.1...v0.11.2 [0.11.1]: https://github.com/cucumber/aruba/compare/v0.11.0...v0.11.1 [0.11.0]: https://github.com/cucumber/aruba/compare/v0.11.0.pre4...v0.11.0 [0.11.0.pre4]: https://github.com/cucumber/aruba/compare/v0.11.0.pre3...v0.11.0.pre4 [0.11.0.pre3]: https://github.com/cucumber/aruba/compare/v0.11.0.pre2...v0.11.0.pre3 [0.11.0.pre2]: https://github.com/cucumber/aruba/compare/v0.11.0.pre...v0.11.0.pre2 [0.11.0.pre]: https://github.com/cucumber/aruba/compare/v0.10.2...v0.11.0.pre [0.10.2]: https://github.com/cucumber/aruba/compare/v0.10.1...v0.10.2 [0.10.1]: https://github.com/cucumber/aruba/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/cucumber/aruba/compare/v0.10.0.pre2...v0.10.0 [0.10.0.pre2]: https://github.com/cucumber/aruba/compare/v0.10.0.pre...v0.10.0.pre2 [0.10.0.pre]: https://github.com/cucumber/aruba/compare/v0.9.0...v0.10.0 [0.9.0]: https://github.com/cucumber/aruba/compare/v0.9.0.pre2...v0.9.0 [0.9.0.pre2]: https://github.com/cucumber/aruba/compare/v0.9.0.pre...v0.9.0.pre2 [0.9.0.pre]: https://github.com/cucumber/aruba/compare/v0.8.1...v0.9.0.pre [0.8.1]: https://github.com/cucumber/aruba/compare/v0.8.0...v0.8.1 [0.8.0]: https://github.com/cucumber/aruba/compare/v0.8.0.pre3...v0.8.0 [0.8.0.pre3]: https://github.com/cucumber/aruba/compare/v0.8.0.pre2...v0.8.0.pre3 [0.8.0.pre2]: https://github.com/cucumber/aruba/compare/v0.8.0...v0.8.0.pre2 [0.8.0.pre]: https://github.com/cucumber/aruba/compare/v0.7.4...v0.8.0.pre [0.7.4]: https://github.com/cucumber/aruba/compare/v0.7.2...v0.7.4 [0.7.3]: https://github.com/cucumber/aruba/compare/v0.7.2...v0.7.3 [0.7.2]: https://github.com/cucumber/aruba/compare/v0.7.1...v0.7.2 [0.7.1]: https://github.com/cucumber/aruba/compare/v0.7.0...v0.7.1 [0.7.0]: https://github.com/cucumber/aruba/compare/v0.6.2...v0.7.0 [0.6.2]: https://github.com/cucumber/aruba/compare/v0.6.1...v0.6.2 [0.6.1]: https://github.com/cucumber/aruba/compare/v0.6.0...v0.6.1 [0.6.0]: https://github.com/cucumber/aruba/compare/v0.5.4...v0.6.0 [0.5.4]: https://github.com/cucumber/aruba/compare/v0.5.3...v0.5.4 [0.5.3]: https://github.com/cucumber/aruba/compare/v0.5.2...v0.5.3 [0.5.2]: https://github.com/cucumber/aruba/compare/v0.5.1...v0.5.2 [0.5.1]: https://github.com/cucumber/aruba/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/cucumber/aruba/compare/v0.4.10...v0.5.0 [0.4.11]: https://github.com/cucumber/aruba/compare/v0.4.10...v0.4.11 [0.4.10]: https://github.com/cucumber/aruba/compare/v0.4.9...v0.4.10 [0.4.9]: https://github.com/cucumber/aruba/compare/v0.4.8...v0.4.9 [0.4.8]: https://github.com/cucumber/aruba/compare/v0.4.7...v0.4.8 [0.4.7]: https://github.com/cucumber/aruba/compare/v0.4.6...v0.4.7 [0.4.6]: https://github.com/cucumber/aruba/compare/v0.4.5...v0.4.6 [0.4.5]: https://github.com/cucumber/aruba/compare/v0.4.4...v0.4.5 [0.4.4]: https://github.com/cucumber/aruba/compare/v0.4.3...v0.4.4 [0.4.3]: https://github.com/cucumber/aruba/compare/v0.4.2...v0.4.3 [0.4.2]: https://github.com/cucumber/aruba/compare/v0.4.1...v0.4.2 [0.4.1]: https://github.com/cucumber/aruba/compare/v0.4.0...v0.4.1 [0.4.0]: https://github.com/cucumber/aruba/compare/v0.3.7...v0.4.0 [0.3.7]: https://github.com/cucumber/aruba/compare/v0.3.6...v0.3.7 [0.3.6]: https://github.com/cucumber/aruba/compare/v0.3.5...v0.3.6 [0.3.5]: https://github.com/cucumber/aruba/compare/v0.3.4...v0.3.5 [0.3.4]: https://github.com/cucumber/aruba/compare/v0.3.3...v0.3.4 [0.3.3]: https://github.com/cucumber/aruba/compare/v0.3.2...v0.3.3 [0.3.2]: https://github.com/cucumber/aruba/compare/v0.3.1...v0.3.2 [0.3.1]: https://github.com/cucumber/aruba/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/cucumber/aruba/compare/v0.2.8...v0.3.0 [0.2.8]: https://github.com/cucumber/aruba/compare/v0.2.7...v0.2.8 [0.2.7]: https://github.com/cucumber/aruba/compare/v0.2.6...v0.2.7 [0.2.6]: https://github.com/cucumber/aruba/compare/v0.2.5...v0.2.6 [0.2.5]: https://github.com/cucumber/aruba/compare/v0.2.4...v0.2.5 [0.2.4]: https://github.com/cucumber/aruba/compare/v0.2.3...v0.2.4 [0.2.3]: https://github.com/cucumber/aruba/compare/v0.2.2...v0.2.3 [0.2.2]: https://github.com/cucumber/aruba/compare/v0.2.1...v0.2.2 [0.2.1]: https://github.com/cucumber/aruba/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/cucumber/aruba/compare/v0.1.9...v0.2.0 [0.1.9]: https://github.com/cucumber/aruba/compare/v0.1.8...v0.1.9 [0.1.8]: https://github.com/cucumber/aruba/compare/v0.1.7...v0.1.8 [0.1.7]: https://github.com/cucumber/aruba/compare/v0.1.6...v0.1.7 [0.1.6]: https://github.com/cucumber/aruba/compare/v0.1.5...v0.1.6 [0.1.5]: https://github.com/cucumber/aruba/compare/v0.1.4...v0.1.5 [0.1.4]: https://github.com/cucumber/aruba/compare/v0.1.3...v0.1.4 [0.1.3]: https://github.com/cucumber/aruba/compare/v0.1.2...v0.1.3 [0.1.2]: https://github.com/cucumber/aruba/compare/v0.1.1...v0.1.2 [0.1.1]: https://github.com/cucumber/aruba/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/cucumber/aruba/compare/ed6a175d23aaff62dbf355706996f276f304ae8b...v0.1.1 [1]: http://semver.org [2]: http://keepachangelog.com [3]: https://github.com/cucumber/aruba/blob/master/CONTRIBUTING.md ruby-aruba-0.14.14/CONTRIBUTING.md000066400000000000000000000062721360176066400162030ustar00rootroot00000000000000## About to create a new Github Issue? We appreciate that. But before you do, please learn our basic rules: * This is not a support forum. If you have a question, please go to [The Cukes Google Group](http://groups.google.com/group/cukes). * Do you have an idea for a new feature? Then don't expect it to be implemented unless you or someone else sends a [pull request](https://help.github.com/articles/using-pull-requests). You might be better to start a discussion on [the google group](http://groups.google.com/group/cukes). * Reporting a bug? Please tell us: * which version of Aruba you're using * which version of Ruby you're using. * How to reproduce it. Bugs with a failing test in a [pull request](https://help.github.com/articles/using-pull-requests) get fixed much quicker. Some bugs may never be fixed. * Want to paste some code or output? Put \`\`\` on a line above and below your code/output. See [GFM](https://help.github.com/articles/github-flavored-markdown)'s *Fenced Code Blocks* for details. * We love [pull requests](https://help.github.com/articles/using-pull-requests). But if you don't have a test to go with it we probably won't merge it. # Contributing to Aruba This document is a guide for those maintaining Aruba, and others who would like to submit patches. ## Note on Patches/Pull Requests * Fork the project. Make a branch for your change. * Make your feature addition or bug fix. * Make sure your patch is well covered by tests. We don't accept changes that aren't tested. * Please do not change the Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself so we can ignore when we merge your change) * Send us a pull request. ## Bootstrap environment To get started with `aruba`, you just need to bootstrap the environment by running the following command. # Bootstrap environment script/bootstrap ## Running tests Make sure you bootstrap the environment first. # Run the test suite script/test ## Release Process * Bump the version number in `aruba.gemspec` * Make sure `History.md` is updated with the upcoming version number, and has entries for all fixes. * No need to add a `History.md` header at this point - this should be done when a new change is made, later. Now release it bundle update bundle exec rake git commit -m "Release X.Y.Z" rake release Now email cukes@googlegroups.com with details of the new release. Just a copy / paste from the History.md file is normally fine. ## Gaining Release Karma To become a release manager, create a pull request adding your name to the list below, and include your Rubygems email address in the ticket. One of the existing Release managers will then add you. Current release managers: * Jarl Friis ([@jarl-dk](https://github.com/jarl-dk)) * Matt Wynne ([@mattwynne](http://github.com/mattwynne)) * Aslak Hellesøy ([@aslakhellesoy](http://github.com/aslakhellesoy)) * Tom Brand ([@tom025](https://github.com/tom025)) * Dennis Günnewig ([@maxmeyer](http://github.com/maxmeyer), [@dg-rationdata](http://github.com/dg-rationdata)) To grant release karma, issue the following command: gem owner aruba --add ruby-aruba-0.14.14/Gemfile000066400000000000000000000046751360176066400152520ustar00rootroot00000000000000source 'https://rubygems.org' # Use dependencies from gemspec gemspec # Debug aruba group :debug do unless RUBY_PLATFORM.include?('java') if RUBY_VERSION >= '2.2' gem 'byebug', '~> 10.0' gem 'pry-byebug', '~> 3.4' elsif RUBY_VERSION >= '2' gem 'byebug', '~> 9.0' gem 'pry-byebug', '~> 3.4' elsif RUBY_VERSION > '1.9' gem 'debugger', '~> 1.6.8' gem 'pry-debugger', '~> 0.2.3' end end if RUBY_VERSION < '2' gem 'pry-doc', '~> 0.8.0' else gem 'pry-doc', '~> 1.0.0' end end # Tools to run during development group :development do # License compliance if RUBY_VERSION >= '2.3' gem 'license_finder', '~> 5.0' elsif RUBY_VERSION >= '2.0.0' gem 'license_finder', '~> 2.0.4' end end group :development, :test do # we use this to demonstrate interactive debugging within our feature tests if RUBY_VERSION >= '2' gem 'pry', '~> 0.12.2' else gem 'pry', '~> 0.9.12' end # Run development and test tasks if RUBY_VERSION >= '2.0.0' gem 'rake', '~> 12.3' elsif RUBY_VERSION >= '1.9.3' gem 'rake', '~> 12.2.0' else gem 'rake', '~> 10.5.0' end if RUBY_VERSION >= '2.0.0' # Lint travis yaml gem 'travis-yaml' # Reporting gem 'bcat', '~> 0.6.2' end # YARD documentation if RUBY_VERSION >= '2.3.0' gem 'yard', '~> 0.9.11' gem 'kramdown', '~> 2.1' elsif RUBY_VERSION >= '2.0.0' gem 'yard', '~> 0.9.11' gem 'kramdown', '~> 1.7.0' end # Code Coverage unless RUBY_PLATFORM.include?('java') gem 'simplecov', '~> 0.10' if RUBY_VERSION < '2.0.0' gem 'json', '< 2.3.0' end end # Test api gem 'rspec', '~> 3.4' gem 'fuubar', '~> 2.0' # using platform for this make bundler complain about the same gem given # twice if RUBY_VERSION < '1.9.3' gem 'cucumber', '~> 1.3.20' else gem 'cucumber', '~> 2.0' end if RUBY_VERSION < '1.9.2' gem 'childprocess', '~> 0.6.3' elsif RUBY_VERSION < '2.3.0' gem 'childprocess', '~> 1.0.1' else gem 'childprocess', ['>= 2.0', '< 4.0'] end if RUBY_VERSION < '1.9.2' gem 'contracts', '~> 0.15.0' else gem 'contracts', '~> 0.16.0' end if RUBY_VERSION >= '2.0.0' # Make aruba compliant to ruby community guide gem 'rubocop', '~> 0.32', '< 0.41.1' end if RUBY_VERSION < '2.0.0' gem 'ffi', '< 1.11.0' end if RUBY_VERSION < '1.9.3' gem 'minitest', '~> 5.8.0' else gem 'minitest', '~> 5.8' end end ruby-aruba-0.14.14/LICENSE000066400000000000000000000021601360176066400147470ustar00rootroot00000000000000Copyright (c) 2010-2016 Aslak Hellesøy, David Chelimsky, Mike Sassak, Jarl Friis, Matt Wynne, Dennis Günnewig Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ruby-aruba-0.14.14/README.md000066400000000000000000000152231360176066400152250ustar00rootroot00000000000000[![Gem Version](https://badge.fury.io/rb/aruba.svg)](http://badge.fury.io/rb/aruba) [![Code Climate](https://codeclimate.com/github/cucumber/aruba.svg)](https://codeclimate.com/github/cucumber/aruba) [![Join the chat at https://gitter.im/cucumber/aruba](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cucumber/aruba?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Build status: Linux / OS X | Windows ------------- | ------------- [![Build Status](https://travis-ci.org/cucumber/aruba.svg?branch=master)](https://travis-ci.org/cucumber/aruba) | [![Build status](https://ci.appveyor.com/api/projects/status/jfo2tkqhnrqqcivl?svg=true)](https://ci.appveyor.com/project/cucumberbdd/aruba/branch/master) `aruba` is an extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing of commandline applications meaningful, easy and fun. Features at a glance: * Test any command line application, implemented in any [programming language](features/getting_started/supported_programming_languages.feature) - e.g. Bash, Python, Ruby, Java, ... * Manipulate the file system and the process environment * Automatically reset state of file system and process environment between tests ## Install Add this line to your application's `Gemfile`: gem 'aruba' And then execute: $ bundle Or install it yourself as: $ gem install aruba ### Release Policy We try to be compliant to [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html). ### Supported ruby versions For an up to date list of all supported ruby versions, please see our [`.travis.yml`](https://github.com/cucumber/aruba/blob/master/.travis.yml). We only test against the latest version of a version branch - most times. ## Usage Please also see this [feature test](https://github.com/cucumber/aruba/blob/master/features/getting_started/supported_testing_frameworks.feature) for the most up to date documentation. ### Initialize your project with "aruba" There's an initializer to make it easier for you to getting started. If you prefer to setup `aruba` yourself, please move on to the next section. 1. Go to your project's directory 2. Make sure, it's under version control and all changes are committed to your version control repository 3. Run one of the following commands depending on the tools you use to test your project. This assumes, that you use either `rspec`, `cucumber-ruby` or `minitest` to write the tests for your project. Besides that, your tool can be implemented in any programming language you like. ~~~bash aruba init --test-framework rspec aruba init --test-framework cucumber aruba init --test-framework minitest ~~~ ### Cucumber 1. Create a file named "features/support/env.rb" with: ~~~ruby require 'aruba/cucumber' ~~~ 2. Create a file named "features/use_aruba_with_cucumber.feature" with: ~~~ruby Feature: Cucumber Scenario: First Run Given a file named "file.txt" with: """ Hello World """ Then the file "file.txt" should contain: """ Hello World """ ~~~ 3. Run `cucumber` ### RSpec 1. Create a file named "spec/support/aruba.rb" with: ~~~ruby require 'aruba/rspec' ~~~ 2. Create a file named "spec/spec_helper.rb" with: ~~~ruby $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) if RUBY_VERSION < '1.9.3' ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) } else ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f } end ~~~ 3. Create a file named named "spec/use_aruba_with_rspec_spec.rb" with: ~~~ruby require 'spec_helper' RSpec.describe 'First Run', :type => :aruba do let(:file) { 'file.txt' } let(:content) { 'Hello World' } before(:each) { write_file file, content } it { expect(read(file)).to eq [content] } end ~~~ 4. Run `rspec` ### Minitest 1. Add a file named "test/support/aruba.rb" with: ~~~ ruby require 'aruba/api' ~~~ 2. Add a file named "test/test_helper.rb" with: ~~~ruby $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) if RUBY_VERSION < '1.9.3' ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) } else ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f } end ~~~ 3. Add a file named "test/use_aruba_with_minitest.rb" with: ~~~ruby $LOAD_PATH.unshift File.expand_path('../test', __FILE__) require 'test_helper' require 'minitest/autorun' class FirstRun < Minitest::Test include Aruba::Api def setup aruba_setup end def getting_started_with_aruba file = 'file.txt' content = 'Hello World' write_file file, content read(file).must_equal [content] end end ~~~ 4. Run your tests `ruby -Ilib:test test/use_aruba_with_minitest.rb` ## Documentation ### User Documentation If you're interested in our steps and API, please browse our [feature files](https://github.com/cucumber/aruba/tree/master/features). You can find a lot of examples there. A good starting point are [Getting Started](https://github.com/cucumber/aruba/tree/master/features/getting_started) and [Step Overview](https://github.com/cucumber/aruba/blob/master/features/steps/overview.feature). A more or less full list of our steps can be found [here](https://github.com/cucumber/aruba/tree/master/features/steps). Our API is documentated [here](https://github.com/cucumber/aruba/tree/master/features/api) and some more information about how to configure `aruba`, can be found [here](https://github.com/cucumber/aruba/tree/master/features/configuration). The "RSpec" matchers provided by `aruba`, are documented [here](https://github.com/cucumber/aruba/tree/master/features/matchers). You can find our documentation on [Relish](http://www.relishapp.com/cucumber/aruba/docs) as well. Unfortunately "Relish" does not like the way we structered our feature tests. So this documentation found there may be not complete. ### Developer Documentation `aruba` provides a wonderful API to be used in your tests: * Creating files/directories * Deleting files/directories * Checking file size * Checking file existence/absence * ... A full documentation of the API can be found [here](http://www.rubydoc.info/github/cucumber/aruba/master/frames). ## Contributing Please see the [CONTRIBUTING](CONTRIBUTING.md) file. ## Copyright Copyright (c) 2010-2016 Aslak Hellesøy et al. See [MIT License](LICENSE) for details. ruby-aruba-0.14.14/Rakefile000066400000000000000000000021231360176066400154060ustar00rootroot00000000000000# encoding: utf-8 require 'rubygems' require 'bundler' Bundler.setup Bundler::GemHelper.install_tasks require 'cucumber/rake/task' Cucumber::Rake::Task.new do |t| t.cucumber_opts = "" t.cucumber_opts << "--format progress" end Cucumber::Rake::Task.new(:cucumber_wip) do |t| t.cucumber_opts = "-p wip" end require 'rspec/core/rake_task' desc "Run RSpec" RSpec::Core::RakeTask.new do |spec| spec.rspec_opts = ['--color', '--format progress', '--warnings'] end namespace :travis do desc 'Lint travis.yml' task :lint do begin require 'travis/yaml' puts 'Linting .travis.yml ... No output is good!' Travis::Yaml.parse! File.read('.travis.yml') rescue LoadError $stderr.puts 'Your ruby is not supported for linting the .travis.yml file' end end end task :rubocop do if RUBY_VERSION >= '2' sh 'bundle exec rubocop --fail-level E' else warn 'Your ruby version is not supported for code linting' end end desc "Run tests, both RSpec and Cucumber" task :test => [ 'travis:lint', :rubocop, :spec, :cucumber, :cucumber_wip] task :default => :test ruby-aruba-0.14.14/TODO.md000066400000000000000000000013501360176066400150310ustar00rootroot00000000000000* Replace check filesystem permissons through a better rspec matcher * Improve documentation for matchers in file * Cleanup stdout/stderr in spawn process: It should be enough to use 'open(@process.io.stdout).read' and 'open(@process.io.stderr).read'. There's no need to rewind them. * Ensure that all processes are kill after cucumber is finished * Add variation of check and stop of command if output contains Add something like `(?: of last command)?`. If this is true, just check the last command. * Use aruba.config.exit_timeout everywhere * Fix problem with long running commands in background: Since we need to stop all commands to access the status of the last command stopped, we have problems with long running commands ruby-aruba-0.14.14/appveyor.yml000066400000000000000000000012711360176066400163340ustar00rootroot00000000000000version: "{build}" # This will build all PRs targetting matching branches. # Without this, each PR builds twice -- once for the PR branch HEAD, # and once for the merge commit that github creates for each mergable PR. branches: only: - master # Disable normal Windows builds in favor of our test script. build: off install: - SET PATH=C:\Ruby%ruby_version%\bin;%PATH% - ruby --version - gem --version - gem install bundler - bundler --version - bundle install - cinst ansicon test_script: - bundle exec rake test --trace environment: matrix: - ruby_version: '18' - ruby_version: '19' - ruby_version: '20' - ruby_version: '21' - ruby_version: '22' ruby-aruba-0.14.14/aruba.gemspec000066400000000000000000000035301360176066400164030ustar00rootroot00000000000000# -*- encoding: utf-8 -*- lib = ::File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'aruba/version' Gem::Specification.new do |s| s.name = 'aruba' s.version = Aruba::VERSION s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak", "Matt Wynne", "Jarl Friis", "Dennis Günnewig"] s.description = 'Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing commandline applications meaningful, easy and fun.' s.summary = "aruba-#{s.version}" s.license = 'MIT' s.email = 'cukes@googlegroups.com' s.homepage = 'http://github.com/cucumber/aruba' s.add_runtime_dependency 'cucumber', '>= 1.3.19' s.add_runtime_dependency 'childprocess', ['>= 0.6.3', '< 4.0.0'] s.add_runtime_dependency 'ffi', '~> 1.9' s.add_runtime_dependency 'rspec-expectations', '>= 2.99' s.add_runtime_dependency 'contracts', '~> 0.9' s.add_runtime_dependency 'thor', ['>= 0.19', '< 2.0'] s.add_development_dependency 'bundler', ['>= 1.7', '< 3.0'] s.rubygems_version = ">= 1.6.1" if Aruba::VERSION >= '1' s.required_ruby_version = '>= 1.9.3' else s.required_ruby_version = '>= 1.8.7' s.post_install_message = <<-EOS Use on ruby 1.8.7 * Make sure you add something like that to your `Gemfile`. Otherwise you will get cucumber > 2 and this will fail on ruby 1.8.7 gem 'cucumber', '~> 1.3.20' With aruba >= 1.0 there will be breaking changes. Make sure to read https://github.com/cucumber/aruba/blob/master/History.md for 1.0.0 EOS end s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.rdoc_options = ["--charset=UTF-8"] s.require_path = "lib" end ruby-aruba-0.14.14/bin/000077500000000000000000000000001360176066400145135ustar00rootroot00000000000000ruby-aruba-0.14.14/bin/aruba000077500000000000000000000001621360176066400155320ustar00rootroot00000000000000#!/usr/bin/env ruby $LOAD_PATH << File.expand_path('../../lib', __FILE__) require 'aruba/cli' Aruba::Cli.start ruby-aruba-0.14.14/config/000077500000000000000000000000001360176066400152105ustar00rootroot00000000000000ruby-aruba-0.14.14/config/.gitignore000066400000000000000000000000151360176066400171740ustar00rootroot00000000000000aruba-rvm.ymlruby-aruba-0.14.14/cucumber.yml000066400000000000000000000027641360176066400163040ustar00rootroot00000000000000<% $LOAD_PATH << ::File.expand_path('../lib', __FILE__) require 'aruba/version' require 'ffi' java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION) std_opts = "--color --exclude features/fixtures --require features --tags ~@unsupported-on" java_default_opts = "--tags ~@wip-jruby-java-1.6" if defined?(JRUBY_VERSION) && (java_version < '1.7.0') java_wip_opts = "--tags @wip-jruby-java-1.6:3" if defined?(JRUBY_VERSION) && (java_version < '1.7.0') ignore_opts = [] ignore_opts << '--tags ~@ignore' ignore_opts << '--tags ~@unsupported-on-platform-java' if RUBY_PLATFORM.include? 'java' ignore_opts << '--tags ~@unsupported-on-platform-mri' if !RUBY_PLATFORM.include? 'java' ignore_opts << '--tags ~@unsupported-on-platform-windows' if FFI::Platform.windows? ignore_opts << '--tags ~@unsupported-on-platform-unix' if FFI::Platform.unix? ignore_opts << '--tags ~@unsupported-on-platform-mac' if FFI::Platform.mac? ignore_opts << '--tags ~@unsupported-on-ruby-older-2' if RUBY_VERSION < '2' ignore_opts << '--tags ~@unsupported-on-ruby-older-193' if RUBY_VERSION < '1.9.3' ignore_opts << '--tags ~@unsupported-on-ruby-older-19' if RUBY_VERSION < '1.9' ignore_opts << '--tags ~@requires-aruba-version-1' if Aruba::VERSION < '1' ignore_opts = ignore_opts.join(' ') %> default: <%= std_opts %> --tags ~@wip <%= java_default_opts %> <%= ignore_opts %> wip: <%= std_opts %> --wip --tags @wip:3 <%= java_wip_opts %> <%= ignore_opts %> ruby-aruba-0.14.14/doc/000077500000000000000000000000001360176066400145105ustar00rootroot00000000000000ruby-aruba-0.14.14/doc/dependency_decisions.yml000066400000000000000000000011451360176066400214120ustar00rootroot00000000000000--- - - :whitelist - MIT - :who: :why: :when: 2015-04-28 13:38:19.583103100 Z - - :ignore_group - development - :who: :why: :when: 2015-04-28 13:39:28.340867782 Z - - :whitelist - BSD - :who: :why: :when: 2015-04-28 13:39:40.984464786 Z - - :whitelist - Simplified BSD - :who: :why: :versions: [] :when: 2019-09-25 17:32:18.724363167 Z - - :whitelist - New BSD - :who: :why: :versions: [] :when: 2019-09-25 17:33:18.991343731 Z - - :whitelist - ruby - :who: :why: :versions: [] :when: 2019-09-25 17:35:47.177302643 Z ruby-aruba-0.14.14/features/000077500000000000000000000000001360176066400155615ustar00rootroot00000000000000ruby-aruba-0.14.14/features/.nav000066400000000000000000000062031360176066400163470ustar00rootroot00000000000000- README.md - getting_started (Getting Started): - install.feature (Install Aruba) - supported_programming_languages.feature (Supportet Programming Languages) - ruby_api (Ruby API): - expand_path.feature (#expand_path) - cleanup_aruba_directory.feature (#setup_aruba) - run.feature (#run) - which.feature (#which) - append_environment_variable.feature (#append_environment_variable) - prepend_environment_variable.feature (#prepend_environment_variable) - set_environment_variable.feature (#set_environment_variable) - cd.feature (#cd) - create_directory.feature (#create_directory) - disk_usage.feature (#disk_usage) - does_exist.feature (#exist?) - is_absolute.feature (#absolute?) - filesystem/is_directory.feature (#directory?) - is_file.feature (#file?) - is_relative.feature(#relative?) - move.feature (#move) - file_system_commands.feature - command.feature (Before Hook) - command.feature (After Hook) - cucumber (Cucumber): - debug_command.feature (Debug Commmands) - environment_variables.feature (Environment Variables) - flushing.feature (Flush Output) - interactive.feature (Interactive Commands) - all_output.feature (Command Output) - stdout.feature (STDOUT) - configuration (Configuration): - exit_timeout.feature (Exit Timeout) - fixtures_directories.feature (Fixtures Directories) - fixtures_path_prefix.feature (Fixture Path Prefix) - home_directory.feature (Home Directory) - io_timeout.feature (IO Wait Timeout) - keep_ansi.feature (Keep ANSI output) - log_level.feature (Log Level) - physical_block_size.feature (Physical Block Size) - root_directory.feature (Root Directory) - working_directory.feature (Working Directory) - rspec (RSpec): - getting_started.feature (Integration) - include_an_object.feature (Matcher: Include an Object) - have_sub_directory.feature (Matcher: Have Sub Directory) - be_existing_file.feature (Matcher: Be Existing File) - have_file_content.feature (Matcher: Have File Content) - have_file_size.feature (Matcher: Have File Size) - be_an_absolute_path.feature (Matcher: Be Absolute Path) - be_an_existing_path.feature (Matcher: Be Existing Path) - have_permissions.feature (Matcher: Have Permissions) - timeouts.feature (Matcher: Timeouts) - cucumber (Cucumber): - announce.feature (Announce Information to User) - exit_statuses.feature (Exit Status of Commands) - in_process.feature (Start Commands in Process) - run.feature (Run Commands) - home_variable.feature (Modify HOME-Variable) - set_environment_variable.feature (Set Environment variables) - copy.feature (Copy files/directories) - create_directory.feature (Create Directories) - create_file.feature (Create Files) - file_content.feature (Use File Content) - move.feature (Move files/directories) - overwrite_file.feature (Overwrite Files) - use_fixture.feature (Use Fixtures) - output.feature (Output) - utf-8.feature (Support for UTF-8-strings) - development (Development): - build.feature (Build Aruba) - test.feature (Test Aruba) ruby-aruba-0.14.14/features/01_getting_started_with_aruba/000077500000000000000000000000001360176066400234555ustar00rootroot00000000000000ruby-aruba-0.14.14/features/01_getting_started_with_aruba/cleanup_working_directory.feature000066400000000000000000000040041360176066400323030ustar00rootroot00000000000000Feature: Cleanup Aruba Working Directory By default Aruba removes its scratch directory *before* every scenario. This isn't always the right thing to do, especially when the path to the default directory has been changed. Use the `@no-clobber`-tag on your scenarios to stop Aruba from cleaning up *before* it runs. Background: Given I use a fixture named "cli-app" Scenario: Clean up artifacts and pwd from a previous scenario Given a file named "features/cleanup.feature" with: """ Feature: Check Scenario: Check #1 Given a file named "file.txt" with "content" And a directory named "dir.d" Then a file named "file.txt" should exist And a directory named "dir.d" should exist When I cd to "dir.d" And I run `pwd` Then the output should match %r Scenario: Check #2 Then a file named "file.txt" should not exist And a directory named "dir.d" should not exist When I run `pwd` Then the output should match %r """ When I run `cucumber` Then the features should all pass Scenario: Do not clobber before run The `@no-clobber` tag stops Aruba from clearing out its scratch directory. Other setup steps are still performed, such as setting the current working directory. Given a file named "tmp/aruba/file.txt" with "content" And a directory named "tmp/aruba/dir.d" And a file named "features/cleanup.feature" with: """ Feature: Check Scenario: Check #1 Given a file named "file.txt" with "content" And a directory named "dir.d" Then a file named "file.txt" should exist And a directory named "dir.d" should exist @no-clobber Scenario: Check #2 Then a file named "file.txt" should exist And a directory named "dir.d" should exist When I run `pwd` Then the output should match %r """ When I run `cucumber` Then the features should all pass ruby-aruba-0.14.14/features/01_getting_started_with_aruba/run_commands.feature000066400000000000000000000141251360176066400275220ustar00rootroot00000000000000Feature: Run commands with Aruba As long as you've got the neccessary programs, libraries, runtime environments, interpreters installed, it doesn't matter in which programming language your commandline application is implemented. You can even use POSIX standard tools like "printf". Below you find some examples of the "Hello, Aruba!"-application implemented with different programming languages and a single example for a POSIX standard tool. This is NOT an exclusive list. Every commandline application should run with `aruba`. Background: Given I use a fixture named "getting-started-app" @requires-bash Scenario: Bash Program Given an executable named "bin/aruba-test-cli" with: """bash #!/usr/bin/env bash echo "Hello, Aruba!" """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-bash Scenario: Bash Program run via bash Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.sh" with: \"\"\" echo "Hello, Aruba!" \"\"\" When I successfully run `bash ./cli.sh` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-ruby Scenario: Ruby Program Given an executable named "bin/aruba-test-cli" with: """ruby #!/usr/bin/env ruby puts "Hello, Aruba!" """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-ruby Scenario: Ruby Program via "ruby" Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.rb" with: \"\"\" puts "Hello, Aruba!" \"\"\" When I successfully run `ruby ./cli.rb` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-python Scenario: Python Program Given an executable named "bin/aruba-test-cli" with: """python #!/usr/bin/env python print("Hello, Aruba!") """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-python Scenario: Python Program via "python" Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.py" with: \"\"\" print("Hello, Aruba!") \"\"\" When I successfully run `python ./cli.py` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-perl Scenario: Perl Program Given an executable named "bin/aruba-test-cli" with: """perl #!/usr/bin/env perl print "Hello, Aruba!\n"; """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-perl Scenario: Perl Program via "perl" Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.pl" with: \"\"\"perl print "Hello, Aruba!\n"; \"\"\" When I successfully run `perl ./cli.pl` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-java Scenario: Java Program It's even possible to compile and run Java programs with Aruba. Given a file named "features/hello_aruba.feature" with: """cucumber Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "tmp/HelloArubaApp.java" with: \"\"\" class HelloArubaApp { public static void main(String[] args) { System.out.println("Hello, Aruba!"); } } \"\"\" And I successfully run `javac tmp/HelloArubaApp.java` for up to 20 seconds And I cd to "tmp/" And I successfully run `java HelloArubaApp` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` for up to 21 seconds Then the features should all pass @requires-posix-standard-tools Scenario: POSIX standard tools Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `printf "%s" "Hello, Aruba!"` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass ruby-aruba-0.14.14/features/01_getting_started_with_aruba/supported_testing_frameworks.feature000066400000000000000000000041201360176066400330510ustar00rootroot00000000000000Feature: Supported Testing Frameworks You can use `aruba` with all major testing frameworks from the Ruby World: \* Cucumber \* RSpec \* Minitest Background: Given I use a fixture named "cli-app" Scenario: Use "aruba" with "Cucumber" Given a file named "features/support/env.rb" with: """ require 'aruba/cucumber' """ And a file named "features/use_aruba_with_cucumber.feature" with: """ Feature: Cucumber Scenario: First Run Given a file named "file.txt" with: \"\"\" Hello World \"\"\" Then the file "file.txt" should contain: \"\"\" Hello World \"\"\" """ When I run `cucumber` Then the features should all pass Scenario: Use "aruba" with "RSpec" Given a file named "spec/spec_helper.rb" with: """ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) require 'aruba/rspec' """ And a file named "spec/use_aruba_with_rspec_spec.rb" with: """ require 'spec_helper' RSpec.describe 'First Run', :type => :aruba do let(:file) { 'file.txt' } let(:content) { 'Hello World' } before(:each) { write_file file, content } it { expect(read(file)).to eq [content] } end """ When I run `rspec` Then the specs should all pass Scenario: Use "aruba" with "Minitest" Given a file named "test/test_helper.rb" with: """ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) require 'aruba/api' """ And a file named "test/use_aruba_with_minitest.rb" with: """ $LOAD_PATH.unshift File.expand_path('../test', __FILE__) require 'test_helper' require 'minitest/autorun' class FirstRun < Minitest::Test include Aruba::Api def setup aruba_setup end def getting_started_with_aruba file = 'file.txt' content = 'Hello World' write_file file, content read(file).must_equal [content] end end """ When I run `ruby -Ilib:test test/use_aruba_with_minitest.rb` Then the tests should all pass ruby-aruba-0.14.14/features/02_configure_aruba/000077500000000000000000000000001360176066400212155ustar00rootroot00000000000000ruby-aruba-0.14.14/features/02_configure_aruba/activate_announcer_on_command_failure.feature000066400000000000000000000021121360176066400323370ustar00rootroot00000000000000Feature: Configure announcer activation on command failure As a developer I want to configure which announcers should get activated on command failure In order to understand what caused a command to fail Background: Given I use the fixture "cli-app" Scenario: Default value Given a file named "features/support/aruba_config.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.activate_announcer_on_command_failure.inspect}") end """ When I successfully run `cucumber` Then the output should contain: """ruby The default value is "[]" """ Scenario: Modify value Given a file named "features/support/aruba_config.rb" with: """ruby Aruba.configure do |config| config.activate_announcer_on_command_failure = [:foo, :bar] end Aruba.configure do |config| puts %(The value is "#{config.activate_announcer_on_command_failure.inspect}") end """ Then I successfully run `cucumber` Then the output should contain: """ The value is "[:foo, :bar]" """ ruby-aruba-0.14.14/features/02_configure_aruba/basics.feature000066400000000000000000000111471360176066400240420ustar00rootroot00000000000000Feature: Usage of configuration You can configure `aruba` in two ways: 1. Using `Aruba.configure`-block 2. Using `aruba.config.