rmega 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/TODO.md ADDED
@@ -0,0 +1,6 @@
1
+ ## Rmega todos
2
+
3
+ * Handle timeouts in download/upload
4
+ * Handle error code -3 response, that is "A temporary congestion or server malfunction prevented your request from being processed.". I noticed that this occurs quite often when creating/deleting a folder node :/
5
+ * Search for TODO in the project for other minor tasks
6
+ * Resist the hypnotoad's will
@@ -10,7 +10,7 @@ module Rmega
10
10
  encrypted_attributes = Utils.a32_to_base64 Crypto.encrypt_attributes(key[0..3], {n: name.strip})
11
11
  encrypted_key = Utils.a32_to_base64 Crypto.encrypt_key(session.master_key, key)
12
12
  n = [{h: 'xxxxxxxx', t: 1, a: encrypted_attributes, k: encrypted_key}]
13
- data = session.request a: 'p', t: parent_handle, n: n
13
+ data = session.request a: 'p', t: handle, n: n
14
14
  Folder.new(session, data['f'][0])
15
15
  end
16
16
 
data/lib/rmega/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rmega
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -61,6 +61,7 @@ describe 'File upload' do
61
61
 
62
62
  let!(:folder) { @storage.root.create_folder(@name) }
63
63
 
64
+ # TODO: `let` and `subject` declarations are not intended to be called in a `before(:all)`
64
65
  before(:all) { folder.upload(@path) }
65
66
 
66
67
  it 'finds the uploaded file and verify its content' do
@@ -5,12 +5,14 @@ describe 'Folders operations' do
5
5
  if account_file_exists?
6
6
 
7
7
  before(:all) do
8
- @name = "test_folder_#{rand.denominator}_#{rand.denominator}"
8
+ @name = "folder_#{rand.denominator}_#{rand.denominator}"
9
+ @sub_folder_name = "folder_#{rand.denominator}_#{rand.denominator}"
9
10
  @storage = login
10
11
  end
11
12
 
12
- def find_folder
13
- @storage.root.folders.find { |f| f.name == @name }
13
+ # Note: node searching is traversal
14
+ def find_folder(name)
15
+ @storage.nodes.find { |f| f.type == :folder && f.name == name }
14
16
  end
15
17
 
16
18
  context 'when #create_folder is called on a node' do
@@ -18,24 +20,42 @@ describe 'Folders operations' do
18
20
  it 'creates a new folder under that node' do
19
21
  folder = @storage.root.create_folder(@name)
20
22
  expect(folder.name).to eql @name
23
+ expect(folder.parent_handle).to eq @storage.root.handle
21
24
  end
22
25
  end
23
26
 
24
27
  context 'searching for a folder by its name' do
25
28
 
26
29
  it 'returns the matching folder' do
27
- expect(find_folder.name).to eql @name
30
+ expect(find_folder(@name).name).to eql @name
31
+ end
32
+ end
33
+
34
+ context "when #create_folder under created folder" do
35
+
36
+ it "creates a new folder under created folder" do
37
+ parent_folder = find_folder(@name)
38
+
39
+ sub_folder = parent_folder.create_folder(@sub_folder_name)
40
+
41
+ expect(parent_folder.folders.first.name).to eql @sub_folder_name
42
+ expect(sub_folder.parent_handle).to eql parent_folder.handle
28
43
  end
29
44
  end
30
45
 
31
46
  context 'when #delete is called on a folder node' do
32
47
 
48
+ it 'deletes sub folder' do
49
+ expect(find_folder(@sub_folder_name).delete).to eql 0
50
+ end
51
+
33
52
  it 'deletes the folder' do
34
- expect(find_folder.delete).to eql 0
53
+ expect(find_folder(@name).delete).to eql 0
35
54
  end
36
55
 
37
- it 'does not find the folder anymore' do
38
- expect(find_folder).to be_nil
56
+ it 'does not find the folder (and its subfolder) anymore' do
57
+ expect(find_folder(@name)).to be_nil
58
+ expect(find_folder(@sub_folder_name)).to be_nil
39
59
  end
40
60
  end
41
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmega
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-08 00:00:00.000000000 Z
12
+ date: 2013-08-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry
@@ -119,6 +119,7 @@ files:
119
119
  - LICENSE
120
120
  - README.md
121
121
  - Rakefile
122
+ - TODO.md
122
123
  - lib/rmega.rb
123
124
  - lib/rmega/crypto/aes.rb
124
125
  - lib/rmega/crypto/aes_ctr.rb