redcar 0.3.8.3 → 0.3.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/CHANGES +6 -0
  2. data/Rakefile +1 -1
  3. data/lib/redcar.rb +1 -1
  4. data/lib/redcar/installer.rb +14 -4
  5. metadata +1 -168
  6. data/lib/openssl/Manifest.txt +0 -99
  7. data/lib/openssl/build.properties +0 -7
  8. data/lib/plugin_manager/plugin_manager.gemspec +0 -33
  9. data/plugins/project/vendor/net-sftp/Manifest +0 -55
  10. data/plugins/project/vendor/net-sftp/Rakefile +0 -30
  11. data/plugins/project/vendor/net-sftp/lib/net/sftp.rb +0 -70
  12. data/plugins/project/vendor/net-sftp/lib/net/sftp/constants.rb +0 -187
  13. data/plugins/project/vendor/net-sftp/lib/net/sftp/errors.rb +0 -39
  14. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/dir.rb +0 -93
  15. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/download.rb +0 -364
  16. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/file.rb +0 -176
  17. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/file_factory.rb +0 -60
  18. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/upload.rb +0 -387
  19. data/plugins/project/vendor/net-sftp/lib/net/sftp/packet.rb +0 -21
  20. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol.rb +0 -32
  21. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/attributes.rb +0 -315
  22. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/base.rb +0 -268
  23. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/name.rb +0 -43
  24. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/02/base.rb +0 -31
  25. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/03/base.rb +0 -35
  26. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/attributes.rb +0 -152
  27. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/base.rb +0 -94
  28. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/name.rb +0 -67
  29. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/05/base.rb +0 -66
  30. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/06/attributes.rb +0 -107
  31. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/06/base.rb +0 -63
  32. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/base.rb +0 -50
  33. data/plugins/project/vendor/net-sftp/lib/net/sftp/request.rb +0 -91
  34. data/plugins/project/vendor/net-sftp/lib/net/sftp/response.rb +0 -76
  35. data/plugins/project/vendor/net-sftp/lib/net/sftp/session.rb +0 -951
  36. data/plugins/project/vendor/net-sftp/lib/net/sftp/version.rb +0 -18
  37. data/plugins/project/vendor/net-sftp/setup.rb +0 -1331
  38. data/plugins/project/vendor/net-sftp/test/common.rb +0 -171
  39. data/plugins/project/vendor/net-sftp/test/protocol/01/test_attributes.rb +0 -97
  40. data/plugins/project/vendor/net-sftp/test/protocol/01/test_base.rb +0 -210
  41. data/plugins/project/vendor/net-sftp/test/protocol/01/test_name.rb +0 -27
  42. data/plugins/project/vendor/net-sftp/test/protocol/02/test_base.rb +0 -26
  43. data/plugins/project/vendor/net-sftp/test/protocol/03/test_base.rb +0 -27
  44. data/plugins/project/vendor/net-sftp/test/protocol/04/test_attributes.rb +0 -148
  45. data/plugins/project/vendor/net-sftp/test/protocol/04/test_base.rb +0 -74
  46. data/plugins/project/vendor/net-sftp/test/protocol/04/test_name.rb +0 -53
  47. data/plugins/project/vendor/net-sftp/test/protocol/05/test_base.rb +0 -62
  48. data/plugins/project/vendor/net-sftp/test/protocol/06/test_attributes.rb +0 -124
  49. data/plugins/project/vendor/net-sftp/test/protocol/06/test_base.rb +0 -51
  50. data/plugins/project/vendor/net-sftp/test/protocol/test_base.rb +0 -42
  51. data/plugins/project/vendor/net-sftp/test/test_all.rb +0 -7
  52. data/plugins/project/vendor/net-sftp/test/test_dir.rb +0 -47
  53. data/plugins/project/vendor/net-sftp/test/test_download.rb +0 -252
  54. data/plugins/project/vendor/net-sftp/test/test_file.rb +0 -159
  55. data/plugins/project/vendor/net-sftp/test/test_file_factory.rb +0 -48
  56. data/plugins/project/vendor/net-sftp/test/test_packet.rb +0 -9
  57. data/plugins/project/vendor/net-sftp/test/test_protocol.rb +0 -17
  58. data/plugins/project/vendor/net-sftp/test/test_request.rb +0 -71
  59. data/plugins/project/vendor/net-sftp/test/test_response.rb +0 -53
  60. data/plugins/project/vendor/net-sftp/test/test_session.rb +0 -741
  61. data/plugins/project/vendor/net-sftp/test/test_upload.rb +0 -219
  62. data/plugins/project/vendor/net-ssh/Manifest +0 -110
  63. data/plugins/project/vendor/net-ssh/Rakefile +0 -85
  64. data/plugins/project/vendor/net-ssh/Rudyfile +0 -96
  65. data/plugins/project/vendor/net-ssh/lib/net/ssh.rb +0 -215
  66. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/agent.rb +0 -179
  67. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/constants.rb +0 -18
  68. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/key_manager.rb +0 -193
  69. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/abstract.rb +0 -60
  70. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/hostbased.rb +0 -71
  71. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/keyboard_interactive.rb +0 -66
  72. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/password.rb +0 -39
  73. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/publickey.rb +0 -92
  74. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/pageant.rb +0 -183
  75. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/session.rb +0 -134
  76. data/plugins/project/vendor/net-ssh/lib/net/ssh/buffer.rb +0 -340
  77. data/plugins/project/vendor/net-ssh/lib/net/ssh/buffered_io.rb +0 -198
  78. data/plugins/project/vendor/net-ssh/lib/net/ssh/config.rb +0 -202
  79. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/channel.rb +0 -630
  80. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/constants.rb +0 -33
  81. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/session.rb +0 -597
  82. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/term.rb +0 -178
  83. data/plugins/project/vendor/net-ssh/lib/net/ssh/errors.rb +0 -85
  84. data/plugins/project/vendor/net-ssh/lib/net/ssh/key_factory.rb +0 -102
  85. data/plugins/project/vendor/net-ssh/lib/net/ssh/known_hosts.rb +0 -129
  86. data/plugins/project/vendor/net-ssh/lib/net/ssh/loggable.rb +0 -61
  87. data/plugins/project/vendor/net-ssh/lib/net/ssh/packet.rb +0 -102
  88. data/plugins/project/vendor/net-ssh/lib/net/ssh/prompt.rb +0 -93
  89. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/command.rb +0 -75
  90. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/errors.rb +0 -14
  91. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/http.rb +0 -94
  92. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/socks4.rb +0 -70
  93. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/socks5.rb +0 -142
  94. data/plugins/project/vendor/net-ssh/lib/net/ssh/ruby_compat.rb +0 -43
  95. data/plugins/project/vendor/net-ssh/lib/net/ssh/service/forward.rb +0 -288
  96. data/plugins/project/vendor/net-ssh/lib/net/ssh/test.rb +0 -89
  97. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/channel.rb +0 -129
  98. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/extensions.rb +0 -152
  99. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/kex.rb +0 -44
  100. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/local_packet.rb +0 -51
  101. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/packet.rb +0 -81
  102. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/remote_packet.rb +0 -38
  103. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/script.rb +0 -157
  104. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/socket.rb +0 -64
  105. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/algorithms.rb +0 -384
  106. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/cipher_factory.rb +0 -97
  107. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/constants.rb +0 -30
  108. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac.rb +0 -31
  109. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/abstract.rb +0 -79
  110. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/md5.rb +0 -12
  111. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/md5_96.rb +0 -11
  112. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/none.rb +0 -15
  113. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/sha1.rb +0 -13
  114. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/sha1_96.rb +0 -11
  115. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/identity_cipher.rb +0 -55
  116. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex.rb +0 -13
  117. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +0 -208
  118. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +0 -77
  119. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/openssl.rb +0 -128
  120. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/packet_stream.rb +0 -235
  121. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/server_version.rb +0 -71
  122. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/session.rb +0 -276
  123. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/state.rb +0 -206
  124. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/lenient.rb +0 -30
  125. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/null.rb +0 -12
  126. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/strict.rb +0 -53
  127. data/plugins/project/vendor/net-ssh/lib/net/ssh/version.rb +0 -62
  128. data/plugins/project/vendor/net-ssh/net-ssh.gemspec +0 -138
  129. data/plugins/project/vendor/net-ssh/setup.rb +0 -1585
  130. data/plugins/project/vendor/net-ssh/support/arcfour_check.rb +0 -20
  131. data/plugins/project/vendor/net-ssh/support/ssh_tunnel_bug.rb +0 -65
  132. data/plugins/project/vendor/net-ssh/test/README.txt +0 -42
  133. data/plugins/project/vendor/net-ssh/test/authentication/methods/common.rb +0 -28
  134. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_abstract.rb +0 -51
  135. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_hostbased.rb +0 -114
  136. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_keyboard_interactive.rb +0 -98
  137. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_password.rb +0 -50
  138. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_publickey.rb +0 -127
  139. data/plugins/project/vendor/net-ssh/test/authentication/test_agent.rb +0 -205
  140. data/plugins/project/vendor/net-ssh/test/authentication/test_key_manager.rb +0 -105
  141. data/plugins/project/vendor/net-ssh/test/authentication/test_session.rb +0 -93
  142. data/plugins/project/vendor/net-ssh/test/common.rb +0 -107
  143. data/plugins/project/vendor/net-ssh/test/configs/eqsign +0 -3
  144. data/plugins/project/vendor/net-ssh/test/configs/exact_match +0 -8
  145. data/plugins/project/vendor/net-ssh/test/configs/host_plus +0 -10
  146. data/plugins/project/vendor/net-ssh/test/configs/multihost +0 -4
  147. data/plugins/project/vendor/net-ssh/test/configs/nohost +0 -19
  148. data/plugins/project/vendor/net-ssh/test/configs/numeric_host +0 -4
  149. data/plugins/project/vendor/net-ssh/test/configs/wild_cards +0 -14
  150. data/plugins/project/vendor/net-ssh/test/connection/test_channel.rb +0 -467
  151. data/plugins/project/vendor/net-ssh/test/connection/test_session.rb +0 -488
  152. data/plugins/project/vendor/net-ssh/test/manual/test_forward.rb +0 -185
  153. data/plugins/project/vendor/net-ssh/test/test_all.rb +0 -9
  154. data/plugins/project/vendor/net-ssh/test/test_buffer.rb +0 -336
  155. data/plugins/project/vendor/net-ssh/test/test_buffered_io.rb +0 -63
  156. data/plugins/project/vendor/net-ssh/test/test_config.rb +0 -117
  157. data/plugins/project/vendor/net-ssh/test/test_key_factory.rb +0 -67
  158. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_md5.rb +0 -39
  159. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_md5_96.rb +0 -25
  160. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_none.rb +0 -34
  161. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_sha1.rb +0 -34
  162. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_sha1_96.rb +0 -25
  163. data/plugins/project/vendor/net-ssh/test/transport/kex/test_diffie_hellman_group1_sha1.rb +0 -146
  164. data/plugins/project/vendor/net-ssh/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +0 -92
  165. data/plugins/project/vendor/net-ssh/test/transport/test_algorithms.rb +0 -302
  166. data/plugins/project/vendor/net-ssh/test/transport/test_cipher_factory.rb +0 -213
  167. data/plugins/project/vendor/net-ssh/test/transport/test_hmac.rb +0 -34
  168. data/plugins/project/vendor/net-ssh/test/transport/test_identity_cipher.rb +0 -40
  169. data/plugins/project/vendor/net-ssh/test/transport/test_packet_stream.rb +0 -441
  170. data/plugins/project/vendor/net-ssh/test/transport/test_server_version.rb +0 -78
  171. data/plugins/project/vendor/net-ssh/test/transport/test_session.rb +0 -315
  172. data/plugins/project/vendor/net-ssh/test/transport/test_state.rb +0 -173
