imap-backup 1.0.13 → 1.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/imap/backup/account/connection.rb +7 -2
- data/lib/imap/backup/version.rb +1 -1
- data/spec/unit/account/connection_spec.rb +58 -13
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b1789e72adf3229dc78e51f865b55b051c1915
|
4
|
+
data.tar.gz: 2f6918a2cd223adc68cc37a5cff138cd30332d6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cf0f94758f44e4b5920aea52f363141d10bb3353d92635d8e4285f561498515c60e8c7494bf80245c046a59013c0aa7abf17e1263ebc3aed987479987505b7e
|
7
|
+
data.tar.gz: f77e1381ddae8bbcf0e99c93bb337f49ee9d2de5940fa30f450432e890e96fc304829d85c2a68f36cf5b6e3b62dec05859fd14195eb7c1203f2c03fd063afe84
|
@@ -6,11 +6,11 @@ module Imap::Backup
|
|
6
6
|
class Account::Connection
|
7
7
|
attr_reader :username
|
8
8
|
attr_reader :local_path
|
9
|
-
attr_reader :backup_folders
|
10
9
|
|
11
10
|
def initialize(options)
|
12
11
|
@username, @password = options[:username], options[:password]
|
13
|
-
@local_path
|
12
|
+
@local_path = options[:local_path]
|
13
|
+
@backup_folders = options[:folders]
|
14
14
|
@server = options[:server]
|
15
15
|
end
|
16
16
|
|
@@ -63,6 +63,11 @@ module Imap::Backup
|
|
63
63
|
def masked_password
|
64
64
|
password.gsub(/./, 'x')
|
65
65
|
end
|
66
|
+
|
67
|
+
def backup_folders
|
68
|
+
return @backup_folders if @backup_folders and @backup_folders.size > 0
|
69
|
+
folders.map { |f| {:name => f} }
|
70
|
+
end
|
66
71
|
|
67
72
|
def host_for(username)
|
68
73
|
case username
|
data/lib/imap/backup/version.rb
CHANGED
@@ -2,19 +2,26 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Imap::Backup::Account::Connection do
|
5
|
+
def self.backup_folder
|
6
|
+
'backup_folder'
|
7
|
+
end
|
8
|
+
|
5
9
|
def self.folder_config
|
6
|
-
{:name =>
|
10
|
+
{:name => backup_folder}
|
7
11
|
end
|
8
12
|
|
9
|
-
let(:imap) { double('Net::IMAP', :login => nil, :list =>
|
13
|
+
let(:imap) { double('Net::IMAP', :login => nil, :list => imap_folders) }
|
14
|
+
let(:imap_folders) { [] }
|
10
15
|
let(:options) do
|
11
16
|
{
|
12
17
|
:username => username,
|
13
18
|
:password => 'password',
|
14
|
-
:local_path =>
|
15
|
-
:folders =>
|
19
|
+
:local_path => local_path,
|
20
|
+
:folders => backup_folders,
|
16
21
|
}
|
17
22
|
end
|
23
|
+
let(:local_path) { 'local_path' }
|
24
|
+
let(:backup_folders) { [self.class.folder_config] }
|
18
25
|
let(:username) { 'username@gmail.com' }
|
19
26
|
|
20
27
|
before do
|
@@ -82,12 +89,12 @@ describe Imap::Backup::Account::Connection do
|
|
82
89
|
end
|
83
90
|
|
84
91
|
context '#folders' do
|
85
|
-
let(:
|
92
|
+
let(:imap_folders) { ['imap_folder'] }
|
86
93
|
|
87
|
-
before { allow(imap).to receive(:list).and_return(
|
94
|
+
before { allow(imap).to receive(:list).and_return(imap_folders) }
|
88
95
|
|
89
96
|
it 'returns the list of folders' do
|
90
|
-
expect(subject.folders).to eq(
|
97
|
+
expect(subject.folders).to eq(imap_folders)
|
91
98
|
end
|
92
99
|
end
|
93
100
|
|
@@ -103,7 +110,7 @@ describe Imap::Backup::Account::Connection do
|
|
103
110
|
end
|
104
111
|
|
105
112
|
it 'should return the names of folders' do
|
106
|
-
expect(subject.status[0][:name]).to eq(
|
113
|
+
expect(subject.status[0][:name]).to eq(self.class.backup_folder)
|
107
114
|
end
|
108
115
|
|
109
116
|
it 'returns local message uids' do
|
@@ -132,15 +139,53 @@ describe Imap::Backup::Account::Connection do
|
|
132
139
|
let(:downloader) { double('downloader', :run => nil) }
|
133
140
|
|
134
141
|
before do
|
135
|
-
allow(Imap::Backup::Account::Folder).to receive(:new).and_return(folder)
|
136
|
-
allow(Imap::Backup::Serializer::Mbox).to receive(:new).and_return(serializer)
|
137
142
|
allow(Imap::Backup::Downloader).to receive(:new).and_return(downloader)
|
138
143
|
end
|
139
144
|
|
140
|
-
|
145
|
+
context 'with supplied backup_folders' do
|
146
|
+
before do
|
147
|
+
allow(Imap::Backup::Account::Folder).to receive(:new).
|
148
|
+
with(subject, self.class.backup_folder).and_return(folder)
|
149
|
+
allow(Imap::Backup::Serializer::Mbox).to receive(:new).
|
150
|
+
with(local_path, self.class.backup_folder).and_return(serializer)
|
151
|
+
end
|
152
|
+
|
153
|
+
before { subject.run_backup }
|
154
|
+
|
155
|
+
it 'runs the downloader' do
|
156
|
+
expect(downloader).to have_received(:run)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
context 'without supplied backup_folders' do
|
161
|
+
let(:imap_folders) { ['foo'] }
|
162
|
+
|
163
|
+
before do
|
164
|
+
allow(Imap::Backup::Account::Folder).to receive(:new).
|
165
|
+
with(subject, 'foo').and_return(folder)
|
166
|
+
allow(Imap::Backup::Serializer::Mbox).to receive(:new).
|
167
|
+
with(local_path, 'foo').and_return(serializer)
|
168
|
+
end
|
169
|
+
|
170
|
+
context 'when supplied backup_folders is nil' do
|
171
|
+
let(:backup_folders) { nil }
|
172
|
+
|
173
|
+
before { subject.run_backup }
|
174
|
+
|
175
|
+
it 'runs the downloader' do
|
176
|
+
expect(downloader).to have_received(:run)
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context 'when supplied backup_folders is an empty list' do
|
181
|
+
let(:backup_folders) { [] }
|
182
|
+
|
183
|
+
before { subject.run_backup }
|
141
184
|
|
142
|
-
|
143
|
-
|
185
|
+
it 'runs the downloader' do
|
186
|
+
expect(downloader).to have_received(:run)
|
187
|
+
end
|
188
|
+
end
|
144
189
|
end
|
145
190
|
end
|
146
191
|
end
|