ftpd 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +6 -0
- data/Gemfile +2 -15
- data/Gemfile.lock +12 -51
- data/README.md +12 -0
- data/VERSION +1 -1
- data/bin/ftpdrb +17 -12
- data/examples/write_only.rb +61 -0
- data/ftpd.gemspec +59 -261
- data/lib/ftpd/session.rb +51 -51
- metadata +11 -153
- data/.travis.yml +0 -6
- data/features/example/eplf.feature +0 -14
- data/features/example/example.feature +0 -18
- data/features/example/read_only.feature +0 -63
- data/features/example/step_definitions/example_server.rb +0 -13
- data/features/ftp_server/abort.feature +0 -13
- data/features/ftp_server/allo.feature +0 -33
- data/features/ftp_server/append.feature +0 -94
- data/features/ftp_server/cdup.feature +0 -36
- data/features/ftp_server/command_errors.feature +0 -13
- data/features/ftp_server/concurrent_sessions.feature +0 -14
- data/features/ftp_server/delay_after_failed_login.feature +0 -23
- data/features/ftp_server/delete.feature +0 -60
- data/features/ftp_server/directory_navigation.feature +0 -59
- data/features/ftp_server/disconnect_after_failed_logins.feature +0 -25
- data/features/ftp_server/eprt.feature +0 -56
- data/features/ftp_server/epsv.feature +0 -37
- data/features/ftp_server/features.feature +0 -38
- data/features/ftp_server/file_structure.feature +0 -43
- data/features/ftp_server/get.feature +0 -80
- data/features/ftp_server/get_ipv6.feature +0 -46
- data/features/ftp_server/get_tls.feature +0 -23
- data/features/ftp_server/help.feature +0 -21
- data/features/ftp_server/implicit_tls.feature +0 -23
- data/features/ftp_server/invertability.feature +0 -15
- data/features/ftp_server/list.feature +0 -94
- data/features/ftp_server/list_tls.feature +0 -29
- data/features/ftp_server/logging.feature +0 -11
- data/features/ftp_server/login_auth_level_account.feature +0 -51
- data/features/ftp_server/login_auth_level_password.feature +0 -59
- data/features/ftp_server/login_auth_level_user.feature +0 -31
- data/features/ftp_server/max_connections.feature +0 -39
- data/features/ftp_server/mdtm.feature +0 -53
- data/features/ftp_server/mkdir.feature +0 -70
- data/features/ftp_server/mode.feature +0 -43
- data/features/ftp_server/name_list.feature +0 -77
- data/features/ftp_server/name_list_tls.feature +0 -30
- data/features/ftp_server/noop.feature +0 -17
- data/features/ftp_server/options.feature +0 -17
- data/features/ftp_server/pasv.feature +0 -30
- data/features/ftp_server/port.feature +0 -49
- data/features/ftp_server/put.feature +0 -79
- data/features/ftp_server/put_tls.feature +0 -23
- data/features/ftp_server/put_unique.feature +0 -56
- data/features/ftp_server/quit.feature +0 -23
- data/features/ftp_server/reinitialize.feature +0 -13
- data/features/ftp_server/rename.feature +0 -97
- data/features/ftp_server/rmdir.feature +0 -71
- data/features/ftp_server/site.feature +0 -13
- data/features/ftp_server/size.feature +0 -69
- data/features/ftp_server/status.feature +0 -18
- data/features/ftp_server/step_definitions/logging.rb +0 -10
- data/features/ftp_server/step_definitions/test_server.rb +0 -71
- data/features/ftp_server/structure_mount.feature +0 -13
- data/features/ftp_server/syntax_errors.feature +0 -18
- data/features/ftp_server/syst.feature +0 -18
- data/features/ftp_server/timeout.feature +0 -26
- data/features/ftp_server/type.feature +0 -59
- data/features/step_definitions/append.rb +0 -17
- data/features/step_definitions/client.rb +0 -27
- data/features/step_definitions/client_and_server_files.rb +0 -26
- data/features/step_definitions/client_files.rb +0 -16
- data/features/step_definitions/command.rb +0 -7
- data/features/step_definitions/connect.rb +0 -39
- data/features/step_definitions/delete.rb +0 -17
- data/features/step_definitions/directory_navigation.rb +0 -28
- data/features/step_definitions/error_replies.rb +0 -117
- data/features/step_definitions/features.rb +0 -23
- data/features/step_definitions/file_structure.rb +0 -18
- data/features/step_definitions/generic_send.rb +0 -11
- data/features/step_definitions/get.rb +0 -18
- data/features/step_definitions/help.rb +0 -20
- data/features/step_definitions/invalid_commands.rb +0 -13
- data/features/step_definitions/ipv6.rb +0 -11
- data/features/step_definitions/line_endings.rb +0 -9
- data/features/step_definitions/list.rb +0 -75
- data/features/step_definitions/login.rb +0 -84
- data/features/step_definitions/mkdir.rb +0 -11
- data/features/step_definitions/mode.rb +0 -17
- data/features/step_definitions/mtime.rb +0 -25
- data/features/step_definitions/noop.rb +0 -17
- data/features/step_definitions/options.rb +0 -11
- data/features/step_definitions/passive.rb +0 -10
- data/features/step_definitions/pending.rb +0 -5
- data/features/step_definitions/port.rb +0 -7
- data/features/step_definitions/put.rb +0 -31
- data/features/step_definitions/quit.rb +0 -17
- data/features/step_definitions/rename.rb +0 -13
- data/features/step_definitions/rmdir.rb +0 -11
- data/features/step_definitions/server_files.rb +0 -63
- data/features/step_definitions/server_title.rb +0 -14
- data/features/step_definitions/size.rb +0 -22
- data/features/step_definitions/status.rb +0 -11
- data/features/step_definitions/success_replies.rb +0 -9
- data/features/step_definitions/system.rb +0 -12
- data/features/step_definitions/timing.rb +0 -21
- data/features/step_definitions/type.rb +0 -17
- data/features/support/env.rb +0 -6
- data/features/support/example_server.rb +0 -69
- data/features/support/file_templates/ascii_unix +0 -4
- data/features/support/file_templates/ascii_windows +0 -4
- data/features/support/file_templates/binary +0 -0
- data/features/support/test_client.rb +0 -258
- data/features/support/test_file_templates.rb +0 -35
- data/features/support/test_server.rb +0 -304
- data/features/support/test_server_files.rb +0 -59
- data/rake_tasks/cucumber.rake +0 -9
- data/rake_tasks/default.rake +0 -1
- data/rake_tasks/jeweler.rake +0 -52
- data/rake_tasks/spec.rake +0 -3
- data/rake_tasks/test.rake +0 -2
- data/rake_tasks/yard.rake +0 -3
- data/spec/command_sequence_checker_spec.rb +0 -85
- data/spec/connection_throttle_spec.rb +0 -101
- data/spec/connection_tracker_spec.rb +0 -99
- data/spec/data_server_factory_spec.rb +0 -104
- data/spec/disk_file_system_spec.rb +0 -322
- data/spec/exception_translator_spec.rb +0 -38
- data/spec/file_info_spec.rb +0 -61
- data/spec/ftp_server_error_spec.rb +0 -15
- data/spec/list_format/eplf_spec.rb +0 -63
- data/spec/list_format/ls_spec.rb +0 -272
- data/spec/list_path_spec.rb +0 -23
- data/spec/null_logger_spec.rb +0 -26
- data/spec/protocols_spec.rb +0 -159
- data/spec/server_spec.rb +0 -83
- data/spec/spec_helper.rb +0 -17
- data/spec/telnet_spec.rb +0 -77
- data/spec/translate_exceptions_spec.rb +0 -42
- data/testlib/network.rb +0 -17
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
Feature: List TLS
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to list files
|
|
5
|
-
So that I can see what file to transfer
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server has TLS mode "explicit"
|
|
9
|
-
And the test server is started
|
|
10
|
-
|
|
11
|
-
Scenario: Active
|
|
12
|
-
Given a successful login with explicit TLS
|
|
13
|
-
And the server has file "foo"
|
|
14
|
-
And the server has file "bar"
|
|
15
|
-
And the client is in active mode
|
|
16
|
-
When the client successfully lists the directory
|
|
17
|
-
Then the file list should be in long form
|
|
18
|
-
And the file list should contain "foo"
|
|
19
|
-
And the file list should contain "bar"
|
|
20
|
-
|
|
21
|
-
Scenario: Passive
|
|
22
|
-
Given a successful login with explicit TLS
|
|
23
|
-
And the server has file "foo"
|
|
24
|
-
And the server has file "bar"
|
|
25
|
-
And the client is in passive mode
|
|
26
|
-
When the client successfully lists the directory
|
|
27
|
-
Then the file list should be in long form
|
|
28
|
-
And the file list should contain "foo"
|
|
29
|
-
And the file list should contain "bar"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Feature: Logging
|
|
2
|
-
|
|
3
|
-
As a programmer
|
|
4
|
-
I want to see logging output
|
|
5
|
-
So that I can fix FTP protocol problems
|
|
6
|
-
|
|
7
|
-
Scenario: Logging enabled
|
|
8
|
-
Given the test server has logging enabled
|
|
9
|
-
And the test server is started
|
|
10
|
-
And a successful login
|
|
11
|
-
Then the server should have written log output
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
Feature: Login
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to log in
|
|
5
|
-
So that I can transfer files
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server has auth level "AUTH_ACCOUNT"
|
|
9
|
-
And the test server is started
|
|
10
|
-
|
|
11
|
-
Scenario: Normal connection
|
|
12
|
-
Given a successful login
|
|
13
|
-
Then the server returns no error
|
|
14
|
-
And the client should be logged in
|
|
15
|
-
|
|
16
|
-
Scenario: Bad user
|
|
17
|
-
Given the client connects
|
|
18
|
-
When the client logs in with bad user
|
|
19
|
-
Then the server returns a login incorrect error
|
|
20
|
-
And the client should not be logged in
|
|
21
|
-
|
|
22
|
-
Scenario: Bad password
|
|
23
|
-
Given a successful connection
|
|
24
|
-
When the client logs in with bad password
|
|
25
|
-
Then the server returns a login incorrect error
|
|
26
|
-
And the client should not be logged in
|
|
27
|
-
|
|
28
|
-
Scenario: Bad account
|
|
29
|
-
Given a successful connection
|
|
30
|
-
When the client logs in with bad account
|
|
31
|
-
Then the server returns a login incorrect error
|
|
32
|
-
And the client should not be logged in
|
|
33
|
-
|
|
34
|
-
Scenario: ACCT without parameter
|
|
35
|
-
Given a successful connection
|
|
36
|
-
And the client sends a user
|
|
37
|
-
And the client sends a password
|
|
38
|
-
When the client sends "ACCT"
|
|
39
|
-
Then the server returns a syntax error
|
|
40
|
-
|
|
41
|
-
Scenario: PASS not followed by ACCT
|
|
42
|
-
Given a successful connection
|
|
43
|
-
And the client sends a user
|
|
44
|
-
And the client sends a password
|
|
45
|
-
When the client sends "NOOP"
|
|
46
|
-
Then the server returns a bad sequence error
|
|
47
|
-
|
|
48
|
-
Scenario: ACCT out of sequence
|
|
49
|
-
Given a successful connection
|
|
50
|
-
When the client sends "ACCT"
|
|
51
|
-
Then the server returns a bad sequence error
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
Feature: Login
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to log in
|
|
5
|
-
So that I can transfer files
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server has auth level "AUTH_PASSWORD"
|
|
9
|
-
And the test server is started
|
|
10
|
-
|
|
11
|
-
Scenario: Normal connection
|
|
12
|
-
Given a successful login
|
|
13
|
-
Then the server returns no error
|
|
14
|
-
And the client should be logged in
|
|
15
|
-
|
|
16
|
-
Scenario: Bad user
|
|
17
|
-
Given the client connects
|
|
18
|
-
When the client logs in with bad user
|
|
19
|
-
Then the server returns a login incorrect error
|
|
20
|
-
And the client should not be logged in
|
|
21
|
-
|
|
22
|
-
Scenario: Bad password
|
|
23
|
-
Given a successful connection
|
|
24
|
-
When the client logs in with bad password
|
|
25
|
-
Then the server returns a login incorrect error
|
|
26
|
-
And the client should not be logged in
|
|
27
|
-
|
|
28
|
-
Scenario: Already logged in
|
|
29
|
-
Given a successful login
|
|
30
|
-
When the client logs in
|
|
31
|
-
Then the server returns a bad sequence error
|
|
32
|
-
And the client should be logged in
|
|
33
|
-
|
|
34
|
-
Scenario: PASS when already logged in
|
|
35
|
-
Given a successful login
|
|
36
|
-
When the client sends a password
|
|
37
|
-
Then the server returns a bad sequence error
|
|
38
|
-
|
|
39
|
-
Scenario: PASS after failed login
|
|
40
|
-
Given a failed login
|
|
41
|
-
When the client sends a password
|
|
42
|
-
Then the server returns a bad sequence error
|
|
43
|
-
|
|
44
|
-
Scenario: PASS without USER
|
|
45
|
-
Given a successful connection
|
|
46
|
-
And the client sends a password
|
|
47
|
-
Then the server returns a bad sequence error
|
|
48
|
-
|
|
49
|
-
Scenario: PASS without parameter
|
|
50
|
-
Given a successful connection
|
|
51
|
-
And the client sends a user
|
|
52
|
-
When the client sends a password with no parameter
|
|
53
|
-
Then the server returns a syntax error
|
|
54
|
-
|
|
55
|
-
Scenario: USER not followed by PASS
|
|
56
|
-
Given a successful connection
|
|
57
|
-
And the client sends a user
|
|
58
|
-
When the client sends "NOOP"
|
|
59
|
-
Then the server returns a bad sequence error
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Feature: Login
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to log in
|
|
5
|
-
So that I can transfer files
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server has auth level "AUTH_USER"
|
|
9
|
-
And the test server is started
|
|
10
|
-
|
|
11
|
-
Scenario: Normal connection
|
|
12
|
-
Given a successful login
|
|
13
|
-
Then the server returns no error
|
|
14
|
-
And the client should be logged in
|
|
15
|
-
|
|
16
|
-
Scenario: Bad user
|
|
17
|
-
Given the client connects
|
|
18
|
-
When the client logs in with bad user
|
|
19
|
-
Then the server returns a login incorrect error
|
|
20
|
-
And the client should not be logged in
|
|
21
|
-
|
|
22
|
-
Scenario: Already logged in
|
|
23
|
-
Given a successful login
|
|
24
|
-
When the client logs in
|
|
25
|
-
Then the server returns a bad sequence error
|
|
26
|
-
And the client should be logged in
|
|
27
|
-
|
|
28
|
-
Scenario: USER without parameter
|
|
29
|
-
Given a successful connection
|
|
30
|
-
And the client sends a user with no parameter
|
|
31
|
-
Then the server returns a syntax error
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
Feature: Max Connections
|
|
2
|
-
|
|
3
|
-
As an administrator
|
|
4
|
-
I want to limit the number of connections
|
|
5
|
-
To prevent overload
|
|
6
|
-
|
|
7
|
-
Scenario: Total connections
|
|
8
|
-
Given the test server has max_connections set to 2
|
|
9
|
-
And the test server is started
|
|
10
|
-
And the 1st client connects
|
|
11
|
-
And the 2nd client connects
|
|
12
|
-
When the 3rd client tries to connect
|
|
13
|
-
Then the server returns a too many connections error
|
|
14
|
-
|
|
15
|
-
Scenario: Connections per user
|
|
16
|
-
And the test server has max_connections_per_ip set to 1
|
|
17
|
-
And the test server is started
|
|
18
|
-
And the 1st client connects from 127.0.0.1
|
|
19
|
-
And the 2nd client connects from 127.0.0.2
|
|
20
|
-
When the 3rd client tries to connect from 127.0.0.2
|
|
21
|
-
Then the server returns a too many connections error
|
|
22
|
-
|
|
23
|
-
Scenario: TLS
|
|
24
|
-
Given the test server has max_connections set to 2
|
|
25
|
-
And the test server has TLS mode "explicit"
|
|
26
|
-
And the test server is started
|
|
27
|
-
And the 1st client connects
|
|
28
|
-
And the 2nd client connects
|
|
29
|
-
When the 3rd client tries to connect
|
|
30
|
-
Then the server returns a too many connections error
|
|
31
|
-
|
|
32
|
-
Scenario: Connections per user, TLS
|
|
33
|
-
And the test server has max_connections_per_ip set to 1
|
|
34
|
-
And the test server has TLS mode "explicit"
|
|
35
|
-
And the test server is started
|
|
36
|
-
And the 1st client connects from 127.0.0.1
|
|
37
|
-
And the 2nd client connects from 127.0.0.2
|
|
38
|
-
When the 3rd client tries to connect from 127.0.0.2
|
|
39
|
-
Then the server returns a too many connections error
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
Feature: MDTM
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to get a file's modification time
|
|
5
|
-
So that I can detect when it changes
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server is started
|
|
9
|
-
|
|
10
|
-
Scenario: File in current directory
|
|
11
|
-
Given a successful login
|
|
12
|
-
And the server has file "ascii_unix"
|
|
13
|
-
And the file "ascii_unix" has mtime "2014-01-02 13:14:15.123456"
|
|
14
|
-
When the client successfully gets mtime of "ascii_unix"
|
|
15
|
-
Then the reported mtime should be "20140102131415"
|
|
16
|
-
|
|
17
|
-
Scenario: File in subdirectory
|
|
18
|
-
Given a successful login
|
|
19
|
-
And the server has file "foo/ascii_unix"
|
|
20
|
-
Then the client successfully gets mtime of "foo/ascii_unix"
|
|
21
|
-
|
|
22
|
-
Scenario: Non-root working directory
|
|
23
|
-
Given a successful login
|
|
24
|
-
And the server has file "foo/ascii_unix"
|
|
25
|
-
And the client successfully cd's to "foo"
|
|
26
|
-
Then the client successfully gets mtime of "ascii_unix"
|
|
27
|
-
|
|
28
|
-
Scenario: Access denied
|
|
29
|
-
Given a successful login
|
|
30
|
-
When the client gets mtime of "forbidden"
|
|
31
|
-
Then the server returns an access denied error
|
|
32
|
-
|
|
33
|
-
Scenario: Missing file
|
|
34
|
-
Given a successful login
|
|
35
|
-
When the client gets mtime of "foo"
|
|
36
|
-
Then the server returns a not found error
|
|
37
|
-
|
|
38
|
-
Scenario: Not logged in
|
|
39
|
-
Given a successful connection
|
|
40
|
-
When the client gets mtime of "foo"
|
|
41
|
-
Then the server returns a not logged in error
|
|
42
|
-
|
|
43
|
-
Scenario: Missing path
|
|
44
|
-
Given a successful login
|
|
45
|
-
When the client gets mtime with no path
|
|
46
|
-
Then the server returns a syntax error
|
|
47
|
-
|
|
48
|
-
Scenario: List not enabled
|
|
49
|
-
Given the test server lacks list
|
|
50
|
-
And a successful login
|
|
51
|
-
And the server has file "foo"
|
|
52
|
-
When the client gets mtime of "foo"
|
|
53
|
-
Then the server returns an unimplemented command error
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
Feature: Make directory
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to create a directory
|
|
5
|
-
So that I can categorize my uploads
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server is started
|
|
9
|
-
|
|
10
|
-
Scenario: Make directory
|
|
11
|
-
Given a successful login
|
|
12
|
-
When the client successfully makes directory "foo"
|
|
13
|
-
Then the server has directory "foo"
|
|
14
|
-
|
|
15
|
-
Scenario: Directory of a directory
|
|
16
|
-
Given a successful login
|
|
17
|
-
And the server has directory "foo"
|
|
18
|
-
When the client successfully makes directory "foo/bar"
|
|
19
|
-
Then the server has directory "foo/bar"
|
|
20
|
-
|
|
21
|
-
Scenario: After cwd
|
|
22
|
-
Given a successful login
|
|
23
|
-
And the server has directory "foo"
|
|
24
|
-
And the client successfully cd's to "foo"
|
|
25
|
-
When the client successfully makes directory "bar"
|
|
26
|
-
Then the server has directory "foo/bar"
|
|
27
|
-
|
|
28
|
-
Scenario: XMKD
|
|
29
|
-
Given a successful login
|
|
30
|
-
When the client successfully sends "XMKD foo"
|
|
31
|
-
Then the server has directory "foo"
|
|
32
|
-
|
|
33
|
-
Scenario: Missing directory
|
|
34
|
-
Given a successful login
|
|
35
|
-
When the client makes directory "foo/bar"
|
|
36
|
-
Then the server returns a not found error
|
|
37
|
-
|
|
38
|
-
Scenario: Not logged in
|
|
39
|
-
Given a successful connection
|
|
40
|
-
When the client makes directory "foo"
|
|
41
|
-
Then the server returns a not logged in error
|
|
42
|
-
|
|
43
|
-
Scenario: Already exists
|
|
44
|
-
Given a successful login
|
|
45
|
-
And the server has directory "foo"
|
|
46
|
-
When the client makes directory "foo"
|
|
47
|
-
Then the server returns an already exists error
|
|
48
|
-
|
|
49
|
-
Scenario: Directory of a file
|
|
50
|
-
Given a successful login
|
|
51
|
-
And the server has file "foo"
|
|
52
|
-
When the client makes directory "foo/bar"
|
|
53
|
-
Then the server returns a not a directory error
|
|
54
|
-
|
|
55
|
-
Scenario: Mkdir not enabled
|
|
56
|
-
Given the test server lacks mkdir
|
|
57
|
-
And a successful login
|
|
58
|
-
When the client makes directory "foo"
|
|
59
|
-
Then the server returns an unimplemented command error
|
|
60
|
-
|
|
61
|
-
Scenario: Missing path
|
|
62
|
-
Given a successful login
|
|
63
|
-
When the client sends "MKD"
|
|
64
|
-
Then the server returns a syntax error
|
|
65
|
-
|
|
66
|
-
Scenario: Access denied
|
|
67
|
-
Given a successful login
|
|
68
|
-
When the client makes directory "forbidden"
|
|
69
|
-
Then the server returns an access denied error
|
|
70
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Feature: Mode
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to set the file transfer mode
|
|
5
|
-
So that can optimize the transfer
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server is started
|
|
9
|
-
|
|
10
|
-
Scenario: Stream
|
|
11
|
-
Given a successful login
|
|
12
|
-
And the server has file "ascii_unix"
|
|
13
|
-
When the client successfully sets mode "S"
|
|
14
|
-
And the client successfully gets text "ascii_unix"
|
|
15
|
-
Then the remote file "ascii_unix" should match the local file
|
|
16
|
-
|
|
17
|
-
Scenario: Block
|
|
18
|
-
Given a successful login
|
|
19
|
-
And the server has file "ascii_unix"
|
|
20
|
-
When the client sets mode "B"
|
|
21
|
-
Then the server returns a mode not implemented error
|
|
22
|
-
|
|
23
|
-
Scenario: Compressed
|
|
24
|
-
Given a successful login
|
|
25
|
-
And the server has file "ascii_unix"
|
|
26
|
-
When the client sets mode "C"
|
|
27
|
-
Then the server returns a mode not implemented error
|
|
28
|
-
|
|
29
|
-
Scenario: Invalid
|
|
30
|
-
Given a successful login
|
|
31
|
-
And the server has file "ascii_unix"
|
|
32
|
-
When the client sets mode "*"
|
|
33
|
-
Then the server returns an invalid mode error
|
|
34
|
-
|
|
35
|
-
Scenario: Not logged in
|
|
36
|
-
Given a successful connection
|
|
37
|
-
When the client sets mode "S"
|
|
38
|
-
Then the server returns a not logged in error
|
|
39
|
-
|
|
40
|
-
Scenario: Missing parameter
|
|
41
|
-
Given a successful login
|
|
42
|
-
When the client sets mode with no parameter
|
|
43
|
-
Then the server returns a syntax error
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
Feature: Name List
|
|
2
|
-
|
|
3
|
-
As a client
|
|
4
|
-
I want to list file names
|
|
5
|
-
So that I can see what file to transfer
|
|
6
|
-
|
|
7
|
-
Background:
|
|
8
|
-
Given the test server is started
|
|
9
|
-
|
|
10
|
-
Scenario: Implicit
|
|
11
|
-
Given a successful login
|
|
12
|
-
And the server has file "foo"
|
|
13
|
-
And the server has file "bar"
|
|
14
|
-
When the client successfully name-lists the directory
|
|
15
|
-
Then the file list should be in short form
|
|
16
|
-
And the file list should contain "foo"
|
|
17
|
-
And the file list should contain "bar"
|
|
18
|
-
|
|
19
|
-
Scenario: Root
|
|
20
|
-
Given a successful login
|
|
21
|
-
And the server has file "foo"
|
|
22
|
-
And the server has file "bar"
|
|
23
|
-
When the client successfully name-lists the directory "/"
|
|
24
|
-
Then the file list should be in short form
|
|
25
|
-
And the file list should contain "foo"
|
|
26
|
-
And the file list should contain "bar"
|
|
27
|
-
|
|
28
|
-
Scenario: Parent of root
|
|
29
|
-
Given a successful login
|
|
30
|
-
And the server has file "foo"
|
|
31
|
-
And the server has file "bar"
|
|
32
|
-
When the client successfully name-lists the directory "/.."
|
|
33
|
-
Then the file list should be in short form
|
|
34
|
-
And the file list should contain "foo"
|
|
35
|
-
And the file list should contain "bar"
|
|
36
|
-
|
|
37
|
-
Scenario: Subdir
|
|
38
|
-
Given a successful login
|
|
39
|
-
And the server has file "subdir/foo"
|
|
40
|
-
When the client successfully name-lists the directory "subdir"
|
|
41
|
-
Then the file list should be in short form
|
|
42
|
-
And the file list should contain "foo"
|
|
43
|
-
|
|
44
|
-
Scenario: '-a'
|
|
45
|
-
Given a successful login
|
|
46
|
-
And the server has file "foo"
|
|
47
|
-
And the server has file "bar"
|
|
48
|
-
When the client successfully name-lists the directory "-a"
|
|
49
|
-
Then the file list should be in short form
|
|
50
|
-
And the file list should contain "foo"
|
|
51
|
-
And the file list should contain "bar"
|
|
52
|
-
|
|
53
|
-
Scenario: Passive
|
|
54
|
-
Given a successful login
|
|
55
|
-
And the server has file "foo"
|
|
56
|
-
And the server has file "bar"
|
|
57
|
-
And the client is in passive mode
|
|
58
|
-
When the client successfully name-lists the directory
|
|
59
|
-
Then the file list should be in short form
|
|
60
|
-
And the file list should contain "foo"
|
|
61
|
-
And the file list should contain "bar"
|
|
62
|
-
|
|
63
|
-
Scenario: Missing directory
|
|
64
|
-
Given a successful login
|
|
65
|
-
When the client successfully name-lists the directory "missing/file"
|
|
66
|
-
Then the file list should be empty
|
|
67
|
-
|
|
68
|
-
Scenario: Not logged in
|
|
69
|
-
Given a successful connection
|
|
70
|
-
When the client name-lists the directory
|
|
71
|
-
Then the server returns a not logged in error
|
|
72
|
-
|
|
73
|
-
Scenario: List not enabled
|
|
74
|
-
Given the test server lacks list
|
|
75
|
-
And a successful login
|
|
76
|
-
When the client name-lists the directory
|
|
77
|
-
Then the server returns an unimplemented command error
|