BtSync 0.5.1 → 0.5.3

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.
Files changed (87) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +1 -0
  3. data/.travis.yml +1 -0
  4. data/Vagrantfile +31 -0
  5. data/cookbooks/apt/.gitignore +14 -0
  6. data/cookbooks/apt/.kitchen.yml +38 -0
  7. data/cookbooks/apt/Berksfile +8 -0
  8. data/cookbooks/apt/CHANGELOG.md +97 -0
  9. data/cookbooks/apt/CONTRIBUTING +29 -0
  10. data/cookbooks/apt/LICENSE +201 -0
  11. data/cookbooks/apt/README.md +243 -0
  12. data/cookbooks/apt/TESTING.md +25 -0
  13. data/cookbooks/apt/attributes/default.rb +4 -0
  14. data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  15. data/cookbooks/apt/metadata.json +1 -0
  16. data/cookbooks/apt/metadata.rb +30 -0
  17. data/cookbooks/apt/providers/preference.rb +61 -0
  18. data/cookbooks/apt/providers/repository.rb +132 -0
  19. data/cookbooks/apt/recipes/cacher-client.rb +59 -0
  20. data/cookbooks/apt/recipes/cacher-ng.rb +40 -0
  21. data/cookbooks/apt/recipes/default.rb +68 -0
  22. data/cookbooks/apt/resources/preference.rb +30 -0
  23. data/cookbooks/apt/resources/repository.rb +40 -0
  24. data/cookbooks/apt/templates/debian-6.0/acng.conf.erb +174 -0
  25. data/cookbooks/apt/templates/default/01proxy.erb +2 -0
  26. data/cookbooks/apt/templates/default/acng.conf.erb +276 -0
  27. data/cookbooks/apt/templates/ubuntu-10.04/acng.conf.erb +270 -0
  28. data/cookbooks/btsync/README.md +2 -0
  29. data/cookbooks/btsync/metadata.rb +14 -0
  30. data/cookbooks/btsync/recipes/default.rb +13 -0
  31. data/cookbooks/build-essential/.gitignore +4 -0
  32. data/cookbooks/build-essential/.kitchen.yml +42 -0
  33. data/cookbooks/build-essential/Berksfile +3 -0
  34. data/cookbooks/build-essential/CHANGELOG.md +42 -0
  35. data/cookbooks/build-essential/CONTRIBUTING +29 -0
  36. data/cookbooks/build-essential/LICENSE +201 -0
  37. data/cookbooks/build-essential/README.md +139 -0
  38. data/cookbooks/build-essential/TESTING.md +25 -0
  39. data/cookbooks/build-essential/attributes/default.rb +33 -0
  40. data/cookbooks/build-essential/metadata.json +44 -0
  41. data/cookbooks/build-essential/metadata.rb +16 -0
  42. data/cookbooks/build-essential/recipes/debian.rb +45 -0
  43. data/cookbooks/build-essential/recipes/default.rb +24 -0
  44. data/cookbooks/build-essential/recipes/fedora.rb +36 -0
  45. data/cookbooks/build-essential/recipes/mac_os_x.rb +40 -0
  46. data/cookbooks/build-essential/recipes/rhel.rb +43 -0
  47. data/cookbooks/build-essential/recipes/smartos.rb +36 -0
  48. data/cookbooks/build-essential/recipes/solaris2.rb +42 -0
  49. data/cookbooks/build-essential/recipes/suse.rb +36 -0
  50. data/lib/btsync.rb +13 -13
  51. data/lib/btsync/communicator.rb +14 -4
  52. data/lib/btsync/directory.rb +12 -12
  53. data/lib/btsync/version.rb +1 -1
  54. data/spec/BtSync/bt_sync_spec.rb +13 -9
  55. data/spec/BtSync/directory_spec.rb +13 -20
  56. data/spec/fixtures/cassettes/{get-known-hosts.yml → Remove-Default-Host.yml} +5 -5
  57. data/spec/fixtures/cassettes/Setup-BtSync-Directory.yml +289 -12
  58. data/spec/fixtures/cassettes/Setup-BtSync.yml +252 -0
  59. data/spec/fixtures/cassettes/Setup-Directory-Settings.yml +8 -38
  60. data/spec/fixtures/cassettes/add-folder-list.yml +32 -35
  61. data/spec/fixtures/cassettes/add-folder.yml +10 -94
  62. data/spec/fixtures/cassettes/add-known-host.yml +6 -6
  63. data/spec/fixtures/cassettes/change_download_limit.yml +15 -42
  64. data/spec/fixtures/cassettes/change_listening_port.yml +15 -42
  65. data/spec/fixtures/cassettes/change_name.yml +13 -40
  66. data/spec/fixtures/cassettes/change_upload_limit.yml +15 -42
  67. data/spec/fixtures/cassettes/get-folders.yml +54 -24
  68. data/spec/fixtures/cassettes/get-os-type.yml +3 -30
  69. data/spec/fixtures/cassettes/get-peers.yml +7 -8
  70. data/spec/fixtures/cassettes/get-preferences.yml +24 -24
  71. data/spec/fixtures/cassettes/get-settings.yml +6 -33
  72. data/spec/fixtures/cassettes/get-version.yml +3 -30
  73. data/spec/fixtures/cassettes/remove-folder-list.yml +18 -20
  74. data/spec/fixtures/cassettes/remove-folder.yml +35 -38
  75. data/spec/fixtures/cassettes/remove-known-host.yml +6 -6
  76. data/spec/fixtures/cassettes/reset_device_name.yml +13 -13
  77. data/spec/fixtures/cassettes/reset_download_limit.yml +15 -15
  78. data/spec/fixtures/cassettes/reset_listening_port.yml +15 -15
  79. data/spec/fixtures/cassettes/reset_upload_limit.yml +15 -15
  80. data/spec/fixtures/cassettes/set-preferences-delete.yml +11 -11
  81. data/spec/fixtures/cassettes/set-preferences-dht.yml +11 -11
  82. data/spec/fixtures/cassettes/set-preferences-hosts.yml +11 -11
  83. data/spec/fixtures/cassettes/set-preferences-lan.yml +11 -11
  84. data/spec/fixtures/cassettes/set-preferences-relay.yml +11 -11
  85. data/spec/fixtures/cassettes/set-preferences-tracker.yml +11 -11
  86. data/spec/fixtures/cassettes/view-folders.yml +5 -5
  87. metadata +52 -4
