epp-client 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 593b7e211a6bc863d15336709228708ce22368d2
4
- data.tar.gz: 8cacbdd420ff80c12238956fba39510219f66a82
3
+ metadata.gz: 647990ec77baa9d7c30a81821f7a3a13908ccf1a
4
+ data.tar.gz: 47c5fe61eeb149e4b04c903c908724351bc1b3e1
5
5
  SHA512:
6
- metadata.gz: d7df5c50e3af2f3db322e3c8ec211ac64c191cb4641e8774c8a089bc16da3ca1820a76357eb05095581a127546ba1b18090a3c1616ed854154cd4c39cbc37905
7
- data.tar.gz: b698287a84811a9305236a1113bd74d553280512c4baa920fb6a7548566807de6efa42ec4cf7c34b81110153792f0dcdbd9170ebdb9feaef008b8b41caac6f84
6
+ metadata.gz: 38ae880ae1595ebe6f8931e26360f94a7a21f075c30e284d7043a7533fef8288a0534c61657cb8e9b2dc882a486133cafa2fea4388c48009b560f520ec4d8101
7
+ data.tar.gz: c0711203d7872ff0f0585d39f343aa0953c98434ea365ce3f786e43baadc1f6401c7b2467a377451cc4bbfcc4fadef72b8e4ef6b6f0ca88de318972c51599f11
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- epp-client (2.0.0)
4
+ epp-client (2.1.0)
5
5
  libxml-ruby
6
6
 
7
7
  GEM
@@ -32,15 +32,15 @@ module EPP
32
32
  return @namespaces['domain'] if @namespaces.has_key?('domain')
33
33
  @namespaces['domain'] = xml_namespace(node, 'domain', NAMESPACE)
34
34
  end
35
-
36
- def period_to_xml(period)
37
- unit = period[-1,1]
38
- val = period.to_i.to_s
39
-
40
- p = domain_node('period', val)
41
- p['unit'] = unit
42
-
43
- p
35
+
36
+ def validate_period(period)
37
+ unit = period[-1,1].downcase
38
+ val = period.to_i
39
+
40
+ raise ArgumentError, "period suffix must either be 'm' or 'y'" unless %w(m y).include?(unit)
41
+ raise ArgumentError, "period value must be in the range 1-99" if val < 1 || val > 99
42
+
43
+ return val.to_s, unit
44
44
  end
45
45
 
46
46
  def auth_info_to_xml(auth_info)
@@ -21,6 +21,8 @@ module EPP
21
21
  @registrant = options.delete(:registrant)
22
22
  @contacts = options.delete(:contacts)
23
23
  @auth_info = options.delete(:auth_info)
24
+
25
+ @period_val, @period_unit = validate_period(@period)
24
26
  end
25
27
 
26
28
  def name
@@ -30,7 +32,13 @@ module EPP
30
32
  def to_xml
31
33
  node = super
32
34
  node << domain_node('name', @name)
33
- node << period_to_xml(@period) if @period
35
+
36
+ if @period_val && @period_unit
37
+ p = domain_node('period', @period_val)
38
+ p['unit'] = @period_unit
39
+
40
+ node << p
41
+ end
34
42
 
35
43
  unless @nameservers.empty?
36
44
  node << nameservers_to_xml(@nameservers)
@@ -3,14 +3,16 @@ require File.expand_path('../command', __FILE__)
3
3
  module EPP
4
4
  module Domain
5
5
  class Renew < Command
6
+ # @param [String] name Domain name to renew
7
+ # @param [Time,String] exp_date Expiration date of the domain
8
+ # @param [String] period Renewal period in XXy years or XXm months. XX must be between 1 and 99.
6
9
  def initialize(name, exp_date, period = nil)
7
10
  @name, @exp_date = name, exp_date
8
11
  @exp_date = Time.parse(exp_date) if exp_date.kind_of?(String)
9
12
 
10
- @period_unit = period[-1,1]
11
- @period_val = period.to_i.to_s
12
-
13
- raise ArgumentError, "period suffix must either be 'm' or 'y'" unless %w(m y).include?(@period_unit)
13
+ if period
14
+ @period_val, @period_unit = validate_period(period)
15
+ end
14
16
  end
15
17
 
16
18
  def name
@@ -22,10 +24,12 @@ module EPP
22
24
  node << domain_node('name', @name)
23
25
  node << domain_node('curExpDate', @exp_date.strftime("%Y-%m-%d"))
24
26
 
25
- p = domain_node('period', @period_val)
26
- p['unit'] = @period_unit
27
+ if @period_val && @period_unit
28
+ p = domain_node('period', @period_val)
29
+ p['unit'] = @period_unit
27
30
 
28
- node << p
31
+ node << p
32
+ end
29
33
 
30
34
  node
31
35
  end
@@ -6,8 +6,11 @@ module EPP
6
6
  # @auth_info[:ext] should be an XML::Node with whatever is required
7
7
  def initialize(name, period = nil, auth_info = {})
8
8
  @name = name
9
- @period = period
10
9
  @auth_info = auth_info
10
+
11
+ if period
12
+ @period_val, @period_unit = validate_period(period)
13
+ end
11
14
  end
12
15
 
13
16
  def name
@@ -17,7 +20,14 @@ module EPP
17
20
  def to_xml
18
21
  node = super
19
22
  node << domain_node('name', @name)
20
- node << period_to_xml(@period) if @period
23
+
24
+ if @period_val && @period_unit
25
+ p = domain_node('period', @period_val)
26
+ p['unit'] = @period_unit
27
+
28
+ node << p
29
+ end
30
+
21
31
  node << auth_info_to_xml(@auth_info) unless @auth_info.empty?
