diff options
| author | Teddy Wing | 2018-01-29 00:07:56 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2018-01-29 00:26:07 +0100 | 
| commit | c70cf3982c007108dcd631a9d1011e2e6c7e31de (patch) | |
| tree | 016202abca2ee7de61df8039a7e310dd7c531a89 /test | |
| parent | cea2bbe0d1b2c9629d7fab397093856580a9e099 (diff) | |
| download | hcl-shell-escape-passwords.tar.bz2 | |
App#save_password: Shell escape passwordshell-escape-passwords
Escape special shell characters so that passwords with single quotes can
be saved to the keychain. Otherwise, the single quotes surrounding the
"-w '%s'" cause an error on passwords with single quotes.
I know testing private methods is not recommended, but this seemed like
something that would be good to test. Maybe the method should be made
public if that's a concern?
Diffstat (limited to 'test')
| -rw-r--r-- | test/app_test.rb | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/test/app_test.rb b/test/app_test.rb index 4c997d7..499909d 100644 --- a/test/app_test.rb +++ b/test/app_test.rb @@ -65,4 +65,17 @@ class AppTest < HCl::TestCase      assert_match /API failure/i, error_output    end +  def test_save_password_allows_passwords_with_quotes +    app = HCl::App.new +    app.expects(:system).with("security add-internet-password -U -l hcl -a 'taco@example.com' -s 'acme.harvestapp.com' -w pass\\ with\\ \\'\\ quote") + +    config = { +      'login' => 'taco@example.com', +      'subdomain' => 'acme', +      'password' => "pass with ' quote", +    } + +    app.send :save_password, config +  end +  end | 