@@ -0,0 +1,36 @@
1
+ #
2
+ # Cookbook Name:: build-essential
3
+ # Recipe:: smartos
4
+ #
5
+ # Copyright 2008-2013, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ include_recipe 'pkgin'
21
+
22
+ %w{
23
+ gcc47
24
+ gcc47-runtime
25
+ scmgit-base
26
+ gmake
27
+ pkg-config
28
+ binutils
29
+ }.each do |pkg|
30
+
31
+ r = pkgin_package pkg do
32
+ action( node['build_essential']['compiletime'] ? :nothing : :install )
33
+ end
34
+ r.run_action(:install) if node['build_essential']['compiletime']
35
+
36
+ end
@@ -0,0 +1,42 @@
1
+ #
2
+ # Cookbook Name:: build-essential
3
+ # Recipe:: solaris2
4
+ #
5
+ # Copyright 2013, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ %w{
21
+ autoconf
22
+ automake
23
+ bison
24
+ coreutils
25
+ flex
26
+ gcc4core
27
+ gcc4g++
28
+ gcc4objc
29
+ gcc3core
30
+ gcc3g++
31
+ ggrep
32
+ gmake
33
+ gtar
34
+ pkgconfig
35
+ }.each do |pkg|
36
+
37
+ r = pkgutil_package pkg do
38
+ action( node['build_essential']['compiletime'] ? :nothing : :install )
39
+ end
40
+ r.run_action(:install) if node['build_essential']['compiletime']
41
+
42
+ end
@@ -0,0 +1,36 @@
1
+ #
2
+ # Cookbook Name:: build-essential
3
+ # Recipe:: suse
4
+ #
5
+ # Copyright 2008-2013, Opscode, Inc.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ %w{
21
+ autoconf
22
+ bison
23
+ flex
24
+ gcc
25
+ gcc-c++
26
+ kernel-default-devel
27
+ make
28
+ m4
29
+ }.each do |pkg|
30
+
31
+ r = package pkg do
32
+ action( node['build_essential']['compiletime'] ? :nothing : :install )
33
+ end
34
+ r.run_action(:install) if node['build_essential']['compiletime']
35
+
36
+ end
@@ -14,8 +14,8 @@ class BtSync
14
14
  :protocol => "http",
