revenc 0.1.3 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemfiles +53 -0
- data/.gitignore +4 -8
- data/Gemfile.lock +42 -37
- data/HISTORY.markdown +9 -2
- data/LICENSE +1 -1
- data/README.markdown +33 -38
- data/Rakefile +24 -34
- data/TODO.markdown +3 -0
- data/VERSION +1 -1
- data/bin/revenc +30 -13
- data/config/cucumber.yml +4 -3
- data/examples/rsync/encrypted_data/key/encfs6.xml +27 -27
- data/examples/rsync/revenc.conf +2 -2
- data/examples/simple/encfs6.xml +27 -27
- data/features/app.feature +17 -17
- data/features/bin.feature +6 -6
- data/features/configuration.feature +9 -9
- data/features/copy.feature +15 -12
- data/features/generator.feature +1 -1
- data/features/mount.feature +14 -14
- data/features/settings.feature +119 -0
- data/features/step_definitions/revenc_steps.rb +1 -2
- data/features/support/aruba.rb +9 -9
- data/features/support/env.rb +8 -2
- data/features/unmount.feature +8 -8
- data/lib/revenc.rb +12 -3
- data/lib/revenc/app.rb +27 -53
- data/lib/revenc/core/array.rb +11 -0
- data/lib/revenc/core/hash.rb +45 -0
- data/lib/revenc/encfs_wrapper.rb +20 -24
- data/lib/revenc/errors.rb +3 -3
- data/lib/revenc/io.rb +13 -13
- data/lib/revenc/settings.rb +98 -0
- data/revenc.gemspec +28 -17
- data/spec/aruba_helper.rb +25 -0
- data/spec/basic_app/array_spec.rb +48 -0
- data/spec/basic_gem/aruba_helper_spec.rb +33 -0
- data/spec/basic_gem/basic_gem_spec.rb +71 -1
- data/spec/basic_gem/gemspec_spec.rb +68 -0
- data/spec/revenc/error_spec.rb +2 -2
- data/spec/revenc/io_spec.rb +12 -12
- data/spec/spec_helper.rb +4 -9
- data/spec/watchr.rb +48 -26
- metadata +120 -177
- data/.yardopts +0 -6
- data/spec/spec.opts +0 -2
data/config/cucumber.yml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
3
|
-
rerun_opts = rerun.to_s.strip.empty? ? "--format
|
4
|
-
std_opts = "
|
3
|
+
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
4
|
+
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
|
5
5
|
%>
|
6
|
-
default: <%= std_opts %>
|
6
|
+
default: <%= std_opts %> features
|
7
7
|
wip: --tags @wip:3 --wip features
|
8
|
+
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
|
@@ -2,34 +2,34 @@
|
|
2
2
|
<!DOCTYPE boost_serialization>
|
3
3
|
<boost_serialization signature="serialization::archive" version="4">
|
4
4
|
<config class_id="0" tracking_level="1" version="20080816" object_id="_0">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
5
|
+
<creator>EncFS 1.5</creator>
|
6
|
+
<cipherAlg class_id="1" tracking_level="0" version="0">
|
7
|
+
<name>ssl/aes</name>
|
8
|
+
<major>2</major>
|
9
|
+
<minor>2</minor>
|
10
|
+
</cipherAlg>
|
11
|
+
<nameAlg>
|
12
|
+
<name>nameio/null</name>
|
13
|
+
<major>1</major>
|
14
|
+
<minor>0</minor>
|
15
|
+
</nameAlg>
|
16
|
+
<keySize>128</keySize>
|
17
|
+
<blockSize>1024</blockSize>
|
18
|
+
<uniqueIV>0</uniqueIV>
|
19
|
+
<chainedNameIV>0</chainedNameIV>
|
20
|
+
<externalIVChaining>0</externalIVChaining>
|
21
|
+
<blockMACBytes>0</blockMACBytes>
|
22
|
+
<blockMACRandBytes>0</blockMACRandBytes>
|
23
|
+
<allowHoles>1</allowHoles>
|
24
|
+
<encodedKeySize>36</encodedKeySize>
|
25
|
+
<encodedKeyData>
|
26
26
|
unVmAfPQFd5t4cakBxbE7uosu4tzZbo8B513iGGNynzArOKM=
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
</encodedKeyData>
|
28
|
+
<saltLen>20</saltLen>
|
29
|
+
<saltData>
|
30
30
|
IcFy11sZw/w7juCI+Cro8AZVp6Q
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
</saltData>
|
32
|
+
<kdfIterations>97493</kdfIterations>
|
33
|
+
<desiredKDFDuration>500</desiredKDFDuration>
|
34
34
|
</config>
|
35
35
|
</boost_serialization>
|
data/examples/rsync/revenc.conf
CHANGED
@@ -7,12 +7,12 @@ mount:
|
|
7
7
|
name: scripts/passphrase
|
8
8
|
keyfile:
|
9
9
|
name: encrypted_data/key/encfs6.xml
|
10
|
-
cmd: cat
|
10
|
+
cmd: cat <%= passphrasefile.name %> | ENCFS6_CONFIG=<%= keyfile.name %> <%= executable %> --stdinpass --reverse <%= source.name %> <%= mountpoint.name %> -- -o ro
|
11
11
|
copy:
|
12
12
|
source:
|
13
13
|
name: encrypted_data # sync the encrypted data as well as the key
|
14
14
|
destination:
|
15
15
|
name: copy_destination # could be a remote host instead of a folder, i.e. user1@example.com:backups/here
|
16
16
|
executable: rsync
|
17
|
-
cmd:
|
17
|
+
cmd: <%= executable %> --perms --links --times --recursive --verbose --compress --stats --human-readable --inplace <%= source.name %> <%= destination.name %>
|
18
18
|
|
data/examples/simple/encfs6.xml
CHANGED
@@ -2,34 +2,34 @@
|
|
2
2
|
<!DOCTYPE boost_serialization>
|
3
3
|
<boost_serialization signature="serialization::archive" version="4">
|
4
4
|
<config class_id="0" tracking_level="1" version="20080816" object_id="_0">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
5
|
+
<creator>EncFS 1.5</creator>
|
6
|
+
<cipherAlg class_id="1" tracking_level="0" version="0">
|
7
|
+
<name>ssl/aes</name>
|
8
|
+
<major>2</major>
|
9
|
+
<minor>2</minor>
|
10
|
+
</cipherAlg>
|
11
|
+
<nameAlg>
|
12
|
+
<name>nameio/null</name>
|
13
|
+
<major>1</major>
|
14
|
+
<minor>0</minor>
|
15
|
+
</nameAlg>
|
16
|
+
<keySize>128</keySize>
|
17
|
+
<blockSize>1024</blockSize>
|
18
|
+
<uniqueIV>0</uniqueIV>
|
19
|
+
<chainedNameIV>0</chainedNameIV>
|
20
|
+
<externalIVChaining>0</externalIVChaining>
|
21
|
+
<blockMACBytes>0</blockMACBytes>
|
22
|
+
<blockMACRandBytes>0</blockMACRandBytes>
|
23
|
+
<allowHoles>1</allowHoles>
|
24
|
+
<encodedKeySize>36</encodedKeySize>
|
25
|
+
<encodedKeyData>
|
26
26
|
BjZ2dl0VE8ezDBvAwgxLo1ODmnrLlawYrlfhG8Fe3wcQBzZu=
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
</encodedKeyData>
|
28
|
+
<saltLen>20</saltLen>
|
29
|
+
<saltData>
|
30
30
|
tPmiXlNgrbvvSlnGcqe4aCjGWGY
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
</saltData>
|
32
|
+
<kdfIterations>83342</kdfIterations>
|
33
|
+
<desiredKDFDuration>500</desiredKDFDuration>
|
34
34
|
</config>
|
35
35
|
</boost_serialization>
|
data/features/app.feature
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
Feature: Application actions, configuration and error handling
|
3
3
|
|
4
4
|
As an interactive user or automated script
|
5
|
-
The application should accept actions and report errors
|
5
|
+
The application should accept actions and report errors
|
6
6
|
|
7
7
|
Scenario: No command line action
|
8
|
-
When I run
|
8
|
+
When I run `revenc`
|
9
9
|
Then the exit status should be 1
|
10
|
-
And the output should match:
|
10
|
+
And the output should match:
|
11
11
|
"""
|
12
12
|
^.* action required
|
13
13
|
^.* --help for more information
|
14
14
|
"""
|
15
15
|
|
16
16
|
Scenario: Invalid action
|
17
|
-
When I run
|
17
|
+
When I run `revenc non-existing-action`
|
18
18
|
Then the exit status should be 1
|
19
|
-
And the output should match:
|
19
|
+
And the output should match:
|
20
20
|
"""
|
21
21
|
^.* invalid action: non-existing-action
|
22
22
|
^.* --help for more information
|
@@ -25,35 +25,35 @@ Feature: Application actions, configuration and error handling
|
|
25
25
|
|
26
26
|
Scenario: --config FILE (exists)
|
27
27
|
Given an empty file named "config.conf"
|
28
|
-
When I run
|
29
|
-
Then the output should contain:
|
28
|
+
When I run `revenc mount --verbose --config config.conf`
|
29
|
+
Then the output should contain:
|
30
30
|
"""
|
31
|
-
|
31
|
+
config file: config.conf
|
32
32
|
"""
|
33
33
|
|
34
34
|
Scenario: --config FILE (not found)
|
35
|
-
When I run
|
36
|
-
Then the output should not contain:
|
35
|
+
When I run `revenc mount --verbose --config config.conf`
|
36
|
+
Then the output should not contain:
|
37
37
|
"""
|
38
|
-
|
38
|
+
config file: config.conf
|
39
39
|
"""
|
40
|
-
And the output should contain:
|
40
|
+
And the output should contain:
|
41
41
|
"""
|
42
|
-
config file not found
|
42
|
+
config file not found
|
43
43
|
"""
|
44
44
|
|
45
45
|
Scenario: Backtrace with --verbose option
|
46
|
-
When I run
|
46
|
+
When I run `revenc --verbose mount bad_source bad_dest`
|
47
47
|
Then the exit status should be 1
|
48
|
-
And the output should match:
|
48
|
+
And the output should match:
|
49
49
|
"""
|
50
50
|
lib/(.*)/app.rb
|
51
51
|
"""
|
52
52
|
|
53
53
|
Scenario: No backtrace without --verbose option
|
54
|
-
When I run
|
54
|
+
When I run `revenc mount bad_source bad_dest --no-verbose`
|
55
55
|
Then the exit status should be 1
|
56
|
-
And the output should not contain:
|
56
|
+
And the output should not contain:
|
57
57
|
"""
|
58
58
|
/app.rb:
|
59
59
|
"""
|
data/features/bin.feature
CHANGED
@@ -3,18 +3,18 @@ Feature: Options via a command line interface (CLI)
|
|
3
3
|
|
4
4
|
As an interactive user or automated script
|
5
5
|
The application should accept options on the command line
|
6
|
-
These options should override hard coded defaults
|
6
|
+
These options should override hard coded defaults
|
7
7
|
In order to configure options
|
8
8
|
|
9
9
|
Scenario: Version info
|
10
|
-
When I run
|
10
|
+
When I run `revenc --version`
|
11
11
|
Then the exit status should be 0
|
12
12
|
And the output should match /revenc, version ([\d]+\.[\d]+\.[\d]+$)/
|
13
13
|
|
14
14
|
Scenario: Help
|
15
|
-
When I run
|
15
|
+
When I run `revenc --help`
|
16
16
|
Then the exit status should be 0
|
17
|
-
And the output should match:
|
17
|
+
And the output should match:
|
18
18
|
"""
|
19
19
|
.*
|
20
20
|
Usage: .*
|
@@ -25,9 +25,9 @@ Feature: Options via a command line interface (CLI)
|
|
25
25
|
"""
|
26
26
|
|
27
27
|
Scenario: Invalid option
|
28
|
-
When I run
|
28
|
+
When I run `revenc --non-existing-option`
|
29
29
|
Then the exit status should be 1
|
30
|
-
And the output should match:
|
30
|
+
And the output should match:
|
31
31
|
"""
|
32
32
|
^.* invalid option: --non-existing-option
|
33
33
|
^.* --help for more information
|
@@ -19,23 +19,23 @@ Feature: Configuration via yaml file
|
|
19
19
|
keyfile:
|
20
20
|
name: encfs6.xml
|
21
21
|
executable: echo
|
22
|
-
cmd: cat
|
22
|
+
cmd: cat <%= passphrasefile.name %> | ENCFS6_CONFIG=<%= keyfile.name %> <%= executable %> --stdinpass --reverse <%= source.name %> <%= mountpoint.name %> -- -o ro
|
23
23
|
unmount:
|
24
24
|
mountpoint:
|
25
25
|
name: defaults_to_mount_mountpoint
|
26
26
|
executable: echo
|
27
|
-
cmd:
|
27
|
+
cmd: <%= executable %> -u <%= name %>
|
28
28
|
copy:
|
29
29
|
source:
|
30
30
|
name: copy_source_defaults_to_mount_mountpoint
|
31
31
|
destination:
|
32
32
|
name: copy_to_destination
|
33
33
|
executable: echo
|
34
|
-
cmd:
|
34
|
+
cmd: <%= executable %> -e ssh --bwlimit=16 --perms --links --times --recursive --verbose --compress --stats --human-readable --inplace <%= source.name %> <%= destination.name %>
|
35
35
|
"""
|
36
36
|
|
37
37
|
Scenario: Mount with a config file
|
38
|
-
When I run
|
38
|
+
When I run `revenc --verbose --dry-run mount`
|
39
39
|
Then the output should contain:
|
40
40
|
"""
|
41
41
|
mount: source=source_folder_name
|
@@ -47,7 +47,7 @@ Feature: Configuration via yaml file
|
|
47
47
|
"""
|
48
48
|
|
49
49
|
Scenario: Unmount with a config file
|
50
|
-
When I run
|
50
|
+
When I run `revenc unmount --verbose --dry-run`
|
51
51
|
Then the output should contain:
|
52
52
|
"""
|
53
53
|
unmount: mountpoint=defaults_to_mount_mountpoint
|
@@ -55,21 +55,21 @@ Feature: Configuration via yaml file
|
|
55
55
|
unmount: executable=/bin/echo
|
56
56
|
"""
|
57
57
|
|
58
|
-
Scenario: Unmount with a config file missing unmount.mountpoint
|
58
|
+
Scenario: Unmount with a config file missing unmount.mountpoint
|
59
59
|
Given a file named "revenc.conf" with:
|
60
60
|
"""
|
61
61
|
mount:
|
62
62
|
mountpoint:
|
63
63
|
name: unmount_mountpoint_defaults_to_me
|
64
64
|
"""
|
65
|
-
When I run
|
65
|
+
When I run `revenc unmount --verbose --dry-run`
|
66
66
|
Then the output should contain:
|
67
67
|
"""
|
68
68
|
unmount: mountpoint=unmount_mountpoint_defaults_to_me
|
69
69
|
"""
|
70
70
|
|
71
71
|
Scenario: Copy with a config file
|
72
|
-
When I run
|
72
|
+
When I run `revenc copy --verbose --dry-run`
|
73
73
|
Then the output should contain:
|
74
74
|
"""
|
75
75
|
copy: source=copy_source_defaults_to_mount_mountpoint
|
@@ -88,7 +88,7 @@ Feature: Configuration via yaml file
|
|
88
88
|
destination:
|
89
89
|
name: copy_to_destination
|
90
90
|
"""
|
91
|
-
When I run
|
91
|
+
When I run `revenc copy --verbose --dry-run`
|
92
92
|
Then the output should contain:
|
93
93
|
"""
|
94
94
|
copy: source=copy_source_defaults_to_me
|
data/features/copy.feature
CHANGED
@@ -6,7 +6,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
6
6
|
And lock the process to prevent automated recursion on long running copy commands
|
7
7
|
In order to backup the data and allow recovery of the unencrypted data
|
8
8
|
|
9
|
-
Scenario:
|
9
|
+
Scenario: Successful copy with non-default ERB copy cmd
|
10
10
|
Given a directory named "encrypted_source_folder"
|
11
11
|
Given a directory named "encrypted_destination"
|
12
12
|
Given an empty file named "encrypted_source_folder/test_data1.txt"
|
@@ -16,14 +16,17 @@ Feature: Copy encrypted data to another location via rsync
|
|
16
16
|
mount:
|
17
17
|
mountpoint:
|
18
18
|
name: encrypted_source_folder
|
19
|
+
copy:
|
20
|
+
executable: cp
|
21
|
+
cmd: <%= executable %> -r <%= source.name %> <%= destination.name %>
|
19
22
|
"""
|
20
|
-
When I run
|
23
|
+
When I run `revenc copy encrypted_source_folder encrypted_destination`
|
21
24
|
Then the exit status should be 0
|
22
25
|
And the following files should exist:
|
23
26
|
| encrypted_destination/encrypted_source_folder/test_data1.txt |
|
24
27
|
| encrypted_destination/encrypted_source_folder/test_data2.txt |
|
25
28
|
|
26
|
-
Scenario:
|
29
|
+
Scenario: Successful copy dry run
|
27
30
|
Given a directory named "encrypted_source_folder"
|
28
31
|
Given a directory named "encrypted_destination"
|
29
32
|
Given an empty file named "encrypted_source_folder/test_data1.txt"
|
@@ -34,7 +37,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
34
37
|
mountpoint:
|
35
38
|
name: encrypted_source_folder
|
36
39
|
"""
|
37
|
-
When I run
|
40
|
+
When I run `revenc copy --dry-run encrypted_source_folder encrypted_destination`
|
38
41
|
Then the exit status should be 0
|
39
42
|
And the following files should not exist:
|
40
43
|
| encrypted_destination/encrypted_source_folder/test_data1.txt |
|
@@ -58,7 +61,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
58
61
|
"""
|
59
62
|
|
60
63
|
Scenario: Source folder not specified
|
61
|
-
When I run
|
64
|
+
When I run `revenc copy`
|
62
65
|
Then the exit status should be 1
|
63
66
|
And the output should contain:
|
64
67
|
"""
|
@@ -66,7 +69,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
66
69
|
"""
|
67
70
|
|
68
71
|
Scenario: Destination not specified
|
69
|
-
When I run
|
72
|
+
When I run `revenc copy encrypted_source_folder`
|
70
73
|
Then the exit status should be 1
|
71
74
|
And the output should contain:
|
72
75
|
"""
|
@@ -74,7 +77,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
74
77
|
"""
|
75
78
|
|
76
79
|
Scenario: Source folder doesn't exist
|
77
|
-
When I run
|
80
|
+
When I run `revenc copy encrypted_source_folder encrypted_destination`
|
78
81
|
Then the exit status should be 1
|
79
82
|
And the output should contain:
|
80
83
|
"""
|
@@ -83,7 +86,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
83
86
|
|
84
87
|
Scenario: Source folder is empty
|
85
88
|
Given a directory named "encrypted_source_folder"
|
86
|
-
When I run
|
89
|
+
When I run `revenc copy encrypted_source_folder encrypted_destination`
|
87
90
|
Then the exit status should be 1
|
88
91
|
And the output should contain:
|
89
92
|
"""
|
@@ -106,7 +109,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
106
109
|
destination:
|
107
110
|
name: copy_to_destination
|
108
111
|
"""
|
109
|
-
When I run
|
112
|
+
When I run `revenc copy --verbose --dry-run`
|
110
113
|
Then the output should contain:
|
111
114
|
"""
|
112
115
|
mountpoint is empty
|
@@ -127,7 +130,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
127
130
|
destination:
|
128
131
|
name: copy_to_destination
|
129
132
|
"""
|
130
|
-
When I run
|
133
|
+
When I run `revenc copy --verbose --dry-run`
|
131
134
|
Then the output should contain:
|
132
135
|
"""
|
133
136
|
mountpoint not found
|
@@ -145,7 +148,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
145
148
|
destination:
|
146
149
|
name: copy_to_destination
|
147
150
|
"""
|
148
|
-
When I run
|
151
|
+
When I run `revenc copy --verbose --dry-run`
|
149
152
|
Then the output should not contain:
|
150
153
|
"""
|
151
154
|
mountpoint not found
|
@@ -161,7 +164,7 @@ Feature: Copy encrypted data to another location via rsync
|
|
161
164
|
copy:
|
162
165
|
executable: missing_bin_file
|
163
166
|
"""
|
164
|
-
When I run
|
167
|
+
When I run `revenc copy encrypted_source_folder encrypted_destination`
|
165
168
|
Then the exit status should be 1
|
166
169
|
And the output should contain:
|
167
170
|
"""
|
data/features/generator.feature
CHANGED
data/features/mount.feature
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
@announce
|
2
2
|
Feature: Reverse mount encrypted folder using encfs
|
3
3
|
|
4
|
-
As a user with unencrypted data
|
4
|
+
As a user with unencrypted data
|
5
5
|
I need to mount an encrypted folder from an unencrypted folder
|
6
|
-
In order to backup the encrypted folder to untrusted systems
|
6
|
+
In order to backup the encrypted folder to untrusted systems
|
7
7
|
|
8
8
|
@unmount_after
|
9
9
|
Scenario: Successful mount
|
@@ -15,7 +15,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
15
15
|
"""
|
16
16
|
test
|
17
17
|
"""
|
18
|
-
When I run
|
18
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
19
19
|
Then the output should not contain "For more information, see the man page encfs(1)"
|
20
20
|
And the exit status should be 0
|
21
21
|
|
@@ -28,12 +28,12 @@ Feature: Reverse mount encrypted folder using encfs
|
|
28
28
|
"""
|
29
29
|
test
|
30
30
|
"""
|
31
|
-
When I run
|
31
|
+
When I run `revenc --dry-run mount unencrypted_source_folder encrypted_destination_folder`
|
32
32
|
Then the exit status should be 0
|
33
33
|
And the folder "encrypted_destination_folder" should not be mounted
|
34
34
|
|
35
35
|
Scenario: Source folder not specified
|
36
|
-
When I run
|
36
|
+
When I run `revenc mount`
|
37
37
|
Then the exit status should be 1
|
38
38
|
And the output should contain:
|
39
39
|
"""
|
@@ -41,7 +41,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
41
41
|
"""
|
42
42
|
|
43
43
|
Scenario: Destination mount point not specified
|
44
|
-
When I run
|
44
|
+
When I run `revenc mount unencrypted_source_folder`
|
45
45
|
Then the exit status should be 1
|
46
46
|
And the output should contain:
|
47
47
|
"""
|
@@ -50,7 +50,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
50
50
|
|
51
51
|
Scenario: Source folder doesn't exist
|
52
52
|
Given a directory named "encrypted_destination_folder"
|
53
|
-
When I run
|
53
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
54
54
|
Then the exit status should be 1
|
55
55
|
And the output should contain:
|
56
56
|
"""
|
@@ -60,7 +60,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
60
60
|
Scenario: Destination mount point doesn't exist
|
61
61
|
Given a directory named "unencrypted_source_folder"
|
62
62
|
Given an empty file named "unencrypted_source_folder/test_data.txt"
|
63
|
-
When I run
|
63
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
64
64
|
Then the exit status should be 1
|
65
65
|
And the output should contain:
|
66
66
|
"""
|
@@ -72,7 +72,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
72
72
|
Given an empty file named "unencrypted_source_folder/test_data.txt"
|
73
73
|
Given a directory named "encrypted_destination_folder"
|
74
74
|
Given an empty file named "encrypted_destination_folder/should_not_be_here.txt"
|
75
|
-
When I run
|
75
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
76
76
|
Then the exit status should be 1
|
77
77
|
And the output should contain:
|
78
78
|
"""
|
@@ -83,7 +83,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
83
83
|
Given a directory named "unencrypted_source_folder"
|
84
84
|
Given an empty file named "unencrypted_source_folder/test_data.txt"
|
85
85
|
Given a directory named "encrypted_destination_folder"
|
86
|
-
When I run
|
86
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
87
87
|
Then the exit status should be 1
|
88
88
|
And the output should contain:
|
89
89
|
"""
|
@@ -95,7 +95,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
95
95
|
Given an empty file named "unencrypted_source_folder/test_data.txt"
|
96
96
|
Given a directory named "encrypted_destination_folder"
|
97
97
|
Given an empty file named "passphrase"
|
98
|
-
When I run
|
98
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
99
99
|
Then the exit status should be 1
|
100
100
|
And the output should contain:
|
101
101
|
"""
|
@@ -103,7 +103,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
103
103
|
"""
|
104
104
|
|
105
105
|
Scenario: Key file not found
|
106
|
-
When I run
|
106
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
107
107
|
Then the exit status should be 1
|
108
108
|
And the output should contain:
|
109
109
|
"""
|
@@ -112,7 +112,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
112
112
|
|
113
113
|
Scenario: Key file is empty
|
114
114
|
Given an empty file named "encfs6.xml"
|
115
|
-
When I run
|
115
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
116
116
|
Then the exit status should be 1
|
117
117
|
And the output should contain:
|
118
118
|
"""
|
@@ -125,7 +125,7 @@ Feature: Reverse mount encrypted folder using encfs
|
|
125
125
|
mount:
|
126
126
|
executable: missing_bin_file
|
127
127
|
"""
|
128
|
-
When I run
|
128
|
+
When I run `revenc mount unencrypted_source_folder encrypted_destination_folder`
|
129
129
|
Then the exit status should be 1
|
130
130
|
And the output should contain:
|
131
131
|
"""
|