lumberg 2.0.0.pre4 → 2.0.0.pre5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +49 -49
- data/lib/lumberg/cpanel.rb +2 -0
- data/lib/lumberg/cpanel/addon_domain.rb +3 -3
- data/lib/lumberg/cpanel/backups.rb +1 -1
- data/lib/lumberg/cpanel/base.rb +5 -5
- data/lib/lumberg/cpanel/box_trapper.rb +1 -1
- data/lib/lumberg/cpanel/branding.rb +5 -5
- data/lib/lumberg/cpanel/contact.rb +2 -2
- data/lib/lumberg/cpanel/cron.rb +6 -6
- data/lib/lumberg/cpanel/dns_lookup.rb +1 -1
- data/lib/lumberg/cpanel/domain_keys.rb +4 -4
- data/lib/lumberg/cpanel/domain_lookup.rb +4 -4
- data/lib/lumberg/cpanel/email.rb +40 -40
- data/lib/lumberg/cpanel/file_manager.rb +5 -5
- data/lib/lumberg/cpanel/ftp.rb +101 -0
- data/lib/lumberg/cpanel/gpg.rb +4 -4
- data/lib/lumberg/cpanel/locale.rb +1 -1
- data/lib/lumberg/cpanel/mime.rb +2 -2
- data/lib/lumberg/cpanel/mysql.rb +6 -6
- data/lib/lumberg/cpanel/net.rb +2 -2
- data/lib/lumberg/cpanel/park.rb +4 -4
- data/lib/lumberg/cpanel/password.rb +2 -2
- data/lib/lumberg/cpanel/password_strength.rb +63 -0
- data/lib/lumberg/cpanel/random_data.rb +1 -1
- data/lib/lumberg/cpanel/redirect.rb +2 -2
- data/lib/lumberg/cpanel/ssl.rb +23 -23
- data/lib/lumberg/cpanel/sub_domain.rb +4 -4
- data/lib/lumberg/cpanel/support.rb +2 -2
- data/lib/lumberg/cpanel/zone_edit.rb +8 -8
- data/lib/lumberg/format_whm.rb +7 -7
- data/lib/lumberg/version.rb +1 -1
- data/lib/lumberg/whm/account.rb +5 -5
- data/lib/lumberg/whm/cert.rb +1 -1
- data/lib/lumberg/whm/dns.rb +6 -6
- data/lib/lumberg/whm/reseller.rb +5 -5
- data/lib/lumberg/whm/server.rb +26 -26
- data/spec/cpanel/addon_domain_spec.rb +13 -13
- data/spec/cpanel/backups_spec.rb +3 -3
- data/spec/cpanel/base_spec.rb +19 -19
- data/spec/cpanel/box_trapper_spec.rb +3 -3
- data/spec/cpanel/branding_spec.rb +3 -3
- data/spec/cpanel/contact_spec.rb +6 -6
- data/spec/cpanel/cron_spec.rb +51 -51
- data/spec/cpanel/dns_lookup_spec.rb +4 -4
- data/spec/cpanel/domain_keys_spec.rb +3 -3
- data/spec/cpanel/domain_lookup_spec.rb +5 -5
- data/spec/cpanel/email_spec.rb +116 -116
- data/spec/cpanel/file_manager_spec.rb +11 -11
- data/spec/cpanel/ftp_spec.rb +71 -0
- data/spec/cpanel/gpg_spec.rb +3 -3
- data/spec/cpanel/locale_spec.rb +3 -3
- data/spec/cpanel/net_spec.rb +4 -4
- data/spec/cpanel/park_spec.rb +7 -7
- data/spec/cpanel/password_spec.rb +5 -5
- data/spec/cpanel/password_strength_spec.rb +50 -0
- data/spec/cpanel/random_data_spec.rb +4 -4
- data/spec/cpanel/ssl_spec.rb +27 -27
- data/spec/cpanel/sub_domain_spec.rb +8 -8
- data/spec/cpanel/support_spec.rb +4 -4
- data/spec/spec_helper.rb +1 -1
- data/spec/vcr_cassettes/cpanel/ftp/addftp.yml +43 -0
- data/spec/vcr_cassettes/cpanel/ftp/delftp.yml +43 -0
- data/spec/vcr_cassettes/cpanel/ftp/listftp.yml +43 -0
- data/spec/vcr_cassettes/cpanel/ftp/listftpsessions.yml +43 -0
- data/spec/vcr_cassettes/cpanel/ftp/listftpwithdisk.yml +95 -0
- data/spec/vcr_cassettes/cpanel/ftp/passwd.yml +43 -0
- data/spec/vcr_cassettes/cpanel/ftp/setquota.yml +43 -0
- data/spec/vcr_cassettes/cpanel/password_strength/all_required_strengths.yml +43 -0
- data/spec/vcr_cassettes/cpanel/password_strength/required_strength.yml +43 -0
- data/spec/vcr_cassettes/cpanel/password_strength/strength.yml +83 -0
- data/spec/whm/account_spec.rb +69 -69
- data/spec/whm/base_spec.rb +3 -3
- data/spec/whm/cert_spec.rb +24 -24
- data/spec/whm/dns_spec.rb +36 -36
- data/spec/whm/reseller_spec.rb +36 -36
- data/spec/whm/server_spec.rb +22 -22
- data/spec/whm/whm_spec.rb +8 -8
- metadata +29 -2
data/spec/cpanel/email_spec.rb
CHANGED
@@ -3,12 +3,12 @@ require "spec_helper"
|
|
3
3
|
module Lumberg
|
4
4
|
describe Cpanel::Email do
|
5
5
|
let(:domain) { "lumberg-test.com" }
|
6
|
-
let(:server) { Whm::Server.new(:
|
6
|
+
let(:server) { Whm::Server.new(host: @whm_host, hash: @whm_hash) }
|
7
7
|
let(:api_username) { "lumberg" }
|
8
8
|
let(:email) do
|
9
9
|
described_class.new(
|
10
|
-
:
|
11
|
-
:
|
10
|
+
server: server,
|
11
|
+
api_username: api_username
|
12
12
|
)
|
13
13
|
end
|
14
14
|
|
@@ -25,9 +25,9 @@ module Lumberg
|
|
25
25
|
|
26
26
|
it "adds a mailing list" do
|
27
27
|
email.add_mailing_list(
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
28
|
+
list: "add-test",
|
29
|
+
domain: domain,
|
30
|
+
password: "s3cr3t5"
|
31
31
|
)
|
32
32
|
|
33
33
|
email.mailing_lists[:params][:data].find {|l|
|
@@ -41,9 +41,9 @@ module Lumberg
|
|
41
41
|
|
42
42
|
before do
|
43
43
|
email.add_mailing_list(
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
44
|
+
list: "test-list",
|
45
|
+
domain: domain,
|
46
|
+
password: "s3cr3t5"
|
47
47
|
)
|
48
48
|
end
|
49
49
|
|
@@ -61,10 +61,10 @@ module Lumberg
|
|
61
61
|
|
62
62
|
it "adds a forwarder" do
|
63
63
|
email.add_forwarder(
|
64
|
-
:
|
65
|
-
:
|
66
|
-
:
|
67
|
-
:
|
64
|
+
domain: domain,
|
65
|
+
email: local,
|
66
|
+
fwdopt: :fwd,
|
67
|
+
fwdemail: "foo@bar.com"
|
68
68
|
)
|
69
69
|
|
70
70
|
email.forwarders[:params][:data].find {|f|
|
@@ -80,10 +80,10 @@ module Lumberg
|
|
80
80
|
|
81
81
|
before do
|
82
82
|
email.add_forwarder(
|
83
|
-
:
|
84
|
-
:
|
85
|
-
:
|
86
|
-
:
|
83
|
+
domain: domain,
|
84
|
+
email: local,
|
85
|
+
fwdopt: :fwd,
|
86
|
+
fwdemail: "foo@bar.com"
|
87
87
|
)
|
88
88
|
end
|
89
89
|
|
@@ -101,10 +101,10 @@ module Lumberg
|
|
101
101
|
|
102
102
|
before do
|
103
103
|
email.add_forwarder(
|
104
|
-
:
|
105
|
-
:
|
106
|
-
:
|
107
|
-
:
|
104
|
+
domain: domain,
|
105
|
+
email: local,
|
106
|
+
fwdopt: :fwd,
|
107
|
+
fwdemail: "foo@bar.com"
|
108
108
|
)
|
109
109
|
end
|
110
110
|
|
@@ -120,10 +120,10 @@ module Lumberg
|
|
120
120
|
|
121
121
|
it "adds an email account" do
|
122
122
|
email.add_account(
|
123
|
-
:
|
124
|
-
:
|
125
|
-
:
|
126
|
-
:
|
123
|
+
domain: domain,
|
124
|
+
email: local,
|
125
|
+
password: "magicpants",
|
126
|
+
quota: 0
|
127
127
|
)
|
128
128
|
|
129
129
|
email.accounts[:params][:data].find {|a|
|
@@ -143,9 +143,9 @@ module Lumberg
|
|
143
143
|
}[:_diskquota]
|
144
144
|
|
145
145
|
email.edit_quota(
|
146
|
-
:
|
147
|
-
:
|
148
|
-
:
|
146
|
+
domain: domain,
|
147
|
+
email: local,
|
148
|
+
quota: 10
|
149
149
|
)
|
150
150
|
|
151
151
|
new_quota = email.accounts[:params][:data].find {|a|
|
@@ -163,8 +163,8 @@ module Lumberg
|
|
163
163
|
|
164
164
|
it "removes an email account" do
|
165
165
|
email.remove(
|
166
|
-
:
|
167
|
-
:
|
166
|
+
domain: domain,
|
167
|
+
email: "#{local}@#{domain}"
|
168
168
|
)
|
169
169
|
|
170
170
|
email.accounts[:params][:data].find {|a|
|
@@ -182,32 +182,32 @@ module Lumberg
|
|
182
182
|
|
183
183
|
before(:each) do
|
184
184
|
email.add_account(
|
185
|
-
:
|
186
|
-
:
|
187
|
-
:
|
188
|
-
:
|
185
|
+
domain: domain,
|
186
|
+
email: local,
|
187
|
+
password: "sauce",
|
188
|
+
quota: 0
|
189
189
|
)
|
190
190
|
end
|
191
191
|
|
192
192
|
context ":style option is :with_disk" do
|
193
193
|
it "uses Email::listpopswithdisk" do
|
194
194
|
email.should_receive(:perform_request).with(
|
195
|
-
hash_including(:
|
195
|
+
hash_including(api_function: "listpopswithdisk")
|
196
196
|
)
|
197
197
|
|
198
|
-
email.accounts(:
|
198
|
+
email.accounts(style: :with_disk)
|
199
199
|
end
|
200
200
|
|
201
201
|
it "is the default seting" do
|
202
202
|
email.should_receive(:perform_request).with(
|
203
|
-
hash_including(:
|
203
|
+
hash_including(api_function: "listpopswithdisk")
|
204
204
|
)
|
205
205
|
|
206
206
|
email.accounts
|
207
207
|
end
|
208
208
|
|
209
209
|
it "returns a list of email accounts" do
|
210
|
-
data = email.accounts(:
|
210
|
+
data = email.accounts(style: :with_disk)[:params][:data]
|
211
211
|
data.any? {|d| d[:email] == email_address }.should be_true
|
212
212
|
end
|
213
213
|
end
|
@@ -215,14 +215,14 @@ module Lumberg
|
|
215
215
|
context ":style option is :without_disk" do
|
216
216
|
it "uses Email::listpops" do
|
217
217
|
email.should_receive(:perform_request).with(
|
218
|
-
hash_including(:
|
218
|
+
hash_including(api_function: "listpops")
|
219
219
|
)
|
220
220
|
|
221
|
-
email.accounts(:
|
221
|
+
email.accounts(style: :without_disk)
|
222
222
|
end
|
223
223
|
|
224
224
|
it "returns a list of email accounts" do
|
225
|
-
data = email.accounts(:
|
225
|
+
data = email.accounts(style: :without_disk)[:params][:data]
|
226
226
|
data.any? {|d| d[:email] == email_address }.should be_true
|
227
227
|
end
|
228
228
|
end
|
@@ -230,14 +230,14 @@ module Lumberg
|
|
230
230
|
context ":style option is :with_image" do
|
231
231
|
it "uses Email::listpopswithimage" do
|
232
232
|
email.should_receive(:perform_request).with(
|
233
|
-
hash_including(:
|
233
|
+
hash_including(api_function: "listpopswithimage")
|
234
234
|
)
|
235
235
|
|
236
|
-
email.accounts(:
|
236
|
+
email.accounts(style: :with_image)
|
237
237
|
end
|
238
238
|
|
239
239
|
it "returns a list of email accounts" do
|
240
|
-
data = email.accounts(:
|
240
|
+
data = email.accounts(style: :with_image)[:params][:data]
|
241
241
|
data.any? {|d| d[:email] == email_address }.should be_true
|
242
242
|
end
|
243
243
|
end
|
@@ -245,14 +245,14 @@ module Lumberg
|
|
245
245
|
context ":style option is :single" do
|
246
246
|
it "uses Email::listpopssingle" do
|
247
247
|
email.should_receive(:perform_request).with(
|
248
|
-
hash_including(:
|
248
|
+
hash_including(api_function: "listpopssingle")
|
249
249
|
)
|
250
250
|
|
251
|
-
email.accounts(:
|
251
|
+
email.accounts(style: :single)
|
252
252
|
end
|
253
253
|
|
254
254
|
it "returns a list of email accounts" do
|
255
|
-
data = email.accounts(:
|
255
|
+
data = email.accounts(style: :single)[:params][:data]
|
256
256
|
data.any? {|d| d[:email] == email_address }.should be_true
|
257
257
|
end
|
258
258
|
end
|
@@ -273,9 +273,9 @@ module Lumberg
|
|
273
273
|
|
274
274
|
it "adds an mx record" do
|
275
275
|
email.add_mx(
|
276
|
-
:
|
277
|
-
:
|
278
|
-
:
|
276
|
+
domain: domain,
|
277
|
+
exchange: "mail.#{domain}",
|
278
|
+
preference: 2
|
279
279
|
)[:params][:data][0][:status].should eq(1)
|
280
280
|
end
|
281
281
|
end
|
@@ -285,10 +285,10 @@ module Lumberg
|
|
285
285
|
|
286
286
|
it "changes an existing mx record" do
|
287
287
|
email.add_mx(
|
288
|
-
:
|
289
|
-
:
|
290
|
-
:
|
291
|
-
:
|
288
|
+
domain: domain,
|
289
|
+
exchange: "mail.#{domain}",
|
290
|
+
oldpreference: 2,
|
291
|
+
preference: 1
|
292
292
|
)[:params][:data][0][:status].should eq(1)
|
293
293
|
end
|
294
294
|
end
|
@@ -308,9 +308,9 @@ module Lumberg
|
|
308
308
|
|
309
309
|
it "delete an existing mx record" do
|
310
310
|
email.delete_mx(
|
311
|
-
:domain
|
312
|
-
:
|
313
|
-
:
|
311
|
+
domain: domain,
|
312
|
+
exchange: "mail.#{domain}",
|
313
|
+
preference: 1
|
314
314
|
)[:params][:data][0][:status].should eq(1)
|
315
315
|
end
|
316
316
|
end
|
@@ -320,15 +320,15 @@ module Lumberg
|
|
320
320
|
|
321
321
|
it "sets an existing mx record to use remote" do
|
322
322
|
email.set_mx_type(
|
323
|
-
:domain
|
324
|
-
:
|
323
|
+
domain: domain,
|
324
|
+
mxcheck: "remote"
|
325
325
|
)[:params][:data][0][:detected].should == "remote"
|
326
326
|
end
|
327
327
|
end
|
328
328
|
|
329
329
|
describe "#set_mail_delivery" do
|
330
330
|
let(:detected) do
|
331
|
-
email.mx(:
|
331
|
+
email.mx(domain: domain)[:params][:data][0][:detected]
|
332
332
|
end
|
333
333
|
|
334
334
|
use_vcr_cassette("cpanel/email/set_mail_delivery")
|
@@ -338,8 +338,8 @@ module Lumberg
|
|
338
338
|
|
339
339
|
it "sets remote mail delivery" do
|
340
340
|
email.set_mail_delivery(
|
341
|
-
:
|
342
|
-
:
|
341
|
+
domain: domain,
|
342
|
+
delivery: :remote
|
343
343
|
)
|
344
344
|
|
345
345
|
detected.should == "remote"
|
@@ -351,8 +351,8 @@ module Lumberg
|
|
351
351
|
|
352
352
|
it "sets local mail delivery" do
|
353
353
|
email.set_mail_delivery(
|
354
|
-
:
|
355
|
-
:
|
354
|
+
domain: domain,
|
355
|
+
delivery: :local
|
356
356
|
)
|
357
357
|
|
358
358
|
detected.should == "local"
|
@@ -366,14 +366,14 @@ module Lumberg
|
|
366
366
|
|
367
367
|
before do
|
368
368
|
email.set_mail_delivery(
|
369
|
-
:
|
370
|
-
:
|
369
|
+
domain: domain,
|
370
|
+
delivery: :local
|
371
371
|
)
|
372
372
|
end
|
373
373
|
|
374
374
|
it "returns 1" do
|
375
375
|
email.check_local_delivery(
|
376
|
-
:
|
376
|
+
domain: domain
|
377
377
|
)[:params][:data][0][:alwaysaccept].should == 1
|
378
378
|
end
|
379
379
|
end
|
@@ -383,14 +383,14 @@ module Lumberg
|
|
383
383
|
|
384
384
|
before do
|
385
385
|
email.set_mail_delivery(
|
386
|
-
:
|
387
|
-
:
|
386
|
+
domain: domain,
|
387
|
+
delivery: :remote
|
388
388
|
)
|
389
389
|
end
|
390
390
|
|
391
391
|
it "returns 0" do
|
392
392
|
email.check_local_delivery(
|
393
|
-
:
|
393
|
+
domain: domain
|
394
394
|
)[:params][:data][0][:alwaysaccept].should == 0
|
395
395
|
end
|
396
396
|
end
|
@@ -404,22 +404,22 @@ module Lumberg
|
|
404
404
|
|
405
405
|
before do
|
406
406
|
email.add_account(
|
407
|
-
:
|
408
|
-
:
|
409
|
-
:
|
410
|
-
:
|
407
|
+
email: local,
|
408
|
+
domain: domain,
|
409
|
+
password: "abcdefg",
|
410
|
+
quota: 0
|
411
411
|
)
|
412
412
|
end
|
413
413
|
|
414
414
|
it "adds an email filter" do
|
415
415
|
result = email.add_filter(
|
416
|
-
:
|
417
|
-
:
|
418
|
-
:
|
419
|
-
:
|
420
|
-
:
|
421
|
-
:
|
422
|
-
:
|
416
|
+
account: "#{local}@#{domain}",
|
417
|
+
filtername: filter_name,
|
418
|
+
action1: "fail",
|
419
|
+
match1: "is",
|
420
|
+
opt1: "and",
|
421
|
+
part1: "$header_from:",
|
422
|
+
val1: "hi"
|
423
423
|
)[:params][:data][0]
|
424
424
|
|
425
425
|
result[:error].should == 0
|
@@ -436,38 +436,38 @@ module Lumberg
|
|
436
436
|
|
437
437
|
before do
|
438
438
|
email.add_account(
|
439
|
-
:
|
440
|
-
:
|
441
|
-
:
|
442
|
-
:
|
439
|
+
email: local,
|
440
|
+
domain: domain,
|
441
|
+
password: "abcdefg",
|
442
|
+
quota: 0
|
443
443
|
)
|
444
444
|
|
445
445
|
email.add_filter(
|
446
|
-
:
|
447
|
-
:
|
448
|
-
:
|
449
|
-
:
|
450
|
-
:
|
451
|
-
:
|
452
|
-
:
|
446
|
+
account: "#{local}@#{domain}",
|
447
|
+
filtername: filter_name,
|
448
|
+
action1: "fail",
|
449
|
+
match1: "is",
|
450
|
+
opt1: "and",
|
451
|
+
part1: "$header_from:",
|
452
|
+
val1: "hi"
|
453
453
|
)
|
454
454
|
end
|
455
455
|
|
456
456
|
it "returns a list of email filters" do
|
457
457
|
email.filters(
|
458
|
-
:
|
458
|
+
account: "#{local}@#{domain}"
|
459
459
|
)[:params][:data][0][:filtername].should == filter_name
|
460
460
|
end
|
461
461
|
|
462
462
|
context ":old_style option truthy" do
|
463
463
|
it "uses deprecated Email::listfilters" do
|
464
464
|
email.should_receive(:perform_request).with(
|
465
|
-
hash_including(:
|
465
|
+
hash_including(api_function: "listfilters")
|
466
466
|
)
|
467
467
|
|
468
468
|
email.filters(
|
469
|
-
:
|
470
|
-
:
|
469
|
+
account: "#{local}@#{domain}",
|
470
|
+
old_style: true
|
471
471
|
)
|
472
472
|
end
|
473
473
|
end
|
@@ -475,18 +475,18 @@ module Lumberg
|
|
475
475
|
context ":old_style option falsy" do
|
476
476
|
it "uses Email::filterlist" do
|
477
477
|
email.should_receive(:perform_request).with(
|
478
|
-
hash_including(:
|
478
|
+
hash_including(api_function: "filterlist")
|
479
479
|
)
|
480
480
|
|
481
481
|
email.filters(
|
482
|
-
:
|
483
|
-
:
|
482
|
+
account: "#{local}@#{domain}",
|
483
|
+
old_style: false
|
484
484
|
)
|
485
485
|
end
|
486
486
|
|
487
487
|
it "is the default setting" do
|
488
488
|
email.should_receive(:perform_request).with(
|
489
|
-
hash_including(:
|
489
|
+
hash_including(api_function: "filterlist")
|
490
490
|
)
|
491
491
|
|
492
492
|
email.filters
|
@@ -525,17 +525,17 @@ module Lumberg
|
|
525
525
|
|
526
526
|
before do
|
527
527
|
email.add_account(
|
528
|
-
:
|
529
|
-
:
|
530
|
-
:
|
531
|
-
:
|
528
|
+
domain: domain,
|
529
|
+
email: local,
|
530
|
+
password: "s00pers3cr3t",
|
531
|
+
quota: 0
|
532
532
|
)
|
533
533
|
end
|
534
534
|
|
535
535
|
it "gets disk usage information for an email account" do
|
536
536
|
email.disk_usage(
|
537
|
-
:
|
538
|
-
:
|
537
|
+
domain: domain,
|
538
|
+
login: local
|
539
539
|
)[:params][:data].find {|d|
|
540
540
|
d[:login] == local && d[:domain] == domain
|
541
541
|
}.should_not be_nil
|
@@ -549,16 +549,16 @@ module Lumberg
|
|
549
549
|
|
550
550
|
before do
|
551
551
|
email.add_account(
|
552
|
-
:
|
553
|
-
:
|
554
|
-
:
|
555
|
-
:
|
552
|
+
domain: domain,
|
553
|
+
email: local,
|
554
|
+
password: "s00pers3cr3t",
|
555
|
+
quota: 0
|
556
556
|
)
|
557
557
|
end
|
558
558
|
|
559
559
|
it "gets disk usage information for an email account" do
|
560
560
|
email.mail_dir(
|
561
|
-
:
|
561
|
+
account: "#{local}@#{domain}"
|
562
562
|
)[:params][:data][0][:absdir].should match(
|
563
563
|
/\/mail\/#{domain}\/#{local}/
|
564
564
|
)
|
@@ -572,10 +572,10 @@ module Lumberg
|
|
572
572
|
|
573
573
|
before do
|
574
574
|
email.add_account(
|
575
|
-
:
|
576
|
-
:
|
577
|
-
:
|
578
|
-
:
|
575
|
+
domain: domain,
|
576
|
+
email: local,
|
577
|
+
password: "s00pers3cr3t",
|
578
|
+
quota: 0
|
579
579
|
)
|
580
580
|
end
|
581
581
|
|
@@ -591,7 +591,7 @@ module Lumberg
|
|
591
591
|
|
592
592
|
it "gets default address info for a domain" do
|
593
593
|
email.default_address(
|
594
|
-
:
|
594
|
+
domain: domain
|
595
595
|
)[:params][:data][0][:domain].should == domain
|
596
596
|
end
|
597
597
|
end
|