15
15
  :uri => "localhost",
16
16
  :port => "8888",
17
- :user => "",
18
- :password => ""}
17
+ :user => "admin",
18
+ :password => "AdminPassword"}
19
19
  @opts.merge!(options.symbolize)
20
20
  @opts[:uri].gsub!(/^(https?:\/\/){1,}/i, '')
21
21
  @port = @opts[:port]
@@ -64,7 +64,7 @@ class BtSync
64
64
  def change_setting type, opt
65
65
  options = get_settings.merge!({type => opt})
66
66
 
67
- res = self.class.get(path('setsettings'), :query => options, :headers => {"Cookie" => cookies })
67
+ res = get(path('setsettings'), :query => options)
68
68
  end
69
69
  def get_speed
70
70
  s = get_folder_list["speed"].split(", ")
@@ -74,12 +74,12 @@ class BtSync
74
74
  end
75
75
  def remove_folder folder_name, my_secret = nil
76
76
  my_secret ||= secret(folder_name)
77
- res = self.class.get(path('removefolder'), :query => { :name => folder_name, :secret => my_secret}, :headers => {"Cookie" => cookies})
77
+ res = get(path('removefolder'), :query => { :name => folder_name, :secret => my_secret})
78
78
  true
79
79
  end
80
80
  def add_folder folder_name, my_secret = nil
81
81
  my_secret ||= generate_secret
82
- res = self.class.get(path('addsyncfolder'), :query => { :name => folder_name, :secret => my_secret}, :headers => {"Cookie" => cookies})
82
+ res = get(path('addsyncfolder'), :query => { :name => folder_name, :secret => my_secret})
83
83
  unless res["error"] == 0
84
84
  @errors << res["message"]
85
85
  return false
@@ -88,25 +88,25 @@ class BtSync
88
88
  end
89
89
 
90
90
  def get_settings
91
- res = self.class.get(path('getsettings'), :headers => {"Cookie" => cookies })
91
+ res = get(path('getsettings'))
92
92
  res.parsed_response["settings"]
93
93
  end
94
94
  def get_os_type
95
- res = self.class.get(path('getostype'), :headers => {"Cookie" => cookies })
95
+ res = get(path('getostype'))
96
96
  res.parsed_response["os"]
97
97
  end
98
98
  def get_version
99
- res = self.class.get(path('getversion'), :headers => {"Cookie" => cookies })
99
+ res = get(path('getversion'))
100
100
  res.parsed_response["version"]
101
101
  end
102
102
  def check_new_version
103
- res = self.class.get(path('checknewversion'), :headers => {"Cookie" => cookies })
103
+ res = get(path('checknewversion'))
104
104
  res.parsed_response["version"]
105
105
  end
106
106
 
107
- def get_dir with_dir
108
- res = self.class.get(path('getdir'), :query => {:dir => with_dir}, :headers => {"Cookie" => cookies })
109
- res.parsed_response["folders"]
107
+ def get_dir with_dir = "/"
108
+ res = get(path('getdir'), :query => {"dir" => with_dir})
109
+ res.parsed_response["folders"].map{|f| f.gsub!('//', '/')}
110
110
  end
111
111
 
112
112
  def secret with_dir
@@ -116,7 +116,7 @@ class BtSync
116
116
  private
117
117
 
118
118
  def get_folder_list
119
- res = self.class.get(path('getsyncfolders'), :headers => {"Cookie" => cookies })
119
+ res = get(path('getsyncfolders'))
120
120
  @folder_list = res.parsed_response
121
121
  end
122
122
  end
@@ -1,8 +1,9 @@
1
1
  module BtCommunicator
2
2
  include HTTParty
3
-
3
+ disable_rails_query_string_format
4
+ default_params :output => 'json'
4
5
  def generate_secret