22
32
 
23
33
  node
@@ -1,3 +1,3 @@
1
1
  module EPP
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -50,4 +50,59 @@ class TestEppDomainCreateCommand < Test::Unit::TestCase
50
50
  assert_equal '2381728348', xpath_find('//domain:authInfo/domain:pw')
51
51
  end
52
52
  end
53
+
54
+ # Outside context for Ruby 1.8
55
+ def create_period(period)
56
+ EPP::Domain::Create.new('example.com',
57
+ :period => period, :registrant => 'UK-2349723',
58
+ :nameservers => %w(ns1.test.host ns2.test.host),
59
+ :auth_info => {:pw => '2381728348'})
60
+ end
61
+ context 'EPP::Domain::Create period' do
62
+ should 'accept 1m' do
63
+ assert_nothing_raised do
64
+ create_period '1m'
65
+ end
66
+ end
67
+ should 'accept 1y' do
68
+ assert_nothing_raised do
69
+ create_period '1m'
70
+ end
71
+ end
72
+ should 'accept 99m' do
73
+ assert_nothing_raised do
74
+ create_period '1m'
75
+ end
76
+ end
77
+ should 'accept 99y' do
78
+ assert_nothing_raised do
79
+ create_period '1m'
80
+ end
81
+ end
82
+ should 'reject 0m' do
83
+ assert_raises ArgumentError do
84
+ create_period '0m'
85
+ end
86
+ end
87
+ should 'reject 100m' do
88
+ assert_raises ArgumentError do
89
+ create_period '100m'
90
+ end
91
+ end
92
+ should 'reject 0y' do
93
+ assert_raises ArgumentError do
94
+ create_period '0y'
95
+ end
96
+ end
97
+ should 'reject 100y' do
98
+ assert_raises ArgumentError do
99
+ create_period '100y'
100
+ end
101
+ end
102
+ should 'reject 12c' do
103
+ assert_raises ArgumentError do
104
+ create_period '12c'
105
+ end
106
+ end
107
+ end
53
108
  end
@@ -36,4 +36,56 @@ class TestEppDomainRenewCommand < Test::Unit::TestCase
36
36
  assert_equal 'm', xpath_find('//domain:period/@unit')
37
37
  end
38
38
  end
39
+
40
+ # Outside context for Ruby 1.8
41
+ def renew_period(period)
42
+ EPP::Domain::Renew.new('example.com', Time.now, period)
43
+ end
44
+ context 'EPP::Domain::Renew period' do
45
+ should 'accept 1m' do
46
+ assert_nothing_raised do
47
+ renew_period '1m'
48
+ end
49
+ end
50
+ should 'accept 1y' do
51
+ assert_nothing_raised do
52
+ renew_period '1m'
53
+ end
54
+ end
55
+ should 'accept 99m' do
56
+ assert_nothing_raised do
57
+ renew_period '1m'
58
+ end
59
+ end
60
+ should 'accept 99y' do
61
+ assert_nothing_raised do
62
+ renew_period '1m'
63
+ end
64
+ end
65
+ should 'reject 0m' do
66
+ assert_raises ArgumentError do
67
+ renew_period '0m'
68
+ end
69
+ end
70
+ should 'reject 100m' do
71
+ assert_raises ArgumentError do
72
+ renew_period '100m'
73
+ end
74
+ end
75
+ should 'reject 0y' do
76
+ assert_raises ArgumentError do
77
+ renew_period '0y'
78
+ end
79
+ end
80
+ should 'reject 100y' do
81
+ assert_raises ArgumentError do
82
+ renew_period '100y'
83
+ end
84
+ end
85
+ should 'reject 12c' do
86
+ assert_raises ArgumentError do
87
+ renew_period '12c'
88
+ end
89
+ end
90
+ end
39
91
  end
@@ -34,4 +34,56 @@ class TestEppDomainTransferCommand < Test::Unit::TestCase
34
34
  assert_equal '2381728348', xpath_find('//domain:authInfo/domain:pw')
35
35
  end
36
36
  end
37
+
38
+ # Outside context for Ruby 1.8
39
+ def transfer_period(period)
40
+ EPP::Domain::Transfer.new('example.com', period, :pw => '2381728348')
41
+ end
42
+ context 'EPP::Domain::Transfer period' do
43
+ should 'accept 1m' do
44
+ assert_nothing_raised do
45
+ transfer_period '1m'
46
+ end
47
+ end
48
+ should 'accept 1y' do
49
+ assert_nothing_raised do
50
+ transfer_period '1m'
51
+ end
52
+ end
53
+ should 'accept 99m' do
54
+ assert_nothing_raised do
55
+ transfer_period '1m'
56
+ end
57
+ end
58
+ should 'accept 99y' do
59
+ assert_nothing_raised do
60
+ transfer_period '1m'
61
+ end
62
+ end
63
+ should 'reject 0m' do
64
+ assert_raises ArgumentError do
65
+ transfer_period '0m'
66
+ end
67
+ end
68
+ should 'reject 100m' do
69
+ assert_raises ArgumentError do
70
+ transfer_period '100m'
71
+ end
72
+ end
73
+ should 'reject 0y' do
74
+ assert_raises ArgumentError do
75
+ transfer_period '0y'
76
+ end
77
+ end
78
+ should 'reject 100y' do
79
+ assert_raises ArgumentError do
80
+ transfer_period '100y'
81
+ end
82
+ end
83
+ should 'reject 12c' do
84
+ assert_raises ArgumentError do
85
+ transfer_period '12c'
86
+ end
87
+ end
88
+ end
37
89
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epp-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Garside