BtSync 0.5.1 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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