5
- res = self.class.get(path('generatesecret'), :headers => {"Cookie" => cookies })
6
+ res = get(path('generatesecret'))
6
7
  res.parsed_response["secret"]
7
8
  end
8
9
  def port
@@ -23,6 +24,9 @@ module BtCommunicator
23
24
  def communication_options
24
25
  @opts
25
26
  end
27
+ def auth
28
+ {:username => user, :password => password}
29
+ end
26
30
  def token force = false
27
31
  @token_cache ||= 0
28
32
  time = DateTime.now.strftime("%s").to_i
@@ -39,18 +43,24 @@ module BtCommunicator
39
43
  def root_url
40
44
  "#{starter}#{uri}:#{port}/"
41
45
  end
46
+
47
+ def get path, opts = {}
48
+ opts = {:headers=>{"Cookie" => cookies}, :query => {}, :basic_auth => auth}.merge(opts)
49
+ self.class.get(path, opts)
50
+ end
51
+
42
52
  def request_token force = false
43
53
  @last_request ||= 0
44
54
  t = DateTime.now.strftime('%s').to_i
45
55
  if @request_token.nil? || force || (@last_request + 600) < t
46
56
  @last_request = t
47
- @request_token = self.class.get("#{root_url}gui/token.html", :query => {:output => :text})
57
+ @request_token = self.class.get("#{root_url}gui/token.html", :basic_auth => auth)
48
58
  else
49
59
  @request_token
50
60
  end
51
61
  end
52
62
  def starter
53
- "#{protocol}://#{user}:#{password}@"
63
+ "#{protocol}://"
54
64
  end
55
65
  def path action_name
56
66
  "#{root_url}gui/?token=#{token}&action=#{action_name}"
@@ -17,12 +17,12 @@ class BtSync
17
17
  end
18
18
 
19
19
  def destroy
20
- self.class.get(path('removefolder'), :query => { :name => name, :secret => secret}, :headers => {"Cookie" => cookies})
20
+ get(path('removefolder'), :query => { :name => name, :secret => secret} )
21
21
  self.instance_variables.each{|v| v = nil}
22
22
  end
23
23
  def update_secret new_secret = nil
24
24
  new_secret ||= generate_secret
25
- res = self.class.get(path('updatesecret'), :query => { :name => @name, :secret => @secret, :newsecret => new_secret}, :headers => {"Cookie" => cookies})
25
+ res = get(path('updatesecret'), :query => { :name => @name, :secret => @secret, :newsecret => new_secret} )
26
26
  if res.parsed_response != "{}" && res.parsed_response != '\r\ninvalid request'
27
27
  @secret = new_secret
28
28
  true
@@ -32,26 +32,26 @@ class BtSync
32
32
  end
33
33
  end
34
34
  def folders
35
- res = self.class.get(path('getdir'), :query => {:dir => @name}, :headers => {"Cookie" => cookies })
35
+ res = get(path('getdir'), :query => {:dir => @name})
36
36
  res.parsed_response["folders"]
37
37
  end
38
38
  def peers
39
- res = self.class.get(path('getsyncfolders'), :headers => {"Cookie" => cookies })
39
+ res = get(path('getsyncfolders') )
40
40
  f = res.parsed_response["folders"].select{|f| f["name"] == name}.first
41
41
  f["peers"]
42
42
  end
43
43
  def known_hosts
44
- res = self.class.get(path('getknownhosts'), :query => {:name => name, :secret => secret}, :headers => {"Cookie" => cookies })
44
+ res = get(path('getknownhosts'), :query => {:name => name, :secret => secret})
45
45
  hosts = {}
46
46
  res["hosts"].map{|h| hosts[h["index"]] = h["peer"]}
47
47
  hosts
48
48
  end
49
49
  def add_host host, port
50
- res = self.class.get(path('addknownhosts'), :query =>{:name => name, :secret => secret, :addr =>host, :port => port}, :headers => {"Cookie" => cookies })
50
+ res = get(path('addknownhosts'), :query =>{:name => name, :secret => secret, :addr =>host, :port => port} )
51
51
  true
52
52
  end
53
53
  def remove_host index
