revenc 0.1.3 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
"""
|