@@ -1,51 +0,0 @@
1
- require 'common'
2
- require 'protocol/05/test_base'
3
-
4
- class Protocol::V06::TestBase < Protocol::V05::TestBase
5
- include Net::SFTP::Constants::OpenFlags
6
- include Net::SFTP::Constants
7
-
8
- def test_version
9
- assert_equal 6, @base.version
10
- end
11
-
12
- def test_parse_attrs_packet_should_use_correct_attributes_class
13
- Net::SFTP::Protocol::V06::Attributes.expects(:from_buffer).with(:packet).returns(:result)
14
- assert_equal({ :attrs => :result }, @base.parse_attrs_packet(:packet))
15
- end
16
-
17
- undef test_link_should_raise_not_implemented_error
18
- undef test_block_should_raise_not_implemented_error
19
- undef test_unblock_should_raise_not_implemented_error
20
- undef test_symlink_should_send_symlink_packet
21
-
22
- def test_link_should_send_link_packet
23
- @session.expects(:send_packet).with(FXP_LINK, :long, 0, :string, "/path/to/link", :string, "/path/to/file", :bool, true)
24
- assert_equal 0, @base.link("/path/to/link", "/path/to/file", true)
25
- end
26
-
27
- def test_symlink_should_send_link_packet_as_symlink
28
- @session.expects(:send_packet).with(FXP_LINK, :long, 0, :string, "/path/to/link", :string, "/path/to/file", :bool, true)
29
- assert_equal 0, @base.symlink("/path/to/link", "/path/to/file")
30
- end
31
-
32
- def test_block_should_send_block_packet
33
- @session.expects(:send_packet).with(FXP_BLOCK, :long, 0, :string, "handle", :int64, 1234, :int64, 4567, :long, 0x40)
34
- assert_equal 0, @base.block("handle", 1234, 4567, 0x40)
35
- end
36
-
37
- def test_unblock_should_send_unblock_packet
38
- @session.expects(:send_packet).with(FXP_UNBLOCK, :long, 0, :string, "handle", :int64, 1234, :int64, 4567)
39
- assert_equal 0, @base.unblock("handle", 1234, 4567)
40
- end
41
-
42
- private
43
-
44
- def driver
45
- Net::SFTP::Protocol::V06::Base
46
- end
47
-
48
- def attributes
49
- Net::SFTP::Protocol::V06::Attributes
50
- end
51
- end
@@ -1,42 +0,0 @@
1
- require 'common'
2
-
3
- class Protocol::TestBase < Net::SFTP::TestCase
4
- def setup
5
- @base = Net::SFTP::Protocol::Base.new(stub('session', :logger => nil))
6
- end
7
-
8
- def test_parse_with_status_packet_should_delegate_to_parse_status_packet
9
- packet = stub('packet', :type => FXP_STATUS)
10
- @base.expects(:parse_status_packet).with(packet).returns(:result)
11
- assert_equal :result, @base.parse(packet)
12
- end
13
-
14
- def test_parse_with_handle_packet_should_delegate_to_parse_handle_packet
15
- packet = stub('packet', :type => FXP_HANDLE)
16
- @base.expects(:parse_handle_packet).with(packet).returns(:result)
17
- assert_equal :result, @base.parse(packet)
18
- end
19
-
20
- def test_parse_with_data_packet_should_delegate_to_parse_data_packet
21
- packet = stub('packet', :type => FXP_DATA)
22
- @base.expects(:parse_data_packet).with(packet).returns(:result)
23
- assert_equal :result, @base.parse(packet)
24
- end
25
-
26
- def test_parse_with_name_packet_should_delegate_to_parse_name_packet
27
- packet = stub('packet', :type => FXP_NAME)
28
- @base.expects(:parse_name_packet).with(packet).returns(:result)
29
- assert_equal :result, @base.parse(packet)
30
- end
31
-
32
- def test_parse_with_attrs_packet_should_delegate_to_parse_attrs_packet
33
- packet = stub('packet', :type => FXP_ATTRS)
34
- @base.expects(:parse_attrs_packet).with(packet).returns(:result)
35
- assert_equal :result, @base.parse(packet)
36
- end
37
-
38
- def test_parse_with_unknown_packet_should_raise_exception
39
- packet = stub('packet', :type => FXP_WRITE)
40
- assert_raises(NotImplementedError) { @base.parse(packet) }
41
- end
42
- end
@@ -1,7 +0,0 @@
1
- # $ ruby -I../net-ssh/lib -Ilib -Itest -rrubygems test/test_all.rb
2
- #require 'net/ssh'
3
- #puts Net::SSH::Version::CURRENT
4
- require 'common'
5
- Dir.chdir(File.dirname(__FILE__)) do
6
- Dir['**/test_*.rb'].each { |file| require(file) }
7
- end
@@ -1,47 +0,0 @@
1
- require 'common'
2
-
3
- class DirOperationsTest < Net::SFTP::TestCase
4
- def setup
5
- @sftp = mock("sftp")
6
- @dir = Net::SFTP::Operations::Dir.new(@sftp)
7
- end
8
-
9
- def test_foreach_should_iterate_over_all_entries_in_directory
10
- @sftp.expects(:opendir!).with("/path/to/remote").returns("handle")
11
- @sftp.expects(:readdir!).with("handle").returns([:e1, :e2, :e3], [:e4, :e5], nil).times(3)
12
- @sftp.expects(:close!).with("handle")
13
-
14
- entries = []
15
- @dir.foreach("/path/to/remote") { |entry| entries << entry }
16
- assert_equal [:e1, :e2, :e3, :e4, :e5], entries
17
- end
18
-
19
- def test_entries_should_return_all_entries_in_a_single_array
20
- @sftp.expects(:opendir!).with("/path/to/remote").returns("handle")
21
- @sftp.expects(:readdir!).with("handle").returns([:e1, :e2, :e3], [:e4, :e5], nil).times(3)
22
- @sftp.expects(:close!).with("handle")
23
-
24
- assert_equal [:e1, :e2, :e3, :e4, :e5], @dir.entries("/path/to/remote")
25
- end
26
-
27
- def test_glob_should_search_under_path_for_matching_entries
28
- @sftp.expects(:opendir!).with("/path/to/remote").returns("handle")
29
- @sftp.expects(:opendir!).with("/path/to/remote/e3").returns("handle-e3")
30
- @sftp.expects(:opendir!).with("/path/to/remote/e5").returns("handle-e5")
31
- @sftp.expects(:readdir!).with("handle").returns([n(".", true), n("..", true), n("e1"), n("e2"), n("e3", true)], [n("e4"), n("e5", true)], nil).times(3)
32
- @sftp.expects(:readdir!).with("handle-e3").returns([n(".", true), n("..", true), n("e3e1"), n("e3e2")], nil).times(2)
33
- @sftp.expects(:readdir!).with("handle-e5").returns([n(".", true), n("..", true), n("e5e1"), n("e5e2"), n("e5e3")], nil).times(2)
34
- @sftp.expects(:close!).with("handle")
35
- @sftp.expects(:close!).with("handle-e3")
36
- @sftp.expects(:close!).with("handle-e5")
37
-
38
- assert_equal %w(e3/e3e2 e5/e5e2), @dir.glob("/path/to/remote", "**/e?e2").map { |e| e.name }
39
- end
40
-
41
- private
42
-
43
- def n(name, directory=false)
44
- Net::SFTP::Protocol::V01::Name.new(name.to_s, "longname for #{name}",
45
- Net::SFTP::Protocol::V01::Attributes.new(:permissions => directory ? 040755 : 0100644))
46
- end
47
- end
@@ -1,252 +0,0 @@
1
- require "common"
2
-
3
- class DownloadTest < Net::SFTP::TestCase
4
- def setup
5
- prepare_progress!
6
- end
7
-
8
- def test_download_file_should_transfer_remote_to_local
9
- local = "/path/to/local"
10
- remote = "/path/to/remote"
11
- text = "this is some text\n"
12
-
13
- expect_file_transfer(remote, text)
14
-
15
- file = StringIO.new
16
- File.stubs(:open).with(local, "wb").returns(file)
17
-
18
- assert_scripted_command { sftp.download(remote, local) }
19
- assert_equal text, file.string
20
- end
21
-
22
- def test_download_large_file_should_transfer_remote_to_local
23
- local = "/path/to/local"
24
- remote = "/path/to/remote"
25
- text = "0123456789" * 1024
26
-
27
- file = prepare_large_file_download(local, remote, text)
28
-
29
- assert_scripted_command { sftp.download(remote, local, :read_size => 1024) }
30
- assert_equal text, file.string
31
- end
32
-
33
- def test_download_large_file_with_progress_should_report_progress
34
- local = "/path/to/local"
35
- remote = "/path/to/remote"
36
- text = "0123456789" * 1024
37
-
38
- file = prepare_large_file_download(local, remote, text)
39
-
40
- assert_scripted_command do
41
- sftp.download(remote, local, :read_size => 1024) do |*args|
42
- record_progress(args)
43
- end
44
- end
45
-
46
- assert_equal text, file.string
47
-
48
- assert_progress_reported_open :remote => "/path/to/remote"
49
- assert_progress_reported_get 0, 1024
50
- assert_progress_reported_get 1024, 1024
51
- assert_progress_reported_get 2048, 1024
52
- assert_progress_reported_get 3072, 1024
53
- assert_progress_reported_get 4096, 1024
54
- assert_progress_reported_get 5120, 1024
55
- assert_progress_reported_get 6144, 1024
56
- assert_progress_reported_get 7168, 1024
57
- assert_progress_reported_get 8192, 1024
58
- assert_progress_reported_get 9216, 1024
59
- assert_progress_reported_close
60
- assert_progress_reported_finish
61
- assert_no_more_reported_events
62
- end
63
-
64
- def test_download_directory_should_mirror_directory_locally
65
- file1, file2 = prepare_directory_tree_download("/path/to/local", "/path/to/remote")
66
-
67
- assert_scripted_command do
68
- sftp.download("/path/to/remote", "/path/to/local", :recursive => true)
69
- end
70
-
71
- assert_equal "contents of file1", file1.string
72
- assert_equal "contents of file2", file2.string
73
- end
74
-
75
- def test_download_directory_with_progress_should_report_progress
76
- file1, file2 = prepare_directory_tree_download("/path/to/local", "/path/to/remote")
77
-
78
- assert_scripted_command do
79
- sftp.download("/path/to/remote", "/path/to/local", :recursive => true) do |*args|
80
- record_progress(args)
81
- end
82
- end
83
-
84
- assert_equal "contents of file1", file1.string
85
- assert_equal "contents of file2", file2.string
86
-
87
- assert_progress_reported_mkdir "/path/to/local"
88
- assert_progress_reported_mkdir "/path/to/local/subdir1"
89
- assert_progress_reported_open :remote => "/path/to/remote/file1"
90
- assert_progress_reported_open :remote => "/path/to/remote/subdir1/file2"
91
- assert_progress_reported_get 0, "contents of file1"
92
- assert_progress_reported_close :remote => "/path/to/remote/file1"
93
- assert_progress_reported_get 0, "contents of file2"
94
- assert_progress_reported_close :remote => "/path/to/remote/subdir1/file2"
95
- assert_progress_reported_finish
96
- assert_no_more_reported_events
97
- end
98
-
99
- def test_download_file_should_transfer_remote_to_local_buffer
100
- remote = "/path/to/remote"
101
- text = "this is some text\n"
102
-
103
- expect_file_transfer(remote, text)
104
-
105
- local = StringIO.new
106
-
107
- assert_scripted_command { sftp.download(remote, local) }
108
- assert_equal text, local.string
109
- end
110
-
111
- def test_download_directory_to_buffer_should_fail
112
- expect_sftp_session :server_version => 3
113
- assert_raises(ArgumentError) { sftp.download("/path/to/remote", StringIO.new, :recursive => true) }
114
- end
115
-
116
- private
117
-
118
- def expect_file_transfer(remote, text)
119
- expect_sftp_session :server_version => 3 do |channel|
120
- channel.sends_packet(FXP_OPEN, :long, 0, :string, remote, :long, 0x01, :long, 0)
121
- channel.gets_packet(FXP_HANDLE, :long, 0, :string, "handle")
122
- channel.sends_packet(FXP_READ, :long, 1, :string, "handle", :int64, 0, :long, 32_000)
123
- channel.gets_packet(FXP_DATA, :long, 1, :string, text)
124
- channel.sends_packet(FXP_READ, :long, 2, :string, "handle", :int64, 32_000, :long, 32_000)
125
- channel.gets_packet(FXP_STATUS, :long, 2, :long, 1)
126
- channel.sends_packet(FXP_CLOSE, :long, 3, :string, "handle")
127
- channel.gets_packet(FXP_STATUS, :long, 3, :long, 0)
128
- end
129
- end
130
-
131
- def prepare_large_file_download(local, remote, text)
132
- expect_sftp_session :server_version => 3 do |channel|
133
- channel.sends_packet(FXP_OPEN, :long, 0, :string, remote, :long, 0x01, :long, 0)
134
- channel.gets_packet(FXP_HANDLE, :long, 0, :string, "handle")
135
- 10.times do |n|
136
- channel.sends_packet(FXP_READ, :long, n+1, :string, "handle", :int64, n*1024, :long, 1024)
137
- channel.gets_packet(FXP_DATA, :long, n+1, :string, text[n*1024,1024])
138
- end
139
- channel.sends_packet(FXP_READ, :long, 11, :string, "handle", :int64, 10240, :long, 1024)
140
- channel.gets_packet(FXP_STATUS, :long, 11, :long, 1)
141
- channel.sends_packet(FXP_CLOSE, :long, 12, :string, "handle")
142
- channel.gets_packet(FXP_STATUS, :long, 12, :long, 0)
143
- end
144
-
145
- file = StringIO.new
146
- File.stubs(:open).with(local, "wb").returns(file)
147
-
148
- return file
149
- end
150
-
151
- # 0:OPENDIR(remote) ->
152
- # <- 0:HANDLE("dir1")
153
- # 1:READDIR("dir1") ->
154
- # <- 1:NAME("..", ".", "subdir1", "file1")
155
- # 2:OPENDIR(remote/subdir1) ->
156
- # 3:OPEN(remote/file1) ->
157
- # 4:READDIR("dir1") ->
158
- # <- 2:HANDLE("dir2")
159
- # 5:READDIR("dir2") ->
160
- # <- 3:HANDLE("file1")
161
- # 6:READ("file1", 0, 32k) ->
162
- # <- 4:STATUS(1)
163
- # 7:CLOSE("dir1") ->
164
- # <- 5:NAME("..", ".", "file2")
165
- # 8:OPEN(remote/subdir1/file2) ->
166
- # 9:READDIR("dir2") ->
167
- # <- 6:DATA("blah blah blah")
168
- # 10:READ("file1", n, 32k)
169
- # <- 7:STATUS(0)
170
- # <- 8:HANDLE("file2")
171
- # 11:READ("file2", 0, 32k) ->
172
- # <- 9:STATUS(1)
173
- # 12:CLOSE("dir2") ->
174
- # <- 10:STATUS(1)
175
- # 13:CLOSE("file1") ->
176
- # <- 11:DATA("blah blah blah")
177
- # 14:READ("file2", n, 32k) ->
178
- # <- 12:STATUS(0)
179
- # <- 13:STATUS(0)
180
- # <- 14:STATUS(1)
181
- # 15:CLOSE("file2") ->
182
- # <- 15:STATUS(0)
183
-
184
- def prepare_directory_tree_download(local, remote)
185
- expect_sftp_session :server_version => 3 do |channel|
186
- channel.sends_packet(FXP_OPENDIR, :long, 0, :string, remote)
187
- channel.gets_packet(FXP_HANDLE, :long, 0, :string, "dir1")
188
-
189
- channel.sends_packet(FXP_READDIR, :long, 1, :string, "dir1")
190
- channel.gets_packet(FXP_NAME, :long, 1, :long, 4,
191
- :string, "..", :string, "drwxr-xr-x 4 bob bob 136 Aug 1 ..", :long, 0x04, :long, 040755,
192
- :string, ".", :string, "drwxr-xr-x 4 bob bob 136 Aug 1 .", :long, 0x04, :long, 040755,
193
- :string, "subdir1", :string, "drwxr-xr-x 4 bob bob 136 Aug 1 subdir1", :long, 0x04, :long, 040755,
194
- :string, "file1", :string, "-rw-rw-r-- 1 bob bob 100 Aug 1 file1", :long, 0x04, :long, 0100644)
195
-
196
- channel.sends_packet(FXP_OPENDIR, :long, 2, :string, File.join(remote, "subdir1"))
197
- channel.sends_packet(FXP_OPEN, :long, 3, :string, File.join(remote, "file1"), :long, 0x01, :long, 0)
198
- channel.sends_packet(FXP_READDIR, :long, 4, :string, "dir1")
199
-
200
- channel.gets_packet(FXP_HANDLE, :long, 2, :string, "dir2")
201
- channel.sends_packet(FXP_READDIR, :long, 5, :string, "dir2")
202
-
203
- channel.gets_packet(FXP_HANDLE, :long, 3, :string, "file1")
204
- channel.sends_packet(FXP_READ, :long, 6, :string, "file1", :int64, 0, :long, 32_000)
205
-
206
- channel.gets_packet(FXP_STATUS, :long, 4, :long, 1)
207
- channel.sends_packet(FXP_CLOSE, :long, 7, :string, "dir1")
208
-
209
- channel.gets_packet(FXP_NAME, :long, 5, :long, 3,
210
- :string, "..", :string, "drwxr-xr-x 4 bob bob 136 Aug 1 ..", :long, 0x04, :long, 040755,
211
- :string, ".", :string, "drwxr-xr-x 4 bob bob 136 Aug 1 .", :long, 0x04, :long, 040755,
212
- :string, "file2", :string, "-rw-rw-r-- 1 bob bob 100 Aug 1 file2", :long, 0x04, :long, 0100644)
213
-
214
- channel.sends_packet(FXP_OPEN, :long, 8, :string, File.join(remote, "subdir1", "file2"), :long, 0x01, :long, 0)
215
- channel.sends_packet(FXP_READDIR, :long, 9, :string, "dir2")
216
-
217
- channel.gets_packet(FXP_DATA, :long, 6, :string, "contents of file1")
218
- channel.sends_packet(FXP_READ, :long, 10, :string, "file1", :int64, 32_000, :long, 32_000)
219
-
220
- channel.gets_packet(FXP_STATUS, :long, 7, :long, 0)
221
- channel.gets_packet(FXP_HANDLE, :long, 8, :string, "file2")
222
- channel.sends_packet(FXP_READ, :long, 11, :string, "file2", :int64, 0, :long, 32_000)
223
-
224
- channel.gets_packet(FXP_STATUS, :long, 9, :long, 1)
225
- channel.sends_packet(FXP_CLOSE, :long, 12, :string, "dir2")
226
-
227
- channel.gets_packet(FXP_STATUS, :long, 10, :long, 1)
228
- channel.sends_packet(FXP_CLOSE, :long, 13, :string, "file1")
229
-
230
- channel.gets_packet(FXP_DATA, :long, 11, :string, "contents of file2")
231
- channel.sends_packet(FXP_READ, :long, 14, :string, "file2", :int64, 32_000, :long, 32_000)
232
-
233
- channel.gets_packet(FXP_STATUS, :long, 12, :long, 0)
234
- channel.gets_packet(FXP_STATUS, :long, 13, :long, 0)
235
- channel.gets_packet(FXP_STATUS, :long, 14, :long, 1)
236
- channel.sends_packet(FXP_CLOSE, :long, 15, :string, "file2")
237
- channel.gets_packet(FXP_STATUS, :long, 15, :long, 0)
238
- end
239
-
240
- File.expects(:directory?).with(local).returns(false)
241
- File.expects(:directory?).with(File.join(local, "subdir1")).returns(false)
242
- Dir.expects(:mkdir).with(local)
243
- Dir.expects(:mkdir).with(File.join(local, "subdir1"))
244
-
245
- file1 = StringIO.new
246
- file2 = StringIO.new
247
- File.expects(:open).with(File.join(local, "file1"), "wb").returns(file1)
248
- File.expects(:open).with(File.join(local, "subdir1", "file2"), "wb").returns(file2)
249
-
250
- [file1, file2]
251
- end
252
- end
@@ -1,159 +0,0 @@
1
- require 'common'
2
-
3
- class FileOperationsTest < Net::SFTP::TestCase
4
- def setup
5
- @sftp = mock("sftp")
6
- @file = Net::SFTP::Operations::File.new(@sftp, "handle")
7
- @save_dollar_fslash, $/ = $/, "\n"
8
- @save_dollar_bslash, $\ = $\, nil
9
- end
10
-
11
- def teardown
12
- $/ = @save_dollar_fslash
13
- $\ = @save_dollar_bslash
14
- end
15
-
16
- def test_pos_assignment_should_set_position
17
- @file.pos = 15
18
- assert_equal 15, @file.pos
19
- end
20
-
21
- def test_pos_assignment_should_reset_eof
22
- @sftp.expects(:read!).with("handle", 0, 8192).returns(nil)
23
- assert !@file.eof?
24
- @file.read
25
- assert @file.eof?
26
- @file.pos = 0
27
- assert !@file.eof?
28
- end
29
-
30
- def test_close_should_close_handle_and_set_handle_to_nil
31
- assert_equal "handle", @file.handle
32
- @sftp.expects(:close!).with("handle")
33
- @file.close
34
- assert_nil @file.handle
35
- end
36
-
37
- def test_eof_should_be_false_if_at_eof_but_data_remains_in_buffer
38
- @sftp.expects(:read!).returns("hello world", nil)
39
- @file.read(1)
40
- assert !@file.eof?
41
- end
42
-
43
- def test_eof_should_be_true_if_at_eof_and_no_data_in_buffer
44
- @sftp.expects(:read!).times(2).returns("hello world", nil)
45
- @file.read
46
- assert @file.eof?
47
- end
48
-
49
- def test_read_without_argument_should_read_and_return_remainder_of_file_and_set_pos
50
- @sftp.expects(:read!).times(2).returns("hello world", nil)
51
- assert_equal "hello world", @file.read
52
- assert_equal 11, @file.pos
53
- end
54
-
55
- def test_read_with_argument_should_read_and_return_n_bytes_and_set_pos
56
- @sftp.expects(:read!).returns("hello world")
57
- assert_equal "hello", @file.read(5)
58
- assert_equal 5, @file.pos
59
- end
60
-
61
- def test_read_after_pos_assignment_should_read_from_specified_position
62
- @sftp.expects(:read!).with("handle", 5, 8192).returns("hello world")
63
- @file.pos = 5
64
- assert_equal "hello", @file.read(5)
65
- assert_equal 10, @file.pos
66
- end
67
-
68
- def test_gets_without_argument_should_read_until_first_dollar_fslash
69
- @sftp.expects(:read!).returns("hello world\ngoodbye world\n\nfarewell!\n")
70
- assert_equal "\n", $/
71
- assert_equal "hello world\n", @file.gets
72
- assert_equal 12, @file.pos
73
- end
74
-
75
- def test_gets_with_empty_argument_should_read_until_double_dollar_fslash
76
- @sftp.expects(:read!).returns("hello world\ngoodbye world\n\nfarewell!\n")
77
- assert_equal "\n", $/
78
- assert_equal "hello world\ngoodbye world\n\n", @file.gets("")
79
- assert_equal 27, @file.pos
80
- end
81
-
82
- def test_gets_with_argument_should_read_until_first_instance_of_argument
83
- @sftp.expects(:read!).returns("hello world\ngoodbye world\n\nfarewell!\n")
84
- assert_equal "hello w", @file.gets("w")
85
- assert_equal 7, @file.pos
86
- end
87
-
88
- def test_gets_when_no_such_delimiter_exists_in_stream_should_read_to_EOF
89
- @sftp.expects(:read!).times(2).returns("hello world\ngoodbye world\n\nfarewell!\n", nil)
90
- assert_equal "hello world\ngoodbye world\n\nfarewell!\n", @file.gets("X")
91
- assert @file.eof?
92
- end
93
-
94
- def test_gets_at_EOF_should_return_nil
95
- @sftp.expects(:read!).returns(nil)
96
- assert_nil @file.gets
97
- assert @file.eof?
98
- end
99
-
100
- def test_readline_should_raise_exception_on_EOF
101
- @sftp.expects(:read!).returns(nil)
102
- assert_raises(EOFError) { @file.readline }
103
- end
104
-
105
- def test_write_should_write_data_and_increment_pos_and_return_data_length
106
- @sftp.expects(:write!).with("handle", 0, "hello world")
107
- assert_equal 11, @file.write("hello world")
108
- assert_equal 11, @file.pos
109
- end
110
-
111
- def test_write_after_pos_assignment_should_write_at_position
112
- @sftp.expects(:write!).with("handle", 15, "hello world")
113
- @file.pos = 15
114
- assert_equal 11, @file.write("hello world")
115
- assert_equal 26, @file.pos
116
- end
117
-
118
- def test_print_with_no_arguments_should_write_nothing_if_dollar_bslash_is_nil
119
- assert_nil $\
120
- @sftp.expects(:write!).never
121
- @file.print
122
- end
123
-
124
- def test_print_with_no_arguments_should_write_dollar_bslash_if_dollar_bslash_is_not_nil
125
- $\ = "-"
126
- @sftp.expects(:write!).with("handle", 0, "-")
127
- @file.print
128
- end
129
-
130
- def test_print_with_arguments_should_write_all_arguments
131
- @sftp.expects(:write!).with("handle", 0, "hello")
132
- @sftp.expects(:write!).with("handle", 5, " ")
133
- @sftp.expects(:write!).with("handle", 6, "world")
134
- @file.print("hello", " ", "world")
135
- end
136
-
137
- def test_puts_should_recursively_puts_array_arguments
138
- 10.times do |i|
139
- @sftp.expects(:write!).with("handle", i*2, i.to_s)
140
- @sftp.expects(:write!).with("handle", i*2+1, "\n")
141
- end
142
- @file.puts 0, [1, [2, 3], 4, [5, [6, 7, 8]]], 9
143
- end
144
-
145
- def test_puts_should_not_append_newline_if_argument_ends_in_newline
146
- @sftp.expects(:write!).with("handle", 0, "a")
147
- @sftp.expects(:write!).with("handle", 1, "\n")
148
- @sftp.expects(:write!).with("handle", 2, "b\n")
149
- @sftp.expects(:write!).with("handle", 4, "c")
150
- @sftp.expects(:write!).with("handle", 5, "\n")
151
- @file.puts "a", "b\n", "c"
152
- end
153
-
154
- def test_stat_should_return_attributes_object_for_handle
155
- stat = stub("stat")
156
- @sftp.expects(:fstat!).with("handle").returns(stat)
157
- assert_equal stat, @file.stat
158
- end
159
- end