54
- res = self.class.get(path('removeknownhosts'), :query =>{:name => name, :secret => secret, :index => index}, :headers => {"Cookie" => cookies })
54
+ res = get(path('removeknownhosts'), :query =>{:name => name, :secret => secret, :index => index} )
55
55
  if res.parsed_response != {}
56
56
  res.parsed_response
57
57
  else
@@ -101,7 +101,7 @@ class BtSync
101
101
  bool(preferences["iswritable"])
102
102
  end
103
103
  def preferences
104
- res = self.class.get(path('getfolderpref'), :query => { :name => @name, :secret => @secret}, :headers => {"Cookie" => cookies})
104
+ res = get(path('getfolderpref'), :query => { :name => @name, :secret => @secret})
105
105
  res.parsed_response["folderpref"]
106
106
  end
107
107
  def read_only_secret
@@ -109,7 +109,7 @@ class BtSync
109
109
  end
110
110
  private
111
111
  def set_pref pref, opt
112
- res = self.class.get(path('setfolderpref'), :query => make_opts(pref, opt), :headers => {"Cookie" => cookies })
112
+ res = get(path('setfolderpref'), :query => make_opts(pref, opt) )
113
113
  true
114
114
  end
115
115
  def default_settings
@@ -123,7 +123,7 @@ class BtSync
123
123
  'deletetotrash' => 1,
124
124
  'usehosts' => 1
125
125
  }
126
- self.class.get(path('setfolderpref'), :query => opts, :headers => {"Cookie" => cookies })
126
+ get(path('setfolderpref'), :query => opts )
127
127
  end
128
128
  def make_opts name, opt
129
129
  opts = preferences
@@ -148,12 +148,12 @@ class BtSync
148
148
  end
149
149
  end
150
150
  def find_or_create
151
- res = self.class.get(path('getsyncfolders'), :headers => {"Cookie" => cookies })
151
+ res = get(path('getsyncfolders'))
152
152
  folder_list = res.parsed_response["folders"]
153
153
  if folder_list.map{|f| f["name"]}.include? name
154
154
  true
155
155
  else
156
- res = self.class.get(path('addsyncfolder'), :query => { :name => name, :secret => secret}, :headers => {"Cookie" => cookies})
156
+ res = get(path('addsyncfolder'), :query => { :name => name, :secret => secret})
157
157
  end
158
158
  end
159
159
  end
@@ -1,3 +1,3 @@
1
1
  module BtsyncVersion
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -4,6 +4,10 @@ describe 'BtSync' do
4
4
  before(:each) do
5
5
  VCR.use_cassette("Setup-BtSync") do
6
6
  @bt = BtSync.new
7
+ @bt.add_folder '/home/vagrant'
8
+ @bt.listening_port = 63754
9
+ @bt.upload_limit = 0
10
+ @bt.device_name = "precise32 - Default Instance"
7
11
  end
8
12
  end
9
13
 
@@ -11,13 +15,13 @@ describe 'BtSync' do
11
15
  VCR.use_cassette("get-folders") do
12
16
  @folder = @bt.folders.first
13
17
  end
14
- @folder.name.should == "/home/chris/Documents"
18
+ @folder.name.should == "/home/vagrant"
15
19
  end
16
20
  it "can view settings" do
17
21
  VCR.use_cassette("get-settings") do
18
22
  @settings = @bt.get_settings
19
23
  end
20
- @settings["devicename"].should == "IceyEC-Virtual1"
24
+ @settings["devicename"].should == "precise32 - Default Instance"
21
25
  @settings["listeningport"].should == 63754
22
26
  end
23
27
  it "can get listening port" do
@@ -37,7 +41,7 @@ describe 'BtSync' do
37
41
  end
38
42
  it "can get device name" do
39
43
  VCR.use_cassette("get-settings") do
40
- @bt.device_name.should == "IceyEC-Virtual1"
44
+ @bt.device_name.should == "precise32 - Default Instance"
41
45
  end
42
46
  end
43
47
  it "can change the device_name" do
@@ -46,8 +50,8 @@ describe 'BtSync' do
46
50
  @bt.device_name.should == "IceyEC-Virtual2"
47
51
  end
48
52
  VCR.use_cassette('reset_device_name') do
49
- @bt.device_name = "IceyEC-Virtual1"
50
- @bt.device_name.should == "IceyEC-Virtual1"
53
+ @bt.device_name = "precise32 - Default Instance"
54
+ @bt.device_name.should == "precise32 - Default Instance"
51
55
  end
52
56
  end
53
57
  it "can change the upload limit" do
@@ -94,22 +98,22 @@ describe 'BtSync' do
94
98
  end
95
99
  it "can add and delete a folder" do
96
100
  VCR.use_cassette("add-folder") do
97
- @bt.add_folder '/home/chris/bt_test'
101
+ @bt.add_folder '/tmp'
98
102
  end
99
103
  VCR.use_cassette("add-folder-list") do
100
104
  folders = @bt.folders
101
105
  folders.count.should == 2
102
106
  folder = folders.last
103
- folder.name.should == "/home/chris/bt_test"
107
+ folder.name.should == "/tmp"
104
108
  end
105
109
  VCR.use_cassette("remove-folder") do
106
- @bt.remove_folder '/home/chris/bt_test'
110
+ @bt.remove_folder '/tmp'
107
111
  end
108
112
  VCR.use_cassette("remove-folder-list") do
109
113
  folders = @bt.folders
110
114
  folders.count.should == 1
111
115
  folder = folders.last
112
- folder.name.should == "/home/chris/Documents"
116
+ folder.name.should == "/home/vagrant"
113
117
  end
114
118
  end
115
119
  end
@@ -4,51 +4,44 @@ describe 'BtSync::Directory' do
4
4
  before(:each) do
5
5
  VCR.use_cassette("Setup-BtSync-Directory") do
6
6
  @bt = BtSync.new
7
- @directory = BtSync::Directory.new(
8
- '/home/chris/Documents',
9
- '6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ',
10
- @bt)
7
+ @bt.add_folder '/home/vagrant'
8
+ @bt.listening_port = 63754
9
+ @bt.upload_limit = 0
10
+ @bt.device_name = "precise32 - Default Instance"
11
+ @directory = @bt.folders.first
11
12
  end
12
13
  VCR.use_cassette('Setup-Directory-Settings') do
13
- @bt = BtSync.new
14
- @directory = BtSync::Directory.new(
15
- '/home/chris/Documents',
16
- '6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ',
17
- @bt)
18
14
  @directory.send('default_settings')
15
+ @directory.add_host('192.168.1.5','45685')
19
16
  end
20
17
  end
21
18
  after(:each) do
22
19
  VCR.use_cassette('Setup-Directory-Settings') do
23
20
  @directory.send('default_settings')
24
21
  end
22
+ VCR.use_cassette('Remove-Default-Host') do
23
+ @directory.remove_host 0
24
+ end
25
25
  end
26
26
  it "can view contained folders" do
27
27
  VCR.use_cassette("view-folders") do
28
28
  @folders = @directory.folders
29
29
  end
30
- @folders.first.should == "/home/chris/Documents/test"
30
+ @folders.should == []
31
31
  end
32
32
  it "can get a list of peers" do
33
33
  VCR.use_cassette("get-peers") do
34
34
  @peers = @directory.peers
35
35
  end
36
- @peers.first.should == {"direct"=>1, "name"=>"IceyEC Portable", "status"=>"Synced on 06/05/13 20:52:35"}
36
+ @peers.should == []
37
37
  end
38
- it "can get known hosts" do
39
- VCR.use_cassette("get-known-hosts") do
40
- @hosts = @directory.known_hosts
41
- end
42
- @hosts[0].should == "192.168.1.5:45685"
43
- end
44
- it "can add a known host" do
38
+ it "can add and remove a known host" do
45
39
  VCR.use_cassette('add-known-host') do
46
40
  @directory.add_host('10.0.1.254', '12345')
47
41
  @hosts = @directory.known_hosts
48
42
  end
49
43
  @hosts[1].should == "10.0.1.254:12345"
50
- end
51
- it "can remove a known host" do
44
+
52
45
  VCR.use_cassette('remove-known-host') do
53
46
  @directory.remove_host(1)
54
47
  @hosts = @directory.known_hosts